@wormhole-foundation/wormhole-connect 1.1.4-beta.2-development → 1.1.4

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 (94) hide show
  1. package/dist/assets/{ccip-BNTHR_fq.js → ccip-DBKRHOzw.js} +1 -1
  2. package/dist/assets/{evm-BxXdWj24.js → evm-Ch2OAEjY.js} +4 -4
  3. package/dist/assets/{index-C2FPBPlV.js → index-6KD-Rsq-.js} +1 -1
  4. package/dist/assets/{index-nosdUF9i.js → index-CBRIB26U.js} +1 -1
  5. package/dist/assets/index-CqrwXT8q.js +2 -0
  6. package/dist/assets/{index.es--WISYjTj.js → index.es-BslALnP8.js} +2 -2
  7. package/dist/main.js +3 -3
  8. package/lib/{algorand-BfdC8LMm.mjs → algorand-DGFW1DOS.mjs} +7 -7
  9. package/lib/{algorand-B9Pcx34H.js → algorand-HCN4Bwfj.js} +1 -1
  10. package/lib/{aptos-DISEuAM4.mjs → aptos-Bbj6gw3L.mjs} +3 -3
  11. package/lib/{aptos-CuQYjxz4.mjs → aptos-CxTUUDke.mjs} +1 -1
  12. package/lib/{aptos-DlboPucS.js → aptos-DdgS7gP0.js} +2 -2
  13. package/lib/{aptos-D8msRZYc.js → aptos-rub8tun1.js} +1 -1
  14. package/lib/{ccip-BqkngZ6V.js → ccip-CSnIIYMU.js} +1 -1
  15. package/lib/{ccip-DV1T5CQz.mjs → ccip-DSfOJChg.mjs} +1 -1
  16. package/lib/{cosmwasm-D3ZKcsjq.js → cosmwasm-DEP08WU-.js} +4 -4
  17. package/lib/{cosmwasm-BFPK6deV.mjs → cosmwasm-DY1PMAJO.mjs} +10 -10
  18. package/lib/{events-CaIL5tL1.mjs → events-BZxm5jrM.mjs} +1 -1
  19. package/lib/{events-Cxw8aBUy.js → events-BozeIuDx.js} +1 -1
  20. package/lib/{evm-7idwo4la.mjs → evm-4DQ--w0X.mjs} +14 -14
  21. package/lib/{evm-UrRoO3lT.js → evm-5GsdcG4A.js} +1 -1
  22. package/lib/{evm-D12EHZXD.js → evm-BdikZZsP.js} +4 -4
  23. package/lib/{evm-D11YbeC_.mjs → evm-mqOA6aXy.mjs} +7 -7
  24. package/lib/{index-Cs8OaRdq.mjs → index-1U60lnae.mjs} +2 -2
  25. package/lib/{index-BkUc_QzZ.mjs → index-B-TRMIWs.mjs} +2 -2
  26. package/lib/{index-IwSEAKjs.mjs → index-B4RQFL8S.mjs} +3 -3
  27. package/lib/{index-Dh6mkRtz.js → index-B5r3vRTo.js} +92 -92
  28. package/lib/{index-Cg6LDJti.js → index-B7VunQ0V.js} +1 -1
  29. package/lib/{index-ClI_55nW.mjs → index-BBMlYvye.mjs} +8 -8
  30. package/lib/{index-Cfupv0rQ.mjs → index-BDvIwkuQ.mjs} +4 -4
  31. package/lib/{index-DjZ438HP.js → index-BDvsOJDF.js} +1 -1
  32. package/lib/{index-Cg19mcso.mjs → index-BMH6cJU8.mjs} +21 -21
  33. package/lib/{index-D4FfgE9k.mjs → index-BO-4Mtu6.mjs} +8 -8
  34. package/lib/{index-DgKyQSTc.js → index-BUmDz7gJ.js} +1 -1
  35. package/lib/{index-C6ww0FoG.js → index-BUsKmixx.js} +1 -1
  36. package/lib/{index-f6MztC_k.mjs → index-BaZ9ZXQ8.mjs} +11 -11
  37. package/lib/{index-xTifobUX.js → index-Bb4id6Q5.js} +1 -1
  38. package/lib/{index-Vouac_sN.js → index-Bdh7euLM.js} +1 -1
  39. package/lib/{index-yYbCizsj.js → index-BkwLjtPG.js} +1 -1
  40. package/lib/{index-DlXF_HRr.mjs → index-BxyQAGp1.mjs} +8 -8
  41. package/lib/{index-B-m7_r9W.js → index-CCrop6yd.js} +1 -1
  42. package/lib/{index-BKeG3u48.mjs → index-CFG8Auhr.mjs} +2 -2
  43. package/lib/{index-COW9BRyV.js → index-CJ4fqgIk.js} +1 -1
  44. package/lib/{index-s_6sncui.js → index-CLt3mTc2.js} +1 -1
  45. package/lib/{index-CBnSdTOm.mjs → index-CNq6iUaG.mjs} +5 -5
  46. package/lib/{index-DsMw6BFg.js → index-CNuaRHT9.js} +1 -1
  47. package/lib/{index-CJ8hOjdz.js → index-CSPGgVcz.js} +1 -1
  48. package/lib/{index-BQI2oZiv.js → index-Cgo4GYxn.js} +1 -1
  49. package/lib/{index-CDGkVXf1.mjs → index-CmUgRfB1.mjs} +2 -2
  50. package/lib/{index-Br_1eyUd.js → index-CpWbXdKl.js} +1 -1
  51. package/lib/{index-C1KUJpQh.mjs → index-CscLQMzV.mjs} +25 -25
  52. package/lib/{index-BEfsEC8g.mjs → index-D1fzB2pJ.mjs} +3 -3
  53. package/lib/{index-ClbyJuae.mjs → index-D3zV2OEX.mjs} +2 -2
  54. package/lib/index-DHSWeh-m.js +1 -0
  55. package/lib/{index-CeK6G0Jr.mjs → index-DIbdsPe6.mjs} +14 -14
  56. package/lib/{index-BUGIe9Q0.mjs → index-DN-MKi_Z.mjs} +4 -4
  57. package/lib/{index-CHGr1Xo0.js → index-DQPvaPS5.js} +1 -1
  58. package/lib/{index-BMsGsrRe.js → index-DRWMrzIU.js} +1 -1
  59. package/lib/{index-BMLK3kVY.js → index-DZ9CJGGU.js} +1 -1
  60. package/lib/{index-BPD6tZ5I.mjs → index-DgePBEwv.mjs} +19149 -19146
  61. package/lib/{index-vmVyLCAM.mjs → index-Dlnoph5j.mjs} +33 -33
  62. package/lib/{index-CGqBKzB5.js → index-Dly2vaRA.js} +1 -1
  63. package/lib/{index-D9Ezmk4f.js → index-DpzMnf-Z.js} +1 -1
  64. package/lib/{index-GKdJmpc9.mjs → index-KAe7y0WA.mjs} +2 -2
  65. package/lib/{index-VO5jvtPN.mjs → index-q3BebMyx.mjs} +1 -1
  66. package/lib/{index-CG2dc9k1.mjs → index-rJ51Opss.mjs} +5 -5
  67. package/lib/{index-CkHXWtPG.js → index-tzOxV6Ga.js} +1 -1
  68. package/lib/{index.es-Bld6bvmZ.mjs → index.es-B0vZ9CZN.mjs} +5 -5
  69. package/lib/{index.es-DWCjm6mS.js → index.es-CIkbIjAw.js} +2 -2
  70. package/lib/index.js +1 -1
  71. package/lib/index.mjs +1 -1
  72. package/lib/{keccak-C8mX3bFz.js → keccak-Bbj2Yl-x.js} +1 -1
  73. package/lib/{keccak-BwFcIiaM.mjs → keccak-OTA2ssQD.mjs} +1 -1
  74. package/lib/{pbkdf2-CeHVjwwG.mjs → pbkdf2-BTEK0Lcd.mjs} +3 -3
  75. package/lib/{pbkdf2-Bk-3RPXm.js → pbkdf2-DWsBOC-R.js} +1 -1
  76. package/lib/{signer-DXNU3KLz.mjs → signer-CSn2uQ3I.mjs} +1 -1
  77. package/lib/{signer-LadskxdY.js → signer-JVKCqiEl.js} +1 -1
  78. package/lib/{solana-C9iEiCkx.js → solana-B25QaZay.js} +1 -1
  79. package/lib/solana-C5D4LdxL.mjs +16 -0
  80. package/lib/{solana-BasjNE9K.mjs → solana-CZiRQleS.mjs} +4 -4
  81. package/lib/solana-JSgP_iZe.js +1 -0
  82. package/lib/{solanaEmbed.esm-CJdWWBYT.js → solanaEmbed.esm-BU0rHfVX.js} +1 -1
  83. package/lib/{solanaEmbed.esm-pwzJ8Zc0.mjs → solanaEmbed.esm-D5MQek-2.mjs} +3 -3
  84. package/lib/{sui-B9B-EQyp.mjs → sui-BZ3grhrf.mjs} +4 -4
  85. package/lib/{sui-iJeaGeqF.js → sui-Bc5tJ6m9.js} +1 -1
  86. package/lib/{sui-BJBxQjSI.js → sui-CuJDivKm.js} +2 -2
  87. package/lib/{sui-HC466JTC.mjs → sui-Dv8Drra7.mjs} +10 -10
  88. package/lib/{unsignedTransaction-CmgkSLIX.js → unsignedTransaction-BnVGUXbX.js} +1 -1
  89. package/lib/{unsignedTransaction-Di5zQIK0.mjs → unsignedTransaction-CzttHBqx.mjs} +2 -2
  90. package/package.json +1 -1
  91. package/dist/assets/index-D2LZykJf.js +0 -2
  92. package/lib/index-hb33T1qT.js +0 -1
  93. package/lib/solana-B15fGx9S.js +0 -1
  94. package/lib/solana-CfCGAR-_.mjs +0 -16
package/dist/main.js CHANGED
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/solana-BmGIyTEt.js","assets/signer-CVQxMrqM.js","assets/sui-CW05lm4n.js","assets/pbkdf2-CTUZRYZs.js","assets/cosmwasm-Bb55TeV-.js","assets/keccak-DYzglTc3.js","assets/sha3-DvrMZU8D.js","assets/index-kXg7_kw1.js","assets/evm-BxXdWj24.js","assets/index-C3Sky6pw.js","assets/solana-D5RkygmT.js","assets/wallets-BWYHgPQu.js","assets/sui-DKCuV9MM.js","assets/aptos-iv_Arec9.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/solana-BmGIyTEt.js","assets/signer-CVQxMrqM.js","assets/sui-CW05lm4n.js","assets/pbkdf2-CTUZRYZs.js","assets/cosmwasm-Bb55TeV-.js","assets/keccak-DYzglTc3.js","assets/sha3-DvrMZU8D.js","assets/index-kXg7_kw1.js","assets/evm-Ch2OAEjY.js","assets/index-C3Sky6pw.js","assets/solana-D5RkygmT.js","assets/wallets-BWYHgPQu.js","assets/sui-DKCuV9MM.js","assets/aptos-iv_Arec9.js"])))=>i.map(i=>d[i]);
2
2
  var Fhe=Object.defineProperty;var sU=t=>{throw TypeError(t)};var Phe=(t,e,n)=>e in t?Fhe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ce=(t,e,n)=>Phe(t,typeof e!="symbol"?e+"":e,n),LS=(t,e,n)=>e.has(t)||sU("Cannot "+n);var le=(t,e,n)=>(LS(t,e,"read from private field"),n?n.call(t):e.get(t)),Ze=(t,e,n)=>e.has(t)?sU("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Me=(t,e,n,r)=>(LS(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),Dt=(t,e,n)=>(LS(t,e,"access private method"),n);var T3=(t,e,n,r)=>({set _(i){Me(t,e,i,n)},get _(){return le(t,e,r)}});function zhe(t,e){for(var n=0;n<e.length;n++){const r=e[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in t)){const s=Object.getOwnPropertyDescriptor(r,i);s&&Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var an=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function hs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function da(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var aJ={exports:{}},Ow={},oJ={exports:{}},Xn={};/**
3
3
  * @license React
4
4
  * react.production.min.js
@@ -106,13 +106,13 @@ ${JSON.stringify(i.slice(-10),null,2)}. `:"",a="\nCatch the `SendTransactionErro
106
106
  ${r}. `+s+a;break;case"simulate":o=`Simulation failed.
107
107
  Message: ${r}.
108
108
  `+s+a;break;default:o=`Unknown action '${(f=>f)(e)}'`}super(o),this.signature=void 0,this.transactionMessage=void 0,this.transactionLogs=void 0,this.signature=n,this.transactionMessage=r,this.transactionLogs=i||void 0}get transactionError(){return{message:this.transactionMessage,logs:Array.isArray(this.transactionLogs)?this.transactionLogs:void 0}}get logs(){const e=this.transactionLogs;if(!(e!=null&&typeof e=="object"&&"then"in e))return e}async getLogs(e){return Array.isArray(this.transactionLogs)||(this.transactionLogs=new Promise((n,r)=>{e.getTransaction(this.signature).then(i=>{if(i&&i.meta&&i.meta.logMessages){const s=i.meta.logMessages;this.transactionLogs=s,n(s)}else r(new Error("Log messages not found"))}).catch(r)})),await this.transactionLogs}}const Zje={JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP:-32001,JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE:-32002,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE:-32003,JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE:-32004,JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY:-32005,JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:-32006,JSON_RPC_SERVER_ERROR_SLOT_SKIPPED:-32007,JSON_RPC_SERVER_ERROR_NO_SNAPSHOT:-32008,JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:-32009,JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:-32010,JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE:-32011,JSON_RPC_SCAN_ERROR:-32012,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH:-32013,JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:-32014,JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION:-32015,JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED:-32016};class nn extends Error{constructor({code:e,message:n,data:r},i){super(i!=null?`${i}: ${n}`:n),this.code=void 0,this.data=void 0,this.code=e,this.data=r,this.name="SolanaJSONRPCError"}}async function gB(t,e,n,r){const i=r&&{skipPreflight:r.skipPreflight,preflightCommitment:r.preflightCommitment||r.commitment,maxRetries:r.maxRetries,minContextSlot:r.minContextSlot},s=await t.sendTransaction(e,n,i);let a;if(e.recentBlockhash!=null&&e.lastValidBlockHeight!=null)a=(await t.confirmTransaction({abortSignal:r==null?void 0:r.abortSignal,signature:s,blockhash:e.recentBlockhash,lastValidBlockHeight:e.lastValidBlockHeight},r&&r.commitment)).value;else if(e.minNonceContextSlot!=null&&e.nonceInfo!=null){const{nonceInstruction:o}=e.nonceInfo,f=o.keys[0].pubkey;a=(await t.confirmTransaction({abortSignal:r==null?void 0:r.abortSignal,minContextSlot:e.minNonceContextSlot,nonceAccountPubkey:f,nonceValue:e.nonceInfo.nonce,signature:s},r&&r.commitment)).value}else(r==null?void 0:r.abortSignal)!=null&&console.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."),a=(await t.confirmTransaction(s,r&&r.commitment)).value;if(a.err)throw s!=null?new Md({action:"send",signature:s,transactionMessage:`Status: (${JSON.stringify(a)})`}):new Error(`Transaction ${s} failed (${JSON.stringify(a)})`);return s}function d6(t){return new Promise(e=>setTimeout(e,t))}function sr(t,e){const n=t.layout.span>=0?t.layout.span:nfe(t,e),r=ve.Buffer.alloc(n),i=Object.assign({instruction:t.index},e);return t.layout.encode(i,r),r}function Mr(t,e){let n;try{n=t.layout.decode(e)}catch(r){throw new Error("invalid instruction; "+r)}if(n.instruction!==t.index)throw new Error(`invalid instruction; instruction index mismatch ${n.instruction} != ${t.index}`);return n}const afe=E0("lamportsPerSignature"),ofe=_t([Ft("version"),Ft("state"),$n("authorizedPubkey"),$n("nonce"),_t([afe],"feeCalculator")]),xB=ofe.span;class GE{constructor(e){this.authorizedPubkey=void 0,this.nonce=void 0,this.feeCalculator=void 0,this.authorizedPubkey=e.authorizedPubkey,this.nonce=e.nonce,this.feeCalculator=e.feeCalculator}static fromAccountData(e){const n=ofe.decode(Hn(e),0);return new GE({authorizedPubkey:new Fe(n.authorizedPubkey),nonce:new Fe(n.nonce).toString(),feeCalculator:n.feeCalculator})}}const Kje=t=>{const e=t.decode.bind(t),n=t.encode.bind(t);return{decode:e,encode:n}},$je=t=>e=>{const n=_r(t,e),{encode:r,decode:i}=Kje(n),s=n;return s.decode=(a,o)=>{const f=i(a,o);return W1e(ve.Buffer.from(f))},s.encode=(a,o,f)=>{const u=OF(a,t);return r(u,o,f)},s},M8=$je(8);class Xje{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(Hr))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a SystemInstruction");return i}static decodeCreateAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:n,space:r,programId:i}=Mr(Hr.Create,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,lamports:n,space:r,programId:new Fe(i)}}static decodeTransfer(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:n}=Mr(Hr.Transfer,e.data);return{fromPubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,lamports:n}}static decodeTransferWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:n,seed:r,programId:i}=Mr(Hr.TransferWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,basePubkey:e.keys[1].pubkey,toPubkey:e.keys[2].pubkey,lamports:n,seed:r,programId:new Fe(i)}}static decodeAllocate(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{space:n}=Mr(Hr.Allocate,e.data);return{accountPubkey:e.keys[0].pubkey,space:n}}static decodeAllocateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:n,seed:r,space:i,programId:s}=Mr(Hr.AllocateWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new Fe(n),seed:r,space:i,programId:new Fe(s)}}static decodeAssign(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{programId:n}=Mr(Hr.Assign,e.data);return{accountPubkey:e.keys[0].pubkey,programId:new Fe(n)}}static decodeAssignWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:n,seed:r,programId:i}=Mr(Hr.AssignWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new Fe(n),seed:r,programId:new Fe(i)}}static decodeCreateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{base:n,seed:r,lamports:i,space:s,programId:a}=Mr(Hr.CreateWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,basePubkey:new Fe(n),seed:r,lamports:i,space:s,programId:new Fe(a)}}static decodeNonceInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{authorized:n}=Mr(Hr.InitializeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:new Fe(n)}}static decodeNonceAdvance(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),Mr(Hr.AdvanceNonceAccount,e.data),{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static decodeNonceWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:n}=Mr(Hr.WithdrawNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:n}}static decodeNonceAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:n}=Mr(Hr.AuthorizeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[1].pubkey,newAuthorizedPubkey:new Fe(n)}}static checkProgramId(e){if(!e.equals(kn.programId))throw new Error("invalid instruction; programId is not SystemProgram")}static checkKeyLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}const Hr=Object.freeze({Create:{index:0,layout:_t([Ft("instruction"),Ta("lamports"),Ta("space"),$n("programId")])},Assign:{index:1,layout:_t([Ft("instruction"),$n("programId")])},Transfer:{index:2,layout:_t([Ft("instruction"),M8("lamports")])},CreateWithSeed:{index:3,layout:_t([Ft("instruction"),$n("base"),k6("seed"),Ta("lamports"),Ta("space"),$n("programId")])},AdvanceNonceAccount:{index:4,layout:_t([Ft("instruction")])},WithdrawNonceAccount:{index:5,layout:_t([Ft("instruction"),Ta("lamports")])},InitializeNonceAccount:{index:6,layout:_t([Ft("instruction"),$n("authorized")])},AuthorizeNonceAccount:{index:7,layout:_t([Ft("instruction"),$n("authorized")])},Allocate:{index:8,layout:_t([Ft("instruction"),Ta("space")])},AllocateWithSeed:{index:9,layout:_t([Ft("instruction"),$n("base"),k6("seed"),Ta("space"),$n("programId")])},AssignWithSeed:{index:10,layout:_t([Ft("instruction"),$n("base"),k6("seed"),$n("programId")])},TransferWithSeed:{index:11,layout:_t([Ft("instruction"),M8("lamports"),k6("seed"),$n("programId")])},UpgradeNonceAccount:{index:12,layout:_t([Ft("instruction")])}});class kn{constructor(){}static createAccount(e){const n=Hr.Create,r=sr(n,{lamports:e.lamports,space:e.space,programId:Hn(e.programId.toBuffer())});return new cr({keys:[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!0,isWritable:!0}],programId:this.programId,data:r})}static transfer(e){let n,r;if("basePubkey"in e){const i=Hr.TransferWithSeed;n=sr(i,{lamports:BigInt(e.lamports),seed:e.seed,programId:Hn(e.programId.toBuffer())}),r=[{pubkey:e.fromPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}else{const i=Hr.Transfer;n=sr(i,{lamports:BigInt(e.lamports)}),r=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}return new cr({keys:r,programId:this.programId,data:n})}static assign(e){let n,r;if("basePubkey"in e){const i=Hr.AssignWithSeed;n=sr(i,{base:Hn(e.basePubkey.toBuffer()),seed:e.seed,programId:Hn(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=Hr.Assign;n=sr(i,{programId:Hn(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new cr({keys:r,programId:this.programId,data:n})}static createAccountWithSeed(e){const n=Hr.CreateWithSeed,r=sr(n,{base:Hn(e.basePubkey.toBuffer()),seed:e.seed,lamports:e.lamports,space:e.space,programId:Hn(e.programId.toBuffer())});let i=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!1,isWritable:!0}];return e.basePubkey.equals(e.fromPubkey)||i.push({pubkey:e.basePubkey,isSigner:!0,isWritable:!1}),new cr({keys:i,programId:this.programId,data:r})}static createNonceAccount(e){const n=new yn;"basePubkey"in e&&"seed"in e?n.add(kn.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:xB,programId:this.programId})):n.add(kn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,lamports:e.lamports,space:xB,programId:this.programId}));const r={noncePubkey:e.noncePubkey,authorizedPubkey:e.authorizedPubkey};return n.add(this.nonceInitialize(r)),n}static nonceInitialize(e){const n=Hr.InitializeNonceAccount,r=sr(n,{authorized:Hn(e.authorizedPubkey.toBuffer())}),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:gx,isSigner:!1,isWritable:!1},{pubkey:ds,isSigner:!1,isWritable:!1}],programId:this.programId,data:r};return new cr(i)}static nonceAdvance(e){const n=Hr.AdvanceNonceAccount,r=sr(n),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:gx,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r};return new cr(i)}static nonceWithdraw(e){const n=Hr.WithdrawNonceAccount,r=sr(n,{lamports:e.lamports});return new cr({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0},{pubkey:gx,isSigner:!1,isWritable:!1},{pubkey:ds,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static nonceAuthorize(e){const n=Hr.AuthorizeNonceAccount,r=sr(n,{authorized:Hn(e.newAuthorizedPubkey.toBuffer())});return new cr({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static allocate(e){let n,r;if("basePubkey"in e){const i=Hr.AllocateWithSeed;n=sr(i,{base:Hn(e.basePubkey.toBuffer()),seed:e.seed,space:e.space,programId:Hn(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=Hr.Allocate;n=sr(i,{space:e.space}),r=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new cr({keys:r,programId:this.programId,data:n})}}kn.programId=new Fe("11111111111111111111111111111111");const Jje=id-300;class Qh{constructor(){}static getMinNumSignatures(e){return 2*(Math.ceil(e/Qh.chunkSize)+1+1)}static async load(e,n,r,i,s){{const m=await e.getMinimumBalanceForRentExemption(s.length),y=await e.getAccountInfo(r.publicKey,"confirmed");let x=null;if(y!==null){if(y.executable)return console.error("Program load failed, account is already executable"),!1;y.data.length!==s.length&&(x=x||new yn,x.add(kn.allocate({accountPubkey:r.publicKey,space:s.length}))),y.owner.equals(i)||(x=x||new yn,x.add(kn.assign({accountPubkey:r.publicKey,programId:i}))),y.lamports<m&&(x=x||new yn,x.add(kn.transfer({fromPubkey:n.publicKey,toPubkey:r.publicKey,lamports:m-y.lamports})))}else x=new yn().add(kn.createAccount({fromPubkey:n.publicKey,newAccountPubkey:r.publicKey,lamports:m>0?m:1,space:s.length,programId:i}));x!==null&&await gB(e,x,[n,r],{commitment:"confirmed"})}const a=_t([Ft("instruction"),Ft("offset"),Ft("bytesLength"),Ft("bytesLengthPadding"),d0(Mn("byte"),rd(Ft(),-8),"bytes")]),o=Qh.chunkSize;let f=0,u=s,h=[];for(;u.length>0;){const m=u.slice(0,o),y=ve.Buffer.alloc(o+16);a.encode({instruction:0,offset:f,bytes:m,bytesLength:0,bytesLengthPadding:0},y);const x=new yn().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0}],programId:i,data:y});h.push(gB(e,x,[n,r],{commitment:"confirmed"})),e._rpcEndpoint.includes("solana.com")&&await d6(1e3/4),f+=o,u=u.slice(o)}await Promise.all(h);{const m=_t([Ft("instruction")]),y=ve.Buffer.alloc(m.span);m.encode({instruction:1},y);const x=new yn().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0},{pubkey:ds,isSigner:!1,isWritable:!1}],programId:i,data:y}),w="processed",E=await e.sendTransaction(x,[n,r],{preflightCommitment:w}),{context:I,value:T}=await e.confirmTransaction({signature:E,lastValidBlockHeight:x.lastValidBlockHeight,blockhash:x.recentBlockhash},w);if(T.err)throw new Error(`Transaction ${E} failed (${JSON.stringify(T)})`);for(;;){try{if(await e.getSlot({commitment:w})>I.slot)break}catch{}await new Promise(D=>setTimeout(D,Math.round(ife/2)))}}return!0}}Qh.chunkSize=Jje;const eRe=new Fe("BPFLoader2111111111111111111111111111111111");class tRe{static getMinNumSignatures(e){return Qh.getMinNumSignatures(e)}static load(e,n,r,i,s){return Qh.load(e,n,r,s,i)}}function nRe(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var rRe=Object.prototype.toString,iRe=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};function Eb(t,e){var n,r,i,s,a,o,f;if(t===!0)return"true";if(t===!1)return"false";switch(typeof t){case"object":if(t===null)return null;if(t.toJSON&&typeof t.toJSON=="function")return Eb(t.toJSON(),e);if(f=rRe.call(t),f==="[object Array]"){for(i="[",r=t.length-1,n=0;n<r;n++)i+=Eb(t[n],!0)+",";return r>-1&&(i+=Eb(t[n],!0)),i+"]"}else if(f==="[object Object]"){for(s=iRe(t).sort(),r=s.length,i="",n=0;n<r;)a=s[n],o=Eb(t[a],!1),o!==void 0&&(i&&(i+=","),i+=JSON.stringify(a)+":"+o),n++;return"{"+i+"}"}else return JSON.stringify(t);case"function":case"undefined":return e?null:void 0;case"string":return JSON.stringify(t);default:return isFinite(t)?t:null}}var sRe=function(t){var e=Eb(t,!1);if(e!==void 0)return""+e},gZ=nRe(sRe);const Q3=32;function OD(t){let e=0;for(;t>1;)t/=2,e++;return e}function aRe(t){return t===0?1:(t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t|=t>>32,t+1)}class cfe{constructor(e,n,r,i,s){this.slotsPerEpoch=void 0,this.leaderScheduleSlotOffset=void 0,this.warmup=void 0,this.firstNormalEpoch=void 0,this.firstNormalSlot=void 0,this.slotsPerEpoch=e,this.leaderScheduleSlotOffset=n,this.warmup=r,this.firstNormalEpoch=i,this.firstNormalSlot=s}getEpoch(e){return this.getEpochAndSlotIndex(e)[0]}getEpochAndSlotIndex(e){if(e<this.firstNormalSlot){const n=OD(aRe(e+Q3+1))-OD(Q3)-1,r=this.getSlotsInEpoch(n),i=e-(r-Q3);return[n,i]}else{const n=e-this.firstNormalSlot,r=Math.floor(n/this.slotsPerEpoch),i=this.firstNormalEpoch+r,s=n%this.slotsPerEpoch;return[i,s]}}getFirstSlotInEpoch(e){return e<=this.firstNormalEpoch?(Math.pow(2,e)-1)*Q3:(e-this.firstNormalEpoch)*this.slotsPerEpoch+this.firstNormalSlot}getLastSlotInEpoch(e){return this.getFirstSlotInEpoch(e)+this.getSlotsInEpoch(e)-1}getSlotsInEpoch(e){return e<this.firstNormalEpoch?Math.pow(2,e+OD(Q3)):this.slotsPerEpoch}}var oRe=globalThis.fetch;class cRe extends Dje{constructor(e,n,r){const i=s=>{const a=Tje(s,{autoconnect:!0,max_reconnects:5,reconnect:!0,reconnect_interval:1e3,...n});return"socket"in a?this.underlyingSocket=a.socket:this.underlyingSocket=a,a};super(i,e,n,r),this.underlyingSocket=void 0}call(...e){var r;const n=(r=this.underlyingSocket)==null?void 0:r.readyState;return n===1?super.call(...e):Promise.reject(new Error("Tried to call a JSON-RPC method `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+n+")"))}notify(...e){var r;const n=(r=this.underlyingSocket)==null?void 0:r.readyState;return n===1?super.notify(...e):Promise.reject(new Error("Tried to send a JSON-RPC notification `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+n+")"))}}function fRe(t,e){let n;try{n=t.layout.decode(e)}catch(r){throw new Error("invalid instruction; "+r)}if(n.typeIndex!==t.index)throw new Error(`invalid account data; account type mismatch ${n.typeIndex} != ${t.index}`);return n}const xZ=56;class vB{constructor(e){this.key=void 0,this.state=void 0,this.key=e.key,this.state=e.state}isActive(){const e=BigInt("0xffffffffffffffff");return this.state.deactivationSlot===e}static deserialize(e){const n=fRe(uRe,e),r=e.length-xZ;dr(r>=0,"lookup table is invalid"),dr(r%32===0,"lookup table is invalid");const i=r/32,{addresses:s}=_t([d0($n(),i,"addresses")]).decode(e.slice(xZ));return{deactivationSlot:n.deactivationSlot,lastExtendedSlot:n.lastExtendedSlot,lastExtendedSlotStartIndex:n.lastExtendedStartIndex,authority:n.authority.length!==0?new Fe(n.authority[0]):void 0,addresses:s.map(a=>new Fe(a))}}}const uRe={index:1,layout:_t([Ft("typeIndex"),M8("deactivationSlot"),E0("lastExtendedSlot"),Mn("lastExtendedStartIndex"),Mn(),d0($n(),rd(Mn(),-1),"authority")])},lRe=/^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i;function dRe(t){const e=t.match(lRe);if(e==null)throw TypeError(`Failed to validate endpoint URL \`${t}\``);const[n,r,i,s]=e,a=t.startsWith("https:")?"wss:":"ws:",o=i==null?null:parseInt(i.slice(1),10),f=o==null?"":`:${o+1}`;return`${a}//${r}${f}${s}`}const xi=eg(PF(Fe),Lt(),t=>new Fe(t)),ffe=zF([Lt(),li("base64")]),VF=eg(PF(ve.Buffer),ffe,t=>ve.Buffer.from(t[0],"base64")),ufe=30*1e3;function hRe(t){if(/^https?:/.test(t)===!1)throw new TypeError("Endpoint URL must start with `http:` or `https:`.");return t}function Wr(t){let e,n;if(typeof t=="string")e=t;else if(t){const{commitment:r,...i}=t;e=r,n=i}return{commitment:e,config:n}}function vZ(t){return t.map(e=>"memcmp"in e?{...e,memcmp:{...e.memcmp,encoding:e.memcmp.encoding??"base58"}}:e)}function lfe(t){return Ds([mt({jsonrpc:li("2.0"),id:Lt(),result:t}),mt({jsonrpc:li("2.0"),id:Lt(),error:mt({code:p3(),message:Lt(),data:gn(XBe())})})])}const pRe=lfe(p3());function Wn(t){return eg(lfe(t),pRe,e=>"error"in e?e:{...e,result:Bt(e.result,t)})}function Ti(t){return Wn(mt({context:mt({slot:Qe()}),value:t}))}function VE(t){return mt({context:mt({slot:Qe()}),value:t})}function FD(t,e){return t===0?new Yh({header:e.header,staticAccountKeys:e.accountKeys.map(n=>new Fe(n)),recentBlockhash:e.recentBlockhash,compiledInstructions:e.instructions.map(n=>({programIdIndex:n.programIdIndex,accountKeyIndexes:n.accounts,data:pi.decode(n.data)})),addressTableLookups:e.addressTableLookups}):new Nc(e)}const bRe=mt({foundation:Qe(),foundationTerm:Qe(),initial:Qe(),taper:Qe(),terminal:Qe()}),mRe=Wn(Pt(Wt(mt({epoch:Qe(),effectiveSlot:Qe(),amount:Qe(),postBalance:Qe(),commission:gn(Wt(Qe()))})))),yRe=Pt(mt({slot:Qe(),prioritizationFee:Qe()})),gRe=mt({total:Qe(),validator:Qe(),foundation:Qe(),epoch:Qe()}),xRe=mt({epoch:Qe(),slotIndex:Qe(),slotsInEpoch:Qe(),absoluteSlot:Qe(),blockHeight:gn(Qe()),transactionCount:gn(Qe())}),vRe=mt({slotsPerEpoch:Qe(),leaderScheduleSlotOffset:Qe(),warmup:q1(),firstNormalEpoch:Qe(),firstNormalSlot:Qe()}),wRe=G1e(Lt(),Pt(Qe())),p5=Wt(Ds([mt({}),Lt()])),MRe=mt({err:p5}),ARe=li("receivedSignature"),ERe=mt({"solana-core":Lt(),"feature-set":gn(Qe())}),SRe=mt({program:Lt(),programId:xi,parsed:p3()}),CRe=mt({programId:xi,accounts:Pt(xi),data:Lt()}),wZ=Ti(mt({err:Wt(Ds([mt({}),Lt()])),logs:Wt(Pt(Lt())),accounts:gn(Wt(Pt(Wt(mt({executable:q1(),owner:Lt(),lamports:Qe(),data:Pt(Lt()),rentEpoch:gn(Qe())}))))),unitsConsumed:gn(Qe()),returnData:gn(Wt(mt({programId:Lt(),data:zF([Lt(),li("base64")])}))),innerInstructions:gn(Wt(Pt(mt({index:Qe(),instructions:Pt(Ds([SRe,CRe]))}))))})),TRe=Ti(mt({byIdentity:G1e(Lt(),Pt(Qe())),range:mt({firstSlot:Qe(),lastSlot:Qe()})}));function IRe(t,e,n,r,i,s){const a=n||oRe;let o;s!=null&&console.warn("You have supplied an `httpAgent` when creating a `Connection` in a browser environment.It has been ignored; `httpAgent` is only used in Node environments.");let f;return r&&(f=async(h,m)=>{const y=await new Promise((x,w)=>{try{r(h,m,(E,I)=>x([E,I]))}catch(E){w(E)}});return await a(...y)}),new $1e(async(h,m)=>{const y={method:"POST",body:h,agent:o,headers:Object.assign({"Content-Type":"application/json"},e||{},D_e)};try{let x=5,w,E=500;for(;f?w=await f(t,y):w=await a(t,y),!(w.status!==429||i===!0||(x-=1,x===0));)console.error(`Server responded with ${w.status} ${w.statusText}. Retrying after ${E}ms delay...`),await d6(E),E*=2;const I=await w.text();w.ok?m(null,I):m(new Error(`${w.status} ${w.statusText}: ${I}`))}catch(x){x instanceof Error&&m(x)}},{})}function DRe(t){return(e,n)=>new Promise((r,i)=>{t.request(e,n,(s,a)=>{if(s){i(s);return}r(a)})})}function kRe(t){return e=>new Promise((n,r)=>{e.length===0&&n([]);const i=e.map(s=>t.request(s.methodName,s.args));t.request(i,(s,a)=>{if(s){r(s);return}n(a)})})}const NRe=Wn(bRe),LRe=Wn(gRe),BRe=Wn(yRe),jRe=Wn(xRe),RRe=Wn(vRe),_Re=Wn(wRe),ORe=Wn(Qe()),FRe=Ti(mt({total:Qe(),circulating:Qe(),nonCirculating:Qe(),nonCirculatingAccounts:Pt(xi)})),wB=mt({amount:Lt(),uiAmount:Wt(Qe()),decimals:Qe(),uiAmountString:gn(Lt())}),PRe=Ti(Pt(mt({address:xi,amount:Lt(),uiAmount:Wt(Qe()),decimals:Qe(),uiAmountString:gn(Lt())}))),zRe=Ti(Pt(mt({pubkey:xi,account:mt({executable:q1(),owner:xi,lamports:Qe(),data:VF,rentEpoch:Qe()})}))),MB=mt({program:Lt(),parsed:p3(),space:Qe()}),URe=Ti(Pt(mt({pubkey:xi,account:mt({executable:q1(),owner:xi,lamports:Qe(),data:MB,rentEpoch:Qe()})}))),WRe=Ti(Pt(mt({lamports:Qe(),address:xi}))),gm=mt({executable:q1(),owner:xi,lamports:Qe(),data:VF,rentEpoch:Qe()}),HRe=mt({pubkey:xi,account:gm}),qRe=eg(Ds([PF(ve.Buffer),MB]),Ds([ffe,MB]),t=>Array.isArray(t)?Bt(t,VF):t),AB=mt({executable:q1(),owner:xi,lamports:Qe(),data:qRe,rentEpoch:Qe()}),GRe=mt({pubkey:xi,account:AB}),VRe=mt({state:Ds([li("active"),li("inactive"),li("activating"),li("deactivating")]),active:Qe(),inactive:Qe()}),YRe=Wn(Pt(mt({signature:Lt(),slot:Qe(),err:p5,memo:Wt(Lt()),blockTime:gn(Wt(Qe()))}))),QRe=Wn(Pt(mt({signature:Lt(),slot:Qe(),err:p5,memo:Wt(Lt()),blockTime:gn(Wt(Qe()))}))),ZRe=mt({subscription:Qe(),result:VE(gm)}),KRe=mt({pubkey:xi,account:gm}),$Re=mt({subscription:Qe(),result:VE(KRe)}),XRe=mt({parent:Qe(),slot:Qe(),root:Qe()}),JRe=mt({subscription:Qe(),result:XRe}),e_e=Ds([mt({type:Ds([li("firstShredReceived"),li("completed"),li("optimisticConfirmation"),li("root")]),slot:Qe(),timestamp:Qe()}),mt({type:li("createdBank"),parent:Qe(),slot:Qe(),timestamp:Qe()}),mt({type:li("frozen"),slot:Qe(),timestamp:Qe(),stats:mt({numTransactionEntries:Qe(),numSuccessfulTransactions:Qe(),numFailedTransactions:Qe(),maxTransactionsPerEntry:Qe()})}),mt({type:li("dead"),slot:Qe(),timestamp:Qe(),err:Lt()})]),t_e=mt({subscription:Qe(),result:e_e}),n_e=mt({subscription:Qe(),result:VE(Ds([MRe,ARe]))}),r_e=mt({subscription:Qe(),result:Qe()}),i_e=mt({pubkey:Lt(),gossip:Wt(Lt()),tpu:Wt(Lt()),rpc:Wt(Lt()),version:Wt(Lt())}),MZ=mt({votePubkey:Lt(),nodePubkey:Lt(),activatedStake:Qe(),epochVoteAccount:q1(),epochCredits:Pt(zF([Qe(),Qe(),Qe()])),commission:Qe(),lastVote:Qe(),rootSlot:Wt(Qe())}),s_e=Wn(mt({current:Pt(MZ),delinquent:Pt(MZ)})),a_e=Ds([li("processed"),li("confirmed"),li("finalized")]),o_e=mt({slot:Qe(),confirmations:Wt(Qe()),err:p5,confirmationStatus:gn(a_e)}),c_e=Ti(Pt(Wt(o_e))),f_e=Wn(Qe()),dfe=mt({accountKey:xi,writableIndexes:Pt(Qe()),readonlyIndexes:Pt(Qe())}),YF=mt({signatures:Pt(Lt()),message:mt({accountKeys:Pt(Lt()),header:mt({numRequiredSignatures:Qe(),numReadonlySignedAccounts:Qe(),numReadonlyUnsignedAccounts:Qe()}),instructions:Pt(mt({accounts:Pt(Qe()),data:Lt(),programIdIndex:Qe()})),recentBlockhash:Lt(),addressTableLookups:gn(Pt(dfe))})}),hfe=mt({pubkey:xi,signer:q1(),writable:q1(),source:gn(Ds([li("transaction"),li("lookupTable")]))}),pfe=mt({accountKeys:Pt(hfe),signatures:Pt(Lt())}),bfe=mt({parsed:p3(),program:Lt(),programId:xi}),mfe=mt({accounts:Pt(xi),data:Lt(),programId:xi}),u_e=Ds([mfe,bfe]),l_e=Ds([mt({parsed:p3(),program:Lt(),programId:Lt()}),mt({accounts:Pt(Lt()),data:Lt(),programId:Lt()})]),yfe=eg(u_e,l_e,t=>"accounts"in t?Bt(t,mfe):Bt(t,bfe)),gfe=mt({signatures:Pt(Lt()),message:mt({accountKeys:Pt(hfe),instructions:Pt(yfe),recentBlockhash:Lt(),addressTableLookups:gn(Wt(Pt(dfe)))})}),tw=mt({accountIndex:Qe(),mint:Lt(),owner:gn(Lt()),uiTokenAmount:wB}),xfe=mt({writable:Pt(xi),readonly:Pt(xi)}),YE=mt({err:p5,fee:Qe(),innerInstructions:gn(Wt(Pt(mt({index:Qe(),instructions:Pt(mt({accounts:Pt(Qe()),data:Lt(),programIdIndex:Qe()}))})))),preBalances:Pt(Qe()),postBalances:Pt(Qe()),logMessages:gn(Wt(Pt(Lt()))),preTokenBalances:gn(Wt(Pt(tw))),postTokenBalances:gn(Wt(Pt(tw))),loadedAddresses:gn(xfe),computeUnitsConsumed:gn(Qe())}),QF=mt({err:p5,fee:Qe(),innerInstructions:gn(Wt(Pt(mt({index:Qe(),instructions:Pt(yfe)})))),preBalances:Pt(Qe()),postBalances:Pt(Qe()),logMessages:gn(Wt(Pt(Lt()))),preTokenBalances:gn(Wt(Pt(tw))),postTokenBalances:gn(Wt(Pt(tw))),loadedAddresses:gn(xfe),computeUnitsConsumed:gn(Qe())}),b3=Ds([li(0),li("legacy")]),b5=mt({pubkey:Lt(),lamports:Qe(),postBalance:Wt(Qe()),rewardType:Wt(Lt()),commission:gn(Wt(Qe()))}),d_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),transactions:Pt(mt({transaction:YF,meta:Wt(YE),version:gn(b3)})),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),h_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),p_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),transactions:Pt(mt({transaction:pfe,meta:Wt(YE),version:gn(b3)})),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),b_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),transactions:Pt(mt({transaction:gfe,meta:Wt(QF),version:gn(b3)})),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),m_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),transactions:Pt(mt({transaction:pfe,meta:Wt(QF),version:gn(b3)})),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),y_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),rewards:gn(Pt(b5)),blockTime:Wt(Qe()),blockHeight:Wt(Qe())}))),g_e=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),transactions:Pt(mt({transaction:YF,meta:Wt(YE)})),rewards:gn(Pt(b5)),blockTime:Wt(Qe())}))),AZ=Wn(Wt(mt({blockhash:Lt(),previousBlockhash:Lt(),parentSlot:Qe(),signatures:Pt(Lt()),blockTime:Wt(Qe())}))),PD=Wn(Wt(mt({slot:Qe(),meta:Wt(YE),blockTime:gn(Wt(Qe())),transaction:YF,version:gn(b3)}))),L9=Wn(Wt(mt({slot:Qe(),transaction:gfe,meta:Wt(QF),blockTime:gn(Wt(Qe())),version:gn(b3)}))),x_e=Ti(mt({blockhash:Lt(),feeCalculator:mt({lamportsPerSignature:Qe()})})),v_e=Ti(mt({blockhash:Lt(),lastValidBlockHeight:Qe()})),w_e=Ti(q1()),M_e=mt({slot:Qe(),numTransactions:Qe(),numSlots:Qe(),samplePeriodSecs:Qe()}),A_e=Wn(Pt(M_e)),E_e=Ti(Wt(mt({feeCalculator:mt({lamportsPerSignature:Qe()})}))),S_e=Wn(Lt()),C_e=Wn(Lt()),T_e=mt({err:p5,logs:Pt(Lt()),signature:Lt()}),I_e=mt({result:VE(T_e),subscription:Qe()}),D_e={"solana-client":"js/1.0.0-maintenance"};let QE=class{constructor(e,n){this._commitment=void 0,this._confirmTransactionInitialTimeout=void 0,this._rpcEndpoint=void 0,this._rpcWsEndpoint=void 0,this._rpcClient=void 0,this._rpcRequest=void 0,this._rpcBatchRequest=void 0,this._rpcWebSocket=void 0,this._rpcWebSocketConnected=!1,this._rpcWebSocketHeartbeat=null,this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketGeneration=0,this._disableBlockhashCaching=!1,this._pollingBlockhash=!1,this._blockhashInfo={latestBlockhash:null,lastFetch:0,transactionSignatures:[],simulatedSignatures:[]},this._nextClientSubscriptionId=0,this._subscriptionDisposeFunctionsByClientSubscriptionId={},this._subscriptionHashByClientSubscriptionId={},this._subscriptionStateChangeCallbacksByHash={},this._subscriptionCallbacksByServerSubscriptionId={},this._subscriptionsByHash={},this._subscriptionsAutoDisposedByRpc=new Set,this.getBlockHeight=(()=>{const u={};return async h=>{const{commitment:m,config:y}=Wr(h),x=this._buildArgs([],m,void 0,y),w=gZ(x);return u[w]=u[w]??(async()=>{try{const E=await this._rpcRequest("getBlockHeight",x),I=Bt(E,Wn(Qe()));if("error"in I)throw new nn(I.error,"failed to get block height information");return I.result}finally{delete u[w]}})(),await u[w]}})();let r,i,s,a,o,f;n&&typeof n=="string"?this._commitment=n:n&&(this._commitment=n.commitment,this._confirmTransactionInitialTimeout=n.confirmTransactionInitialTimeout,r=n.wsEndpoint,i=n.httpHeaders,s=n.fetch,a=n.fetchMiddleware,o=n.disableRetryOnRateLimit,f=n.httpAgent),this._rpcEndpoint=hRe(e),this._rpcWsEndpoint=r||dRe(e),this._rpcClient=IRe(e,i,s,a,o,f),this._rpcRequest=DRe(this._rpcClient),this._rpcBatchRequest=kRe(this._rpcClient),this._rpcWebSocket=new cRe(this._rpcWsEndpoint,{autoconnect:!1,max_reconnects:1/0}),this._rpcWebSocket.on("open",this._wsOnOpen.bind(this)),this._rpcWebSocket.on("error",this._wsOnError.bind(this)),this._rpcWebSocket.on("close",this._wsOnClose.bind(this)),this._rpcWebSocket.on("accountNotification",this._wsOnAccountNotification.bind(this)),this._rpcWebSocket.on("programNotification",this._wsOnProgramAccountNotification.bind(this)),this._rpcWebSocket.on("slotNotification",this._wsOnSlotNotification.bind(this)),this._rpcWebSocket.on("slotsUpdatesNotification",this._wsOnSlotUpdatesNotification.bind(this)),this._rpcWebSocket.on("signatureNotification",this._wsOnSignatureNotification.bind(this)),this._rpcWebSocket.on("rootNotification",this._wsOnRootNotification.bind(this)),this._rpcWebSocket.on("logsNotification",this._wsOnLogsNotification.bind(this))}get commitment(){return this._commitment}get rpcEndpoint(){return this._rpcEndpoint}async getBalanceAndContext(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgs([e.toBase58()],r,void 0,i),a=await this._rpcRequest("getBalance",s),o=Bt(a,Ti(Qe()));if("error"in o)throw new nn(o.error,`failed to get balance for ${e.toBase58()}`);return o.result}async getBalance(e,n){return await this.getBalanceAndContext(e,n).then(r=>r.value).catch(r=>{throw new Error("failed to get balance of account "+e.toBase58()+": "+r)})}async getBlockTime(e){const n=await this._rpcRequest("getBlockTime",[e]),r=Bt(n,Wn(Wt(Qe())));if("error"in r)throw new nn(r.error,`failed to get block time for slot ${e}`);return r.result}async getMinimumLedgerSlot(){const e=await this._rpcRequest("minimumLedgerSlot",[]),n=Bt(e,Wn(Qe()));if("error"in n)throw new nn(n.error,"failed to get minimum ledger slot");return n.result}async getFirstAvailableBlock(){const e=await this._rpcRequest("getFirstAvailableBlock",[]),n=Bt(e,ORe);if("error"in n)throw new nn(n.error,"failed to get first available block");return n.result}async getSupply(e){let n={};typeof e=="string"?n={commitment:e}:e?n={...e,commitment:e&&e.commitment||this.commitment}:n={commitment:this.commitment};const r=await this._rpcRequest("getSupply",[n]),i=Bt(r,FRe);if("error"in i)throw new nn(i.error,"failed to get supply");return i.result}async getTokenSupply(e,n){const r=this._buildArgs([e.toBase58()],n),i=await this._rpcRequest("getTokenSupply",r),s=Bt(i,Ti(wB));if("error"in s)throw new nn(s.error,"failed to get token supply");return s.result}async getTokenAccountBalance(e,n){const r=this._buildArgs([e.toBase58()],n),i=await this._rpcRequest("getTokenAccountBalance",r),s=Bt(i,Ti(wB));if("error"in s)throw new nn(s.error,"failed to get token account balance");return s.result}async getTokenAccountsByOwner(e,n,r){const{commitment:i,config:s}=Wr(r);let a=[e.toBase58()];"mint"in n?a.push({mint:n.mint.toBase58()}):a.push({programId:n.programId.toBase58()});const o=this._buildArgs(a,i,"base64",s),f=await this._rpcRequest("getTokenAccountsByOwner",o),u=Bt(f,zRe);if("error"in u)throw new nn(u.error,`failed to get token accounts owned by account ${e.toBase58()}`);return u.result}async getParsedTokenAccountsByOwner(e,n,r){let i=[e.toBase58()];"mint"in n?i.push({mint:n.mint.toBase58()}):i.push({programId:n.programId.toBase58()});const s=this._buildArgs(i,r,"jsonParsed"),a=await this._rpcRequest("getTokenAccountsByOwner",s),o=Bt(a,URe);if("error"in o)throw new nn(o.error,`failed to get token accounts owned by account ${e.toBase58()}`);return o.result}async getLargestAccounts(e){const n={...e,commitment:e&&e.commitment||this.commitment},r=n.filter||n.commitment?[n]:[],i=await this._rpcRequest("getLargestAccounts",r),s=Bt(i,WRe);if("error"in s)throw new nn(s.error,"failed to get largest accounts");return s.result}async getTokenLargestAccounts(e,n){const r=this._buildArgs([e.toBase58()],n),i=await this._rpcRequest("getTokenLargestAccounts",r),s=Bt(i,PRe);if("error"in s)throw new nn(s.error,"failed to get token largest accounts");return s.result}async getAccountInfoAndContext(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgs([e.toBase58()],r,"base64",i),a=await this._rpcRequest("getAccountInfo",s),o=Bt(a,Ti(Wt(gm)));if("error"in o)throw new nn(o.error,`failed to get info about account ${e.toBase58()}`);return o.result}async getParsedAccountInfo(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgs([e.toBase58()],r,"jsonParsed",i),a=await this._rpcRequest("getAccountInfo",s),o=Bt(a,Ti(Wt(AB)));if("error"in o)throw new nn(o.error,`failed to get info about account ${e.toBase58()}`);return o.result}async getAccountInfo(e,n){try{return(await this.getAccountInfoAndContext(e,n)).value}catch(r){throw new Error("failed to get info about account "+e.toBase58()+": "+r)}}async getMultipleParsedAccounts(e,n){const{commitment:r,config:i}=Wr(n),s=e.map(u=>u.toBase58()),a=this._buildArgs([s],r,"jsonParsed",i),o=await this._rpcRequest("getMultipleAccounts",a),f=Bt(o,Ti(Pt(Wt(AB))));if("error"in f)throw new nn(f.error,`failed to get info for accounts ${s}`);return f.result}async getMultipleAccountsInfoAndContext(e,n){const{commitment:r,config:i}=Wr(n),s=e.map(u=>u.toBase58()),a=this._buildArgs([s],r,"base64",i),o=await this._rpcRequest("getMultipleAccounts",a),f=Bt(o,Ti(Pt(Wt(gm))));if("error"in f)throw new nn(f.error,`failed to get info for accounts ${s}`);return f.result}async getMultipleAccountsInfo(e,n){return(await this.getMultipleAccountsInfoAndContext(e,n)).value}async getStakeActivation(e,n,r){const{commitment:i,config:s}=Wr(n),a=this._buildArgs([e.toBase58()],i,void 0,{...s,epoch:r??(s==null?void 0:s.epoch)}),o=await this._rpcRequest("getStakeActivation",a),f=Bt(o,Wn(VRe));if("error"in f)throw new nn(f.error,`failed to get Stake Activation ${e.toBase58()}`);return f.result}async getProgramAccounts(e,n){const{commitment:r,config:i}=Wr(n),{encoding:s,...a}=i||{},o=this._buildArgs([e.toBase58()],r,s||"base64",{...a,...a.filters?{filters:vZ(a.filters)}:null}),f=await this._rpcRequest("getProgramAccounts",o),u=Pt(HRe),h=a.withContext===!0?Bt(f,Ti(u)):Bt(f,Wn(u));if("error"in h)throw new nn(h.error,`failed to get accounts owned by program ${e.toBase58()}`);return h.result}async getParsedProgramAccounts(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgs([e.toBase58()],r,"jsonParsed",i),a=await this._rpcRequest("getProgramAccounts",s),o=Bt(a,Wn(Pt(GRe)));if("error"in o)throw new nn(o.error,`failed to get accounts owned by program ${e.toBase58()}`);return o.result}async confirmTransaction(e,n){var s;let r;if(typeof e=="string")r=e;else{const a=e;if((s=a.abortSignal)!=null&&s.aborted)return Promise.reject(a.abortSignal.reason);r=a.signature}let i;try{i=pi.decode(r)}catch{throw new Error("signature must be base58 encoded: "+r)}return dr(i.length===64,"signature has invalid length"),typeof e=="string"?await this.confirmTransactionUsingLegacyTimeoutStrategy({commitment:n||this.commitment,signature:r}):"lastValidBlockHeight"in e?await this.confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:n||this.commitment,strategy:e}):await this.confirmTransactionUsingDurableNonceStrategy({commitment:n||this.commitment,strategy:e})}getCancellationPromise(e){return new Promise((n,r)=>{e!=null&&(e.aborted?r(e.reason):e.addEventListener("abort",()=>{r(e.reason)}))})}getTransactionConfirmationPromise({commitment:e,signature:n}){let r,i,s=!1;const a=new Promise((f,u)=>{try{r=this.onSignature(n,(m,y)=>{r=void 0;const x={context:y,value:m};f({__type:lf.PROCESSED,response:x})},e);const h=new Promise(m=>{r==null?m():i=this._onSubscriptionStateChange(r,y=>{y==="subscribed"&&m()})});(async()=>{if(await h,s)return;const m=await this.getSignatureStatus(n);if(s||m==null)return;const{context:y,value:x}=m;if(x!=null)if(x!=null&&x.err)u(x.err);else{switch(e){case"confirmed":case"single":case"singleGossip":{if(x.confirmationStatus==="processed")return;break}case"finalized":case"max":case"root":{if(x.confirmationStatus==="processed"||x.confirmationStatus==="confirmed")return;break}case"processed":case"recent":}s=!0,f({__type:lf.PROCESSED,response:{context:y,value:x}})}})()}catch(h){u(h)}});return{abortConfirmation:()=>{i&&(i(),i=void 0),r!=null&&(this.removeSignatureListener(r),r=void 0)},confirmationPromise:a}}async confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:e,strategy:{abortSignal:n,lastValidBlockHeight:r,signature:i}}){let s=!1;const a=new Promise(m=>{const y=async()=>{try{return await this.getBlockHeight(e)}catch{return-1}};(async()=>{let x=await y();if(!s){for(;x<=r;)if(await d6(1e3),s||(x=await y(),s))return;m({__type:lf.BLOCKHEIGHT_EXCEEDED})}})()}),{abortConfirmation:o,confirmationPromise:f}=this.getTransactionConfirmationPromise({commitment:e,signature:i}),u=this.getCancellationPromise(n);let h;try{const m=await Promise.race([u,f,a]);if(m.__type===lf.PROCESSED)h=m.response;else throw new HF(i)}finally{s=!0,o()}return h}async confirmTransactionUsingDurableNonceStrategy({commitment:e,strategy:{abortSignal:n,minContextSlot:r,nonceAccountPubkey:i,nonceValue:s,signature:a}}){let o=!1;const f=new Promise(x=>{let w=s,E=null;const I=async()=>{try{const{context:T,value:D}=await this.getNonceAndContext(i,{commitment:e,minContextSlot:r});return E=T.slot,D==null?void 0:D.nonce}catch{return w}};(async()=>{if(w=await I(),!o)for(;;){if(s!==w){x({__type:lf.NONCE_INVALID,slotInWhichNonceDidAdvance:E});return}if(await d6(2e3),o||(w=await I(),o))return}})()}),{abortConfirmation:u,confirmationPromise:h}=this.getTransactionConfirmationPromise({commitment:e,signature:a}),m=this.getCancellationPromise(n);let y;try{const x=await Promise.race([m,h,f]);if(x.__type===lf.PROCESSED)y=x.response;else{let w;for(;;){const E=await this.getSignatureStatus(a);if(E==null)break;if(E.context.slot<(x.slotInWhichNonceDidAdvance??r)){await d6(400);continue}w=E;break}if(w!=null&&w.value){const E=e||"finalized",{confirmationStatus:I}=w.value;switch(E){case"processed":case"recent":if(I!=="processed"&&I!=="confirmed"&&I!=="finalized")throw new h2(a);break;case"confirmed":case"single":case"singleGossip":if(I!=="confirmed"&&I!=="finalized")throw new h2(a);break;case"finalized":case"max":case"root":if(I!=="finalized")throw new h2(a);break;default:}y={context:w.context,value:{err:w.value.err}}}else throw new h2(a)}}finally{o=!0,u()}return y}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:e,signature:n}){let r;const i=new Promise(f=>{let u=this._confirmTransactionInitialTimeout||6e4;switch(e){case"processed":case"recent":case"single":case"confirmed":case"singleGossip":{u=this._confirmTransactionInitialTimeout||3e4;break}}r=setTimeout(()=>f({__type:lf.TIMED_OUT,timeoutMs:u}),u)}),{abortConfirmation:s,confirmationPromise:a}=this.getTransactionConfirmationPromise({commitment:e,signature:n});let o;try{const f=await Promise.race([a,i]);if(f.__type===lf.PROCESSED)o=f.response;else throw new qF(n,f.timeoutMs/1e3)}finally{clearTimeout(r),s()}return o}async getClusterNodes(){const e=await this._rpcRequest("getClusterNodes",[]),n=Bt(e,Wn(Pt(i_e)));if("error"in n)throw new nn(n.error,"failed to get cluster nodes");return n.result}async getVoteAccounts(e){const n=this._buildArgs([],e),r=await this._rpcRequest("getVoteAccounts",n),i=Bt(r,s_e);if("error"in i)throw new nn(i.error,"failed to get vote accounts");return i.result}async getSlot(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,void 0,r),s=await this._rpcRequest("getSlot",i),a=Bt(s,Wn(Qe()));if("error"in a)throw new nn(a.error,"failed to get slot");return a.result}async getSlotLeader(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,void 0,r),s=await this._rpcRequest("getSlotLeader",i),a=Bt(s,Wn(Lt()));if("error"in a)throw new nn(a.error,"failed to get slot leader");return a.result}async getSlotLeaders(e,n){const r=[e,n],i=await this._rpcRequest("getSlotLeaders",r),s=Bt(i,Wn(Pt(xi)));if("error"in s)throw new nn(s.error,"failed to get slot leaders");return s.result}async getSignatureStatus(e,n){const{context:r,value:i}=await this.getSignatureStatuses([e],n);dr(i.length===1);const s=i[0];return{context:r,value:s}}async getSignatureStatuses(e,n){const r=[e];n&&r.push(n);const i=await this._rpcRequest("getSignatureStatuses",r),s=Bt(i,c_e);if("error"in s)throw new nn(s.error,"failed to get signature status");return s.result}async getTransactionCount(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,void 0,r),s=await this._rpcRequest("getTransactionCount",i),a=Bt(s,Wn(Qe()));if("error"in a)throw new nn(a.error,"failed to get transaction count");return a.result}async getTotalSupply(e){return(await this.getSupply({commitment:e,excludeNonCirculatingAccountsList:!0})).value.total}async getInflationGovernor(e){const n=this._buildArgs([],e),r=await this._rpcRequest("getInflationGovernor",n),i=Bt(r,NRe);if("error"in i)throw new nn(i.error,"failed to get inflation");return i.result}async getInflationReward(e,n,r){const{commitment:i,config:s}=Wr(r),a=this._buildArgs([e.map(u=>u.toBase58())],i,void 0,{...s,epoch:n??(s==null?void 0:s.epoch)}),o=await this._rpcRequest("getInflationReward",a),f=Bt(o,mRe);if("error"in f)throw new nn(f.error,"failed to get inflation reward");return f.result}async getInflationRate(){const e=await this._rpcRequest("getInflationRate",[]),n=Bt(e,LRe);if("error"in n)throw new nn(n.error,"failed to get inflation rate");return n.result}async getEpochInfo(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,void 0,r),s=await this._rpcRequest("getEpochInfo",i),a=Bt(s,jRe);if("error"in a)throw new nn(a.error,"failed to get epoch info");return a.result}async getEpochSchedule(){const e=await this._rpcRequest("getEpochSchedule",[]),n=Bt(e,RRe);if("error"in n)throw new nn(n.error,"failed to get epoch schedule");const r=n.result;return new cfe(r.slotsPerEpoch,r.leaderScheduleSlotOffset,r.warmup,r.firstNormalEpoch,r.firstNormalSlot)}async getLeaderSchedule(){const e=await this._rpcRequest("getLeaderSchedule",[]),n=Bt(e,_Re);if("error"in n)throw new nn(n.error,"failed to get leader schedule");return n.result}async getMinimumBalanceForRentExemption(e,n){const r=this._buildArgs([e],n),i=await this._rpcRequest("getMinimumBalanceForRentExemption",r),s=Bt(i,f_e);return"error"in s?(console.warn("Unable to fetch minimum balance for rent exemption"),0):s.result}async getRecentBlockhashAndContext(e){const n=this._buildArgs([],e),r=await this._rpcRequest("getRecentBlockhash",n),i=Bt(r,x_e);if("error"in i)throw new nn(i.error,"failed to get recent blockhash");return i.result}async getRecentPerformanceSamples(e){const n=await this._rpcRequest("getRecentPerformanceSamples",e?[e]:[]),r=Bt(n,A_e);if("error"in r)throw new nn(r.error,"failed to get recent performance samples");return r.result}async getFeeCalculatorForBlockhash(e,n){const r=this._buildArgs([e],n),i=await this._rpcRequest("getFeeCalculatorForBlockhash",r),s=Bt(i,E_e);if("error"in s)throw new nn(s.error,"failed to get fee calculator");const{context:a,value:o}=s.result;return{context:a,value:o!==null?o.feeCalculator:null}}async getFeeForMessage(e,n){const r=Hn(e.serialize()).toString("base64"),i=this._buildArgs([r],n),s=await this._rpcRequest("getFeeForMessage",i),a=Bt(s,Ti(Wt(Qe())));if("error"in a)throw new nn(a.error,"failed to get fee for message");if(a.result===null)throw new Error("invalid blockhash");return a.result}async getRecentPrioritizationFees(e){var a;const n=(a=e==null?void 0:e.lockedWritableAccounts)==null?void 0:a.map(o=>o.toBase58()),r=n!=null&&n.length?[n]:[],i=await this._rpcRequest("getRecentPrioritizationFees",r),s=Bt(i,BRe);if("error"in s)throw new nn(s.error,"failed to get recent prioritization fees");return s.result}async getRecentBlockhash(e){try{return(await this.getRecentBlockhashAndContext(e)).value}catch(n){throw new Error("failed to get recent blockhash: "+n)}}async getLatestBlockhash(e){try{return(await this.getLatestBlockhashAndContext(e)).value}catch(n){throw new Error("failed to get recent blockhash: "+n)}}async getLatestBlockhashAndContext(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,void 0,r),s=await this._rpcRequest("getLatestBlockhash",i),a=Bt(s,v_e);if("error"in a)throw new nn(a.error,"failed to get latest blockhash");return a.result}async isBlockhashValid(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgs([e],r,void 0,i),a=await this._rpcRequest("isBlockhashValid",s),o=Bt(a,w_e);if("error"in o)throw new nn(o.error,"failed to determine if the blockhash `"+e+"`is valid");return o.result}async getVersion(){const e=await this._rpcRequest("getVersion",[]),n=Bt(e,Wn(ERe));if("error"in n)throw new nn(n.error,"failed to get version");return n.result}async getGenesisHash(){const e=await this._rpcRequest("getGenesisHash",[]),n=Bt(e,Wn(Lt()));if("error"in n)throw new nn(n.error,"failed to get genesis hash");return n.result}async getBlock(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgsAtLeastConfirmed([e],r,void 0,i),a=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const o=Bt(a,p_e);if("error"in o)throw o.error;return o.result}case"none":{const o=Bt(a,h_e);if("error"in o)throw o.error;return o.result}default:{const o=Bt(a,d_e);if("error"in o)throw o.error;const{result:f}=o;return f?{...f,transactions:f.transactions.map(({transaction:u,meta:h,version:m})=>({meta:h,transaction:{...u,message:FD(m,u.message)},version:m}))}:null}}}catch(o){throw new nn(o,"failed to get confirmed block")}}async getParsedBlock(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgsAtLeastConfirmed([e],r,"jsonParsed",i),a=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const o=Bt(a,m_e);if("error"in o)throw o.error;return o.result}case"none":{const o=Bt(a,y_e);if("error"in o)throw o.error;return o.result}default:{const o=Bt(a,b_e);if("error"in o)throw o.error;return o.result}}}catch(o){throw new nn(o,"failed to get block")}}async getBlockProduction(e){let n,r;if(typeof e=="string")r=e;else if(e){const{commitment:o,...f}=e;r=o,n=f}const i=this._buildArgs([],r,"base64",n),s=await this._rpcRequest("getBlockProduction",i),a=Bt(s,TRe);if("error"in a)throw new nn(a.error,"failed to get block production information");return a.result}async getTransaction(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgsAtLeastConfirmed([e],r,void 0,i),a=await this._rpcRequest("getTransaction",s),o=Bt(a,PD);if("error"in o)throw new nn(o.error,"failed to get transaction");const f=o.result;return f&&{...f,transaction:{...f.transaction,message:FD(f.version,f.transaction.message)}}}async getParsedTransaction(e,n){const{commitment:r,config:i}=Wr(n),s=this._buildArgsAtLeastConfirmed([e],r,"jsonParsed",i),a=await this._rpcRequest("getTransaction",s),o=Bt(a,L9);if("error"in o)throw new nn(o.error,"failed to get transaction");return o.result}async getParsedTransactions(e,n){const{commitment:r,config:i}=Wr(n),s=e.map(f=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([f],r,"jsonParsed",i)}));return(await this._rpcBatchRequest(s)).map(f=>{const u=Bt(f,L9);if("error"in u)throw new nn(u.error,"failed to get transactions");return u.result})}async getTransactions(e,n){const{commitment:r,config:i}=Wr(n),s=e.map(f=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([f],r,void 0,i)}));return(await this._rpcBatchRequest(s)).map(f=>{const u=Bt(f,PD);if("error"in u)throw new nn(u.error,"failed to get transactions");const h=u.result;return h&&{...h,transaction:{...h.transaction,message:FD(h.version,h.transaction.message)}}})}async getConfirmedBlock(e,n){const r=this._buildArgsAtLeastConfirmed([e],n),i=await this._rpcRequest("getConfirmedBlock",r),s=Bt(i,g_e);if("error"in s)throw new nn(s.error,"failed to get confirmed block");const a=s.result;if(!a)throw new Error("Confirmed block "+e+" not found");const o={...a,transactions:a.transactions.map(({transaction:f,meta:u})=>{const h=new Nc(f.message);return{meta:u,transaction:{...f,message:h}}})};return{...o,transactions:o.transactions.map(({transaction:f,meta:u})=>({meta:u,transaction:yn.populate(f.message,f.signatures)}))}}async getBlocks(e,n,r){const i=this._buildArgsAtLeastConfirmed(n!==void 0?[e,n]:[e],r),s=await this._rpcRequest("getBlocks",i),a=Bt(s,Wn(Pt(Qe())));if("error"in a)throw new nn(a.error,"failed to get blocks");return a.result}async getBlockSignatures(e,n){const r=this._buildArgsAtLeastConfirmed([e],n,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",r),s=Bt(i,AZ);if("error"in s)throw new nn(s.error,"failed to get block");const a=s.result;if(!a)throw new Error("Block "+e+" not found");return a}async getConfirmedBlockSignatures(e,n){const r=this._buildArgsAtLeastConfirmed([e],n,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getConfirmedBlock",r),s=Bt(i,AZ);if("error"in s)throw new nn(s.error,"failed to get confirmed block");const a=s.result;if(!a)throw new Error("Confirmed block "+e+" not found");return a}async getConfirmedTransaction(e,n){const r=this._buildArgsAtLeastConfirmed([e],n),i=await this._rpcRequest("getConfirmedTransaction",r),s=Bt(i,PD);if("error"in s)throw new nn(s.error,"failed to get transaction");const a=s.result;if(!a)return a;const o=new Nc(a.transaction.message),f=a.transaction.signatures;return{...a,transaction:yn.populate(o,f)}}async getParsedConfirmedTransaction(e,n){const r=this._buildArgsAtLeastConfirmed([e],n,"jsonParsed"),i=await this._rpcRequest("getConfirmedTransaction",r),s=Bt(i,L9);if("error"in s)throw new nn(s.error,"failed to get confirmed transaction");return s.result}async getParsedConfirmedTransactions(e,n){const r=e.map(a=>({methodName:"getConfirmedTransaction",args:this._buildArgsAtLeastConfirmed([a],n,"jsonParsed")}));return(await this._rpcBatchRequest(r)).map(a=>{const o=Bt(a,L9);if("error"in o)throw new nn(o.error,"failed to get confirmed transactions");return o.result})}async getConfirmedSignaturesForAddress(e,n,r){let i={},s=await this.getFirstAvailableBlock();for(;!("until"in i)&&(n--,!(n<=0||n<s));)try{const f=await this.getConfirmedBlockSignatures(n,"finalized");f.signatures.length>0&&(i.until=f.signatures[f.signatures.length-1].toString())}catch(f){if(f instanceof Error&&f.message.includes("skipped"))continue;throw f}let a=await this.getSlot("finalized");for(;!("before"in i)&&(r++,!(r>a));)try{const f=await this.getConfirmedBlockSignatures(r);f.signatures.length>0&&(i.before=f.signatures[f.signatures.length-1].toString())}catch(f){if(f instanceof Error&&f.message.includes("skipped"))continue;throw f}return(await this.getConfirmedSignaturesForAddress2(e,i)).map(f=>f.signature)}async getConfirmedSignaturesForAddress2(e,n,r){const i=this._buildArgsAtLeastConfirmed([e.toBase58()],r,void 0,n),s=await this._rpcRequest("getConfirmedSignaturesForAddress2",i),a=Bt(s,YRe);if("error"in a)throw new nn(a.error,"failed to get confirmed signatures for address");return a.result}async getSignaturesForAddress(e,n,r){const i=this._buildArgsAtLeastConfirmed([e.toBase58()],r,void 0,n),s=await this._rpcRequest("getSignaturesForAddress",i),a=Bt(s,QRe);if("error"in a)throw new nn(a.error,"failed to get signatures for address");return a.result}async getAddressLookupTable(e,n){const{context:r,value:i}=await this.getAccountInfoAndContext(e,n);let s=null;return i!==null&&(s=new vB({key:e,state:vB.deserialize(i.data)})),{context:r,value:s}}async getNonceAndContext(e,n){const{context:r,value:i}=await this.getAccountInfoAndContext(e,n);let s=null;return i!==null&&(s=GE.fromAccountData(i.data)),{context:r,value:s}}async getNonce(e,n){return await this.getNonceAndContext(e,n).then(r=>r.value).catch(r=>{throw new Error("failed to get nonce for account "+e.toBase58()+": "+r)})}async requestAirdrop(e,n){const r=await this._rpcRequest("requestAirdrop",[e.toBase58(),n]),i=Bt(r,S_e);if("error"in i)throw new nn(i.error,`airdrop to ${e.toBase58()} failed`);return i.result}async _blockhashWithExpiryBlockHeight(e){if(!e){for(;this._pollingBlockhash;)await d6(100);const r=Date.now()-this._blockhashInfo.lastFetch>=ufe;if(this._blockhashInfo.latestBlockhash!==null&&!r)return this._blockhashInfo.latestBlockhash}return await this._pollNewBlockhash()}async _pollNewBlockhash(){this._pollingBlockhash=!0;try{const e=Date.now(),n=this._blockhashInfo.latestBlockhash,r=n?n.blockhash:null;for(let i=0;i<50;i++){const s=await this.getLatestBlockhash("finalized");if(r!==s.blockhash)return this._blockhashInfo={latestBlockhash:s,lastFetch:Date.now(),transactionSignatures:[],simulatedSignatures:[]},s;await d6(ife/2)}throw new Error(`Unable to obtain a new blockhash after ${Date.now()-e}ms`)}finally{this._pollingBlockhash=!1}}async getStakeMinimumDelegation(e){const{commitment:n,config:r}=Wr(e),i=this._buildArgs([],n,"base64",r),s=await this._rpcRequest("getStakeMinimumDelegation",i),a=Bt(s,Ti(Qe()));if("error"in a)throw new nn(a.error,"failed to get stake minimum delegation");return a.result}async simulateTransaction(e,n,r){if("message"in e){const E=e.serialize(),I=ve.Buffer.from(E).toString("base64");if(Array.isArray(n)||r!==void 0)throw new Error("Invalid arguments");const T=n||{};T.encoding="base64","commitment"in T||(T.commitment=this.commitment),n&&typeof n=="object"&&"innerInstructions"in n&&(T.innerInstructions=n.innerInstructions);const D=[I,T],k=await this._rpcRequest("simulateTransaction",D),N=Bt(k,wZ);if("error"in N)throw new Error("failed to simulate transaction: "+N.error.message);return N.result}let i;if(e instanceof yn){let w=e;i=new yn,i.feePayer=w.feePayer,i.instructions=e.instructions,i.nonceInfo=w.nonceInfo,i.signatures=w.signatures}else i=yn.populate(e),i._message=i._json=void 0;if(n!==void 0&&!Array.isArray(n))throw new Error("Invalid arguments");const s=n;if(i.nonceInfo&&s)i.sign(...s);else{let w=this._disableBlockhashCaching;for(;;){const E=await this._blockhashWithExpiryBlockHeight(w);if(i.lastValidBlockHeight=E.lastValidBlockHeight,i.recentBlockhash=E.blockhash,!s)break;if(i.sign(...s),!i.signature)throw new Error("!signature");const I=i.signature.toString("base64");if(!this._blockhashInfo.simulatedSignatures.includes(I)&&!this._blockhashInfo.transactionSignatures.includes(I)){this._blockhashInfo.simulatedSignatures.push(I);break}else w=!0}}const a=i._compile(),o=a.serialize(),u=i._serialize(o).toString("base64"),h={encoding:"base64",commitment:this.commitment};if(r){const w=(Array.isArray(r)?r:a.nonProgramIds()).map(E=>E.toBase58());h.accounts={encoding:"base64",addresses:w}}s&&(h.sigVerify=!0),n&&typeof n=="object"&&"innerInstructions"in n&&(h.innerInstructions=n.innerInstructions);const m=[u,h],y=await this._rpcRequest("simulateTransaction",m),x=Bt(y,wZ);if("error"in x){let w;if("data"in x.error&&(w=x.error.data.logs,w&&Array.isArray(w))){const E=`
109
- `,I=E+w.join(E);console.error(x.error.message,I)}throw new Md({action:"simulate",signature:"",transactionMessage:x.error.message,logs:w})}return x.result}async sendTransaction(e,n,r){if("version"in e){if(n&&Array.isArray(n))throw new Error("Invalid arguments");const a=e.serialize();return await this.sendRawTransaction(a,n)}if(n===void 0||!Array.isArray(n))throw new Error("Invalid arguments");const i=n;if(e.nonceInfo)e.sign(...i);else{let a=this._disableBlockhashCaching;for(;;){const o=await this._blockhashWithExpiryBlockHeight(a);if(e.lastValidBlockHeight=o.lastValidBlockHeight,e.recentBlockhash=o.blockhash,e.sign(...i),!e.signature)throw new Error("!signature");const f=e.signature.toString("base64");if(this._blockhashInfo.transactionSignatures.includes(f))a=!0;else{this._blockhashInfo.transactionSignatures.push(f);break}}}const s=e.serialize();return await this.sendRawTransaction(s,r)}async sendRawTransaction(e,n){const r=Hn(e).toString("base64");return await this.sendEncodedTransaction(r,n)}async sendEncodedTransaction(e,n){const r={encoding:"base64"},i=n&&n.skipPreflight,s=i===!0?"processed":n&&n.preflightCommitment||this.commitment;n&&n.maxRetries!=null&&(r.maxRetries=n.maxRetries),n&&n.minContextSlot!=null&&(r.minContextSlot=n.minContextSlot),i&&(r.skipPreflight=i),s&&(r.preflightCommitment=s);const a=[e,r],o=await this._rpcRequest("sendTransaction",a),f=Bt(o,C_e);if("error"in f){let u;throw"data"in f.error&&(u=f.error.data.logs),new Md({action:i?"send":"simulate",signature:"",transactionMessage:f.error.message,logs:u})}return f.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval(()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()},5e3),this._updateSubscriptions()}_wsOnError(e){this._rpcWebSocketConnected=!1,console.error("ws error:",e.message)}_wsOnClose(e){if(this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),e===1e3){this._updateSubscriptions();return}this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach(([n,r])=>{this._setSubscription(n,{...r,state:"pending"})})}_setSubscription(e,n){var i;const r=(i=this._subscriptionsByHash[e])==null?void 0:i.state;if(this._subscriptionsByHash[e]=n,r!==n.state){const s=this._subscriptionStateChangeCallbacksByHash[e];s&&s.forEach(a=>{try{a(n.state)}catch{}})}}_onSubscriptionStateChange(e,n){var s;const r=this._subscriptionHashByClientSubscriptionId[e];if(r==null)return()=>{};const i=(s=this._subscriptionStateChangeCallbacksByHash)[r]||(s[r]=new Set);return i.add(n),()=>{i.delete(n),i.size===0&&delete this._subscriptionStateChangeCallbacksByHash[r]}}async _updateSubscriptions(){if(Object.keys(this._subscriptionsByHash).length===0){this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout(()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(r){r instanceof Error&&console.log(`Error when closing socket connection: ${r.message}`)}},500));return}if(this._rpcWebSocketIdleTimeout!==null&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected){this._rpcWebSocket.connect();return}const e=this._rpcWebSocketGeneration,n=()=>e===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map(async r=>{const i=this._subscriptionsByHash[r];if(i!==void 0)switch(i.state){case"pending":case"unsubscribed":if(i.callbacks.size===0){delete this._subscriptionsByHash[r],i.state==="unsubscribed"&&delete this._subscriptionCallbacksByServerSubscriptionId[i.serverSubscriptionId],await this._updateSubscriptions();return}await(async()=>{const{args:s,method:a}=i;try{this._setSubscription(r,{...i,state:"subscribing"});const o=await this._rpcWebSocket.call(a,s);this._setSubscription(r,{...i,serverSubscriptionId:o,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[o]=i.callbacks,await this._updateSubscriptions()}catch(o){if(o instanceof Error&&console.error(`${a} error for argument`,s,o.message),!n())return;this._setSubscription(r,{...i,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":i.callbacks.size===0&&await(async()=>{const{serverSubscriptionId:s,unsubscribeMethod:a}=i;if(this._subscriptionsAutoDisposedByRpc.has(s))this._subscriptionsAutoDisposedByRpc.delete(s);else{this._setSubscription(r,{...i,state:"unsubscribing"}),this._setSubscription(r,{...i,state:"unsubscribing"});try{await this._rpcWebSocket.call(a,[s])}catch(o){if(o instanceof Error&&console.error(`${a} error:`,o.message),!n())return;this._setSubscription(r,{...i,state:"subscribed"}),await this._updateSubscriptions();return}}this._setSubscription(r,{...i,state:"unsubscribed"}),await this._updateSubscriptions()})();break}}))}_handleServerNotification(e,n){const r=this._subscriptionCallbacksByServerSubscriptionId[e];r!==void 0&&r.forEach(i=>{try{i(...n)}catch(s){console.error(s)}})}_wsOnAccountNotification(e){const{result:n,subscription:r}=Bt(e,ZRe);this._handleServerNotification(r,[n.value,n.context])}_makeSubscription(e,n){const r=this._nextClientSubscriptionId++,i=gZ([e.method,n]),s=this._subscriptionsByHash[i];return s===void 0?this._subscriptionsByHash[i]={...e,args:n,callbacks:new Set([e.callback]),state:"pending"}:s.callbacks.add(e.callback),this._subscriptionHashByClientSubscriptionId[r]=i,this._subscriptionDisposeFunctionsByClientSubscriptionId[r]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[r],delete this._subscriptionHashByClientSubscriptionId[r];const a=this._subscriptionsByHash[i];dr(a!==void 0,`Could not find a \`Subscription\` when tearing down client subscription #${r}`),a.callbacks.delete(e.callback),await this._updateSubscriptions()},this._updateSubscriptions(),r}onAccountChange(e,n,r){const{commitment:i,config:s}=Wr(r),a=this._buildArgs([e.toBase58()],i||this._commitment||"finalized","base64",s);return this._makeSubscription({callback:n,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},a)}async removeAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"account change")}_wsOnProgramAccountNotification(e){const{result:n,subscription:r}=Bt(e,$Re);this._handleServerNotification(r,[{accountId:n.value.pubkey,accountInfo:n.value.account},n.context])}onProgramAccountChange(e,n,r,i){const{commitment:s,config:a}=Wr(r),o=this._buildArgs([e.toBase58()],s||this._commitment||"finalized","base64",a||(i?{filters:vZ(i)}:void 0));return this._makeSubscription({callback:n,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},o)}async removeProgramAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"program account change")}onLogs(e,n,r){const i=this._buildArgs([typeof e=="object"?{mentions:[e.toString()]}:e],r||this._commitment||"finalized");return this._makeSubscription({callback:n,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},i)}async removeOnLogsListener(e){await this._unsubscribeClientSubscription(e,"logs")}_wsOnLogsNotification(e){const{result:n,subscription:r}=Bt(e,I_e);this._handleServerNotification(r,[n.value,n.context])}_wsOnSlotNotification(e){const{result:n,subscription:r}=Bt(e,JRe);this._handleServerNotification(r,[n])}onSlotChange(e){return this._makeSubscription({callback:e,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(e){await this._unsubscribeClientSubscription(e,"slot change")}_wsOnSlotUpdatesNotification(e){const{result:n,subscription:r}=Bt(e,t_e);this._handleServerNotification(r,[n])}onSlotUpdate(e){return this._makeSubscription({callback:e,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(e){await this._unsubscribeClientSubscription(e,"slot update")}async _unsubscribeClientSubscription(e,n){const r=this._subscriptionDisposeFunctionsByClientSubscriptionId[e];r?await r():console.warn(`Ignored unsubscribe request because an active subscription with id \`${e}\` for '${n}' events could not be found.`)}_buildArgs(e,n,r,i){const s=n||this._commitment;if(s||r||i){let a={};r&&(a.encoding=r),s&&(a.commitment=s),i&&(a=Object.assign(a,i)),e.push(a)}return e}_buildArgsAtLeastConfirmed(e,n,r,i){const s=n||this._commitment;if(s&&!["confirmed","finalized"].includes(s))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(e,n,r,i)}_wsOnSignatureNotification(e){const{result:n,subscription:r}=Bt(e,n_e);n.value!=="receivedSignature"&&this._subscriptionsAutoDisposedByRpc.add(r),this._handleServerNotification(r,n.value==="receivedSignature"?[{type:"received"},n.context]:[{type:"status",result:n.value},n.context])}onSignature(e,n,r){const i=this._buildArgs([e],r||this._commitment||"finalized"),s=this._makeSubscription({callback:(a,o)=>{if(a.type==="status"){n(a.result,o);try{this.removeSignatureListener(s)}catch{}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},i);return s}onSignatureWithOptions(e,n,r){const{commitment:i,...s}={...r,commitment:r&&r.commitment||this._commitment||"finalized"},a=this._buildArgs([e],i,void 0,s),o=this._makeSubscription({callback:(f,u)=>{n(f,u);try{this.removeSignatureListener(o)}catch{}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},a);return o}async removeSignatureListener(e){await this._unsubscribeClientSubscription(e,"signature result")}_wsOnRootNotification(e){const{result:n,subscription:r}=Bt(e,r_e);this._handleServerNotification(r,[n])}onRootChange(e){return this._makeSubscription({callback:e,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(e){await this._unsubscribeClientSubscription(e,"root change")}};class jo{constructor(e){this._keypair=void 0,this._keypair=e??bZ()}static generate(){return new jo(bZ())}static fromSecretKey(e,n){if(e.byteLength!==64)throw new Error("bad secret key size");const r=e.slice(32,64);if(!n||!n.skipValidation){const i=e.slice(0,32),s=ew(i);for(let a=0;a<32;a++)if(r[a]!==s[a])throw new Error("provided secretKey is invalid")}return new jo({publicKey:r,secretKey:e})}static fromSeed(e){const n=ew(e),r=new Uint8Array(64);return r.set(e),r.set(n,32),new jo({publicKey:n,secretKey:r})}get publicKey(){return new Fe(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}}const zf=Object.freeze({CreateLookupTable:{index:0,layout:_t([Ft("instruction"),M8("recentSlot"),Mn("bumpSeed")])},FreezeLookupTable:{index:1,layout:_t([Ft("instruction")])},ExtendLookupTable:{index:2,layout:_t([Ft("instruction"),M8(),d0($n(),rd(Ft(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:_t([Ft("instruction")])},CloseLookupTable:{index:4,layout:_t([Ft("instruction")])}});class k_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(zf))if(a.index==r){i=s;break}if(!i)throw new Error("Invalid Instruction. Should be a LookupTable Instruction");return i}static decodeCreateLookupTable(e){this.checkProgramId(e.programId),this.checkKeysLength(e.keys,4);const{recentSlot:n}=Mr(zf.CreateLookupTable,e.data);return{authority:e.keys[1].pubkey,payer:e.keys[2].pubkey,recentSlot:Number(n)}}static decodeExtendLookupTable(e){if(this.checkProgramId(e.programId),e.keys.length<2)throw new Error(`invalid instruction; found ${e.keys.length} keys, expected at least 2`);const{addresses:n}=Mr(zf.ExtendLookupTable,e.data);return{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,payer:e.keys.length>2?e.keys[2].pubkey:void 0,addresses:n.map(r=>new Fe(r))}}static decodeCloseLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,3),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,recipient:e.keys[2].pubkey}}static decodeFreezeLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static decodeDeactivateLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(xm.programId))throw new Error("invalid instruction; programId is not AddressLookupTable Program")}static checkKeysLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}class xm{constructor(){}static createLookupTable(e){const[n,r]=Fe.findProgramAddressSync([e.authority.toBuffer(),OF(BigInt(e.recentSlot),8)],this.programId),i=zf.CreateLookupTable,s=sr(i,{recentSlot:BigInt(e.recentSlot),bumpSeed:r}),a=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:kn.programId,isSigner:!1,isWritable:!1}];return[new cr({programId:this.programId,keys:a,data:s}),n]}static freezeLookupTable(e){const n=zf.FreezeLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new cr({programId:this.programId,keys:i,data:r})}static extendLookupTable(e){const n=zf.ExtendLookupTable,r=sr(n,{addresses:e.addresses.map(s=>s.toBytes())}),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&i.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:kn.programId,isSigner:!1,isWritable:!1}),new cr({programId:this.programId,keys:i,data:r})}static deactivateLookupTable(e){const n=zf.DeactivateLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new cr({programId:this.programId,keys:i,data:r})}static closeLookupTable(e){const n=zf.CloseLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new cr({programId:this.programId,keys:i,data:r})}}xm.programId=new Fe("AddressLookupTab1e1111111111111111111111111");class N_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Mn("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(g1))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction");return i}static decodeRequestUnits(e){this.checkProgramId(e.programId);const{units:n,additionalFee:r}=Mr(g1.RequestUnits,e.data);return{units:n,additionalFee:r}}static decodeRequestHeapFrame(e){this.checkProgramId(e.programId);const{bytes:n}=Mr(g1.RequestHeapFrame,e.data);return{bytes:n}}static decodeSetComputeUnitLimit(e){this.checkProgramId(e.programId);const{units:n}=Mr(g1.SetComputeUnitLimit,e.data);return{units:n}}static decodeSetComputeUnitPrice(e){this.checkProgramId(e.programId);const{microLamports:n}=Mr(g1.SetComputeUnitPrice,e.data);return{microLamports:n}}static checkProgramId(e){if(!e.equals(ZF.programId))throw new Error("invalid instruction; programId is not ComputeBudgetProgram")}}const g1=Object.freeze({RequestUnits:{index:0,layout:_t([Mn("instruction"),Ft("units"),Ft("additionalFee")])},RequestHeapFrame:{index:1,layout:_t([Mn("instruction"),Ft("bytes")])},SetComputeUnitLimit:{index:2,layout:_t([Mn("instruction"),Ft("units")])},SetComputeUnitPrice:{index:3,layout:_t([Mn("instruction"),M8("microLamports")])}});class ZF{constructor(){}static requestUnits(e){const n=g1.RequestUnits,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static requestHeapFrame(e){const n=g1.RequestHeapFrame,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static setComputeUnitLimit(e){const n=g1.SetComputeUnitLimit,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static setComputeUnitPrice(e){const n=g1.SetComputeUnitPrice,r=sr(n,{microLamports:BigInt(e.microLamports)});return new cr({keys:[],programId:this.programId,data:r})}}ZF.programId=new Fe("ComputeBudget111111111111111111111111111111");const EZ=64,SZ=32,CZ=64,TZ=_t([Mn("numSignatures"),Mn("padding"),vo("signatureOffset"),vo("signatureInstructionIndex"),vo("publicKeyOffset"),vo("publicKeyInstructionIndex"),vo("messageDataOffset"),vo("messageDataSize"),vo("messageInstructionIndex")]);class ZE{constructor(){}static createInstructionWithPublicKey(e){const{publicKey:n,message:r,signature:i,instructionIndex:s}=e;dr(n.length===SZ,`Public Key must be ${SZ} bytes but received ${n.length} bytes`),dr(i.length===CZ,`Signature must be ${CZ} bytes but received ${i.length} bytes`);const a=TZ.span,o=a+n.length,f=o+i.length,u=1,h=ve.Buffer.alloc(f+r.length),m=s??65535;return TZ.encode({numSignatures:u,padding:0,signatureOffset:o,signatureInstructionIndex:m,publicKeyOffset:a,publicKeyInstructionIndex:m,messageDataOffset:f,messageDataSize:r.length,messageInstructionIndex:m},h),h.fill(n,a),h.fill(i,o),h.fill(r,f),new cr({keys:[],programId:ZE.programId,data:h})}static createInstructionWithPrivateKey(e){const{privateKey:n,message:r,instructionIndex:i}=e;dr(n.length===EZ,`Private key must be ${EZ} bytes but received ${n.length} bytes`);try{const s=jo.fromSecretKey(n),a=s.publicKey.toBytes(),o=UF(r,s.secretKey);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:o,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}ZE.programId=new Fe("Ed25519SigVerify111111111111111111111111111");const L_e=(t,e)=>{const n=Ll.sign(t,e);return[n.toCompactRawBytes(),n.recovery]};Ll.utils.isValidPrivateKey;const B_e=Ll.getPublicKey,IZ=32,zD=20,DZ=64,j_e=11,UD=_t([Mn("numSignatures"),vo("signatureOffset"),Mn("signatureInstructionIndex"),vo("ethAddressOffset"),Mn("ethAddressInstructionIndex"),vo("messageDataOffset"),vo("messageDataSize"),Mn("messageInstructionIndex"),_r(20,"ethAddress"),_r(64,"signature"),Mn("recoveryId")]);class Mh{constructor(){}static publicKeyToEthAddress(e){dr(e.length===DZ,`Public key must be ${DZ} bytes but received ${e.length} bytes`);try{return ve.Buffer.from(gd(Hn(e))).slice(-zD)}catch(n){throw new Error(`Error constructing Ethereum address: ${n}`)}}static createInstructionWithPublicKey(e){const{publicKey:n,message:r,signature:i,recoveryId:s,instructionIndex:a}=e;return Mh.createInstructionWithEthAddress({ethAddress:Mh.publicKeyToEthAddress(n),message:r,signature:i,recoveryId:s,instructionIndex:a})}static createInstructionWithEthAddress(e){const{ethAddress:n,message:r,signature:i,recoveryId:s,instructionIndex:a=0}=e;let o;typeof n=="string"?n.startsWith("0x")?o=ve.Buffer.from(n.substr(2),"hex"):o=ve.Buffer.from(n,"hex"):o=n,dr(o.length===zD,`Address must be ${zD} bytes but received ${o.length} bytes`);const f=1+j_e,u=f,h=f+o.length,m=h+i.length+1,y=1,x=ve.Buffer.alloc(UD.span+r.length);return UD.encode({numSignatures:y,signatureOffset:h,signatureInstructionIndex:a,ethAddressOffset:u,ethAddressInstructionIndex:a,messageDataOffset:m,messageDataSize:r.length,messageInstructionIndex:a,signature:Hn(i),ethAddress:Hn(o),recoveryId:s},x),x.fill(Hn(r),UD.span),new cr({keys:[],programId:Mh.programId,data:x})}static createInstructionWithPrivateKey(e){const{privateKey:n,message:r,instructionIndex:i}=e;dr(n.length===IZ,`Private key must be ${IZ} bytes but received ${n.length} bytes`);try{const s=Hn(n),a=B_e(s,!1).slice(1),o=ve.Buffer.from(gd(Hn(r))),[f,u]=L_e(o,s);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:f,recoveryId:u,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}Mh.programId=new Fe("KeccakSecp256k11111111111111111111111111111");var vfe;const wfe=new Fe("StakeConfig11111111111111111111111111111111");class Mfe{constructor(e,n){this.staker=void 0,this.withdrawer=void 0,this.staker=e,this.withdrawer=n}}class tg{constructor(e,n,r){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=n,this.custodian=r}}vfe=tg;tg.default=new vfe(0,0,Fe.default);class R_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(a0))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a StakeInstruction");return i}static decodeInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:n,lockup:r}=Mr(a0.Initialize,e.data);return{stakePubkey:e.keys[0].pubkey,authorized:new Mfe(new Fe(n.staker),new Fe(n.withdrawer)),lockup:new tg(r.unixTimestamp,r.epoch,new Fe(r.custodian))}}static decodeDelegate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,6),Mr(a0.Delegate,e.data),{stakePubkey:e.keys[0].pubkey,votePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[5].pubkey}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:n,stakeAuthorizationType:r}=Mr(a0.Authorize,e.data),i={stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new Fe(n),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(i.custodianPubkey=e.keys[3].pubkey),i}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{newAuthorized:n,stakeAuthorizationType:r,authoritySeed:i,authorityOwner:s}=Mr(a0.AuthorizeWithSeed,e.data),a={stakePubkey:e.keys[0].pubkey,authorityBase:e.keys[1].pubkey,authoritySeed:i,authorityOwner:new Fe(s),newAuthorizedPubkey:new Fe(n),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(a.custodianPubkey=e.keys[3].pubkey),a}static decodeSplit(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:n}=Mr(a0.Split,e.data);return{stakePubkey:e.keys[0].pubkey,splitStakePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[2].pubkey,lamports:n}}static decodeMerge(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),Mr(a0.Merge,e.data),{stakePubkey:e.keys[0].pubkey,sourceStakePubKey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:n}=Mr(a0.Withdraw,e.data),r={stakePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:n};return e.keys.length>5&&(r.custodianPubkey=e.keys[5].pubkey),r}static decodeDeactivate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),Mr(a0.Deactivate,e.data),{stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static checkProgramId(e){if(!e.equals(KE.programId))throw new Error("invalid instruction; programId is not StakeProgram")}static checkKeyLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}const a0=Object.freeze({Initialize:{index:0,layout:_t([Ft("instruction"),Oje(),Fje()])},Authorize:{index:1,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("stakeAuthorizationType")])},Delegate:{index:2,layout:_t([Ft("instruction")])},Split:{index:3,layout:_t([Ft("instruction"),Ta("lamports")])},Withdraw:{index:4,layout:_t([Ft("instruction"),Ta("lamports")])},Deactivate:{index:5,layout:_t([Ft("instruction")])},Merge:{index:7,layout:_t([Ft("instruction")])},AuthorizeWithSeed:{index:8,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("stakeAuthorizationType"),k6("authoritySeed"),$n("authorityOwner")])}}),__e=Object.freeze({Staker:{index:0},Withdrawer:{index:1}});class KE{constructor(){}static initialize(e){const{stakePubkey:n,authorized:r,lockup:i}=e,s=i||tg.default,a=a0.Initialize,o=sr(a,{authorized:{staker:Hn(r.staker.toBuffer()),withdrawer:Hn(r.withdrawer.toBuffer())},lockup:{unixTimestamp:s.unixTimestamp,epoch:s.epoch,custodian:Hn(s.custodian.toBuffer())}}),f={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:ds,isSigner:!1,isWritable:!1}],programId:this.programId,data:o};return new cr(f)}static createAccountWithSeed(e){const n=new yn;n.add(kn.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=e;return n.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static createAccount(e){const n=new yn;n.add(kn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=e;return n.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static delegate(e){const{stakePubkey:n,authorizedPubkey:r,votePubkey:i}=e,s=a0.Delegate,a=sr(s);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:wfe,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static authorize(e){const{stakePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:i,stakeAuthorizationType:s,custodianPubkey:a}=e,o=a0.Authorize,f=sr(o,{newAuthorized:Hn(i.toBuffer()),stakeAuthorizationType:s.index}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&u.push({pubkey:a,isSigner:!0,isWritable:!1}),new yn().add({keys:u,programId:this.programId,data:f})}static authorizeWithSeed(e){const{stakePubkey:n,authorityBase:r,authoritySeed:i,authorityOwner:s,newAuthorizedPubkey:a,stakeAuthorizationType:o,custodianPubkey:f}=e,u=a0.AuthorizeWithSeed,h=sr(u,{newAuthorized:Hn(a.toBuffer()),stakeAuthorizationType:o.index,authoritySeed:i,authorityOwner:Hn(s.toBuffer())}),m=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1}];return f&&m.push({pubkey:f,isSigner:!0,isWritable:!1}),new yn().add({keys:m,programId:this.programId,data:h})}static splitInstruction(e){const{stakePubkey:n,authorizedPubkey:r,splitStakePubkey:i,lamports:s}=e,a=a0.Split,o=sr(a,{lamports:s});return new cr({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static split(e,n){const r=new yn;return r.add(kn.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:n,space:this.space,programId:this.programId})),r.add(this.splitInstruction(e))}static splitWithSeed(e,n){const{stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,basePubkey:a,seed:o,lamports:f}=e,u=new yn;return u.add(kn.allocate({accountPubkey:s,basePubkey:a,seed:o,space:this.space,programId:this.programId})),n&&n>0&&u.add(kn.transfer({fromPubkey:e.authorizedPubkey,toPubkey:s,lamports:n})),u.add(this.splitInstruction({stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,lamports:f}))}static merge(e){const{stakePubkey:n,sourceStakePubKey:r,authorizedPubkey:i}=e,s=a0.Merge,a=sr(s);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static withdraw(e){const{stakePubkey:n,authorizedPubkey:r,toPubkey:i,lamports:s,custodianPubkey:a}=e,o=a0.Withdraw,f=sr(o,{lamports:s}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&u.push({pubkey:a,isSigner:!0,isWritable:!1}),new yn().add({keys:u,programId:this.programId,data:f})}static deactivate(e){const{stakePubkey:n,authorizedPubkey:r}=e,i=a0.Deactivate,s=sr(i);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:s})}}KE.programId=new Fe("Stake11111111111111111111111111111111111111");KE.space=200;class Afe{constructor(e,n,r,i){this.nodePubkey=void 0,this.authorizedVoter=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.nodePubkey=e,this.authorizedVoter=n,this.authorizedWithdrawer=r,this.commission=i}}class O_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(x1))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a VoteInstruction");return i}static decodeInitializeAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,4);const{voteInit:n}=Mr(x1.InitializeAccount,e.data);return{votePubkey:e.keys[0].pubkey,nodePubkey:e.keys[3].pubkey,voteInit:new Afe(new Fe(n.nodePubkey),new Fe(n.authorizedVoter),new Fe(n.authorizedWithdrawer),n.commission)}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:n,voteAuthorizationType:r}=Mr(x1.Authorize,e.data);return{votePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new Fe(n),voteAuthorizationType:{index:r}}}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:n,currentAuthorityDerivedKeySeed:r,newAuthorized:i,voteAuthorizationType:s}}=Mr(x1.AuthorizeWithSeed,e.data);return{currentAuthorityDerivedKeyBasePubkey:e.keys[2].pubkey,currentAuthorityDerivedKeyOwnerPubkey:new Fe(n),currentAuthorityDerivedKeySeed:r,newAuthorizedPubkey:new Fe(i),voteAuthorizationType:{index:s},votePubkey:e.keys[0].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:n}=Mr(x1.Withdraw,e.data);return{votePubkey:e.keys[0].pubkey,authorizedWithdrawerPubkey:e.keys[2].pubkey,lamports:n,toPubkey:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(m3.programId))throw new Error("invalid instruction; programId is not VoteProgram")}static checkKeyLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}const x1=Object.freeze({InitializeAccount:{index:0,layout:_t([Ft("instruction"),Pje()])},Authorize:{index:1,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("voteAuthorizationType")])},Withdraw:{index:3,layout:_t([Ft("instruction"),Ta("lamports")])},UpdateValidatorIdentity:{index:4,layout:_t([Ft("instruction")])},AuthorizeWithSeed:{index:10,layout:_t([Ft("instruction"),zje()])}}),F_e=Object.freeze({Voter:{index:0},Withdrawer:{index:1}});class m3{constructor(){}static initializeAccount(e){const{votePubkey:n,nodePubkey:r,voteInit:i}=e,s=x1.InitializeAccount,a=sr(s,{voteInit:{nodePubkey:Hn(i.nodePubkey.toBuffer()),authorizedVoter:Hn(i.authorizedVoter.toBuffer()),authorizedWithdrawer:Hn(i.authorizedWithdrawer.toBuffer()),commission:i.commission}}),o={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:ds,isSigner:!1,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a};return new cr(o)}static createAccount(e){const n=new yn;return n.add(kn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),n.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){const{votePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:i,voteAuthorizationType:s}=e,a=x1.Authorize,o=sr(a,{newAuthorized:Hn(i.toBuffer()),voteAuthorizationType:s.index}),f=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:f,programId:this.programId,data:o})}static authorizeWithSeed(e){const{currentAuthorityDerivedKeyBasePubkey:n,currentAuthorityDerivedKeyOwnerPubkey:r,currentAuthorityDerivedKeySeed:i,newAuthorizedPubkey:s,voteAuthorizationType:a,votePubkey:o}=e,f=x1.AuthorizeWithSeed,u=sr(f,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:Hn(r.toBuffer()),currentAuthorityDerivedKeySeed:i,newAuthorized:Hn(s.toBuffer()),voteAuthorizationType:a.index}}),h=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new yn().add({keys:h,programId:this.programId,data:u})}static withdraw(e){const{votePubkey:n,authorizedWithdrawerPubkey:r,lamports:i,toPubkey:s}=e,a=x1.Withdraw,o=sr(a,{lamports:i}),f=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:f,programId:this.programId,data:o})}static safeWithdraw(e,n,r){if(e.lamports>n-r)throw new Error("Withdraw will leave vote account with insufficient funds.");return m3.withdraw(e)}static updateValidatorIdentity(e){const{votePubkey:n,authorizedWithdrawerPubkey:r,nodePubkey:i}=e,s=x1.UpdateValidatorIdentity,a=sr(s),o=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:o,programId:this.programId,data:a})}}m3.programId=new Fe("Vote111111111111111111111111111111111111111");m3.space=3762;const Efe=new Fe("Va1idator1nfo111111111111111111111111111111"),P_e=mt({name:Lt(),website:gn(Lt()),details:gn(Lt()),iconUrl:gn(Lt()),keybaseUsername:gn(Lt())});class KF{constructor(e,n){this.key=void 0,this.info=void 0,this.key=e,this.info=n}static fromConfigData(e){let n=[...e];if(Ws(n)!==2)return null;const i=[];for(let s=0;s<2;s++){const a=new Fe(Hs(n,0,L1)),o=y1(n)===1;i.push({publicKey:a,isSigner:o})}if(i[0].publicKey.equals(Efe)&&i[1].isSigner){const s=k6().decode(ve.Buffer.from(n)),a=JSON.parse(s);return H1e(a,P_e),new KF(i[1].publicKey,a)}return null}}const z_e=new Fe("Vote111111111111111111111111111111111111111"),U_e=_t([$n("nodePubkey"),$n("authorizedWithdrawer"),Mn("commission"),E0(),d0(_t([E0("slot"),Ft("confirmationCount")]),rd(Ft(),-8),"votes"),Mn("rootSlotValid"),E0("rootSlot"),E0(),d0(_t([E0("epoch"),$n("authorizedVoter")]),rd(Ft(),-8),"authorizedVoters"),_t([d0(_t([$n("authorizedPubkey"),E0("epochOfLastAuthorizedSwitch"),E0("targetEpoch")]),32,"buf"),E0("idx"),Mn("isEmpty")],"priorVoters"),E0(),d0(_t([E0("epoch"),E0("credits"),E0("prevCredits")]),rd(Ft(),-8),"epochCredits"),_t([E0("slot"),E0("timestamp")],"lastTimestamp")]);class $F{constructor(e){this.nodePubkey=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.rootSlot=void 0,this.votes=void 0,this.authorizedVoters=void 0,this.priorVoters=void 0,this.epochCredits=void 0,this.lastTimestamp=void 0,this.nodePubkey=e.nodePubkey,this.authorizedWithdrawer=e.authorizedWithdrawer,this.commission=e.commission,this.rootSlot=e.rootSlot,this.votes=e.votes,this.authorizedVoters=e.authorizedVoters,this.priorVoters=e.priorVoters,this.epochCredits=e.epochCredits,this.lastTimestamp=e.lastTimestamp}static fromAccountData(e){const r=U_e.decode(Hn(e),4);let i=r.rootSlot;return r.rootSlotValid||(i=null),new $F({nodePubkey:new Fe(r.nodePubkey),authorizedWithdrawer:new Fe(r.authorizedWithdrawer),commission:r.commission,votes:r.votes,rootSlot:i,authorizedVoters:r.authorizedVoters.map(W_e),priorVoters:H_e(r.priorVoters),epochCredits:r.epochCredits,lastTimestamp:r.lastTimestamp})}}function W_e({authorizedVoter:t,epoch:e}){return{epoch:e,authorizedVoter:new Fe(t)}}function kZ({authorizedPubkey:t,epochOfLastAuthorizedSwitch:e,targetEpoch:n}){return{authorizedPubkey:new Fe(t),epochOfLastAuthorizedSwitch:e,targetEpoch:n}}function H_e({buf:t,idx:e,isEmpty:n}){return n?[]:[...t.slice(e+1).map(kZ),...t.slice(0,e).map(kZ)]}const NZ={http:{devnet:"http://api.devnet.solana.com",testnet:"http://api.testnet.solana.com","mainnet-beta":"http://api.mainnet-beta.solana.com/"},https:{devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com","mainnet-beta":"https://api.mainnet-beta.solana.com/"}};function q_e(t,e){const n=e===!1?"http":"https";if(!t)return NZ[n].devnet;const r=NZ[n][t];if(!r)throw new Error(`Unknown ${n} cluster: ${t}`);return r}async function G_e(t,e,n,r){let i,s;n&&Object.prototype.hasOwnProperty.call(n,"lastValidBlockHeight")||n&&Object.prototype.hasOwnProperty.call(n,"nonceValue")?(i=n,s=r):s=n;const a=s&&{skipPreflight:s.skipPreflight,preflightCommitment:s.preflightCommitment||s.commitment,minContextSlot:s.minContextSlot},o=await t.sendRawTransaction(e,a),f=s&&s.commitment,h=(await(i?t.confirmTransaction(i,f):t.confirmTransaction(o,f))).value;if(h.err)throw o!=null?new Md({action:a!=null&&a.skipPreflight?"send":"simulate",signature:o,transactionMessage:`Status: (${JSON.stringify(h)})`}):new Error(`Raw transaction ${o} failed (${JSON.stringify(h)})`);return o}const p2=1e9,V_e=Object.freeze(Object.defineProperty({__proto__:null,Account:jje,AddressLookupTableAccount:vB,AddressLookupTableInstruction:k_e,AddressLookupTableProgram:xm,Authorized:Mfe,BLOCKHASH_CACHE_TIMEOUT_MS:ufe,BPF_LOADER_DEPRECATED_PROGRAM_ID:Rje,BPF_LOADER_PROGRAM_ID:eRe,BpfLoader:tRe,COMPUTE_BUDGET_INSTRUCTION_LAYOUTS:g1,ComputeBudgetInstruction:N_e,ComputeBudgetProgram:ZF,Connection:QE,Ed25519Program:ZE,Enum:Lje,EpochSchedule:cfe,FeeCalculatorLayout:afe,Keypair:jo,LAMPORTS_PER_SOL:p2,LOOKUP_TABLE_INSTRUCTION_LAYOUTS:zf,Loader:Qh,Lockup:tg,MAX_SEED_LENGTH:tfe,Message:Nc,MessageAccountKeys:ym,MessageV0:Yh,NONCE_ACCOUNT_LENGTH:xB,NonceAccount:GE,PACKET_DATA_SIZE:id,PUBLIC_KEY_LENGTH:L1,PublicKey:Fe,SIGNATURE_LENGTH_IN_BYTES:mm,SOLANA_SCHEMA:Xb,STAKE_CONFIG_ID:wfe,STAKE_INSTRUCTION_LAYOUTS:a0,SYSTEM_INSTRUCTION_LAYOUTS:Hr,SYSVAR_CLOCK_PUBKEY:f0,SYSVAR_EPOCH_SCHEDULE_PUBKEY:Gje,SYSVAR_INSTRUCTIONS_PUBKEY:sfe,SYSVAR_RECENT_BLOCKHASHES_PUBKEY:gx,SYSVAR_RENT_PUBKEY:ds,SYSVAR_REWARDS_PUBKEY:Vje,SYSVAR_SLOT_HASHES_PUBKEY:Yje,SYSVAR_SLOT_HISTORY_PUBKEY:Qje,SYSVAR_STAKE_HISTORY_PUBKEY:xx,Secp256k1Program:Mh,SendTransactionError:Md,SolanaJSONRPCError:nn,SolanaJSONRPCErrorCode:Zje,StakeAuthorizationLayout:__e,StakeInstruction:R_e,StakeProgram:KE,Struct:WF,SystemInstruction:Xje,SystemProgram:kn,Transaction:yn,TransactionExpiredBlockheightExceededError:HF,TransactionExpiredNonceInvalidError:h2,TransactionExpiredTimeoutError:qF,TransactionInstruction:cr,TransactionMessage:v8,TransactionStatus:lf,VALIDATOR_INFO_KEY:Efe,VERSION_PREFIX_MASK:HE,VOTE_PROGRAM_ID:z_e,ValidatorInfo:KF,VersionedMessage:GF,VersionedTransaction:w8,VoteAccount:$F,VoteAuthorizationLayout:F_e,VoteInit:Afe,VoteInstruction:O_e,VoteProgram:m3,clusterApiUrl:q_e,sendAndConfirmRawTransaction:G_e,sendAndConfirmTransaction:gB},Symbol.toStringTag,{value:"Module"})),ng="Solana",Y_e="11111111111111111111111111111111",g6=class g6{constructor(e){ce(this,"type","Native");ce(this,"address");g6.instanceof(e)?this.address=e.address:Xr.instanceof(e)?this.address=new Fe(e.toUint8Array()):typeof e=="string"&&Ji.valid(e)?this.address=new Fe(Ji.decode(e)):this.address=new Fe(e)}unwrap(){return this.address}toString(){return this.address.toBase58()}toUint8Array(){return new Uint8Array(this.address.toBytes())}toNative(){return this}toUniversalAddress(){return new Xr(this.toUint8Array())}static instanceof(e){return e.constructor.platform===g6.platform}equals(e){return g6.instanceof(e)?e.unwrap().equals(this.unwrap()):this.toUniversalAddress().equals(e)}};ce(g6,"byteSize",32),ce(g6,"platform",ng);let xr=g6;e3(ng,xr);function Q_e(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=r}var a=t.length,o=t.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var w=0,E=0,I=0,T=x.length;I!==T&&x[I]===0;)I++,w++;for(var D=(T-I)*u+1>>>0,k=new Uint8Array(D);I!==T;){for(var N=x[I],R=0,_=D-1;(N!==0||R<E)&&_!==-1;_--,R++)N+=256*k[_]>>>0,k[_]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error("Non-zero carry");E=R,I++}for(var F=D-E;F!==D&&k[F]===0;)F++;for(var L=o.repeat(w);F<D;++F)L+=t.charAt(k[F]);return L}function m(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;for(var w=0,E=0,I=0;x[w]===o;)E++,w++;for(var T=(x.length-w)*f+1>>>0,D=new Uint8Array(T);x[w];){var k=e[x.charCodeAt(w)];if(k===255)return;for(var N=0,R=T-1;(k!==0||N<I)&&R!==-1;R--,N++)k+=a*D[R]>>>0,D[R]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");I=N,w++}for(var _=T-I;_!==T&&D[_]===0;)_++;for(var F=new Uint8Array(E+(T-_)),L=E;_!==T;)F[L++]=D[_++];return F}function y(x){var w=m(x);if(w)return w;throw new Error("Non-base"+a+" character")}return{encode:h,decodeUnsafe:m,decode:y}}var Z_e=Q_e;const K_e=Z_e,$_e="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var X_e=K_e($_e);const Sfe=hs(X_e),aft=t=>Sfe.encode(t),J_e=t=>Sfe.decode(t),eOe=32;function oft(t){try{return J_e(t).length===eOe}catch{return!1}}const Cfe=32;function tOe(t){return nOe(t)&&rOe(t)===Cfe}function cft(t){return tOe(t)}function Tfe(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(Cfe*2,"0")}`}function Ife(t,e=!1){return Tfe(t,e)}function nOe(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function rOe(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}BigInt(1e9);const fft="0x1",iOe="0x2";Ife("0x6");const uft=`${iOe}::sui::SUI`;Ife("0x5");const Jb="::",sOe="0x2::sui::SUI",Dfe=t=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(t),aOe=t=>t.replace(/(0x)(0*)/g,"0x");function LZ(t){return t=t.startsWith("0x")?t.slice(2):t,t=t.length%2===0?t:"0"+t,`0x${t.length===64?t:Ji.encode(Mc.zpad(Ji.decode(t),32))}`}const lft=t=>{const e=t.split(Jb);if(e.length!==3)throw new Error(`Invalid Sui type: ${t}`);return[Tfe(e[0]),e[1],e[2]].join(Jb)},dft=t=>new XF(t).getCoinType(),hft=t=>new XF(t).getPackageId(),pft=t=>{const e=aOe(t).match(/0x2::table::Table<(.*)>/);if(!e)throw new Error(`Invalid table type: ${t}`);if(e.length<2)throw new Error(`Invalid table type: ${t}`);const[n]=e[1].split(",");if(!n||!Dfe(n))throw new Error(`Invalid key type: ${n}`);return n};var w1;let XF=(w1=class{constructor(e){ce(this,"address");ce(this,"module");if(w1.instanceof(e))this.address=e.address,this.module=e.module;else if(Xr.instanceof(e))this.address=e.toUint8Array();else if(typeof e=="string"){if(Dfe(e)){const n=e.split(Jb);this.module=n.slice(1).join(Jb),e=n[0]}if(e=LZ(e),!Ji.valid(e))throw new Error("Invalid Sui address: "+e);this.address=Ji.decode(e)}else this.address=e}unwrap(){const e=this.getPackageId(),n=this.module?Jb+this.module:"";return`${e}${n}`}toString(){return this.unwrap()}toNative(){return this}toUint8Array(){return this.address}toUniversalAddress(){return new Xr(this.toUint8Array())}getPackageId(){return LZ(Ji.encode(this.address))}getCoinType(){if(this.module==="sui::SUI")return sOe;if(!this.module)throw new Error("No module present in Sui token address");return this.unwrap()}static instanceof(e){return e.constructor.platform===w1.platform}equals(e){return w1.instanceof(e)?e.unwrap()===this.unwrap():this.toUniversalAddress().equals(e)}},ce(w1,"byteSize",32),ce(w1,"platform","Sui"),w1);e3("Sui",XF);async function oOe(t){try{const e=await Promise.all(t.map(async n=>n()));return await Promise.all(e.map(async n=>await cOe(n))),e}catch(e){throw console.error("Failed to load required packages",e),e}}async function cOe(t,e){try{let n=Object.entries(t.protocols);await Promise.all(n.map(([,r])=>r()))}catch(n){throw console.error("Failed to load required packages",n),n}}async function fOe(t,e,n){const r=(await oOe(e)).map(i=>i.Platform);return new Nn(t,r,n)}class $E extends rwe{constructor(n,r){super();ce(this,"conf");r?this.conf=r:this.conf=$E.getConfig(n),this.registerProviders()}get environment(){return this.conf.env}registerProviders(){var n;for(const r of Object.keys(this.conf.rpcs)){const i=Y1(r);if(!i)throw new Error(`Unknown chain ${r}`);this.registerDomain({domain:i,name:r}),((n=this.conf.chains[r])==null?void 0:n.context)===un.ETH&&this.registerRpcProvider(r,this.conf.rpcs[r])}}getContext(n){return this}static getConfig(n){return n==="Mainnet"?Vne:n==="Devnet"?Yne:Gne}}const p4=class p4 extends Error{constructor(){super(p4.MESSAGE)}};ce(p4,"MESSAGE","Insufficient funds for gas"),ce(p4,"MESSAGE_REGEX",/insufficient funds|Insufficient funds for gas/gm);let EB=p4;const JF={MAINNET:Vne,TESTNET:Gne,DEVNET:Yne};var Pe=(t=>(t[t.AVAX=1]="AVAX",t[t.BNB=2]="BNB",t[t.BSC=3]="BSC",t[t.CELO=4]="CELO",t[t.ETH=5]="ETH",t[t.FANTOM=6]="FANTOM",t[t.POLYGON=7]="POLYGON",t[t.SOLANA=8]="SOLANA",t[t.USDC=9]="USDC",t[t.GLMR=10]="GLMR",t[t.DAI=11]="DAI",t[t.USDT=12]="USDT",t[t.BUSD=13]="BUSD",t[t.WBTC=14]="WBTC",t[t.SUI=15]="SUI",t[t.APT=16]="APT",t[t.SEI=17]="SEI",t[t.BASE=18]="BASE",t[t.OSMO=19]="OSMO",t[t.TBTC=20]="TBTC",t[t.WSTETH=21]="WSTETH",t[t.ARBITRUM=22]="ARBITRUM",t[t.OPTIMISM=23]="OPTIMISM",t[t.ATOM=24]="ATOM",t[t.EVMOS=25]="EVMOS",t[t.KUJI=26]="KUJI",t[t.PYTH=27]="PYTH",t[t.INJ=28]="INJ",t[t.KLAY=29]="KLAY",t[t.NTT=30]="NTT",t[t.SCROLL=31]="SCROLL",t[t.BLAST=32]="BLAST",t[t.XLAYER=33]="XLAYER",t[t.MANTLE=34]="MANTLE",t))(Pe||{});class uOe{constructor(e,n){ce(this,"caches");this.caches={};for(const[r,i]of Object.entries(e)){const s=n[r];if(s)for(const a in s){const o=s[a],f=Nn.parseAddress(a,o);this.set(r,a,f)}if(i.tokenId)try{this.set(r,i.nativeChain,Nn.parseAddress(i.nativeChain,i.tokenId.address))}catch(a){console.error("Error caching foreign asset",i.tokenId,a)}}}get(e,n){const r=this.caches[n];return r&&r[e]||null}set(e,n,r){this.caches[n]||(this.caches[n]={});const i=this.caches[n];i[e]=r}}const{chains:n0}=JF.MAINNET,lOe={Ethereum:{...n0.Ethereum,displayName:"Ethereum",explorerUrl:"https://etherscan.io/",explorerName:"Etherscan",gasToken:"ETH",chainId:1,icon:Pe.ETH,maxBlockSearch:2e3},Bsc:{...n0.Bsc,displayName:"BSC",explorerUrl:"https://bscscan.com/",explorerName:"BscScan",gasToken:"BNB",chainId:56,icon:Pe.BSC,maxBlockSearch:2e3},Polygon:{...n0.Polygon,displayName:"Polygon",explorerUrl:"https://polygonscan.com/",explorerName:"PolygonScan",gasToken:"POL",chainId:137,icon:Pe.POLYGON,maxBlockSearch:1e3},Avalanche:{...n0.Avalanche,displayName:"Avalanche",explorerUrl:"https://avascan.info/blockchain/c/",explorerName:"Avascan",gasToken:"AVAX",chainId:43114,icon:Pe.AVAX,maxBlockSearch:2e3},Fantom:{...n0.Fantom,displayName:"Fantom",explorerUrl:"https://ftmscan.com/",explorerName:"FTMscan",gasToken:"FTM",chainId:250,icon:Pe.FANTOM,maxBlockSearch:2e3},Celo:{...n0.Celo,displayName:"Celo",explorerUrl:"https://explorer.celo.org/mainnet/",explorerName:"Celo Explorer",gasToken:"CELO",chainId:42220,icon:Pe.CELO,maxBlockSearch:2e3},Moonbeam:{...n0.Moonbeam,displayName:"Moonbeam",explorerUrl:"https://moonscan.io/",explorerName:"Moonscan",gasToken:"GLMR",chainId:1284,icon:Pe.GLMR,maxBlockSearch:2e3},Solana:{...n0.Solana,displayName:"Solana",explorerUrl:"https://explorer.solana.com/",explorerName:"Solana Explorer",gasToken:"SOL",chainId:0,icon:Pe.SOLANA,maxBlockSearch:2e3},Sui:{...n0.Sui,displayName:"Sui",explorerUrl:"https://suiscan.xyz/",explorerName:"Suiscan",gasToken:"SUI",chainId:0,icon:Pe.SUI,maxBlockSearch:0},Aptos:{...n0.Aptos,displayName:"Aptos",explorerUrl:"https://explorer.aptoslabs.com/",explorerName:"Aptos Explorer",gasToken:"APT",chainId:0,icon:Pe.APT,maxBlockSearch:0},Base:{...n0.Base,displayName:"Base",explorerUrl:"https://basescan.org/",explorerName:"BaseScan",gasToken:"ETHbase",chainId:8453,icon:Pe.BASE,maxBlockSearch:2e3},Arbitrum:{...n0.Arbitrum,displayName:"Arbitrum",explorerUrl:"https://arbiscan.io/",explorerName:"Arbitrum Explorer",gasToken:"ETHarbitrum",chainId:42161,icon:Pe.ARBITRUM,maxBlockSearch:2e3},Optimism:{...n0.Optimism,displayName:"Optimism",explorerUrl:"https://optimistic.etherscan.io/",explorerName:"Optimistic Etherscan",gasToken:"ETHoptimism",chainId:10,icon:Pe.OPTIMISM,maxBlockSearch:2e3},Klaytn:{...n0.Klaytn,displayName:"Kaia",explorerUrl:"https://kaiascope.com/",explorerName:"Kaia Scope",gasToken:"KLAY",chainId:8217,icon:Pe.KLAY,maxBlockSearch:2e3},Scroll:{...n0.Scroll,displayName:"Scroll",explorerUrl:"https://scrollscan.com/",explorerName:"Scrollscan",gasToken:"ETHscroll",chainId:534352,icon:Pe.SCROLL,maxBlockSearch:2e3},Blast:{...n0.Blast,displayName:"Blast",explorerUrl:"https://blastscan.io/",explorerName:"Blastscan",gasToken:"ETHblast",chainId:81457,icon:Pe.BLAST,maxBlockSearch:2e3},Xlayer:{...n0.Xlayer,displayName:"X Layer",explorerUrl:"https://www.okx.com/web3/explorer/xlayer/",explorerName:"OKX Explorer",gasToken:"OKB",chainId:196,icon:Pe.XLAYER,maxBlockSearch:2e3},Mantle:{...n0.Mantle,displayName:"Mantle",explorerUrl:"https://explorer.mantle.xyz/",explorerName:"Mantle Explorer",gasToken:"MNT",chainId:5e3,icon:Pe.MANTLE,maxBlockSearch:2e3}},Qd=t=>{console.error(`Wormhole Connect: ${t}`)},rn=(t,e)=>e?{[t]:e}:{},dOe=(t,e)=>{if(!e)return t;const r=Object.values(t).map(i=>i.key);e:for(const i in e){const s=e[i];if(i in t){console.warn(`Skipping custom token config for "${i}" because it conflicts with a built-in`);continue}for(const a of Object.values(t))if(a.nativeChain===s.nativeChain&&a.symbol===s.symbol){console.warn(`Skipping custom token config for "${i}" because its symbol "${s.symbol}" and chain ${s.nativeChain} conflicts with a built-in`);continue e}if(r.includes(s.key)){console.warn(`Skipping custom token config for "${i}" because its key "${s.key}" conflicts with a built-in`);continue}console.info(`Accepted custom token config for "${i}"`),t[i]=s}return t},hOe=(t,e)=>{if(!e)return t;for(const n in e)t[n]={...e[n],...t[n]};return t},pOe=(t,e,n)=>{if(t){if(t.fromChain&&(e[t.fromChain]||(Qd(`Invalid chain name "${t.fromChain}" specified for defaultInputs.fromChain`),delete t.fromChain)),t.toChain&&(e[t.toChain]||(Qd(`Invalid chain name "${t.toChain}" specified for defaultInputs.toChain`),delete t.fromChain)),t.fromChain&&t.toChain&&t.fromChain===t.toChain&&Qd("Source and destination chain cannot be the same, check the defaultInputs configuration"),t.fromChain&&t.toChain&&t.requiredChain&&(e[t.requiredChain]||Qd(`Invalid network value "${t.requiredChain}" specified for defaultInputs.requiredChain`),t.toChain!==t.requiredChain&&t.fromChain!==t.requiredChain&&Qd("Source chain or destination chain must equal the required network")),t.tokenKey&&(n[t.tokenKey]||(Qd(`Invalid token "${t.tokenKey}" specified for defaultInputs.tokenKey`),delete t.tokenKey)),t.fromChain&&t.tokenKey){const r=e[t.fromChain],{tokenId:i,nativeChain:s}=n[t.tokenKey];!i&&s!==r.key&&Qd(`Invalid token "${t.tokenKey}" specified for defaultInputs.tokenKey. It does not exist on "${t.fromChain}"`)}return t}},bOe=t=>t[0].toUpperCase()+t.slice(1),mOe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4-beta.2-development",SSR:!1},{REACT_APP_ETHEREUM_RPC:yOe,REACT_APP_SOLANA_RPC:gOe,REACT_APP_POLYGON_RPC:xOe,REACT_APP_BSC_RPC:vOe,REACT_APP_AVALANCHE_RPC:wOe,REACT_APP_FANTOM_RPC:MOe,REACT_APP_CELO_RPC:AOe,REACT_APP_MOONBEAM_RPC:EOe,REACT_APP_SUI_RPC:SOe,REACT_APP_APTOS_RPC:COe,REACT_APP_SEI_RPC:TOe,REACT_APP_BASE_RPC:IOe,REACT_APP_OSMOSIS_RPC:DOe,REACT_APP_INJECTIVE_RPC:kOe,REACT_APP_WORMCHAIN_RPC:NOe,REACT_APP_EVMOS_RPC:LOe,REACT_APP_KUJIRA_RPC:BOe,REACT_APP_KLAYTN_RPC:jOe,REACT_APP_SEI_REST:ROe,REACT_APP_EVMOS_REST:_Oe,REACT_APP_ARBITRUM_RPC:OOe,REACT_APP_OPTIMISM_RPC:FOe,REACT_APP_APTOS_GRAPHQL:POe,REACT_APP_SCROLL_RPC:zOe,REACT_APP_BLAST_RPC:UOe,REACT_APP_XLAYER_RPC:WOe,REACT_APP_MANTLE_RPC:HOe}=mOe,qOe={...rn("Ethereum",yOe),...rn("Solana",gOe),...rn("Polygon",xOe),...rn("Bsc",vOe),...rn("Avalanche",wOe),...rn("Fantom",MOe),...rn("Celo",AOe),...rn("Moonbeam",EOe),...rn("Sui",SOe),...rn("Aptos",COe),...rn("Sei",TOe),...rn("Base",IOe),...rn("Osmosis",DOe),...rn("Wormchain",NOe),...rn("Arbitrum",OOe),...rn("Optimism",FOe),...rn("Evmos",LOe),...rn("Kujira",BOe),...rn("Injective",kOe),...rn("Klaytn",jOe),...rn("Scroll",zOe),...rn("Blast",UOe),...rn("Xlayer",WOe),...rn("Mantle",HOe)},GOe={...rn("Sei",ROe),...rn("Evmos",_Oe)},VOe={...rn("Aptos",POe)},YOe={ETH:{key:"ETH",symbol:"ETH",nativeChain:"Ethereum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#38487d",decimals:18,wrappedAsset:"WETH"},WETH:{key:"WETH",symbol:"WETH",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDCeth:{key:"USDCeth",symbol:"USDC",nativeChain:"Ethereum",icon:Pe.USDC,tokenId:{chain:"Ethereum",address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},coinGeckoId:"usd-coin",color:"#ffffff",decimals:6},WBTC:{key:"WBTC",symbol:"WBTC",nativeChain:"Ethereum",icon:Pe.WBTC,tokenId:{chain:"Ethereum",address:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},coinGeckoId:"wrapped-bitcoin",color:"#ffffff",decimals:8},USDT:{key:"USDT",symbol:"USDT",nativeChain:"Ethereum",icon:Pe.USDT,tokenId:{chain:"Ethereum",address:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},coinGeckoId:"tether",color:"#ffffff",decimals:6},DAI:{key:"DAI",symbol:"DAI",nativeChain:"Ethereum",icon:Pe.DAI,tokenId:{chain:"Ethereum",address:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},coinGeckoId:"dai",color:"#FEFEFD",decimals:18},BUSD:{key:"BUSD",symbol:"BUSD",nativeChain:"Ethereum",icon:Pe.BUSD,tokenId:{chain:"Ethereum",address:"0x4Fabb145d64652a948d72533023f6E7A623C7C53"},coinGeckoId:"binance-usd",color:"#F0B90B",decimals:18},POL:{key:"POL",symbol:"POL",nativeChain:"Polygon",icon:Pe.POLYGON,coinGeckoId:"matic-network",color:"#8247E5",decimals:18,wrappedAsset:"WPOL"},WPOL:{key:"WPOL",symbol:"WPOL",nativeChain:"Polygon",icon:Pe.POLYGON,tokenId:{chain:"Polygon",address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},coinGeckoId:"matic-network",color:"#8247E5",decimals:18},WETHpolygon:{key:"WETHpolygon",symbol:"WETH",nativeChain:"Polygon",icon:Pe.ETH,tokenId:{chain:"Polygon",address:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"},coinGeckoId:"ethereum",color:"#D53424",decimals:18},USDCpolygon:{key:"USDCpolygon",symbol:"USDC",nativeChain:"Polygon",icon:Pe.USDC,tokenId:{chain:"Polygon",address:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTpolygon:{key:"USDTpolygon",symbol:"USDT",nativeChain:"Polygon",icon:Pe.USDT,tokenId:{chain:"Polygon",address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},coinGeckoId:"tether",color:"#ffffff",decimals:6},BNB:{key:"BNB",symbol:"BNB",nativeChain:"Bsc",icon:Pe.BNB,coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18,wrappedAsset:"WBNB"},WBNB:{key:"WBNB",symbol:"WBNB",nativeChain:"Bsc",icon:Pe.BNB,tokenId:{chain:"Bsc",address:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"},coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18},USDCbnb:{key:"USDCbnb",symbol:"USDC",nativeChain:"Bsc",icon:Pe.USDC,tokenId:{chain:"Bsc",address:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:18},AVAX:{key:"AVAX",symbol:"AVAX",nativeChain:"Avalanche",icon:Pe.AVAX,coinGeckoId:"avalanche-2",color:"#E84141",decimals:18,wrappedAsset:"WAVAX"},WAVAX:{key:"WAVAX",symbol:"WAVAX",nativeChain:"Avalanche",icon:Pe.AVAX,tokenId:{chain:"Avalanche",address:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7"},coinGeckoId:"avalanche-2",color:"#E84141",decimals:18},USDCavax:{key:"USDCavax",symbol:"USDC",nativeChain:"Avalanche",icon:Pe.USDC,tokenId:{chain:"Avalanche",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTavax:{key:"USDTavax",symbol:"USDT",nativeChain:"Avalanche",icon:Pe.USDT,tokenId:{chain:"Avalanche",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"},coinGeckoId:"tether",color:"#ffffff",decimals:6},WETHavax:{key:"WETHavax",symbol:"WETH",nativeChain:"Avalanche",icon:Pe.ETH,tokenId:{chain:"Avalanche",address:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},FTM:{key:"FTM",symbol:"FTM",nativeChain:"Fantom",icon:Pe.FANTOM,coinGeckoId:"fantom",color:"#12B4EC",decimals:18,wrappedAsset:"WFTM"},WFTM:{key:"WFTM",symbol:"WFTM",nativeChain:"Fantom",icon:Pe.FANTOM,tokenId:{chain:"Fantom",address:"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83"},coinGeckoId:"fantom",color:"#12B4EC",decimals:18},USDCfantom:{key:"USDCfantom",symbol:"USDC.e",nativeChain:"Fantom",icon:Pe.USDC,tokenId:{chain:"Fantom",address:"0x2F733095B80A04b38b0D10cC884524a3d09b836a"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},CELO:{key:"CELO",symbol:"CELO",nativeChain:"Celo",icon:Pe.CELO,tokenId:{chain:"Celo",address:"0x471EcE3750Da237f93B8E339c536989b8978a438"},coinGeckoId:"celo",color:"#35D07E",decimals:18},USDTcelo:{key:"USDTcelo",symbol:"USDT",nativeChain:"Celo",icon:Pe.USDT,tokenId:{chain:"Celo",address:"0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e"},coinGeckoId:"tether",color:"#ffffff",decimals:6},GLMR:{key:"GLMR",symbol:"GLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,coinGeckoId:"moonbeam",color:"#e1147b",decimals:18,wrappedAsset:"WGLMR"},WGLMR:{key:"WGLMR",symbol:"WGLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,tokenId:{chain:"Moonbeam",address:"0xAcc15dC74880C9944775448304B263D191c6077F"},coinGeckoId:"moonbeam",color:"#e1147b",decimals:18},SOL:{key:"SOL",symbol:"SOL",nativeChain:"Solana",icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9,wrappedAsset:"WSOL"},WSOL:{key:"WSOL",symbol:"WSOL",nativeChain:"Solana",tokenId:{chain:"Solana",address:"So11111111111111111111111111111111111111112"},icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9},USDCsol:{key:"USDCsol",symbol:"USDC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"},icon:Pe.USDC,coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTsol:{key:"USDTsol",symbol:"USDT",nativeChain:"Solana",icon:Pe.USDT,tokenId:{chain:"Solana",address:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"},coinGeckoId:"tether",color:"#ffffff",decimals:6},SUI:{key:"SUI",symbol:"SUI",nativeChain:"Sui",tokenId:{chain:"Sui",address:"0x2::sui::SUI"},icon:Pe.SUI,coinGeckoId:"sui",color:"#8457EF",decimals:9},APT:{key:"APT",symbol:"APT",nativeChain:"Aptos",tokenId:{chain:"Aptos",address:"0x1::aptos_coin::AptosCoin"},icon:Pe.APT,coinGeckoId:"aptos",color:"#8457EF",decimals:8},ETHarbitrum:{key:"ETHarbitrum",symbol:"ETH",nativeChain:"Arbitrum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHarbitrum"},WETHarbitrum:{key:"WETHarbitrum",symbol:"WETH",nativeChain:"Arbitrum",icon:Pe.ETH,tokenId:{chain:"Arbitrum",address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},coinGeckoId:"ethereum",color:"#5794EC",decimals:18},USDCarbitrum:{key:"USDCarbitrum",symbol:"USDC",nativeChain:"Arbitrum",icon:Pe.USDC,tokenId:{chain:"Arbitrum",address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTarbitrum:{key:"USDTarbitrum",symbol:"USDT",nativeChain:"Arbitrum",icon:Pe.USDT,tokenId:{chain:"Arbitrum",address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"},coinGeckoId:"tether",color:"#ffffff",decimals:6},ETHoptimism:{key:"ETHoptimism",symbol:"ETH",nativeChain:"Optimism",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#D53424",decimals:18,wrappedAsset:"WETHoptimism"},WETHoptimism:{key:"WETHoptimism",symbol:"WETH",nativeChain:"Optimism",icon:Pe.ETH,tokenId:{chain:"Optimism",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"ethereum",color:"#D53424",decimals:18},USDCoptimism:{key:"USDCoptimism",symbol:"USDC",nativeChain:"Optimism",icon:Pe.USDC,tokenId:{chain:"Optimism",address:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDToptimism:{key:"USDToptimism",symbol:"USDT",nativeChain:"Optimism",icon:Pe.USDT,tokenId:{chain:"Optimism",address:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"},coinGeckoId:"tether",color:"#ffffff",decimals:6},WETHbsc:{key:"WETHbsc",symbol:"WETH",nativeChain:"Bsc",icon:Pe.ETH,tokenId:{chain:"Bsc",address:"0x2170Ed0880ac9A755fd29B2688956BD959F933F8"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDTbsc:{key:"USDTbsc",symbol:"USDT",nativeChain:"Bsc",icon:Pe.USDT,tokenId:{chain:"Bsc",address:"0x55d398326f99059fF775485246999027B3197955"},coinGeckoId:"tether",color:"#ffffff",decimals:18},ETHbase:{key:"ETHbase",symbol:"ETH",nativeChain:"Base",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#62688F",decimals:18,wrappedAsset:"WETHbase"},WETHbase:{key:"WETHbase",symbol:"WETH",nativeChain:"Base",icon:Pe.ETH,tokenId:{chain:"Base",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDCbase:{key:"USDCbase",symbol:"USDC",nativeChain:"Base",icon:Pe.USDC,tokenId:{chain:"Base",address:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTbase:{key:"USDTbase",symbol:"USDT",nativeChain:"Base",icon:Pe.USDT,tokenId:{chain:"Base",address:"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"},coinGeckoId:"tether",color:"#ffffff",decimals:6},wstETHbase:{key:"wstETHbase",symbol:"wstETH",nativeChain:"Base",tokenId:{chain:"Base",address:"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETH:{key:"wstETH",symbol:"wstETH",nativeChain:"Ethereum",tokenId:{chain:"Ethereum",address:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHarbitrum:{key:"wstETHarbitrum",symbol:"wstETH",nativeChain:"Arbitrum",tokenId:{chain:"Arbitrum",address:"0x5979D7b546E38E414F7E9822514be443A4800529"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHoptimism:{key:"wstETHoptimism",symbol:"wstETH",nativeChain:"Optimism",tokenId:{chain:"Optimism",address:"0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHpolygon:{key:"wstETHpolygon",symbol:"wstETH",nativeChain:"Polygon",tokenId:{chain:"Polygon",address:"0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},KLAY:{key:"KLAY",symbol:"KLAY",decimals:18,nativeChain:"Klaytn",icon:Pe.KLAY,coinGeckoId:"klay-token",color:"#fa4212",wrappedAsset:"WKLAY"},WKLAY:{key:"WKLAY",symbol:"WKLAY",displayName:"wKLAY",nativeChain:"Klaytn",icon:Pe.KLAY,tokenId:{chain:"Klaytn",address:"0xe4f05A66Ec68B54A58B17c22107b02e0232cC817"},coinGeckoId:"wrapped-klay",color:"#fa4212",decimals:18},PYTH:{key:"PYTH",symbol:"PYTH",nativeChain:"Solana",tokenId:{chain:"Solana",address:"HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"},icon:Pe.PYTH,coinGeckoId:"pyth-network",color:"#E6DAFE",decimals:6},ETHscroll:{key:"ETHscroll",symbol:"ETH",nativeChain:"Scroll",icon:Pe.SCROLL,coinGeckoId:"ethereum",decimals:18,wrappedAsset:"WETHscroll"},WETHscroll:{key:"WETHscroll",symbol:"WETH",nativeChain:"Scroll",icon:Pe.SCROLL,tokenId:{chain:"Scroll",address:"0x5300000000000000000000000000000000000004"},coinGeckoId:"ethereum",decimals:18},ETHblast:{key:"ETHblast",symbol:"ETH",nativeChain:"Blast",icon:Pe.BLAST,coinGeckoId:"ethereum",decimals:18,wrappedAsset:"WETHblast"},WETHblast:{key:"WETHblast",symbol:"WETH",nativeChain:"Blast",icon:Pe.BLAST,tokenId:{chain:"Blast",address:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7"},coinGeckoId:"ethereum",decimals:18},OKB:{key:"OKB",symbol:"OKB",nativeChain:"Xlayer",icon:Pe.XLAYER,coinGeckoId:"okb",decimals:18,wrappedAsset:"WOKB"},WOKB:{key:"WOKB",symbol:"WOKB",nativeChain:"Xlayer",icon:Pe.XLAYER,tokenId:{chain:"Xlayer",address:"0xe538905cf8410324e03A5A23C1c177a474D59b2b"},coinGeckoId:"okb",decimals:18},MNT:{key:"MNT",symbol:"MNT",nativeChain:"Mantle",icon:Pe.MANTLE,coinGeckoId:"mantle",decimals:18,wrappedAsset:"WMNT"},WMNT:{key:"WMNT",symbol:"WMNT",nativeChain:"Mantle",icon:Pe.MANTLE,tokenId:{chain:"Mantle",address:"0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8"},coinGeckoId:"mantle",decimals:18},tBTC:{key:"tBTC",symbol:"tBTC",nativeChain:"Ethereum",tokenId:{chain:"Ethereum",address:"0x18084fbA666a33d37592fA2633fD49a74DD93a88"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCpolygon:{key:"tBTCpolygon",symbol:"tBTC",nativeChain:"Polygon",tokenId:{chain:"Polygon",address:"0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCoptimism:{key:"tBTCoptimism",symbol:"tBTC",nativeChain:"Optimism",tokenId:{chain:"Optimism",address:"0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCarbitrum:{key:"tBTCarbitrum",symbol:"tBTC",nativeChain:"Arbitrum",tokenId:{chain:"Arbitrum",address:"0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCbase:{key:"tBTCbase",symbol:"tBTC",nativeChain:"Base",tokenId:{chain:"Base",address:"0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCsol:{key:"tBTCsol",symbol:"tBTC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:8}},QOe={WETH:{Bsc:"0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA",Polygon:"0x11CD37bb86F65419713f30673A480EA33c826872",Avalanche:"0x8b82A291F83ca07Af22120ABa21632088fC92931",Fantom:"0x2A126f043BDEBe5A0A9841c51915E562D9B07289",Celo:"0x66803FB87aBd4aaC3cbB3fAd7C3aa01f6F3FB207",Moonbeam:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",Solana:"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",Sui:"0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN",Aptos:"0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb::coin::T",Base:"0x71b35ECb35104773537f849FBC353F81303A5860",Arbitrum:"0xD8369C2EDA18dD6518eABb1F85BD60606dEb39Ec",Optimism:"0xb47bC3ed6D70F04fe759b2529c9bc7377889678f",Blast:"0xC09a79fCF76ab2917c685896E3693e04EEbab69C",Mantle:"0x115Fcc627AcE0457fbeb7Af3b8BcAcE7Ff6211A4",Klaytn:"0x98A8345bB9D3DDa9D808Ca1c9142a28F6b0430E1"},USDCeth:{Bsc:"0xB04906e95AB5D797aDA81508115611fee694c2b3",Polygon:"0x4318CB63A2b8edf2De971E2F17F77097e499459D",Avalanche:"0xB24CA28D4e2742907115fECda335b40dbda07a4C",Fantom:"0x2Ec752329c3EB419136ca5e4432Aa2CDb1eA23e6",Celo:"0x37f750B7cC259A2f741AF45294f6a16572CF5cAd",Moonbeam:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",Solana:"A9mUU4qviSctJVPJdBJWkb28deg915LYJKrzQ19ji3FM",Sui:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",Aptos:"0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T",Base:"0xec267C53f53807c2337C257f8AC3Fc3cC07cc0ed",Arbitrum:"0xC96F2715E2a242d50D1b0bC923dbe1740b8eCf18",Optimism:"0x711e53D031ea9B0bb0C24dD506df11b41AEA419e",Klaytn:"0x608792Deb376CCE1c9FA4D0E6B7b44f507CfFa6A"},WBTC:{Bsc:"0x43359676E1A3F9FbB5de095333f8e9c1B46dFA44",Polygon:"0x5D49c278340655B56609FdF8976eb0612aF3a0C3",Avalanche:"0x1C0e79C5292c59bbC13C9F9f209D204cf4d65aD6",Fantom:"0x87e9E225aD8a0755B9958fd95BE43DD6A91FF3A7",Celo:"0xd71Ffd0940c920786eC4DbB5A12306669b5b81EF",Moonbeam:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",Solana:"3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh",Sui:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",Aptos:"0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e::coin::T",Base:"0xE6396f780b543dF16ee3b784D789c75B68319db0",Arbitrum:"0x397846a8078d4845c7f5c6Ca76aeBbcFDc044fAe",Optimism:"0xB214C19d81c99E75e84706a3aa0A757319023e26",Klaytn:"0x981846bE8d2d697f4dfeF6689a161A25FfbAb8F9"},USDT:{Bsc:"0x524bC91Dc82d6b90EF29F76A3ECAaBAffFD490Bc",Polygon:"0x9417669fBF23357D2774e9D421307bd5eA1006d2",Avalanche:"0x9d228444FC4B7E15A2C481b48E10247A03351FD8",Fantom:"0x14BCb86aEed6a74D3452550a25D37f1c30AA0A66",Celo:"0x617f3112bf5397D0467D315cC709EF968D9ba546",Moonbeam:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",Solana:"Dn4noZ5jgGfkntzcQSUZ8czkreiZ1ForXYoV2H8Dm7S1",Sui:"0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",Aptos:"0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852::coin::T",Base:"0xFf0C62A4979400841eFaA6faADb07Ac7d5C98b27",Arbitrum:"0xE4728F3E48E94C6DA2B53610E677cc241DAFB134",Optimism:"0xf6B4185FCf8aF291c0E3927fbEab7046b4f6A8CA",Blast:"0x37C1dea9C51864cc6640FA9c09f4dac574b8285E",Klaytn:"0x5C13E303a62Fc5DEdf5B52D66873f2E59fEdADC2",Xlayer:"0x5866709f926f26C5870191F40333ac462B917bC0"},DAI:{Bsc:"0x3413a030EF81a3dD5a302F4B4D11d911e12ed337",Polygon:"0x732EB1747ecCFC431fF19bc359ffc83755B1918c",Avalanche:"0xca319f81D147559e19A522A0a0310Dd43A96cA0F",Fantom:"0xEE786D3D73Ea645365c7248E4e40eDba08B1169F",Celo:"0x97926a82930bb7B33178E3c2f4ED1BFDc91A9FBF",Moonbeam:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",Solana:"EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o",Aptos:"0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c::coin::T",Base:"0x617Edadb51BfB43A44Bb91C7402129C23bA52381",Arbitrum:"0x5c4f2FEFB97F7DF09E762d95C83f0Ccf8bCe8234",Optimism:"0x098EA47D630b46df1E08e389e5e4466119c7dd30",Blast:"0x286ebE2BacB0EBeF746DBDA24dED0fc001c6d0F6",Sui:"0xc01c54cd767a60835bf100b0a8f7aae66ac9f4e374f76746af60f02493b6f2cf::coin::COIN",Klaytn:"0xCB2C7998696Ef7a582dFD0aAFadCd008D03E791A"},BUSD:{Bsc:"0x035de3679E692C471072d1A09bEb9298fBB2BD31",Polygon:"0x95ea750420da26bE1Ab0891e209e921bCd84763f",Celo:"0x1dd42c0785ca90B677adc2ABad01dfc5ECcD0b4d",Moonbeam:"0xa2284e1F98E4d0B7Eb6a6b4f3C57f1b209C755F3",Solana:"33fsBLA8djQm82RpHmE3SuVrPGtZBWNYExsEUeKX1HXX",Aptos:"0x77400d2f56a01bad2d7c8c6fa282f62647ce3c03f43f2a8742e47ea01a91e24a::coin::T"},WPOL:{Ethereum:"0x7c9f4C87d911613Fe9ca58b579f737911AAD2D43",Bsc:"0xc836d8dC361E44DbE64c4862D55BA041F88Ddd39",Avalanche:"0xf2f13f0B7008ab2FA4A2418F4ccC3684E49D20Eb",Fantom:"0xb88A6064B1F3FF5B9AE4A82fFD52560b0dF9FBD3",Celo:"0x9C234706292b1144133ED509ccc5B3CD193BF712",Moonbeam:"0x82DbDa803bb52434B1f4F41A6F0Acb1242A7dFa3",Solana:"Gz7VkD4MacbEB6yC5XD3HcumEiYx2EtDYYrfikGsvopG",Sui:"0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN",Aptos:"0x6781088e2a1629d38eda521467af4a8ca7bfa7e5516338017940389595c85c0f::coin::T",Base:"0xc863399E5c5C4011B1DC3fB602902C77BA72B709",Arbitrum:"0x3ab0E28C3F56616aD7061b4db38aE337E3809AEA",Optimism:"0x8f02B6a32cebcAe44D2Fd17d87966f5B5dD14c6d",Blast:"0xE00CB9206aCF0413aa9Dc12F01A22BB5Dd7A2866",Mantle:"0x1d15Dc3B3DB5A182eA8E3091F21EB0549d4a72E0",Klaytn:"0x9858e5A4f8202baD619D4BD39382CA67F4CA0E63",Scroll:"0x982D057feCD66c3af27b16EBC67C4db24810bcD8",Xlayer:"0xc97E2b2d7730C34adC389563721d9dF52EDA4A2a"},WETHpolygon:{Bsc:"0x1384284E16e3375522Be54F50909Bc52A69e90e4",Solana:"DQyeU3oFezEGia761GQ4iPcMCnxnH8fuLrmHZUvTYuby",Aptos:"0x2692323828f627a45a75a05eba8281dd46690c538b4f6ccb7a35ffe8199a28b7::coin::T",Sui:"0xa1ed6e76b06ff8f959cc479fbbd423820a3349dad8707b98ff4309c677fa20ad::coin::COIN",Arbitrum:"0xd2b299eD76d1369Ac8762CFEc85245fFD302FC17",Ethereum:"0x32d222E1f6386B3dF7065d639870bE0ef76D3599",Avalanche:"0x061FE51530768889dc20Ac7fCD29b5307b823395",Optimism:"0x2740220fFa4b206280907ce12b7cDC57445f3B92",Fantom:"0x1cAFd8d3301E4E54Fc1462E7117Eb678bF50C765",Base:"0x7A79923734eDA9c7f7ff69ad9ec1e234F67E7CD6",Moonbeam:"0xf1BB9A987B9edC360580b0c9F28069C808c2a7da",Celo:"0x8Ed68859f162970258992168293232e3Bdd987d0",Klaytn:"0x3eb25C7098AC38a852Cd2366161c5e216af50Df3"},USDCpolygon:{Aptos:"0xc5fd7820e9f053e6dd8e7dd8ca3ce8e9b10d200ba1692bdeb7a035217180ad4a::coin::T",Base:"0xFe1579BAc60363c8572CB30Bf4DD1Fd85811BBF8",Moonbeam:"0x4415BfBDee669446550d55c749007EF60B520FC8",Sui:"0x5c8c9082401982e8c2519a5c12883a5475295bf5cec4a0a13c26d35dd9a20d73::coin::COIN",Bsc:"0xe6d82Bbe75041E42E51d755e922cE1BA91af9c4d",Celo:"0x42c76808f3179A091Ee007A2955aF2522978ADE7",Fantom:"0xB4DcfD221048a1Dad989D39456BBd87762c26F06",Avalanche:"0xDb2d08f5A9C9ADBBA0DE5a69bbB1E9Ca03411692",Arbitrum:"0x599ADB10E6A012dF34935D47407450f6D7170e3C",Optimism:"0xbB1EaB9Eb8fDf65F0E291D013DA07B4b65a27a01",Solana:"C321jHPwWBzgfSGndosDTp5pBsiXPyMU1irxKLVcedRB",Ethereum:"0xFbcE0f9e92AD1003e893Ba647bC055D845aAa507",Klaytn:"0x59AEaD999e018a00B162D34de7a81AFFAB88bAbB"},WBNB:{Ethereum:"0x418D75f65a02b3D53B2418FB8E1fe493759c7605",Polygon:"0xeCDCB5B88F8e3C15f95c720C51c71c9E2080525d",Avalanche:"0x442F7f22b1EE2c842bEAFf52880d4573E9201158",Fantom:"0xc033551e05907Ddd643AE14b6D4a9CA72BfF509B",Celo:"0xBf2554ce8A4D1351AFeB1aC3E5545AaF7591042d",Moonbeam:"0xE3b841C3f96e647E6dc01b468d6D0AD3562a9eeb",Solana:"9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa",Sui:"0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN",Aptos:"0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86::coin::T",Base:"0x7fdAa50d7399ac436943028edA6ed9a1BD89509f",Arbitrum:"0x7AF00405916D823eDb1121546EfA6F4972B51b84",Optimism:"0x6A09fE65ACa27C12573F04aAFa290bD75497E1BC",Blast:"0xdcd0Ec817d3ae2E82bCE8Cc9f92fFA7686A52160",Mantle:"0x9a7E85260d6F5d3c3d2a1FdDc3D980DBC78e508d",Klaytn:"0xaC9C1E4787139aF4c751B1C0fadfb513C44Ed833",Scroll:"0x5b0da0a36DC415714B53A4f24b56921332F42E7C",Xlayer:"0x8bC46166E06122603bA10D2bCA63b75091c25cAe"},USDCbnb:{Ethereum:"0x7cd167B101D2808Cfd2C45d17b2E7EA9F46b74B6",Polygon:"0x4B3a922c773BDCF3BA8f1A4FDAc2029E1D0E9868",Avalanche:"0x6145E8a910aE937913426BF32De2b26039728ACF",Fantom:"0x0FcbDAC44c67A43607D3E95886dB19871ADc985F",Celo:"0x9d9abAE97a9344e3854527b4efbB366a1564bfEb",Moonbeam:"0x7f433E22366E03a3758CE22cCf82887d828078f8",Solana:"FCqfQSujuPxy6V42UvafBhsysWtEq1vhjfMN1PUbgaxA",Sui:"0x909cba62ce96d54de25bec9502de5ca7b4f28901747bbf96b76c2e63ec5f1cba::coin::COIN",Aptos:"0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595::coin::T",Base:"0x68E2b07F92ed506f92935d7359ECA84D5342dbb4",Arbitrum:"0x1a0590F951bc9C3818Ce75ba5Bbe92831b2cf57e",Optimism:"0x1C15057d1F3794C934a6cBC1f7EceE934050F219",Klaytn:"0x01B342d26FEF5749E87CBe412e16163771b0277c"},WAVAX:{Ethereum:"0x85f138bfEE4ef8e540890CFb48F620571d67Eda3",Bsc:"0x96412902aa9aFf61E13f085e70D3152C6ef2a817",Polygon:"0x7Bb11E7f8b10E9e571E5d8Eace04735fDFB2358a",Fantom:"0x358CE030DC6116Cc296E8B9F002728e65459C146",Celo:"0xFFdb274b4909fC2efE26C8e4Ddc9fe91963cAA4d",Moonbeam:"0xd4937A95BeC789CC1AE1640714C61c160279B22F",Solana:"KgV1GvrHQmRBY8sHQQeUKwTm2r2h8t4C8qt12Cw1HVE",Sui:"0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN",Aptos:"0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f::coin::T",Base:"0xc449A60A31E1eebFE83c42E9465fd4Dc318aE9a7",Arbitrum:"0x565609fAF65B92F7be02468acF86f8979423e514",Optimism:"0x8418C1d909842f458c9394886b83F19d62bF1A0D",Blast:"0x7D86F00026c2cD8137D60ae85d53c5E5a15B2481",Mantle:"0x2cAb4233d42043AEBbbb1445af362Ef686f3C133",Klaytn:"0x45830b92443a8f750247da2A76C85c70d0f1EBF3",Scroll:"0xC043c8A3672f397e7b52bF0a04F47d6f1aA952Ed",Xlayer:"0x5208Fb676B2DBab7aFaFB56e8997237F0ceECF71"},USDCavax:{Ethereum:"0x39EbF69137D98FB7659Ef8D4ea21ec26394389d7",Bsc:"0xc88Dc63bf0c8c8198C97Db0945E3eF25Ca89A8e4",Polygon:"0xAEA5CC14DefbC1b845FDE729E563B717Ee6825ae",Fantom:"0xEfE7701cb2B80664385Be226d0300912CA92f66A",Celo:"0x62FFf2D2D1692D52eAf043AeeC727F7918d269D3",Moonbeam:"0xd4918c40cA9f02d42Cb53d06587aF42017Bc345D",Solana:"FHfba3ov5P3RjaiLVgh8FTv4oirxQDoVXuoUUDvHuXax",Sui:"0xe596782fbaebef51ae99ffac8731aed98a80642b9dc193ed659c97fbc2cc0f84::coin::COIN",Aptos:"0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff::coin::T",Arbitrum:"0x93e0FcbEd43CD6fC30DF00CcBD4669718dc74e77",Optimism:"0x355f0a8a7ecAeD971b8Fbd50994558291ff2413a",Base:"0xD83385fE100E20c269a5975D4Bf92525BcE09F87",Blast:"0x3Db095413b5e1e5681c48028e31e8dc2505D8aD3",Klaytn:"0x9C97D4c09679Dfd00A39681f6d3b61A285312B13",Scroll:"0xbEFc3d0457fB88f82364Dd982F7BA195FEE96b74"},WETHavax:{Aptos:"0x25ff8e0c07552c392c9e5dd4c9c07cf0382765c1bca560e80b6296a702034219::coin::T",Solana:"F9B9qLwUN3TAWGV9EGsuzFzS2PxWvKAmLhvfeqYNaS7J",Bsc:"0xBDfe278268524de38Da89B3023C1F49deBDFdA8A",Sui:"0xc1ea686a329e35808c61484d95904d50522f1d1616cab4b416d9cfa9b274bc6c::coin::COIN",Base:"0xEfe64b52bc0bDfa109790736F25cefb79724adF0",Arbitrum:"0xdF64fB41b7f45304a786695E0D5daD8d033C01eF",Polygon:"0x2912b3a9586Fc2AB177dC869e878c688DAA7d06E",Ethereum:"0xD85a87Edbe9fB3Baf6a1Bbd1E46f1C04B291331d",Optimism:"0xBe6EA3e70e2bbB0dbD093B657fbbc0DFF0BA67eC",Moonbeam:"0x9C673c6b651D6FDEF57441125A6AC16b08bba939",Celo:"0xDac2C97b5E64d7C79d040cd2906EBe02341F1Ab5",Klaytn:"0x9971F9d9170D787C4e4E01c56E1BDB308291CacF",Fantom:"0x86a09597fc91b116511B990D29CB46ddedC0fCb0"},WFTM:{Ethereum:"0x4cD2690d86284e044cb63E60F1EB218a825a7e92",Bsc:"0xbF8413EE8612E0E4f66Aa63B5ebE27f3C5883d47",Polygon:"0x3726831304D77f585f1Aca9d9841cc3Ef80dAa62",Avalanche:"0xd19abc09B7b36F7558929b97a866f499a26c2f83",Celo:"0xd1A342eE2210238233a347FEd61EE7Faf9f251ce",Moonbeam:"0x609AedD990bf45926bca9E4eE988b4Fb98587D3A",Solana:"DRQBDBEWmwWGK13fRTLhSPzjbvMSUavhV6nW4RUH8W6T",Sui:"0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN",Aptos:"0xd1aa2ff36a0e93e1b4e4fecdecf8bb95bc5de399061c5e84b515281f48718842::coin::T",Base:"0x936Fa2DE8380Dc5BF34C80F1BaD53a9f3630263B",Arbitrum:"0x7f7dcDb91930033a4Eb269196EBb6fd5f0644E4B",Optimism:"0x0b0ecbe5C3995541876d27633B63296570FB34Af",Blast:"0xf1D0eEeB6B6B35dc7289E1AD5e523F68b82bd09A",Mantle:"0x6BFDc59ECBC5503aE16F71851064597D0a75dA76",Klaytn:"0xF3AebeA789F30C22F3657F70f4CaA0f8b49ed676",Scroll:"0x16f077e2e9bF99Adfb1FEEc8360ee002842C44A2",Xlayer:"0x956b5E88c311b976C76CB415C7E030A5Af87373b"},USDCfantom:{Bsc:"0x521af8b1c43B503BE91F542d82EEFEabc0C93340",Arbitrum:"0xF68734163731ad6A6108f76A8e09862C1d412B42",Ethereum:"0xfcC349c14013EdeFAAcAE09Ba30F4ef2571b8D2c"},CELO:{Ethereum:"0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69",Bsc:"0x2A335e327a55b177f5B40132fEC5D7298aa0D7e6",Polygon:"0x922F49a9911effc034eE756196E59BE7b90D43b3",Avalanche:"0x494317B8521c5a5287a06DEE467dd6fe285dA4a8",Fantom:"0xF432490C6c96C9d3bF523a499a1CEaFd8208A373",Moonbeam:"0xc1a792041985F65c17Eb65E66E254DC879CF380b",Solana:"9kvAcwQbqejuJMd59mKuw2bfSsLRaQ7zuvaTVHEeBBec",Sui:"0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN",Aptos:"0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112::coin::T",Base:"0x74df3823aA29D278cAD0A3632fCB56C896a38eD4",Arbitrum:"0x4E51aC49bC5e2d87e0EF713E9e5AB2D71EF4F336",Optimism:"0x9b88D293b7a791E40d36A39765FFd5A1B9b5c349",Blast:"0x75345Cc6a3333cca03aCE2a28C7de328122Db3b1",Klaytn:"0xB2b5bC9bc872c7107CBC8E8e0E2805Db0ac4FBc2"},WGLMR:{Ethereum:"0x93d3696A9F879b331f40CB5059e37015423A3Bd0",Bsc:"0x1C063db3c621BF901FC6C1D03328b08b2F9bbfba",Polygon:"0xcC48d6CF842083fEc0E01d913fB964b585975F05",Avalanche:"0x375aA6C67BF499fBf01804A9f92C03c0776F372d",Fantom:"0xBF227E92D6754EB4BFE26C40cb299ff2809Da45f",Celo:"0x383A5513AbE4Fe36e0E00d484F710148E348Aa9D",Solana:"7ixSaXGsHAFy34wogPk2YXiUX3BMmQMFdercdaHLnBby",Sui:"0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN",Aptos:"0x7ab1283a7b13c4254d4e1f803d7ce6578442c1d7a40d0faee41cd48ba4884c8a::coin::T",Base:"0xfdB7311BeC3b2CcCF8407d0585f81B97b3b5eff1",Arbitrum:"0x944C5b67a03e6Cb93Ae1E4B70081f13b04CDB6Bd",Optimism:"0xbffD46DFDb8d3a02b8D2E0F864a2cD712090a4D3",Blast:"0x43E43580A34c8FdD4694e1F9B5F9b1121a7044a5",Klaytn:"0x52a4558f98dDc7cb40cd9114C005f0B9571258Fc",Scroll:"0x2Aba1Ed24EaFC17F801b1A7dF1c3a06737F8aB72",Xlayer:"0xE2a44Dad57004517738FbD84cdf09Bd1451b4e43"},WSOL:{Ethereum:"0xD31a59c85aE9D8edEFeC411D448f90841571b89c",Bsc:"0xfA54fF1a158B5189Ebba6ae130CEd6bbd3aEA76e",Polygon:"0xd93f7E271cB87c23AaA73edC008A79646d1F9912",Avalanche:"0xFE6B19286885a4F7F55AdAD09C3Cd1f906D2478F",Fantom:"0xd99021C2A33e4Cf243010539c9e9b7c52E0236c1",Celo:"0x4581E64115d46CcdeE65Be2336bEc86c9BA54C01",Moonbeam:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",Sui:"0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",Aptos:"0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T",Base:"0x1C61629598e4a901136a81BC138E5828dc150d67",Arbitrum:"0x2bcC6D6CdBbDC0a4071e48bb3B969b06B3330c07",Optimism:"0xba1Cf949c382A32a09A17B2AdF3587fc7fA664f1",Blast:"0xA5370b8e2413b23eA16F3B78D1d1ba3969678227",Mantle:"0xDA03239f428c76A527e1ceCa0ecA6cC367A2D945",Klaytn:"0xfAA03A2AC2d1B8481Ec3fF44A0152eA818340e6d",Xlayer:"0x3a859D92da2E16Ad32C5C6F3ADAddFBa4dE3A47e",Scroll:"0xCDf95E1F720caade4b1DC83ABfE15400D2a458AD"},USDCsol:{Ethereum:"0x41f7B8b9b897276b7AAE926a9016935280b44E97",Bsc:"0x91Ca579B0D47E5cfD5D0862c21D5659d39C8eCf0",Polygon:"0x576Cf361711cd940CD9C397BB98C4C896cBd38De",Avalanche:"0x0950Fc1AD509358dAeaD5eB8020a3c7d8b43b9DA",Fantom:"0xb8398DA4FB3BC4306B9D9d9d13d9573e7d0E299f",Celo:"0x8B6eef6C449D3Ac723a9C06a9eaE2dCd7d308BA9",Moonbeam:"0x098d6eE48341D6a0a0A72dE5baaF80A10E0F6082",Sui:"0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN",Aptos:"0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080::coin::T",Arbitrum:"0x3870546cfd600ba87e4180686d29dC993A45d3B7",Optimism:"0x6F974A6dfD5B166731704Be226795901c45Bb815",Base:"0xe8CE40EBBB844142400D21558a2F1c9683d69139",Klaytn:"0xa1a7feeD29EbFa38079D943486c23f401939Ce80",Scroll:"0x883Ccb5aEfD0084f1e4D04b133675acd6D5F123F"},SUI:{Ethereum:"0x84074EA631dEc7a4edcD5303d164D5dEa4c653D6",Bsc:"0x8314f6Bf1B4dd8604A0fC33C84F9AF2fc07AABC8",Polygon:"0x34bE049fEbfc6C64Ffd82Da08a8931A9a45f2cc8",Avalanche:"0x1703CB0F762D2a435199B64Ea47E5349B7C17480",Fantom:"0xC277423a21F6e32D886BF85Ef6cCB945d5D28347",Celo:"0x1Cb9859B1A16A67ef83A0c7b9A21eeC17d9a97Dc",Moonbeam:"0x484eCCE6775143D3335Ed2C7bCB22151C53B9F49",Solana:"G1vJEgzepqhnVu35BN4jrkv3wVwkujYWFFCxhbEZ1CZr",Aptos:"0xa72a97e872be9ee3d2f14d56fd511eb7e4a53f4055be3a267d8602e7685b41c0::coin::T",Base:"0x36c6FBF7B49bF65f5F82b674af219C05b2a4aDD1",Arbitrum:"0xCF79d86B8a830030aF6D835737d6eac3bE823fD7",Optimism:"0x27A533e438892DA192725b4C9AcA51447F457212",Mantle:"0x9ef1BB6072d7d6B9C935d9c040133036aD532119",Blast:"0x62c95Ffd6d2f893Ea2EF072d1EbBcb242a974b1A",Klaytn:"0xB0B40516293e0204fB376A18aA230A210cbE0305",Xlayer:"0xEa76dBFE6e449420f294e74E057518F750E99A16"},APT:{Ethereum:"0x8CDf7AF57E4c8B930e1B23c477c22f076530585e",Bsc:"0x2Ba98cf7Edd2c5C794e21bc3Dc6973D3C2585eE3",Polygon:"0xa4ef199d3ad524E9C3C51Ac46B303B103A307Cef",Avalanche:"0x43c588459b3243fA541B98CC4B2E995b3de553A2",Fantom:"0x3Cd9162Ca5256b8E26A0e3Ad14CCfF7C0Da0F174",Celo:"0x89F2b718Ca518db39d377F0ABBa6B42582b549F7",Moonbeam:"0x25331575641d35D9765e1934acC8F0991c58e904",Solana:"6LNeTYMqtNm1pBFN8PfhQaoLyegAH8GD32WmHU9erXKN",Sui:"0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37::coin::COIN",Base:"0x1d36126289Be1658297A35CC3EB2BB80A7D7A04b",Arbitrum:"0x4EdeF400eDe5309240814b5FC403F224504604e9",Optimism:"0xC5B3AC2DF8D8D7AC851F763a5b3Ff23B4A696d59",Blast:"0x2a3DdE20159FbDbC86f1da0e7a462711b610c815",Klaytn:"0x68d5254007BE3a6d3d2A37e2C1ad3921D049F46D",Xlayer:"0xEdF2AEaCE382A3c0722f110c4927d34b78bce34F"},WETHarbitrum:{Ethereum:"0xb945E3F853B5f8033C8513Cf3cE9F8AD9beBB1c9",Bsc:"0xaA1eEdABC48D078350ccBdD620bD088848e299E5",Polygon:"0x6a5c59AB16268d2c872916054C50440B999e417C",Avalanche:"0xDfDA518A1612030536bD77Fd67eAcbe90dDC52Ab",Fantom:"0xE8367853A0823515D37b1538331B4704089becb4",Celo:"0xc6F962fCcb140ece554AfD0E589f971532A57f14",Solana:"CSD6JQMvLi46psjHdpfFdr826mF336pEVMJgjwcoS1m4",Sui:"0x33744e7df340a4d01c23f6b18c13563f767545ea95f976f8045f056358419da3::coin::COIN",Aptos:"0xe977796d7bfb3263609b90dffd264c7bd078ce35dac42b55302858d9fa3452b::coin::T",Base:"0x9D36e0edb8BBaBeec5edE8a218dc2B9a6Fce494F",Optimism:"0x825206E1D29456337769e6f1384101E997C6A732",Moonbeam:"0x18872b45c603eD2EbC508b9C5514a85c2e2791FB",Klaytn:"0x3CF1751E32c4225CB12ba953786C260C2cE89008"},USDCarbitrum:{Ethereum:"0xCFc006a32a98031C2338BF9d5ff8ED2c0Cae4a9e",Bsc:"0x5caa170b465122D15a6D20FD9A804a9613CE7882",Polygon:"0x7800FE8951cdc1cDea748d878fAce63018D97960",Avalanche:"0x4b5fE357Eb11c735078e47526D6e853DBff18541",Celo:"0xA41a62567d9eb960D84b72663FdaeBE0BCdE2683",Solana:"CR4xnGrhsu1fWNPoX4KbTUUtqGMF3mzRLfj4S6YEs1Yo",Sui:"0xc3f8927de33d3deb52c282a836082a413bc73c6ee0bd4d7ec7e3b6b4c28e9abf::coin::COIN",Aptos:"0xca3a2c28bc8c6c762f752dd2a4ebbfd00356ca99977ce6636e3af5897124a87a::coin::T",Optimism:"0xa6252F56cc6eEA21165d56744C795F91c8a3Cf68",Base:"0xb96B82Cd6D45d98Fb6897D16A5E4EE888329C513",Fantom:"0x2228703672906fEe5eD681Ec28e42B4506b8c336",Moonbeam:"0xbd2B6D665439514EEaA8519f4fE87CC8C46e9167",Klaytn:"0x3d5973fF7288f47857dAa5a32C53976A9A968928",Xlayer:"0xd53bD30985B4125fc561774e388d9f679BB84117"},WETHoptimism:{Fantom:"0xe8E8f941377A955bFA72880ec0dc2319dbC827a8",Celo:"0x8d53771b1Ec7461f8e45Bca2609c45bC0bbd0677",Solana:"8M6d63oL7dvMZ1gNbgGe3h8afMSWJEKEhtPTFM2u8h3c",Sui:"0x0aab14ec22908de73d1b0619f5e03842398f8e68262981bd35ef44b42d22b23a::coin::COIN",Aptos:"0x6a7a7f36ef5e2d0e65fcf72669c20d514d68298b0f76c7554517208f73260aaf::coin::T",Arbitrum:"0xB1fC645a86fB5085e12D8BDDb77702F728D2A26F",Avalanche:"0xDf11535274c0FD2Fe41A88bd1bBF802D72296037",Bsc:"0x94AEc09B5e2CE591e39DC6aa58A3A6E85Ed45265",Ethereum:"0x8B5653Ae095529155462eDa8CF664eD96773F557",Polygon:"0x8182De59485Bb646542Db8C7E5958148Dc699319",Base:"0xCb725aC8d9985D3bE306Dd9e1517d3702929176c",Moonbeam:"0xd4870F7F5AD8Ae5139E1a5D8AD4ac55204aE4490",Klaytn:"0x4ab77AF7059435b71dBC3B7c5255983C8628eFdf"},USDCoptimism:{Fantom:"0x385b219f0C4fa2e84EfE5aaf9692a821C57B8248",Celo:"0xEe48963C003e21EaCEdFA8a0A19BB3cbF7E776Fe",Moonbeam:"0x7143e8EA96e158381057a58AfdDF44601c7e532C",Base:"0xc6bfBeb3002aD563D2d1f72614C61C83Bf147Acd",Arbitrum:"0x3A5C2Da9E30741cb59a5e9446A23A86886fC9DC2",Aptos:"0x4f6ecb05a797902d472abc2f5804bde93a53d8b75f14f767824cdb1623a4ee83::coin::T",Bsc:"0xa41ae127D04F7ee73B5058E2C60Fb7c7A2D21F79",Avalanche:"0xBe04f76A0ba2100c3F2d6Aa1FD8484F415469573",Polygon:"0x31F12aCb60C3c32EE884F3894a873347C097D925",Sui:"0x6037801f060f0f54b3817bca05e3c8b9b9ffaa2da8e93fd5b80fa662aa3c9e55::coin::COIN",Solana:"J8kcD4Wnd1ehne1dpL8WNtgZQR6Jpui2cTZcrmg5ybAa",Klaytn:"0x7Ee2AB1443fDB59AECEa3aDD8F81296d68c2D1e3",Ethereum:"0xe77C99b64414e0fd9aeEA48AFFBBD2E97A895020"},WETHbsc:{Aptos:"0xd9fc4259ec5def95477dba9f0861c2882d1f8bee9a4138b476dd0720a3444547::coin::T",Solana:"FzjTz2cD1DfqYvafrbHWZvf1dK9qjwXGLuaU7xYXQjxP",Sui:"0x5029d5a94429a73b8036cd67192d9c5e09bbc2c0fee942d50075a9edba66744f::coin::COIN",Base:"0xf50509Bb6aF76E20c6E1eD493699c5f70764BcCC",Arbitrum:"0x6478377A399bE8c92bD35254aA7bF287836de32e",Ethereum:"0x5DbBB101CDc29443d12055eCDDdD7ca037Dce721",Fantom:"0xc511E3aec79CABD605021C237c475Ec553B002d4",Celo:"0x09F236D3708894581b1Cf679e582ba9eA5BE16f0",Klaytn:"0x4C07075BB44076106f3389766946b79784Fb5C58",Avalanche:"0xf0e509144CfA602d0A5e8C75d76FF74077f52f2b",Optimism:"0x8088Bc767c392b5769b94c9ec1D07c62874c8d5f",Polygon:"0x2D291e940DbDdaa9E847Ba5cC49451575f086b27",Moonbeam:"0xBefd7902B682938b29B3FD3D4AdECD9A984D5930"},WETHbase:{Ethereum:"0x1D4241F7370253C0f12EFC536B7e16E462Fb3526",Bsc:"0x9dc152F4941cE1A138326e70c3600385bf0C22dD",Polygon:"0x5BCf8d8c097FbB35C371F921E3FF3e6F6Eb54B41",Avalanche:"0xFA83178c66fE51ee99109b5cC912f8098Ff812eF",Fantom:"0xd3365E7355230c78098b44B172eE27DAB95B041A",Celo:"0x905CADB645684140E285e2D09D39dF5a2082BC87",Moonbeam:"0x6C6f83366A42fcA4D30a2D3f1914284de995Ac3a",Solana:"DWXe1hxpnb8LAH21iyXcjvMbiAGzoYyuCVQtRLvZdLYd",Sui:"0xaecbc804fa7ca7cffc74c9a05eb6ae86fda0c68375b5c1724204a1065bcb239a::coin::COIN",Aptos:"0x5b5f14781164cf77185a7b6acd8e4f3cbb7e7cfb1cd5760d2b8af81075fc153d::coin::T",Arbitrum:"0xBAfbCB010D920e0Dab9DFdcF634De1B777028a85",Optimism:"0x3F369a664fa665e01e8EB9f20bFcE03A0CAb8971",Mantle:"0x4a2176DE2Fb36485704965bd1Cc471854f21303B",Klaytn:"0x7Bf9ad1D104dEAE4B59Ef1be6a273Cb46BA16362"},USDCbase:{Solana:"EfqRM8ZGWhDTKJ7BHmFvNagKVu3AxQRDQs8WMMaoBCu6",Moonbeam:"0xE6d02a875CcC153c076fe418f33De3A5C420f505",Celo:"0x2e2acb1782Aad0490f8446b6fD4626C467987bD6",Bsc:"0x55CaD531c8E303Cab8B3BE4bB4744Db4f896ac81",Optimism:"0xb931c7BbD87A6e249EaA7355B13927F9c99Bce87",Arbitrum:"0x8619F97D4d08382548F536E5CE1D3e0D9bA40326",Polygon:"0x1eeCaB0F75fE93abbFa0cDFfb4fB13d1dC8706c8",Avalanche:"0xab933e939a9236BD439F7d29b87CE712f42bAC06",Fantom:"0xd9E4C283d8A49Dc3767A6F5a4dFdc1d0cEf21604",Sui:"0x7e3e74afcc1913aa9491c8cee89b02131a6e5519b090f16b54321835c1241cfb::coin::COIN",Aptos:"0xfcc4fcd734d5b8578fb629d238d15264a49eca6165c7444c21feec3b4962eb88::coin::T",Blast:"0x35a926D55A726cdF70Ac498972F22426363F3C77",Mantle:"0x5D628a3285a10fdd93AEa704007957F294e05F91",Ethereum:"0xc38261846c42C1E1D59E04dA675Eb1974E9cE7b1",Klaytn:"0x0a2330c1C46E9A74e8651F7117a1264410eA3C88",Scroll:"0x22C9bde4Ad49C4b6CCFB8D394B5ED42A57853d58"},wstETHbase:{Arbitrum:"0x09E79693E44c8813A8CA25EeD7A40e5E24cD9c01",Ethereum:"0x187175c7a526f48c905202Bd2Bf8D25A457F479F",Polygon:"0x95d4C8e851D9E8c6B92aa518474E991c373E9Fb2",Optimism:"0x6ee40855c0BaB20585d17D2b9dd8d2Cd1cd41801",Avalanche:"0x5e513CA12DbD8424bDFc5B50711dF4AE999a8C58"},wstETH:{Polygon:"0xe082a7Fc696De18172Ad08D956569Ee80BC37f06",Solana:"ZScHuTtqZukUrtZS43teTKGs2VqkKL8k4QCouR2n6Uo",Arbitrum:"0xf2717122Dfdbe988ae811E7eFB157aAa07Ff9D0F",Optimism:"0x855CFcEEe998c8ca34F9c914F584AbF72dC88B87",Base:"0xEd4e2FD35161c3c0e33cA187fce64C70d44Ce32b",Bsc:"0xad80E1A9B5824234afA9dE1F3bbDb8a994796169",Avalanche:"0x11449fd2F05D93827972b40adE96F6ffBE42E35a",Fantom:"0x2a2Ec6Ad3e47C536F47934F63b95BD647F1C730E"},wstETHarbitrum:{Bsc:"0x159167e842C586a81f02E55bc043AC8EdB033E0b",Aptos:"0xd2ca17516bc4ca57c1c69577e0c9cc0129153286695b46b97f438ecc138c225e::coin::T",Solana:"8wJakbZuv7WApfHmRo2sdkeQfu6hXqfEqjb7BYXDKpKe",Sui:"0xb607aed1c09e676384d14ae638dbcb08523fc691d309e71c856c7fdcb60d4430::coin::COIN",Base:"0xbE3981b37CcE5eCb6925d2ad9D9E28dE7b165793",Optimism:"0xEae5ccc3c36beF59f6794b467e7e228CB3720415",Fantom:"0xf65BF40A3299Df500D440520dF7e6ce1BEa53E73",Ethereum:"0x906310cE867C22c5016248Bd791FA5dd162c9D6d",Polygon:"0xcf0aa97c2fD78Ee0f0C3090B9EB65d2bd6C1D81a"},wstETHoptimism:{Bsc:"0x1f29fAD000255BF49D72803b2A8FaC8e31947eF8",Base:"0xBb0BeaB819dEAf091C193bE4bBEeA9D5b0F5227C",Arbitrum:"0xf99C5EEd186601955a9a1027536D1b46b1f909F8",Polygon:"0x9065e1D25E65F7A1D60bb6197154386B52faA469",Ethereum:"0xB3ceE6DCa1dD528CB7CC258e32D8B50ce9Ee46f5"},wstETHpolygon:{Base:"0xcB6D47199d60747152d7671D6497ce8D23cc1D75",Arbitrum:"0x23D3901A635fDd98D8d6509bc0720281f80a8E6D",Ethereum:"0x302F636d723c8Ed75C0d1E9D9C714009184C5624",Optimism:"0x4fad81d2268a7D9E1e0fE7dB38af07FFFA0aA56E",Celo:"0xA4c7302659eCF88a90e62e915Bd486E66B616A4C"},WKLAY:{Aptos:"0x539b652f8230a0e42adaeda4706b5639893d22362eda6ea897493c210cb48219::coin::T",Ethereum:"0x9AEA32B459e96C8eF5010f69130bf95fd129ac05",Celo:"0xe304254de5c2048F9bFb042dDFB54f84d1d77730",Polygon:"0x415ce980fde17F1FF102e1c6e4ce860Acc615D74",Base:"0x41c433c146c47Dc53FC48cDc69e406e365e298E1",Arbitrum:"0xFA95f6c796E54F9C4a99392CAE84410a25794BB3",Moonbeam:"0xf0a9476E4712123A807859f9Fd25fe98213379BD",Fantom:"0x787e2F3509583C0F03A339Be0826463C839CBE5E",Sui:"0xa5ec915864d7f37b25ca9144b2db6ebcf29e73603c2ccf9d0e765adcd9049a98::coin::COIN",Avalanche:"0x126C03982Ad6D7ef7E6aF020bF219e87185a6BC3",Bsc:"0xEA970e7b7D131Ea36c3051C9Ca11e785462fE00c",Optimism:"0xbbeF8233a0d10EEAb84E913FaDB337ab9b62F683",Solana:"2b8fZGLBZjpxFugCdnJbbLLBYxvx23rsrsvLYYueiHb7",Blast:"0x5F6fE613528df9AE4Bf6f667fbCB923263098617",Scroll:"0xA55FB7A046454998b2f6d8D99Df5F0E108b38229"},PYTH:{Aptos:"0x770211b47954e15bec1a4271bf33bacebc2d2adb43b7dc1ca45efa787615dd4c::coin::T",Bsc:"0xb0188B0bb2cD4a6D2744637fC83C94a284B247Da",Base:"0x4c5d8A75F3762c1561D96f177694f67378705E98",Celo:"0x985aa4814419ba338379A634785216301e51113D",Avalanche:"0x8A0691e602B7a5FCc51a27E4a08376dE50889B42",Polygon:"0xFa4B761A1e07909Ba31331a5dfa12390E3ff5583",Fantom:"0x77ad3B2dA29FBd208F12c3C701E969F4422aAD79",Optimism:"0x99C59ACeBFEF3BBFB7129DC90D1a11DB0E91187f",Ethereum:"0xeFc0CED4B3D536103e76a1c4c74F0385C8F4Bdd3",Arbitrum:"0xE4D5c6aE46ADFAF04313081e8C0052A30b6Dd724",Sui:"0x9c6d76eb273e6b5ba2ec8d708b7fa336a5531f6be59f326b5be8d4d8b12348a4::coin::COIN",Moonbeam:"0x27cc3FDbDD1F415b09a41232D0fD71345DAB8030",Xlayer:"0x057b766b3fB76527cf815c3b5C38Dfa8144335CF"},WETHscroll:{Arbitrum:"0xAe81a542e20270b48Bd5297E3e0f280f79E46C42"},WMNT:{Optimism:"0xf704F6a3241609Cfb3E44Db1237E68EB6CaC7C04"}},ZOe={chains:lOe,tokens:YOe,wrappedTokens:QOe,rpcs:qOe,rest:GOe,graphql:VOe,guardianSet:{index:4,keys:["0x5893b5a76c3f739645648885bdccc06cd70a3cd3","0xff6cb952589bde862c25ef4392132fb9d4a42157","0x114de8460193bdf3a2fcf81f86a09765f4762fd1","0x107a0086b32d7a0977926a205131d8731d39cbeb","0x8c82b2fd82faed2711d59af0f2499d16e726f6b2","0x11b39756c042441be6d8650b69b54ebe715e2343","0x54ce5b4d348fb74b958e8966e2ec3dbd4958a7cd","0x15e7caf07c4e3dc8e7c469f92c8cd88fb8005a20","0x74a3bf913953d695260d88bc1aa25a4eee363ef0","0x000ac0076727b35fbea2dac28fee5ccb0fea768e","0xaf45ced136b9d9e24903464ae889f5c8a723fc14","0xf93124b7c738843cbb89e864c862c38cddcccf95","0xd2cc37a4dc036a8d232b48f62cdd4731412f4890","0xda798f6896a3331f64b48c12d1d57fd9cbe70811","0x71aa1be1d36cafe3867910f99c09e347899c19c3","0x8192b6e7387ccd768277c17dab1b7a5027c0b3cf","0x178e21ad2e77ae06711549cfbb1f9c7a9d8096e8","0x5e1487f35515d02a92753504a8d75471b9f49edb","0x6fbebc898f403e4773e95feb15e80c9a99c8348d"]}},{chains:v0}=JF.TESTNET,KOe={Bsc:{...v0.Bsc,displayName:"BSC",explorerUrl:"https://testnet.bscscan.com/",explorerName:"BscScan",gasToken:"BNB",chainId:97,icon:Pe.BSC,maxBlockSearch:2e3},Avalanche:{...v0.Avalanche,displayName:"Fuji",explorerUrl:"https://testnet.avascan.info/blockchain/c/",explorerName:"Avascan",gasToken:"AVAX",chainId:43113,icon:Pe.AVAX,maxBlockSearch:2e3},Fantom:{...v0.Fantom,displayName:"Fantom",explorerUrl:"https://testnet.ftmscan.com/",explorerName:"FtmScan",gasToken:"FTM",chainId:4002,icon:Pe.FANTOM,maxBlockSearch:2e3},Celo:{...v0.Celo,displayName:"Alfajores",explorerUrl:"https://explorer.celo.org/alfajores/",explorerName:"Celo Explorer",gasToken:"CELO",chainId:44787,icon:Pe.CELO,maxBlockSearch:2e3},Moonbeam:{...v0.Moonbeam,displayName:"Moonbase",explorerUrl:"https://moonbase.moonscan.io/",explorerName:"Moonscan",gasToken:"GLMR",chainId:1287,icon:Pe.GLMR,maxBlockSearch:2e3},Solana:{...v0.Solana,displayName:"Solana",explorerUrl:"https://explorer.solana.com/",explorerName:"Solana Explorer",gasToken:"SOL",chainId:0,icon:Pe.SOLANA,maxBlockSearch:2e3},Sui:{...v0.Sui,displayName:"Sui",explorerUrl:"https://suiscan.xyz/testnet/",explorerName:"Suiscan",gasToken:"SUI",chainId:0,icon:Pe.SUI,maxBlockSearch:0},Aptos:{...v0.Aptos,displayName:"Aptos",explorerUrl:"https://explorer.aptoslabs.com/",explorerName:"Aptos Explorer",gasToken:"APT",chainId:0,icon:Pe.APT,maxBlockSearch:0},Klaytn:{...v0.Klaytn,displayName:"Kaia",explorerUrl:"https://kairos.kaiascope.com/",explorerName:"Kaia Scope",gasToken:"KLAY",chainId:1001,icon:Pe.KLAY,maxBlockSearch:2e3},Sepolia:{...v0.Sepolia,displayName:"Sepolia",explorerUrl:"https://sepolia.etherscan.io/",explorerName:"Etherscan",gasToken:"ETHsepolia",chainId:11155111,icon:Pe.ETH,maxBlockSearch:2e3},ArbitrumSepolia:{...v0.ArbitrumSepolia,displayName:"Arbitrum Sepolia",explorerUrl:"https://sepolia.arbiscan.io/",explorerName:"Etherscan",gasToken:"ETHarbitrum_sepolia",chainId:421614,icon:Pe.ARBITRUM,maxBlockSearch:2e3},BaseSepolia:{...v0.BaseSepolia,displayName:"Base Sepolia",explorerUrl:"https://base-sepolia.blockscout.com/",explorerName:"Etherscan",gasToken:"ETHbase_sepolia",chainId:84532,icon:Pe.BASE,maxBlockSearch:2e3},OptimismSepolia:{...v0.OptimismSepolia,displayName:"Optimism Sepolia",explorerUrl:"https://sepolia-optimistic.etherscan.io/",explorerName:"Etherscan",gasToken:"ETHoptimism_sepolia",chainId:11155420,icon:Pe.OPTIMISM,maxBlockSearch:2e3},Scroll:{...v0.Scroll,displayName:"Scroll",explorerUrl:"https://sepolia.scrollscan.dev/",explorerName:"Scrollscan",gasToken:"ETHscroll",chainId:534351,icon:Pe.SCROLL,maxBlockSearch:2e3},Blast:{...v0.Blast,displayName:"Blast",explorerUrl:"https://testnet.blastscan.io/",explorerName:"Blastscan",gasToken:"ETHblast",chainId:168587773,icon:Pe.BLAST,maxBlockSearch:2e3},Xlayer:{...v0.Xlayer,displayName:"X Layer",explorerUrl:"https://www.okx.com/web3/explorer/xlayer-test/",explorerName:"OKX Explorer",gasToken:"OKB",chainId:195,icon:Pe.XLAYER,maxBlockSearch:2e3},Mantle:{...v0.Mantle,displayName:"Mantle",explorerUrl:"https://explorer.testnet.mantle.xyz/",explorerName:"Mantle Explorer",gasToken:"MNT",chainId:5003,icon:Pe.MANTLE,maxBlockSearch:2e3}},$Oe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4-beta.2-development",SSR:!1},{REACT_APP_SEPOLIA_RPC:XOe,REACT_APP_BSC_TESTNET_RPC:JOe,REACT_APP_FUJI_RPC:eFe,REACT_APP_FANTOM_TESTNET_RPC:tFe,REACT_APP_ALFAJORES_RPC:nFe,REACT_APP_SOLANA_DEVNET_RPC:rFe,REACT_APP_MOONBASE_RPC:iFe,REACT_APP_SUI_TESTNET_RPC:sFe,REACT_APP_APTOS_TESTNET_RPC:aFe,REACT_APP_SEI_TESTNET_RPC:oFe,REACT_APP_BASE_SEPOLIA_RPC:cFe,REACT_APP_OSMOSIS_TESTNET_RPC:fFe,REACT_APP_INJECTIVE_TESTNET_RPC:uFe,REACT_APP_WORMCHAIN_TESTNET_RPC:lFe,REACT_APP_EVMOS_TESTNET_RPC:dFe,REACT_APP_COSMOSHUB_TESTNET_RPC:hFe,REACT_APP_KUJIRA_TESTNET_RPC:pFe,REACT_APP_KLAYTN_TESTNET_RPC:bFe,REACT_APP_SEI_REST:mFe,REACT_APP_EVMOS_REST:yFe,REACT_APP_ARBITRUM_SEPOLIA_RPC:gFe,REACT_APP_OPTIMISM_SEPOLIA_RPC:xFe,REACT_APP_APTOS_TESTNET_GRAPHQL:vFe,REACT_APP_SCROLL_TESTNET_RPC:wFe,REACT_APP_BLAST_TESTNET_RPC:MFe,REACT_APP_XLAYER_TESTNET_RPC:AFe,REACT_APP_MANTLE_TESTNET_RPC:EFe}=$Oe,SFe={...rn("Sepolia",XOe),...rn("Bsc",JOe),...rn("Avalanche",eFe),...rn("Fantom",tFe),...rn("Celo",nFe),...rn("Solana",rFe),...rn("Moonbeam",iFe),...rn("Sui",sFe),...rn("Aptos",aFe),...rn("Sei",oFe),...rn("BaseSepolia",cFe),...rn("Osmosis",fFe),...rn("Wormchain",lFe),...rn("ArbitrumSepolia",gFe),...rn("OptimismSepolia",xFe),...rn("Cosmoshub",hFe),...rn("Evmos",dFe),...rn("Kujira",pFe),...rn("Injective",uFe),...rn("Klaytn",bFe),...rn("Scroll",wFe),...rn("Blast",MFe),...rn("Xlayer",AFe),...rn("Mantle",EFe)},CFe={...rn("Sei",mFe),...rn("Evmos",yFe)},TFe={...rn("Aptos",vFe)},IFe={BNB:{key:"BNB",symbol:"BNB",nativeChain:"Bsc",icon:Pe.BNB,coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18,wrappedAsset:"WBNB"},WBNB:{key:"WBNB",symbol:"WBNB",nativeChain:"Bsc",icon:Pe.BNB,tokenId:{chain:"Bsc",address:"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"},coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18},AVAX:{key:"AVAX",symbol:"AVAX",nativeChain:"Avalanche",icon:Pe.AVAX,coinGeckoId:"avalanche-2",color:"#E84141",decimals:18,wrappedAsset:"WAVAX"},WAVAX:{key:"WAVAX",symbol:"WAVAX",nativeChain:"Avalanche",icon:Pe.AVAX,tokenId:{chain:"Avalanche",address:"0xd00ae08403B9bbb9124bB305C09058E32C39A48c"},coinGeckoId:"avalanche-2",color:"#E84141",decimals:18},USDCavax:{key:"USDCavax",symbol:"USDC",nativeChain:"Avalanche",icon:Pe.USDC,tokenId:{chain:"Avalanche",address:"0x5425890298aed601595a70AB815c96711a31Bc65"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},FTM:{key:"FTM",symbol:"FTM",nativeChain:"Fantom",icon:Pe.FANTOM,coinGeckoId:"Fantom",color:"#12B4EC",decimals:18,wrappedAsset:"WFTM"},WFTM:{key:"WFTM",symbol:"WFTM",nativeChain:"Fantom",icon:Pe.FANTOM,tokenId:{chain:"Fantom",address:"0xf1277d1Ed8AD466beddF92ef448A132661956621"},coinGeckoId:"Fantom",color:"#12B4EC",decimals:18},CELO:{key:"CELO",symbol:"CELO",nativeChain:"Celo",icon:Pe.CELO,tokenId:{chain:"Celo",address:"0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9"},coinGeckoId:"Celo",color:"#35D07E",decimals:18},USDCalfajores:{key:"USDCalfajores",symbol:"USDC.e",nativeChain:"Celo",icon:Pe.USDC,tokenId:{chain:"Celo",address:"0x72CAaa7e9889E0a63e016748179b43911A3ec9e5"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},GLMR:{key:"GLMR",symbol:"GLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,coinGeckoId:"moonbeam",color:"#e1147b",decimals:18,wrappedAsset:"WGLMR"},WGLMR:{key:"WGLMR",symbol:"WGLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,tokenId:{chain:"Moonbeam",address:"0xD909178CC99d318e4D46e7E66a972955859670E1"},coinGeckoId:"moonbeam",color:"#e1147b",decimals:18},SOL:{key:"SOL",symbol:"SOL",nativeChain:"Solana",icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9,wrappedAsset:"WSOL"},WSOL:{key:"WSOL",symbol:"WSOL",nativeChain:"Solana",tokenId:{chain:"Solana",address:"So11111111111111111111111111111111111111112"},icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9},USDCsol:{key:"USDCsol",symbol:"USDC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"},icon:Pe.USDC,coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},SUI:{key:"SUI",symbol:"SUI",nativeChain:"Sui",tokenId:{chain:"Sui",address:"0x2::sui::SUI"},icon:Pe.SUI,coinGeckoId:"Sui",color:"#8457EF",decimals:9},APT:{key:"APT",symbol:"APT",nativeChain:"Aptos",tokenId:{chain:"Aptos",address:"0x1::Aptos_coin::AptosCoin"},icon:Pe.APT,coinGeckoId:"Aptos",color:"#8457EF",decimals:8},KLAY:{key:"KLAY",symbol:"KLAY",decimals:18,nativeChain:"Klaytn",icon:Pe.KLAY,coinGeckoId:"klay-token",color:"#fa4212",wrappedAsset:"WKLAY"},WKLAY:{key:"WKLAY",symbol:"WKLAY",displayName:"wKLAY",nativeChain:"Klaytn",icon:Pe.KLAY,tokenId:{chain:"Klaytn",address:"0x0339d5Eb6D195Ba90B13ed1BCeAa97EbD198b106"},coinGeckoId:"wrapped-klay",color:"#fa4212",decimals:18},ETHsepolia:{key:"ETHsepolia",symbol:"ETH",nativeChain:"Sepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHsepolia"},WETHsepolia:{key:"WETHsepolia",symbol:"WETH",nativeChain:"Sepolia",icon:Pe.ETH,tokenId:{chain:"Sepolia",address:"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},USDCsepolia:{key:"USDCsepolia",symbol:"USDC",nativeChain:"Sepolia",icon:Pe.USDC,tokenId:{chain:"Sepolia",address:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},ETHarbitrum_sepolia:{key:"ETHarbitrum_sepolia",symbol:"ETH",nativeChain:"ArbitrumSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHarbitrum_sepolia"},WETHarbitrum_sepolia:{key:"WETHarbitrum_sepolia",symbol:"WETH",nativeChain:"ArbitrumSepolia",icon:Pe.ETH,tokenId:{chain:"ArbitrumSepolia",address:"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHbase_sepolia:{key:"ETHbase_sepolia",symbol:"ETH",nativeChain:"BaseSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHbase_sepolia"},WETHbase_sepolia:{key:"WETHbase_sepolia",symbol:"WETH",nativeChain:"BaseSepolia",icon:Pe.ETH,tokenId:{chain:"BaseSepolia",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHoptimism_sepolia:{key:"ETHoptimism_sepolia",symbol:"ETH",nativeChain:"OptimismSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHoptimism_sepolia"},WETHoptimism_sepolia:{key:"WETHoptimism_sepolia",symbol:"WETH",nativeChain:"OptimismSepolia",icon:Pe.ETH,tokenId:{chain:"OptimismSepolia",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHscroll:{key:"ETHscroll",symbol:"ETH",nativeChain:"Scroll",icon:Pe.SCROLL,coinGeckoId:"Ethereum",decimals:18,wrappedAsset:"WETHscroll"},WETHscroll:{key:"WETHscroll",symbol:"WETH",nativeChain:"Scroll",icon:Pe.SCROLL,tokenId:{chain:"Scroll",address:"0x5300000000000000000000000000000000000004"},coinGeckoId:"Ethereum",decimals:18},ETHblast:{key:"ETHblast",symbol:"ETH",nativeChain:"Blast",icon:Pe.BLAST,coinGeckoId:"Ethereum",decimals:18,wrappedAsset:"WETHblast"},WETHblast:{key:"WETHblast",symbol:"WETH",nativeChain:"Blast",icon:Pe.BLAST,tokenId:{chain:"Blast",address:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7"},coinGeckoId:"Ethereum",decimals:18},OKB:{key:"OKB",symbol:"OKB",nativeChain:"Xlayer",icon:Pe.XLAYER,coinGeckoId:"okb",decimals:18,wrappedAsset:"WOKB"},WOKB:{key:"WOKB",symbol:"WOKB",nativeChain:"Xlayer",icon:Pe.XLAYER,tokenId:{chain:"Xlayer",address:"0xa2aFfd8301BfB3c5b815829f2F509f053556D21B"},coinGeckoId:"okb",decimals:18},MNT:{key:"MNT",symbol:"MNT",nativeChain:"Mantle",icon:Pe.MANTLE,coinGeckoId:"mantle",decimals:18,wrappedAsset:"WMNT"},WMNT:{key:"WMNT",symbol:"WMNT",nativeChain:"Mantle",icon:Pe.MANTLE,tokenId:{chain:"Mantle",address:"0xa4c4cb2A072eE99f77212Fa18c2B7Ca26DA23905"},coinGeckoId:"mantle",decimals:18}},DFe={WBNB:{Avalanche:"0x10F1053bF2884b28ee0Bd7a2dDBa237Af3511d29",Fantom:"0xfB174b43228950C2055CFc25AE93f2DCe8E2beF0",Celo:"0xa8050be9389466c3c524F10F131f244ACbf21A0D",Moonbeam:"0x6097E80331B0c6aF4F74D7F2363E70Cb2Fd078A5",Solana:"BaGfF51MQ3a61papTRDYaNefBgTQ9ywnVne5fCff4bxT",Sui:"0xddcf8680a8a4b8a527d8c85ec203274991590c2ea898d1c4635b70164d9c584b::coin::COIN",Aptos:"0xa5894f5ddb8647e6143102aa336ff07374f7b32e88c1c703aef5b7c9a370bf80::coin::T",Klaytn:"0xEFa3626825C33C4cd83850920Ad7Ac0a392E1faE",Sepolia:"0x02CdD5eB55934663F0aD8fbA3516dC7DE4E22894"},WAVAX:{Bsc:"0x6cE9E2c8b59bbcf65dA375D3d8AB503c8524caf7",Fantom:"0x0f545Be981C37fB15ab7c65404648761e99016e4",Celo:"0x502c8C83008D9Dd812a7C5fB886C063060C73Dbf",Moonbeam:"0x2E8afeCC19842229358f3650cc3F091908dcbaB4",Solana:"3Ftc5hTz9sG4huk79onufGiebJNDMZNL8HYgdMJ9E7JR",Sui:"0xa600741c469fb57ed01497ddf101e798fa79a9c529bd176675c5c4d970811f80::coin::COIN",Aptos:"0xbe8f4301c0b54e870902b9a23eeb95ce74ac190531782aa3262337ceb145401a::coin::T",Blast:"0x74C6aA987658FcBaB9FdC2ee65f52Ddd5B2cEd95",Klaytn:"0x10257392a2B5e3C4D4bEe1607650a1C0C738202a",Scroll:"0x5Bd1ba0040C16b13894A6EbE3d55708c91eF08bb",Xlayer:"0xb13a464ceE7455A9b2941bFAe1bB1eB5A6833867"},USDCavax:{Bsc:"0x1cfeCf72bcBE1E429A21A5B11E708C7c397AaC54",Fantom:"0x6BC4E8D8c1d54656D1DeBCa96efc53aFd1408aD2",Celo:"0xDDB349c976cA2C873644F21f594767Eb5390C831",Moonbeam:"0x6533CE14804D113b1F494dC56c5D60A43cb5C3b5",Solana:"GQtMXZxnuacCFTXVeTvyHi6P9F6chbtzhVc8JgD8hv7c",Sui:"0x2aa8c885d04e676c4e87b7d0f94d4f3b243b1b5d93239d1cc41d5528ce1714c1::coin::COIN",Aptos:"0x2ef7697bdb33361ca39d228671203afc0dea3202e792d79d2072b761d87c834::coin::T"},WFTM:{Bsc:"0x9aB305B792DBdb8253bEE909E7006611Cb45175b",Avalanche:"0x094cB577C21Ab1360178beE74B9591fa12216dAD",Celo:"0xE6F8710cA14CFe7F5aAAD3A799C3d1D92dCba938",Moonbeam:"0x566c1cebc6A4AFa1C122E039C4BEBe77043148Ee",Solana:"DMw2tLaq1bVoAEKtkoUtieSk9bfCPUvubYLatTMsSVop",Sui:"0x14e756ff65e0ac810a5f69ca5276ef5b899a6df3c4717de1f85559d8b5ae6ea6::coin::COIN",Aptos:"0x533c6ade00d15d1e014c41e29e34853e87df92c4e01a6a3f41318dbd098048d6::coin::T",Klaytn:"0x097c8878A0d852581Dc4D8820151094Ddd3663Ac",Sepolia:"0x852132647d301B7EED02589B1dc73545E73c8596"},CELO:{Bsc:"0x1471698cBD9cAB0228F2EEA9303A2b3aA0ABDC2B",Avalanche:"0xC66d9c2b33c347d4A4441975f4688fcD5DD4c441",Fantom:"0xB18E73a69c3Aaea39a610372537Cf8482622d199",Moonbeam:"0x3406a9b09adf0cb36DC04c1523C4b294C6b79513",Solana:"84F2QX9278ToDmA98u4A86xSV9hz1ovazr8zwGaX6qjS",Sui:"0x81868174a6b11e1acc337b3414f9912455435d486609fb8d50b34312865085f2::coin::COIN",Aptos:"0xecbb0f7e7d049499ca83ca1358344f56557886f6f7adc740d6734cce7bfc9a14::coin::T",Klaytn:"0xC951826bbB310a8160BB78c2eEe6C98246292ba7",Sepolia:"0x648f226f3bDcAEdc844622d604F76935DC05bC24"},WGLMR:{Bsc:"0x5C31B36599ED7f06b09c0ffC7A2F928cE496F046",Avalanche:"0xf080782DF38eD5228D2FC2882d13D56c8f1D6f21",Fantom:"0x41E3CFDFC255A4bF3C8D3560Bc8D3D9b5080338e",Celo:"0x132D2172D89cd9CfD480A8887c6bF92360fB460e",Solana:"8987WGkYa5viiZ9DD8sS3PB5XghKmWjkEgmzvwDuoAEc",Sui:"0xeffae382de96981f7ddd2d294429924827e8f325d612487a12d6a0b249171002::coin::COIN",Aptos:"0x338373b6694f71dbeac5ca4a30503bf5f083888d71678aed31255de416be37c0::coin::T",Sepolia:"0x3F7CD70ECd402BBe71f45A95156A2CAC0d6A822E"},WSOL:{Bsc:"0x30f19eBba919954FDc020B8A20aEF13ab5e02Af0",Avalanche:"0xb10563644a6AB8948ee6d7f5b0a1fb15AaEa1E03",Fantom:"0xED1a08Fc69A7008d225890A96aaE258c465CC7ad",Celo:"0x05EEF2AE1A7A938D78598F7d9e8b97A9bED0c9eC",Sui:"0xbc03aaab4c11eb84df8bf39fdc714fa5d5b65b16eb7d155e22c74a68c8d4e17f::coin::COIN",Aptos:"0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T",Klaytn:"0x48D99C16638E6FFD2ED60375cD35ef6c139e5f41",Moonbeam:"0x5babD0d267Adf2081626654E51d1cABF8c477440",Sepolia:"0x824CB8fC742F8D3300d29f16cA8beE94471169f5"},USDCsol:{Bsc:"0x51a3cc54eA30Da607974C5D07B8502599801AC08"},SUI:{Bsc:"0x5A73D76e09Af2E428EC64aE10F91B78AC990B298",Avalanche:"0xfc5128F8556a6F059466E67740e6cC31EE5C2C47",Fantom:"0xd882AB49372eC093E8697B5153f54ab5e7738e3b",Celo:"0xa40d9E69ca9867C4bFbeC11Ce79C939991e9bf26",Solana:"BJZ72CjPQojVoH68mzrd4VQ4nr6KuhbAGnhZEZCujKxY",Aptos:"0x7b22d0e02f653d4fd1caddcfa4719a2b329da56eb81d8f27db703f02466c26a5::coin::T",Moonbeam:"0x2ed4B5B1071A3C676664E9085C0e3826542C1b27",Klaytn:"0xbA5F07a20681Add3A396E7606c6DC9B03d71d28A"},APT:{Bsc:"0x4A7Bd5E135f421057F97BbA8BCeeE5c18334f454",Avalanche:"0x996a3f12C1FcD7339Ea8801f629201e4d42EAD04",Fantom:"0xAb2297E8994149BA91737944E40891881aF762a4",Celo:"0xAC0a2fF7DD597de863878a3372142b07B614C125",Moonbeam:"0xCaa2A1d3BbbA0D1466571e83b4E2CbE04252593D",Solana:"7EvFD3JKCJVdtkAYdaSVKJsrPEJCzy2neJha7TREGrCa",Sui:"0x812d6feb8b84e55d47a0bfcae9fb6a4e7e09be5ec86ce0a729e0f67d5f59f477::coin::COIN"},WKLAY:{Bsc:"0x79D34FDb686B5D139949E4F92D83EEe376489176",Aptos:"0xa8ffe1ffe3057756019345cdf9cf3d1f1a3d9a355147dd9440878c448a057579::coin::T",Celo:"0x8e50fC4b7F8B7018E72475f78C640F973218C8Cf",Avalanche:"0x84f3298Bcc019BD5B995756494095e1Eb72B565C",Solana:"6p7qTfX4tRFtQovxwT77Jn9HFQEV7nxLbux9C31Tgm23",Fantom:"0x72A1C24dA7F08d11a7668E228Ec287Fc6ec16E48",Sepolia:"0x142D0E977768cA4De6f2161D9E5B5C9F00435F9e",Moonbeam:"0x6eFf019D79D4136e57A7FC141967F3D0AD41089a",Sui:"0xd4a59fb612b162df75a9d190c0f72098dcae883e88bd0eb28667c31f8208dc3c::coin::COIN"},WETHsepolia:{Solana:"6F5YWWrUMNpee8C6BDUc6DmRvYRMDDTgJHwKhbXuifWs",Celo:"0x890ad4a7eD5bD08b7d6638515157dF3bF4BaD1Bc",Bsc:"0x667a61Efa611399970AE927637dD6f9A16f51e40",Moonbeam:"0xa7276055a1d45fB9982575411801e10ac9970Da8",ArbitrumSepolia:"0x97Ee87C7Db6049669a518730a2Ee60d1Fc58844E",Avalanche:"0x12bFE94230daaE3d48067577F45b7b031dD357f3",Fantom:"0x7F96D67186561Aa17cEb699494E94bEE3F3499D4"},USDCsepolia:{Aptos:"0x3f2912a313c5bea312dbf19f9080101d2e762df6546a6fe9f60a4de72c93d015::coin::T",Solana:"23Adx8na44L3M1Nf9RrUpQPb41eufdRXKseg25FfcJtw",Celo:"0xD6A34325e5F6BE27b7006bf06651444196Da579a",Bsc:"0xb8850F591019F0794F813426d4A4A9b5fB8f23C8",BaseSepolia:"0x3F872340B6A75397aa9b0A463000349962a8795D",ArbitrumSepolia:"0x27B8F40Cf0915e729ae5A96970E91045Fe9724dF",Fantom:"0xa686203C86140142230f44A724281E1BEd09c369",Klaytn:"0x25f2a470a2e1E75DDAc40289AB277eDE4DD98aFa",Sui:"0x6529fef82a8a09470c550a3129bbd889030b62306f0c14161224b1a40ef1346f::coin::COIN"},WETHoptimism_sepolia:{ArbitrumSepolia:"0xa2610700cCA8361DECD27dB2564848C530f20813"}},kFe={chains:KOe,tokens:IFe,wrappedTokens:DFe,rpcs:SFe,rest:CFe,graphql:TFe,guardianSet:{index:0,keys:["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]}},{chains:B9}=JF.DEVNET,NFe={Ethereum:{...B9.Ethereum,displayName:"EVM",explorerUrl:"",explorerName:"",gasToken:"ETH",chainId:1,icon:Pe.ETH,maxBlockSearch:0},Osmosis:{...B9.Osmosis,displayName:"Osmosis",explorerUrl:"",explorerName:"",gasToken:"OSMO",chainId:"osmosis-1002",icon:Pe.OSMO,maxBlockSearch:0},Wormchain:{...B9.Wormchain,displayName:"Wormchain",explorerUrl:"",explorerName:"",gasToken:"WORM",chainId:"wormchain-1",icon:Pe.OSMO,maxBlockSearch:0},Terra2:{...B9.Terra2,displayName:"Terra",explorerUrl:"",explorerName:"",gasToken:"LUNA",chainId:"localterra",icon:Pe.OSMO,maxBlockSearch:0}},LFe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4-beta.2-development",SSR:!1},{REACT_APP_ETHEREUM_DEVNET_RPC:BFe,REACT_APP_OSMOSIS_DEVNET_RPC:jFe,REACT_APP_WORMCHAIN_DEVNET_RPC:RFe,REACT_APP_TERRA2_DEVNET_RPC:_Fe,REACT_APP_SEI_REST:OFe,REACT_APP_APTOS_DEVNET_REST:FFe}=LFe,PFe={...rn("Ethereum",BFe),...rn("Osmosis",jFe),...rn("Wormchain",RFe),...rn("Terra2",_Fe)},zFe={...rn("Sei",OFe)},UFe={...rn("Aptos",FFe)},WFe={ETH:{key:"ETH",symbol:"ETH",nativeChain:"Ethereum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#62688F",decimals:18,wrappedAsset:"WETH"},WETH:{key:"WETH",symbol:"WETH",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},TKN:{key:"TKN",symbol:"TKN",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0x2D8BE6BF0baA74e0A907016679CaE9190e80dD0A"},coinGeckoId:"ethereum",color:"#62688F",decimals:18}},HFe={},qFe={chains:NFe,tokens:WFe,wrappedTokens:HFe,rpcs:PFe,rest:zFe,graphql:UFe,guardianSet:{index:0,keys:["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]}},kfe="https://wormholescan.io/#/",GFe="1.1.4-beta.2-development",VFe="5534a95209cc64101f6b34f3fa3e7486d56a9233",BZ=["Ethereum","Solana","Arbitrum","Base","Sui","Bsc","Optimism","Fantom","Polygon","Avalanche","Osmosis","Celo","Moonbeam","Klaytn","Injective","Kujira","Scroll","Evmos","Mantle"];function YFe(t){return function(e){var r;const n={meta:{version:GFe,hash:VFe,host:(r=window==null?void 0:window.location)==null?void 0:r.host},...e};if(console.info("Wormhole Connect event:",n),t)try{t(n)}catch(i){console.error("Error handling event:",i)}}}const eP=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new Fe("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const QFe=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new Fe("So11111111111111111111111111111111111111112");new Fe("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const tP=t=>{const e=t.decode.bind(t),n=t.encode.bind(t);return{decode:e,encode:n}},ZFe=t=>e=>{const n=_r(t,e),{encode:r,decode:i}=tP(n),s=n;return s.decode=(a,o)=>{const f=i(a,o);return W1e(ze.Buffer.from(f))},s.encode=(a,o,f)=>{const u=OF(a,t);return r(u,o,f)},s},B1=ZFe(8),Zh=t=>{const e=Mn(t),{encode:n,decode:r}=tP(e),i=e;return i.decode=(s,a)=>!!r(s,a),i.encode=(s,a,o)=>{const f=Number(s);return n(f,a,o)},i},Vn=t=>{const e=_r(32,t),{encode:n,decode:r}=tP(e),i=e;return i.decode=(s,a)=>{const o=r(s,a);return new Fe(o)},i.encode=(s,a,o)=>{const f=s.toBuffer();return n(f,a,o)},i};let rg=class extends Error{constructor(e){super(e)}},KFe=class extends rg{constructor(){super(...arguments),this.name="TokenAccountNotFoundError"}};class $Fe extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountError"}}let XFe=class extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountOwnerError"}},jZ=class extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountSizeError"}},JFe=class extends rg{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}};var SB;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Mint=1]="Mint",t[t.Account=2]="Account"})(SB||(SB={}));const ePe=1,tPe=_t([Mn("m"),Mn("n"),Zh("isInitialized"),Vn("signer1"),Vn("signer2"),Vn("signer3"),Vn("signer4"),Vn("signer5"),Vn("signer6"),Vn("signer7"),Vn("signer8"),Vn("signer9"),Vn("signer10"),Vn("signer11")]),nPe=tPe.span;var nw;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initialized=1]="Initialized",t[t.Frozen=2]="Frozen"})(nw||(nw={}));const Nfe=_t([Vn("mint"),Vn("owner"),B1("amount"),Ft("delegateOption"),Vn("delegate"),Mn("state"),Ft("isNativeOption"),B1("isNative"),B1("delegatedAmount"),Ft("closeAuthorityOption"),Vn("closeAuthority")]),Z3=Nfe.span;async function Lfe(t,e,n,r=eP){const i=await t.getAccountInfo(e,n);return rPe(e,i,r)}function rPe(t,e,n=eP){if(!e)throw new KFe;if(!e.owner.equals(n))throw new XFe;if(e.data.length<Z3)throw new jZ;const r=Nfe.decode(e.data.slice(0,Z3));let i=ze.Buffer.alloc(0);if(e.data.length>Z3){if(e.data.length===nPe)throw new jZ;if(e.data[Z3]!=SB.Account)throw new $Fe;i=e.data.slice(Z3+ePe)}return{address:t,mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegateOption?r.delegate:null,delegatedAmount:r.delegatedAmount,isInitialized:r.state!==nw.Uninitialized,isFrozen:r.state===nw.Frozen,isNative:!!r.isNativeOption,rentExemptReserve:r.isNativeOption?r.isNative:null,closeAuthority:r.closeAuthorityOption?r.closeAuthority:null,tlvData:i}}const iPe=_t([Ft("mintAuthorityOption"),Vn("mintAuthority"),B1("supply"),Mn("decimals"),Zh("isInitialized"),Ft("freezeAuthorityOption"),Vn("freezeAuthority")]);iPe.span;function sPe(t,e,n=!1,r=eP,i=QFe){if(!n&&!Fe.isOnCurve(e.toBuffer()))throw new JFe;const[s]=Fe.findProgramAddressSync([e.toBuffer(),r.toBuffer(),t.toBuffer()],i);return s}function aPe(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=r}var a=t.length,o=t.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var w=0,E=0,I=0,T=x.length;I!==T&&x[I]===0;)I++,w++;for(var D=(T-I)*u+1>>>0,k=new Uint8Array(D);I!==T;){for(var N=x[I],R=0,_=D-1;(N!==0||R<E)&&_!==-1;_--,R++)N+=256*k[_]>>>0,k[_]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error("Non-zero carry");E=R,I++}for(var F=D-E;F!==D&&k[F]===0;)F++;for(var L=o.repeat(w);F<D;++F)L+=t.charAt(k[F]);return L}function m(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;for(var w=0,E=0,I=0;x[w]===o;)E++,w++;for(var T=(x.length-w)*f+1>>>0,D=new Uint8Array(T);x[w];){var k=e[x.charCodeAt(w)];if(k===255)return;for(var N=0,R=T-1;(k!==0||N<I)&&R!==-1;R--,N++)k+=a*D[R]>>>0,D[R]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");I=N,w++}for(var _=T-I;_!==T&&D[_]===0;)_++;for(var F=new Uint8Array(E+(T-_)),L=E;_!==T;)F[L++]=D[_++];return F}function y(x){var w=m(x);if(w)return w;throw new Error("Non-base"+a+" character")}return{encode:h,decodeUnsafe:m,decode:y}}var oPe=aPe;const cPe=oPe,fPe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var uPe=cPe(fPe);const Bfe=hs(uPe);function lPe(t){return t>64&&t<91?t-65:t>96&&t<123?t-71:t>47&&t<58?t+4:t===43?62:t===47?63:0}function Kh(t,e){for(var n=t.replace(/[^A-Za-z0-9+/]/g,""),r=n.length,i=r*3+1>>2,s=new Uint8Array(i),a,o,f=0,u=0,h=0;h<r;h++)if(o=h&3,f|=lPe(n.charCodeAt(h))<<6*(3-o),o===3||r-h===1){for(a=0;a<3&&u<i;a++,u++)s[u]=f>>>(16>>>a&24)&255;f=0}return s}function j9(t){return t<26?t+65:t<52?t+71:t<62?t-4:t===62?43:t===63?47:65}function N6(t){for(var e=2,n="",r=t.length,i=0,s=0;s<r;s++)e=s%3,s>0&&s*4/3%76===0&&(n+=""),i|=t[s]<<(16>>>e&24),(e===2||t.length-s===1)&&(n+=String.fromCodePoint(j9(i>>>18&63),j9(i>>>12&63),j9(i>>>6&63),j9(i&63)),i=0);return n.slice(0,n.length-2+e)+(e===2?"":e===1?"=":"==")}function nP(t){let e=t.replace("0x","").match(/.{1,2}/g).map(n=>parseInt(n,16));if(e===null)throw new Error(`Unable to parse HEX: ${t}`);return Uint8Array.from(e)}function rP(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}var dPe=32;function WD(t,e){let n=new Uint8Array(e),r=0;for(;t>0;)n[r]=Number(t%BigInt(256)),t=t/BigInt(256),r+=1;return n}var iP=t=>Bfe.encode(t),sP=t=>Bfe.decode(t),hPe=class{constructor(t){this.bytePosition=0,this.dataView=new DataView(t.buffer)}shift(t){return this.bytePosition+=t,this}read8(){let t=this.dataView.getUint8(this.bytePosition);return this.shift(1),t}read16(){let t=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),t}read32(){let t=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),t}read64(){let t=this.read32(),n=this.read32().toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read128(){let t=BigInt(this.read64()),n=BigInt(this.read64()).toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read256(){let t=BigInt(this.read128()),n=BigInt(this.read128()).toString(16)+t.toString(16).padStart(16,"0");return BigInt("0x"+n).toString(10)}readBytes(t){let e=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,e,t);return this.shift(t),n}readULEB(){let t=this.bytePosition+this.dataView.byteOffset,e=new Uint8Array(this.dataView.buffer,t),{value:n,length:r}=mPe(e);return this.shift(r),n}readVec(t){let e=this.readULEB(),n=[];for(let r=0;r<e;r++)n.push(t(this,r,e));return n}},pPe=class{constructor({size:t=1024,maxSize:e,allocateSize:n=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=e||t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){const e=this.bytePosition+t;if(e>this.size){const n=Math.min(this.maxSize,this.size+this.allocateSize);if(e>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${e}`);this.size=n;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return WD(BigInt(t),8).forEach(e=>this.write8(e)),this}write128(t){return WD(BigInt(t),16).forEach(e=>this.write8(e)),this}write256(t){return WD(BigInt(t),32).forEach(e=>this.write8(e)),this}writeULEB(t){return bPe(t).forEach(e=>this.write8(e)),this}writeVec(t,e){return this.writeULEB(t.length),Array.from(t).forEach((n,r)=>e(this,n,r,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return yPe(this.toBytes(),t)}};function bPe(t){let e=[],n=0;if(t===0)return[0];for(;t>0;)e[n]=t&127,(t>>=7)&&(e[n]|=128),n+=1;return e}function mPe(t){let e=0,n=0,r=0;for(;;){let i=t[r];if(r+=1,e|=(i&127)<<n,!(i&128))break;n+=7}return{value:e,length:r}}var Sb=class{constructor(t){if(this.types=new Map,this.counter=0,t instanceof Sb){this.schema=t.schema,this.types=new Map(t.types);return}if(this.schema=t,this.registerAddressType(Sb.ADDRESS,t.addressLength,t.addressEncoding),this.registerVectorType(t.vectorType),t.types&&t.types.structs)for(let e of Object.keys(t.types.structs))this.registerStructType(e,t.types.structs[e]);if(t.types&&t.types.enums)for(let e of Object.keys(t.types.enums))this.registerEnumType(e,t.types.enums[e]);if(t.types&&t.types.aliases)for(let e of Object.keys(t.types.aliases))this.registerAlias(e,t.types.aliases[e]);t.withPrimitives!==!1&&xPe(this)}tempKey(){return`bcs-struct-${++this.counter}`}ser(t,e,n){if(typeof t=="string"||Array.isArray(t)){const{name:r,params:i}=this.parseTypeName(t);return this.getTypeInterface(r).encode(this,e,n,i)}if(typeof t=="object"){const r=this.tempKey();return new Sb(this).registerStructType(r,t).ser(r,e,n)}throw new Error(`Incorrect type passed into the '.ser()' function.
109
+ `,I=E+w.join(E);console.error(x.error.message,I)}throw new Md({action:"simulate",signature:"",transactionMessage:x.error.message,logs:w})}return x.result}async sendTransaction(e,n,r){if("version"in e){if(n&&Array.isArray(n))throw new Error("Invalid arguments");const a=e.serialize();return await this.sendRawTransaction(a,n)}if(n===void 0||!Array.isArray(n))throw new Error("Invalid arguments");const i=n;if(e.nonceInfo)e.sign(...i);else{let a=this._disableBlockhashCaching;for(;;){const o=await this._blockhashWithExpiryBlockHeight(a);if(e.lastValidBlockHeight=o.lastValidBlockHeight,e.recentBlockhash=o.blockhash,e.sign(...i),!e.signature)throw new Error("!signature");const f=e.signature.toString("base64");if(this._blockhashInfo.transactionSignatures.includes(f))a=!0;else{this._blockhashInfo.transactionSignatures.push(f);break}}}const s=e.serialize();return await this.sendRawTransaction(s,r)}async sendRawTransaction(e,n){const r=Hn(e).toString("base64");return await this.sendEncodedTransaction(r,n)}async sendEncodedTransaction(e,n){const r={encoding:"base64"},i=n&&n.skipPreflight,s=i===!0?"processed":n&&n.preflightCommitment||this.commitment;n&&n.maxRetries!=null&&(r.maxRetries=n.maxRetries),n&&n.minContextSlot!=null&&(r.minContextSlot=n.minContextSlot),i&&(r.skipPreflight=i),s&&(r.preflightCommitment=s);const a=[e,r],o=await this._rpcRequest("sendTransaction",a),f=Bt(o,C_e);if("error"in f){let u;throw"data"in f.error&&(u=f.error.data.logs),new Md({action:i?"send":"simulate",signature:"",transactionMessage:f.error.message,logs:u})}return f.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval(()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()},5e3),this._updateSubscriptions()}_wsOnError(e){this._rpcWebSocketConnected=!1,console.error("ws error:",e.message)}_wsOnClose(e){if(this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),e===1e3){this._updateSubscriptions();return}this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach(([n,r])=>{this._setSubscription(n,{...r,state:"pending"})})}_setSubscription(e,n){var i;const r=(i=this._subscriptionsByHash[e])==null?void 0:i.state;if(this._subscriptionsByHash[e]=n,r!==n.state){const s=this._subscriptionStateChangeCallbacksByHash[e];s&&s.forEach(a=>{try{a(n.state)}catch{}})}}_onSubscriptionStateChange(e,n){var s;const r=this._subscriptionHashByClientSubscriptionId[e];if(r==null)return()=>{};const i=(s=this._subscriptionStateChangeCallbacksByHash)[r]||(s[r]=new Set);return i.add(n),()=>{i.delete(n),i.size===0&&delete this._subscriptionStateChangeCallbacksByHash[r]}}async _updateSubscriptions(){if(Object.keys(this._subscriptionsByHash).length===0){this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout(()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(r){r instanceof Error&&console.log(`Error when closing socket connection: ${r.message}`)}},500));return}if(this._rpcWebSocketIdleTimeout!==null&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected){this._rpcWebSocket.connect();return}const e=this._rpcWebSocketGeneration,n=()=>e===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map(async r=>{const i=this._subscriptionsByHash[r];if(i!==void 0)switch(i.state){case"pending":case"unsubscribed":if(i.callbacks.size===0){delete this._subscriptionsByHash[r],i.state==="unsubscribed"&&delete this._subscriptionCallbacksByServerSubscriptionId[i.serverSubscriptionId],await this._updateSubscriptions();return}await(async()=>{const{args:s,method:a}=i;try{this._setSubscription(r,{...i,state:"subscribing"});const o=await this._rpcWebSocket.call(a,s);this._setSubscription(r,{...i,serverSubscriptionId:o,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[o]=i.callbacks,await this._updateSubscriptions()}catch(o){if(o instanceof Error&&console.error(`${a} error for argument`,s,o.message),!n())return;this._setSubscription(r,{...i,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":i.callbacks.size===0&&await(async()=>{const{serverSubscriptionId:s,unsubscribeMethod:a}=i;if(this._subscriptionsAutoDisposedByRpc.has(s))this._subscriptionsAutoDisposedByRpc.delete(s);else{this._setSubscription(r,{...i,state:"unsubscribing"}),this._setSubscription(r,{...i,state:"unsubscribing"});try{await this._rpcWebSocket.call(a,[s])}catch(o){if(o instanceof Error&&console.error(`${a} error:`,o.message),!n())return;this._setSubscription(r,{...i,state:"subscribed"}),await this._updateSubscriptions();return}}this._setSubscription(r,{...i,state:"unsubscribed"}),await this._updateSubscriptions()})();break}}))}_handleServerNotification(e,n){const r=this._subscriptionCallbacksByServerSubscriptionId[e];r!==void 0&&r.forEach(i=>{try{i(...n)}catch(s){console.error(s)}})}_wsOnAccountNotification(e){const{result:n,subscription:r}=Bt(e,ZRe);this._handleServerNotification(r,[n.value,n.context])}_makeSubscription(e,n){const r=this._nextClientSubscriptionId++,i=gZ([e.method,n]),s=this._subscriptionsByHash[i];return s===void 0?this._subscriptionsByHash[i]={...e,args:n,callbacks:new Set([e.callback]),state:"pending"}:s.callbacks.add(e.callback),this._subscriptionHashByClientSubscriptionId[r]=i,this._subscriptionDisposeFunctionsByClientSubscriptionId[r]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[r],delete this._subscriptionHashByClientSubscriptionId[r];const a=this._subscriptionsByHash[i];dr(a!==void 0,`Could not find a \`Subscription\` when tearing down client subscription #${r}`),a.callbacks.delete(e.callback),await this._updateSubscriptions()},this._updateSubscriptions(),r}onAccountChange(e,n,r){const{commitment:i,config:s}=Wr(r),a=this._buildArgs([e.toBase58()],i||this._commitment||"finalized","base64",s);return this._makeSubscription({callback:n,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},a)}async removeAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"account change")}_wsOnProgramAccountNotification(e){const{result:n,subscription:r}=Bt(e,$Re);this._handleServerNotification(r,[{accountId:n.value.pubkey,accountInfo:n.value.account},n.context])}onProgramAccountChange(e,n,r,i){const{commitment:s,config:a}=Wr(r),o=this._buildArgs([e.toBase58()],s||this._commitment||"finalized","base64",a||(i?{filters:vZ(i)}:void 0));return this._makeSubscription({callback:n,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},o)}async removeProgramAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"program account change")}onLogs(e,n,r){const i=this._buildArgs([typeof e=="object"?{mentions:[e.toString()]}:e],r||this._commitment||"finalized");return this._makeSubscription({callback:n,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},i)}async removeOnLogsListener(e){await this._unsubscribeClientSubscription(e,"logs")}_wsOnLogsNotification(e){const{result:n,subscription:r}=Bt(e,I_e);this._handleServerNotification(r,[n.value,n.context])}_wsOnSlotNotification(e){const{result:n,subscription:r}=Bt(e,JRe);this._handleServerNotification(r,[n])}onSlotChange(e){return this._makeSubscription({callback:e,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(e){await this._unsubscribeClientSubscription(e,"slot change")}_wsOnSlotUpdatesNotification(e){const{result:n,subscription:r}=Bt(e,t_e);this._handleServerNotification(r,[n])}onSlotUpdate(e){return this._makeSubscription({callback:e,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(e){await this._unsubscribeClientSubscription(e,"slot update")}async _unsubscribeClientSubscription(e,n){const r=this._subscriptionDisposeFunctionsByClientSubscriptionId[e];r?await r():console.warn(`Ignored unsubscribe request because an active subscription with id \`${e}\` for '${n}' events could not be found.`)}_buildArgs(e,n,r,i){const s=n||this._commitment;if(s||r||i){let a={};r&&(a.encoding=r),s&&(a.commitment=s),i&&(a=Object.assign(a,i)),e.push(a)}return e}_buildArgsAtLeastConfirmed(e,n,r,i){const s=n||this._commitment;if(s&&!["confirmed","finalized"].includes(s))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(e,n,r,i)}_wsOnSignatureNotification(e){const{result:n,subscription:r}=Bt(e,n_e);n.value!=="receivedSignature"&&this._subscriptionsAutoDisposedByRpc.add(r),this._handleServerNotification(r,n.value==="receivedSignature"?[{type:"received"},n.context]:[{type:"status",result:n.value},n.context])}onSignature(e,n,r){const i=this._buildArgs([e],r||this._commitment||"finalized"),s=this._makeSubscription({callback:(a,o)=>{if(a.type==="status"){n(a.result,o);try{this.removeSignatureListener(s)}catch{}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},i);return s}onSignatureWithOptions(e,n,r){const{commitment:i,...s}={...r,commitment:r&&r.commitment||this._commitment||"finalized"},a=this._buildArgs([e],i,void 0,s),o=this._makeSubscription({callback:(f,u)=>{n(f,u);try{this.removeSignatureListener(o)}catch{}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},a);return o}async removeSignatureListener(e){await this._unsubscribeClientSubscription(e,"signature result")}_wsOnRootNotification(e){const{result:n,subscription:r}=Bt(e,r_e);this._handleServerNotification(r,[n])}onRootChange(e){return this._makeSubscription({callback:e,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(e){await this._unsubscribeClientSubscription(e,"root change")}};class jo{constructor(e){this._keypair=void 0,this._keypair=e??bZ()}static generate(){return new jo(bZ())}static fromSecretKey(e,n){if(e.byteLength!==64)throw new Error("bad secret key size");const r=e.slice(32,64);if(!n||!n.skipValidation){const i=e.slice(0,32),s=ew(i);for(let a=0;a<32;a++)if(r[a]!==s[a])throw new Error("provided secretKey is invalid")}return new jo({publicKey:r,secretKey:e})}static fromSeed(e){const n=ew(e),r=new Uint8Array(64);return r.set(e),r.set(n,32),new jo({publicKey:n,secretKey:r})}get publicKey(){return new Fe(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}}const zf=Object.freeze({CreateLookupTable:{index:0,layout:_t([Ft("instruction"),M8("recentSlot"),Mn("bumpSeed")])},FreezeLookupTable:{index:1,layout:_t([Ft("instruction")])},ExtendLookupTable:{index:2,layout:_t([Ft("instruction"),M8(),d0($n(),rd(Ft(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:_t([Ft("instruction")])},CloseLookupTable:{index:4,layout:_t([Ft("instruction")])}});class k_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(zf))if(a.index==r){i=s;break}if(!i)throw new Error("Invalid Instruction. Should be a LookupTable Instruction");return i}static decodeCreateLookupTable(e){this.checkProgramId(e.programId),this.checkKeysLength(e.keys,4);const{recentSlot:n}=Mr(zf.CreateLookupTable,e.data);return{authority:e.keys[1].pubkey,payer:e.keys[2].pubkey,recentSlot:Number(n)}}static decodeExtendLookupTable(e){if(this.checkProgramId(e.programId),e.keys.length<2)throw new Error(`invalid instruction; found ${e.keys.length} keys, expected at least 2`);const{addresses:n}=Mr(zf.ExtendLookupTable,e.data);return{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,payer:e.keys.length>2?e.keys[2].pubkey:void 0,addresses:n.map(r=>new Fe(r))}}static decodeCloseLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,3),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,recipient:e.keys[2].pubkey}}static decodeFreezeLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static decodeDeactivateLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(xm.programId))throw new Error("invalid instruction; programId is not AddressLookupTable Program")}static checkKeysLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}class xm{constructor(){}static createLookupTable(e){const[n,r]=Fe.findProgramAddressSync([e.authority.toBuffer(),OF(BigInt(e.recentSlot),8)],this.programId),i=zf.CreateLookupTable,s=sr(i,{recentSlot:BigInt(e.recentSlot),bumpSeed:r}),a=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:kn.programId,isSigner:!1,isWritable:!1}];return[new cr({programId:this.programId,keys:a,data:s}),n]}static freezeLookupTable(e){const n=zf.FreezeLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new cr({programId:this.programId,keys:i,data:r})}static extendLookupTable(e){const n=zf.ExtendLookupTable,r=sr(n,{addresses:e.addresses.map(s=>s.toBytes())}),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&i.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:kn.programId,isSigner:!1,isWritable:!1}),new cr({programId:this.programId,keys:i,data:r})}static deactivateLookupTable(e){const n=zf.DeactivateLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new cr({programId:this.programId,keys:i,data:r})}static closeLookupTable(e){const n=zf.CloseLookupTable,r=sr(n),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new cr({programId:this.programId,keys:i,data:r})}}xm.programId=new Fe("AddressLookupTab1e1111111111111111111111111");class N_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Mn("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(g1))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction");return i}static decodeRequestUnits(e){this.checkProgramId(e.programId);const{units:n,additionalFee:r}=Mr(g1.RequestUnits,e.data);return{units:n,additionalFee:r}}static decodeRequestHeapFrame(e){this.checkProgramId(e.programId);const{bytes:n}=Mr(g1.RequestHeapFrame,e.data);return{bytes:n}}static decodeSetComputeUnitLimit(e){this.checkProgramId(e.programId);const{units:n}=Mr(g1.SetComputeUnitLimit,e.data);return{units:n}}static decodeSetComputeUnitPrice(e){this.checkProgramId(e.programId);const{microLamports:n}=Mr(g1.SetComputeUnitPrice,e.data);return{microLamports:n}}static checkProgramId(e){if(!e.equals(ZF.programId))throw new Error("invalid instruction; programId is not ComputeBudgetProgram")}}const g1=Object.freeze({RequestUnits:{index:0,layout:_t([Mn("instruction"),Ft("units"),Ft("additionalFee")])},RequestHeapFrame:{index:1,layout:_t([Mn("instruction"),Ft("bytes")])},SetComputeUnitLimit:{index:2,layout:_t([Mn("instruction"),Ft("units")])},SetComputeUnitPrice:{index:3,layout:_t([Mn("instruction"),M8("microLamports")])}});class ZF{constructor(){}static requestUnits(e){const n=g1.RequestUnits,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static requestHeapFrame(e){const n=g1.RequestHeapFrame,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static setComputeUnitLimit(e){const n=g1.SetComputeUnitLimit,r=sr(n,e);return new cr({keys:[],programId:this.programId,data:r})}static setComputeUnitPrice(e){const n=g1.SetComputeUnitPrice,r=sr(n,{microLamports:BigInt(e.microLamports)});return new cr({keys:[],programId:this.programId,data:r})}}ZF.programId=new Fe("ComputeBudget111111111111111111111111111111");const EZ=64,SZ=32,CZ=64,TZ=_t([Mn("numSignatures"),Mn("padding"),vo("signatureOffset"),vo("signatureInstructionIndex"),vo("publicKeyOffset"),vo("publicKeyInstructionIndex"),vo("messageDataOffset"),vo("messageDataSize"),vo("messageInstructionIndex")]);class ZE{constructor(){}static createInstructionWithPublicKey(e){const{publicKey:n,message:r,signature:i,instructionIndex:s}=e;dr(n.length===SZ,`Public Key must be ${SZ} bytes but received ${n.length} bytes`),dr(i.length===CZ,`Signature must be ${CZ} bytes but received ${i.length} bytes`);const a=TZ.span,o=a+n.length,f=o+i.length,u=1,h=ve.Buffer.alloc(f+r.length),m=s??65535;return TZ.encode({numSignatures:u,padding:0,signatureOffset:o,signatureInstructionIndex:m,publicKeyOffset:a,publicKeyInstructionIndex:m,messageDataOffset:f,messageDataSize:r.length,messageInstructionIndex:m},h),h.fill(n,a),h.fill(i,o),h.fill(r,f),new cr({keys:[],programId:ZE.programId,data:h})}static createInstructionWithPrivateKey(e){const{privateKey:n,message:r,instructionIndex:i}=e;dr(n.length===EZ,`Private key must be ${EZ} bytes but received ${n.length} bytes`);try{const s=jo.fromSecretKey(n),a=s.publicKey.toBytes(),o=UF(r,s.secretKey);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:o,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}ZE.programId=new Fe("Ed25519SigVerify111111111111111111111111111");const L_e=(t,e)=>{const n=Ll.sign(t,e);return[n.toCompactRawBytes(),n.recovery]};Ll.utils.isValidPrivateKey;const B_e=Ll.getPublicKey,IZ=32,zD=20,DZ=64,j_e=11,UD=_t([Mn("numSignatures"),vo("signatureOffset"),Mn("signatureInstructionIndex"),vo("ethAddressOffset"),Mn("ethAddressInstructionIndex"),vo("messageDataOffset"),vo("messageDataSize"),Mn("messageInstructionIndex"),_r(20,"ethAddress"),_r(64,"signature"),Mn("recoveryId")]);class Mh{constructor(){}static publicKeyToEthAddress(e){dr(e.length===DZ,`Public key must be ${DZ} bytes but received ${e.length} bytes`);try{return ve.Buffer.from(gd(Hn(e))).slice(-zD)}catch(n){throw new Error(`Error constructing Ethereum address: ${n}`)}}static createInstructionWithPublicKey(e){const{publicKey:n,message:r,signature:i,recoveryId:s,instructionIndex:a}=e;return Mh.createInstructionWithEthAddress({ethAddress:Mh.publicKeyToEthAddress(n),message:r,signature:i,recoveryId:s,instructionIndex:a})}static createInstructionWithEthAddress(e){const{ethAddress:n,message:r,signature:i,recoveryId:s,instructionIndex:a=0}=e;let o;typeof n=="string"?n.startsWith("0x")?o=ve.Buffer.from(n.substr(2),"hex"):o=ve.Buffer.from(n,"hex"):o=n,dr(o.length===zD,`Address must be ${zD} bytes but received ${o.length} bytes`);const f=1+j_e,u=f,h=f+o.length,m=h+i.length+1,y=1,x=ve.Buffer.alloc(UD.span+r.length);return UD.encode({numSignatures:y,signatureOffset:h,signatureInstructionIndex:a,ethAddressOffset:u,ethAddressInstructionIndex:a,messageDataOffset:m,messageDataSize:r.length,messageInstructionIndex:a,signature:Hn(i),ethAddress:Hn(o),recoveryId:s},x),x.fill(Hn(r),UD.span),new cr({keys:[],programId:Mh.programId,data:x})}static createInstructionWithPrivateKey(e){const{privateKey:n,message:r,instructionIndex:i}=e;dr(n.length===IZ,`Private key must be ${IZ} bytes but received ${n.length} bytes`);try{const s=Hn(n),a=B_e(s,!1).slice(1),o=ve.Buffer.from(gd(Hn(r))),[f,u]=L_e(o,s);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:f,recoveryId:u,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}Mh.programId=new Fe("KeccakSecp256k11111111111111111111111111111");var vfe;const wfe=new Fe("StakeConfig11111111111111111111111111111111");class Mfe{constructor(e,n){this.staker=void 0,this.withdrawer=void 0,this.staker=e,this.withdrawer=n}}class tg{constructor(e,n,r){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=n,this.custodian=r}}vfe=tg;tg.default=new vfe(0,0,Fe.default);class R_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(a0))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a StakeInstruction");return i}static decodeInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:n,lockup:r}=Mr(a0.Initialize,e.data);return{stakePubkey:e.keys[0].pubkey,authorized:new Mfe(new Fe(n.staker),new Fe(n.withdrawer)),lockup:new tg(r.unixTimestamp,r.epoch,new Fe(r.custodian))}}static decodeDelegate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,6),Mr(a0.Delegate,e.data),{stakePubkey:e.keys[0].pubkey,votePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[5].pubkey}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:n,stakeAuthorizationType:r}=Mr(a0.Authorize,e.data),i={stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new Fe(n),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(i.custodianPubkey=e.keys[3].pubkey),i}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{newAuthorized:n,stakeAuthorizationType:r,authoritySeed:i,authorityOwner:s}=Mr(a0.AuthorizeWithSeed,e.data),a={stakePubkey:e.keys[0].pubkey,authorityBase:e.keys[1].pubkey,authoritySeed:i,authorityOwner:new Fe(s),newAuthorizedPubkey:new Fe(n),stakeAuthorizationType:{index:r}};return e.keys.length>3&&(a.custodianPubkey=e.keys[3].pubkey),a}static decodeSplit(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:n}=Mr(a0.Split,e.data);return{stakePubkey:e.keys[0].pubkey,splitStakePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[2].pubkey,lamports:n}}static decodeMerge(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),Mr(a0.Merge,e.data),{stakePubkey:e.keys[0].pubkey,sourceStakePubKey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:n}=Mr(a0.Withdraw,e.data),r={stakePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:n};return e.keys.length>5&&(r.custodianPubkey=e.keys[5].pubkey),r}static decodeDeactivate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),Mr(a0.Deactivate,e.data),{stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static checkProgramId(e){if(!e.equals(KE.programId))throw new Error("invalid instruction; programId is not StakeProgram")}static checkKeyLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}const a0=Object.freeze({Initialize:{index:0,layout:_t([Ft("instruction"),Oje(),Fje()])},Authorize:{index:1,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("stakeAuthorizationType")])},Delegate:{index:2,layout:_t([Ft("instruction")])},Split:{index:3,layout:_t([Ft("instruction"),Ta("lamports")])},Withdraw:{index:4,layout:_t([Ft("instruction"),Ta("lamports")])},Deactivate:{index:5,layout:_t([Ft("instruction")])},Merge:{index:7,layout:_t([Ft("instruction")])},AuthorizeWithSeed:{index:8,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("stakeAuthorizationType"),k6("authoritySeed"),$n("authorityOwner")])}}),__e=Object.freeze({Staker:{index:0},Withdrawer:{index:1}});class KE{constructor(){}static initialize(e){const{stakePubkey:n,authorized:r,lockup:i}=e,s=i||tg.default,a=a0.Initialize,o=sr(a,{authorized:{staker:Hn(r.staker.toBuffer()),withdrawer:Hn(r.withdrawer.toBuffer())},lockup:{unixTimestamp:s.unixTimestamp,epoch:s.epoch,custodian:Hn(s.custodian.toBuffer())}}),f={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:ds,isSigner:!1,isWritable:!1}],programId:this.programId,data:o};return new cr(f)}static createAccountWithSeed(e){const n=new yn;n.add(kn.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=e;return n.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static createAccount(e){const n=new yn;n.add(kn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=e;return n.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static delegate(e){const{stakePubkey:n,authorizedPubkey:r,votePubkey:i}=e,s=a0.Delegate,a=sr(s);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:wfe,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static authorize(e){const{stakePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:i,stakeAuthorizationType:s,custodianPubkey:a}=e,o=a0.Authorize,f=sr(o,{newAuthorized:Hn(i.toBuffer()),stakeAuthorizationType:s.index}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&u.push({pubkey:a,isSigner:!0,isWritable:!1}),new yn().add({keys:u,programId:this.programId,data:f})}static authorizeWithSeed(e){const{stakePubkey:n,authorityBase:r,authoritySeed:i,authorityOwner:s,newAuthorizedPubkey:a,stakeAuthorizationType:o,custodianPubkey:f}=e,u=a0.AuthorizeWithSeed,h=sr(u,{newAuthorized:Hn(a.toBuffer()),stakeAuthorizationType:o.index,authoritySeed:i,authorityOwner:Hn(s.toBuffer())}),m=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1}];return f&&m.push({pubkey:f,isSigner:!0,isWritable:!1}),new yn().add({keys:m,programId:this.programId,data:h})}static splitInstruction(e){const{stakePubkey:n,authorizedPubkey:r,splitStakePubkey:i,lamports:s}=e,a=a0.Split,o=sr(a,{lamports:s});return new cr({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static split(e,n){const r=new yn;return r.add(kn.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:n,space:this.space,programId:this.programId})),r.add(this.splitInstruction(e))}static splitWithSeed(e,n){const{stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,basePubkey:a,seed:o,lamports:f}=e,u=new yn;return u.add(kn.allocate({accountPubkey:s,basePubkey:a,seed:o,space:this.space,programId:this.programId})),n&&n>0&&u.add(kn.transfer({fromPubkey:e.authorizedPubkey,toPubkey:s,lamports:n})),u.add(this.splitInstruction({stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,lamports:f}))}static merge(e){const{stakePubkey:n,sourceStakePubKey:r,authorizedPubkey:i}=e,s=a0.Merge,a=sr(s);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static withdraw(e){const{stakePubkey:n,authorizedPubkey:r,toPubkey:i,lamports:s,custodianPubkey:a}=e,o=a0.Withdraw,f=sr(o,{lamports:s}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:xx,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&u.push({pubkey:a,isSigner:!0,isWritable:!1}),new yn().add({keys:u,programId:this.programId,data:f})}static deactivate(e){const{stakePubkey:n,authorizedPubkey:r}=e,i=a0.Deactivate,s=sr(i);return new yn().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:s})}}KE.programId=new Fe("Stake11111111111111111111111111111111111111");KE.space=200;class Afe{constructor(e,n,r,i){this.nodePubkey=void 0,this.authorizedVoter=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.nodePubkey=e,this.authorizedVoter=n,this.authorizedWithdrawer=r,this.commission=i}}class O_e{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const r=Ft("instruction").decode(e.data);let i;for(const[s,a]of Object.entries(x1))if(a.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a VoteInstruction");return i}static decodeInitializeAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,4);const{voteInit:n}=Mr(x1.InitializeAccount,e.data);return{votePubkey:e.keys[0].pubkey,nodePubkey:e.keys[3].pubkey,voteInit:new Afe(new Fe(n.nodePubkey),new Fe(n.authorizedVoter),new Fe(n.authorizedWithdrawer),n.commission)}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:n,voteAuthorizationType:r}=Mr(x1.Authorize,e.data);return{votePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new Fe(n),voteAuthorizationType:{index:r}}}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:n,currentAuthorityDerivedKeySeed:r,newAuthorized:i,voteAuthorizationType:s}}=Mr(x1.AuthorizeWithSeed,e.data);return{currentAuthorityDerivedKeyBasePubkey:e.keys[2].pubkey,currentAuthorityDerivedKeyOwnerPubkey:new Fe(n),currentAuthorityDerivedKeySeed:r,newAuthorizedPubkey:new Fe(i),voteAuthorizationType:{index:s},votePubkey:e.keys[0].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:n}=Mr(x1.Withdraw,e.data);return{votePubkey:e.keys[0].pubkey,authorizedWithdrawerPubkey:e.keys[2].pubkey,lamports:n,toPubkey:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(m3.programId))throw new Error("invalid instruction; programId is not VoteProgram")}static checkKeyLength(e,n){if(e.length<n)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${n}`)}}const x1=Object.freeze({InitializeAccount:{index:0,layout:_t([Ft("instruction"),Pje()])},Authorize:{index:1,layout:_t([Ft("instruction"),$n("newAuthorized"),Ft("voteAuthorizationType")])},Withdraw:{index:3,layout:_t([Ft("instruction"),Ta("lamports")])},UpdateValidatorIdentity:{index:4,layout:_t([Ft("instruction")])},AuthorizeWithSeed:{index:10,layout:_t([Ft("instruction"),zje()])}}),F_e=Object.freeze({Voter:{index:0},Withdrawer:{index:1}});class m3{constructor(){}static initializeAccount(e){const{votePubkey:n,nodePubkey:r,voteInit:i}=e,s=x1.InitializeAccount,a=sr(s,{voteInit:{nodePubkey:Hn(i.nodePubkey.toBuffer()),authorizedVoter:Hn(i.authorizedVoter.toBuffer()),authorizedWithdrawer:Hn(i.authorizedWithdrawer.toBuffer()),commission:i.commission}}),o={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:ds,isSigner:!1,isWritable:!1},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a};return new cr(o)}static createAccount(e){const n=new yn;return n.add(kn.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),n.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){const{votePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:i,voteAuthorizationType:s}=e,a=x1.Authorize,o=sr(a,{newAuthorized:Hn(i.toBuffer()),voteAuthorizationType:s.index}),f=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:f,programId:this.programId,data:o})}static authorizeWithSeed(e){const{currentAuthorityDerivedKeyBasePubkey:n,currentAuthorityDerivedKeyOwnerPubkey:r,currentAuthorityDerivedKeySeed:i,newAuthorizedPubkey:s,voteAuthorizationType:a,votePubkey:o}=e,f=x1.AuthorizeWithSeed,u=sr(f,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:Hn(r.toBuffer()),currentAuthorityDerivedKeySeed:i,newAuthorized:Hn(s.toBuffer()),voteAuthorizationType:a.index}}),h=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:f0,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new yn().add({keys:h,programId:this.programId,data:u})}static withdraw(e){const{votePubkey:n,authorizedWithdrawerPubkey:r,lamports:i,toPubkey:s}=e,a=x1.Withdraw,o=sr(a,{lamports:i}),f=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:f,programId:this.programId,data:o})}static safeWithdraw(e,n,r){if(e.lamports>n-r)throw new Error("Withdraw will leave vote account with insufficient funds.");return m3.withdraw(e)}static updateValidatorIdentity(e){const{votePubkey:n,authorizedWithdrawerPubkey:r,nodePubkey:i}=e,s=x1.UpdateValidatorIdentity,a=sr(s),o=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new yn().add({keys:o,programId:this.programId,data:a})}}m3.programId=new Fe("Vote111111111111111111111111111111111111111");m3.space=3762;const Efe=new Fe("Va1idator1nfo111111111111111111111111111111"),P_e=mt({name:Lt(),website:gn(Lt()),details:gn(Lt()),iconUrl:gn(Lt()),keybaseUsername:gn(Lt())});class KF{constructor(e,n){this.key=void 0,this.info=void 0,this.key=e,this.info=n}static fromConfigData(e){let n=[...e];if(Ws(n)!==2)return null;const i=[];for(let s=0;s<2;s++){const a=new Fe(Hs(n,0,L1)),o=y1(n)===1;i.push({publicKey:a,isSigner:o})}if(i[0].publicKey.equals(Efe)&&i[1].isSigner){const s=k6().decode(ve.Buffer.from(n)),a=JSON.parse(s);return H1e(a,P_e),new KF(i[1].publicKey,a)}return null}}const z_e=new Fe("Vote111111111111111111111111111111111111111"),U_e=_t([$n("nodePubkey"),$n("authorizedWithdrawer"),Mn("commission"),E0(),d0(_t([E0("slot"),Ft("confirmationCount")]),rd(Ft(),-8),"votes"),Mn("rootSlotValid"),E0("rootSlot"),E0(),d0(_t([E0("epoch"),$n("authorizedVoter")]),rd(Ft(),-8),"authorizedVoters"),_t([d0(_t([$n("authorizedPubkey"),E0("epochOfLastAuthorizedSwitch"),E0("targetEpoch")]),32,"buf"),E0("idx"),Mn("isEmpty")],"priorVoters"),E0(),d0(_t([E0("epoch"),E0("credits"),E0("prevCredits")]),rd(Ft(),-8),"epochCredits"),_t([E0("slot"),E0("timestamp")],"lastTimestamp")]);class $F{constructor(e){this.nodePubkey=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.rootSlot=void 0,this.votes=void 0,this.authorizedVoters=void 0,this.priorVoters=void 0,this.epochCredits=void 0,this.lastTimestamp=void 0,this.nodePubkey=e.nodePubkey,this.authorizedWithdrawer=e.authorizedWithdrawer,this.commission=e.commission,this.rootSlot=e.rootSlot,this.votes=e.votes,this.authorizedVoters=e.authorizedVoters,this.priorVoters=e.priorVoters,this.epochCredits=e.epochCredits,this.lastTimestamp=e.lastTimestamp}static fromAccountData(e){const r=U_e.decode(Hn(e),4);let i=r.rootSlot;return r.rootSlotValid||(i=null),new $F({nodePubkey:new Fe(r.nodePubkey),authorizedWithdrawer:new Fe(r.authorizedWithdrawer),commission:r.commission,votes:r.votes,rootSlot:i,authorizedVoters:r.authorizedVoters.map(W_e),priorVoters:H_e(r.priorVoters),epochCredits:r.epochCredits,lastTimestamp:r.lastTimestamp})}}function W_e({authorizedVoter:t,epoch:e}){return{epoch:e,authorizedVoter:new Fe(t)}}function kZ({authorizedPubkey:t,epochOfLastAuthorizedSwitch:e,targetEpoch:n}){return{authorizedPubkey:new Fe(t),epochOfLastAuthorizedSwitch:e,targetEpoch:n}}function H_e({buf:t,idx:e,isEmpty:n}){return n?[]:[...t.slice(e+1).map(kZ),...t.slice(0,e).map(kZ)]}const NZ={http:{devnet:"http://api.devnet.solana.com",testnet:"http://api.testnet.solana.com","mainnet-beta":"http://api.mainnet-beta.solana.com/"},https:{devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com","mainnet-beta":"https://api.mainnet-beta.solana.com/"}};function q_e(t,e){const n=e===!1?"http":"https";if(!t)return NZ[n].devnet;const r=NZ[n][t];if(!r)throw new Error(`Unknown ${n} cluster: ${t}`);return r}async function G_e(t,e,n,r){let i,s;n&&Object.prototype.hasOwnProperty.call(n,"lastValidBlockHeight")||n&&Object.prototype.hasOwnProperty.call(n,"nonceValue")?(i=n,s=r):s=n;const a=s&&{skipPreflight:s.skipPreflight,preflightCommitment:s.preflightCommitment||s.commitment,minContextSlot:s.minContextSlot},o=await t.sendRawTransaction(e,a),f=s&&s.commitment,h=(await(i?t.confirmTransaction(i,f):t.confirmTransaction(o,f))).value;if(h.err)throw o!=null?new Md({action:a!=null&&a.skipPreflight?"send":"simulate",signature:o,transactionMessage:`Status: (${JSON.stringify(h)})`}):new Error(`Raw transaction ${o} failed (${JSON.stringify(h)})`);return o}const p2=1e9,V_e=Object.freeze(Object.defineProperty({__proto__:null,Account:jje,AddressLookupTableAccount:vB,AddressLookupTableInstruction:k_e,AddressLookupTableProgram:xm,Authorized:Mfe,BLOCKHASH_CACHE_TIMEOUT_MS:ufe,BPF_LOADER_DEPRECATED_PROGRAM_ID:Rje,BPF_LOADER_PROGRAM_ID:eRe,BpfLoader:tRe,COMPUTE_BUDGET_INSTRUCTION_LAYOUTS:g1,ComputeBudgetInstruction:N_e,ComputeBudgetProgram:ZF,Connection:QE,Ed25519Program:ZE,Enum:Lje,EpochSchedule:cfe,FeeCalculatorLayout:afe,Keypair:jo,LAMPORTS_PER_SOL:p2,LOOKUP_TABLE_INSTRUCTION_LAYOUTS:zf,Loader:Qh,Lockup:tg,MAX_SEED_LENGTH:tfe,Message:Nc,MessageAccountKeys:ym,MessageV0:Yh,NONCE_ACCOUNT_LENGTH:xB,NonceAccount:GE,PACKET_DATA_SIZE:id,PUBLIC_KEY_LENGTH:L1,PublicKey:Fe,SIGNATURE_LENGTH_IN_BYTES:mm,SOLANA_SCHEMA:Xb,STAKE_CONFIG_ID:wfe,STAKE_INSTRUCTION_LAYOUTS:a0,SYSTEM_INSTRUCTION_LAYOUTS:Hr,SYSVAR_CLOCK_PUBKEY:f0,SYSVAR_EPOCH_SCHEDULE_PUBKEY:Gje,SYSVAR_INSTRUCTIONS_PUBKEY:sfe,SYSVAR_RECENT_BLOCKHASHES_PUBKEY:gx,SYSVAR_RENT_PUBKEY:ds,SYSVAR_REWARDS_PUBKEY:Vje,SYSVAR_SLOT_HASHES_PUBKEY:Yje,SYSVAR_SLOT_HISTORY_PUBKEY:Qje,SYSVAR_STAKE_HISTORY_PUBKEY:xx,Secp256k1Program:Mh,SendTransactionError:Md,SolanaJSONRPCError:nn,SolanaJSONRPCErrorCode:Zje,StakeAuthorizationLayout:__e,StakeInstruction:R_e,StakeProgram:KE,Struct:WF,SystemInstruction:Xje,SystemProgram:kn,Transaction:yn,TransactionExpiredBlockheightExceededError:HF,TransactionExpiredNonceInvalidError:h2,TransactionExpiredTimeoutError:qF,TransactionInstruction:cr,TransactionMessage:v8,TransactionStatus:lf,VALIDATOR_INFO_KEY:Efe,VERSION_PREFIX_MASK:HE,VOTE_PROGRAM_ID:z_e,ValidatorInfo:KF,VersionedMessage:GF,VersionedTransaction:w8,VoteAccount:$F,VoteAuthorizationLayout:F_e,VoteInit:Afe,VoteInstruction:O_e,VoteProgram:m3,clusterApiUrl:q_e,sendAndConfirmRawTransaction:G_e,sendAndConfirmTransaction:gB},Symbol.toStringTag,{value:"Module"})),ng="Solana",Y_e="11111111111111111111111111111111",g6=class g6{constructor(e){ce(this,"type","Native");ce(this,"address");g6.instanceof(e)?this.address=e.address:Xr.instanceof(e)?this.address=new Fe(e.toUint8Array()):typeof e=="string"&&Ji.valid(e)?this.address=new Fe(Ji.decode(e)):this.address=new Fe(e)}unwrap(){return this.address}toString(){return this.address.toBase58()}toUint8Array(){return new Uint8Array(this.address.toBytes())}toNative(){return this}toUniversalAddress(){return new Xr(this.toUint8Array())}static instanceof(e){return e.constructor.platform===g6.platform}equals(e){return g6.instanceof(e)?e.unwrap().equals(this.unwrap()):this.toUniversalAddress().equals(e)}};ce(g6,"byteSize",32),ce(g6,"platform",ng);let xr=g6;e3(ng,xr);function Q_e(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=r}var a=t.length,o=t.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var w=0,E=0,I=0,T=x.length;I!==T&&x[I]===0;)I++,w++;for(var D=(T-I)*u+1>>>0,k=new Uint8Array(D);I!==T;){for(var N=x[I],R=0,_=D-1;(N!==0||R<E)&&_!==-1;_--,R++)N+=256*k[_]>>>0,k[_]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error("Non-zero carry");E=R,I++}for(var F=D-E;F!==D&&k[F]===0;)F++;for(var L=o.repeat(w);F<D;++F)L+=t.charAt(k[F]);return L}function m(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;for(var w=0,E=0,I=0;x[w]===o;)E++,w++;for(var T=(x.length-w)*f+1>>>0,D=new Uint8Array(T);x[w];){var k=e[x.charCodeAt(w)];if(k===255)return;for(var N=0,R=T-1;(k!==0||N<I)&&R!==-1;R--,N++)k+=a*D[R]>>>0,D[R]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");I=N,w++}for(var _=T-I;_!==T&&D[_]===0;)_++;for(var F=new Uint8Array(E+(T-_)),L=E;_!==T;)F[L++]=D[_++];return F}function y(x){var w=m(x);if(w)return w;throw new Error("Non-base"+a+" character")}return{encode:h,decodeUnsafe:m,decode:y}}var Z_e=Q_e;const K_e=Z_e,$_e="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var X_e=K_e($_e);const Sfe=hs(X_e),aft=t=>Sfe.encode(t),J_e=t=>Sfe.decode(t),eOe=32;function oft(t){try{return J_e(t).length===eOe}catch{return!1}}const Cfe=32;function tOe(t){return nOe(t)&&rOe(t)===Cfe}function cft(t){return tOe(t)}function Tfe(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(Cfe*2,"0")}`}function Ife(t,e=!1){return Tfe(t,e)}function nOe(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function rOe(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}BigInt(1e9);const fft="0x1",iOe="0x2";Ife("0x6");const uft=`${iOe}::sui::SUI`;Ife("0x5");const Jb="::",sOe="0x2::sui::SUI",Dfe=t=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(t),aOe=t=>t.replace(/(0x)(0*)/g,"0x");function LZ(t){return t=t.startsWith("0x")?t.slice(2):t,t=t.length%2===0?t:"0"+t,`0x${t.length===64?t:Ji.encode(Mc.zpad(Ji.decode(t),32))}`}const lft=t=>{const e=t.split(Jb);if(e.length!==3)throw new Error(`Invalid Sui type: ${t}`);return[Tfe(e[0]),e[1],e[2]].join(Jb)},dft=t=>new XF(t).getCoinType(),hft=t=>new XF(t).getPackageId(),pft=t=>{const e=aOe(t).match(/0x2::table::Table<(.*)>/);if(!e)throw new Error(`Invalid table type: ${t}`);if(e.length<2)throw new Error(`Invalid table type: ${t}`);const[n]=e[1].split(",");if(!n||!Dfe(n))throw new Error(`Invalid key type: ${n}`);return n};var w1;let XF=(w1=class{constructor(e){ce(this,"address");ce(this,"module");if(w1.instanceof(e))this.address=e.address,this.module=e.module;else if(Xr.instanceof(e))this.address=e.toUint8Array();else if(typeof e=="string"){if(Dfe(e)){const n=e.split(Jb);this.module=n.slice(1).join(Jb),e=n[0]}if(e=LZ(e),!Ji.valid(e))throw new Error("Invalid Sui address: "+e);this.address=Ji.decode(e)}else this.address=e}unwrap(){const e=this.getPackageId(),n=this.module?Jb+this.module:"";return`${e}${n}`}toString(){return this.unwrap()}toNative(){return this}toUint8Array(){return this.address}toUniversalAddress(){return new Xr(this.toUint8Array())}getPackageId(){return LZ(Ji.encode(this.address))}getCoinType(){if(this.module==="sui::SUI")return sOe;if(!this.module)throw new Error("No module present in Sui token address");return this.unwrap()}static instanceof(e){return e.constructor.platform===w1.platform}equals(e){return w1.instanceof(e)?e.unwrap()===this.unwrap():this.toUniversalAddress().equals(e)}},ce(w1,"byteSize",32),ce(w1,"platform","Sui"),w1);e3("Sui",XF);async function oOe(t){try{const e=await Promise.all(t.map(async n=>n()));return await Promise.all(e.map(async n=>await cOe(n))),e}catch(e){throw console.error("Failed to load required packages",e),e}}async function cOe(t,e){try{let n=Object.entries(t.protocols);await Promise.all(n.map(([,r])=>r()))}catch(n){throw console.error("Failed to load required packages",n),n}}async function fOe(t,e,n){const r=(await oOe(e)).map(i=>i.Platform);return new Nn(t,r,n)}class $E extends rwe{constructor(n,r){super();ce(this,"conf");r?this.conf=r:this.conf=$E.getConfig(n),this.registerProviders()}get environment(){return this.conf.env}registerProviders(){var n;for(const r of Object.keys(this.conf.rpcs)){const i=Y1(r);if(!i)throw new Error(`Unknown chain ${r}`);this.registerDomain({domain:i,name:r}),((n=this.conf.chains[r])==null?void 0:n.context)===un.ETH&&this.registerRpcProvider(r,this.conf.rpcs[r])}}getContext(n){return this}static getConfig(n){return n==="Mainnet"?Vne:n==="Devnet"?Yne:Gne}}const p4=class p4 extends Error{constructor(){super(p4.MESSAGE)}};ce(p4,"MESSAGE","Insufficient funds for gas"),ce(p4,"MESSAGE_REGEX",/insufficient funds|Insufficient funds for gas/gm);let EB=p4;const JF={MAINNET:Vne,TESTNET:Gne,DEVNET:Yne};var Pe=(t=>(t[t.AVAX=1]="AVAX",t[t.BNB=2]="BNB",t[t.BSC=3]="BSC",t[t.CELO=4]="CELO",t[t.ETH=5]="ETH",t[t.FANTOM=6]="FANTOM",t[t.POLYGON=7]="POLYGON",t[t.SOLANA=8]="SOLANA",t[t.USDC=9]="USDC",t[t.GLMR=10]="GLMR",t[t.DAI=11]="DAI",t[t.USDT=12]="USDT",t[t.BUSD=13]="BUSD",t[t.WBTC=14]="WBTC",t[t.SUI=15]="SUI",t[t.APT=16]="APT",t[t.SEI=17]="SEI",t[t.BASE=18]="BASE",t[t.OSMO=19]="OSMO",t[t.TBTC=20]="TBTC",t[t.WSTETH=21]="WSTETH",t[t.ARBITRUM=22]="ARBITRUM",t[t.OPTIMISM=23]="OPTIMISM",t[t.ATOM=24]="ATOM",t[t.EVMOS=25]="EVMOS",t[t.KUJI=26]="KUJI",t[t.PYTH=27]="PYTH",t[t.INJ=28]="INJ",t[t.KLAY=29]="KLAY",t[t.NTT=30]="NTT",t[t.SCROLL=31]="SCROLL",t[t.BLAST=32]="BLAST",t[t.XLAYER=33]="XLAYER",t[t.MANTLE=34]="MANTLE",t))(Pe||{});class uOe{constructor(e,n){ce(this,"caches");this.caches={};for(const[r,i]of Object.entries(e)){const s=n[r];if(s)for(const a in s){const o=s[a],f=Nn.parseAddress(a,o);this.set(r,a,f)}if(i.tokenId)try{this.set(r,i.nativeChain,Nn.parseAddress(i.nativeChain,i.tokenId.address))}catch(a){console.error("Error caching foreign asset",i.tokenId,a)}}}get(e,n){const r=this.caches[n];return r&&r[e]||null}set(e,n,r){this.caches[n]||(this.caches[n]={});const i=this.caches[n];i[e]=r}}const{chains:n0}=JF.MAINNET,lOe={Ethereum:{...n0.Ethereum,displayName:"Ethereum",explorerUrl:"https://etherscan.io/",explorerName:"Etherscan",gasToken:"ETH",chainId:1,icon:Pe.ETH,maxBlockSearch:2e3},Bsc:{...n0.Bsc,displayName:"BSC",explorerUrl:"https://bscscan.com/",explorerName:"BscScan",gasToken:"BNB",chainId:56,icon:Pe.BSC,maxBlockSearch:2e3},Polygon:{...n0.Polygon,displayName:"Polygon",explorerUrl:"https://polygonscan.com/",explorerName:"PolygonScan",gasToken:"POL",chainId:137,icon:Pe.POLYGON,maxBlockSearch:1e3},Avalanche:{...n0.Avalanche,displayName:"Avalanche",explorerUrl:"https://avascan.info/blockchain/c/",explorerName:"Avascan",gasToken:"AVAX",chainId:43114,icon:Pe.AVAX,maxBlockSearch:2e3},Fantom:{...n0.Fantom,displayName:"Fantom",explorerUrl:"https://ftmscan.com/",explorerName:"FTMscan",gasToken:"FTM",chainId:250,icon:Pe.FANTOM,maxBlockSearch:2e3},Celo:{...n0.Celo,displayName:"Celo",explorerUrl:"https://explorer.celo.org/mainnet/",explorerName:"Celo Explorer",gasToken:"CELO",chainId:42220,icon:Pe.CELO,maxBlockSearch:2e3},Moonbeam:{...n0.Moonbeam,displayName:"Moonbeam",explorerUrl:"https://moonscan.io/",explorerName:"Moonscan",gasToken:"GLMR",chainId:1284,icon:Pe.GLMR,maxBlockSearch:2e3},Solana:{...n0.Solana,displayName:"Solana",explorerUrl:"https://explorer.solana.com/",explorerName:"Solana Explorer",gasToken:"SOL",chainId:0,icon:Pe.SOLANA,maxBlockSearch:2e3},Sui:{...n0.Sui,displayName:"Sui",explorerUrl:"https://suiscan.xyz/",explorerName:"Suiscan",gasToken:"SUI",chainId:0,icon:Pe.SUI,maxBlockSearch:0},Aptos:{...n0.Aptos,displayName:"Aptos",explorerUrl:"https://explorer.aptoslabs.com/",explorerName:"Aptos Explorer",gasToken:"APT",chainId:0,icon:Pe.APT,maxBlockSearch:0},Base:{...n0.Base,displayName:"Base",explorerUrl:"https://basescan.org/",explorerName:"BaseScan",gasToken:"ETHbase",chainId:8453,icon:Pe.BASE,maxBlockSearch:2e3},Arbitrum:{...n0.Arbitrum,displayName:"Arbitrum",explorerUrl:"https://arbiscan.io/",explorerName:"Arbitrum Explorer",gasToken:"ETHarbitrum",chainId:42161,icon:Pe.ARBITRUM,maxBlockSearch:2e3},Optimism:{...n0.Optimism,displayName:"Optimism",explorerUrl:"https://optimistic.etherscan.io/",explorerName:"Optimistic Etherscan",gasToken:"ETHoptimism",chainId:10,icon:Pe.OPTIMISM,maxBlockSearch:2e3},Klaytn:{...n0.Klaytn,displayName:"Kaia",explorerUrl:"https://kaiascope.com/",explorerName:"Kaia Scope",gasToken:"KLAY",chainId:8217,icon:Pe.KLAY,maxBlockSearch:2e3},Scroll:{...n0.Scroll,displayName:"Scroll",explorerUrl:"https://scrollscan.com/",explorerName:"Scrollscan",gasToken:"ETHscroll",chainId:534352,icon:Pe.SCROLL,maxBlockSearch:2e3},Blast:{...n0.Blast,displayName:"Blast",explorerUrl:"https://blastscan.io/",explorerName:"Blastscan",gasToken:"ETHblast",chainId:81457,icon:Pe.BLAST,maxBlockSearch:2e3},Xlayer:{...n0.Xlayer,displayName:"X Layer",explorerUrl:"https://www.okx.com/web3/explorer/xlayer/",explorerName:"OKX Explorer",gasToken:"OKB",chainId:196,icon:Pe.XLAYER,maxBlockSearch:2e3},Mantle:{...n0.Mantle,displayName:"Mantle",explorerUrl:"https://explorer.mantle.xyz/",explorerName:"Mantle Explorer",gasToken:"MNT",chainId:5e3,icon:Pe.MANTLE,maxBlockSearch:2e3}},Qd=t=>{console.error(`Wormhole Connect: ${t}`)},rn=(t,e)=>e?{[t]:e}:{},dOe=(t,e)=>{if(!e)return t;const r=Object.values(t).map(i=>i.key);e:for(const i in e){const s=e[i];if(i in t){console.warn(`Skipping custom token config for "${i}" because it conflicts with a built-in`);continue}for(const a of Object.values(t))if(a.nativeChain===s.nativeChain&&a.symbol===s.symbol){console.warn(`Skipping custom token config for "${i}" because its symbol "${s.symbol}" and chain ${s.nativeChain} conflicts with a built-in`);continue e}if(r.includes(s.key)){console.warn(`Skipping custom token config for "${i}" because its key "${s.key}" conflicts with a built-in`);continue}console.info(`Accepted custom token config for "${i}"`),t[i]=s}return t},hOe=(t,e)=>{if(!e)return t;for(const n in e)t[n]={...e[n],...t[n]};return t},pOe=(t,e,n)=>{if(t){if(t.fromChain&&(e[t.fromChain]||(Qd(`Invalid chain name "${t.fromChain}" specified for defaultInputs.fromChain`),delete t.fromChain)),t.toChain&&(e[t.toChain]||(Qd(`Invalid chain name "${t.toChain}" specified for defaultInputs.toChain`),delete t.fromChain)),t.fromChain&&t.toChain&&t.fromChain===t.toChain&&Qd("Source and destination chain cannot be the same, check the defaultInputs configuration"),t.fromChain&&t.toChain&&t.requiredChain&&(e[t.requiredChain]||Qd(`Invalid network value "${t.requiredChain}" specified for defaultInputs.requiredChain`),t.toChain!==t.requiredChain&&t.fromChain!==t.requiredChain&&Qd("Source chain or destination chain must equal the required network")),t.tokenKey&&(n[t.tokenKey]||(Qd(`Invalid token "${t.tokenKey}" specified for defaultInputs.tokenKey`),delete t.tokenKey)),t.fromChain&&t.tokenKey){const r=e[t.fromChain],{tokenId:i,nativeChain:s}=n[t.tokenKey];!i&&s!==r.key&&Qd(`Invalid token "${t.tokenKey}" specified for defaultInputs.tokenKey. It does not exist on "${t.fromChain}"`)}return t}},bOe=t=>t[0].toUpperCase()+t.slice(1),mOe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4",SSR:!1},{REACT_APP_ETHEREUM_RPC:yOe,REACT_APP_SOLANA_RPC:gOe,REACT_APP_POLYGON_RPC:xOe,REACT_APP_BSC_RPC:vOe,REACT_APP_AVALANCHE_RPC:wOe,REACT_APP_FANTOM_RPC:MOe,REACT_APP_CELO_RPC:AOe,REACT_APP_MOONBEAM_RPC:EOe,REACT_APP_SUI_RPC:SOe,REACT_APP_APTOS_RPC:COe,REACT_APP_SEI_RPC:TOe,REACT_APP_BASE_RPC:IOe,REACT_APP_OSMOSIS_RPC:DOe,REACT_APP_INJECTIVE_RPC:kOe,REACT_APP_WORMCHAIN_RPC:NOe,REACT_APP_EVMOS_RPC:LOe,REACT_APP_KUJIRA_RPC:BOe,REACT_APP_KLAYTN_RPC:jOe,REACT_APP_SEI_REST:ROe,REACT_APP_EVMOS_REST:_Oe,REACT_APP_ARBITRUM_RPC:OOe,REACT_APP_OPTIMISM_RPC:FOe,REACT_APP_APTOS_GRAPHQL:POe,REACT_APP_SCROLL_RPC:zOe,REACT_APP_BLAST_RPC:UOe,REACT_APP_XLAYER_RPC:WOe,REACT_APP_MANTLE_RPC:HOe}=mOe,qOe={...rn("Ethereum",yOe),...rn("Solana",gOe),...rn("Polygon",xOe),...rn("Bsc",vOe),...rn("Avalanche",wOe),...rn("Fantom",MOe),...rn("Celo",AOe),...rn("Moonbeam",EOe),...rn("Sui",SOe),...rn("Aptos",COe),...rn("Sei",TOe),...rn("Base",IOe),...rn("Osmosis",DOe),...rn("Wormchain",NOe),...rn("Arbitrum",OOe),...rn("Optimism",FOe),...rn("Evmos",LOe),...rn("Kujira",BOe),...rn("Injective",kOe),...rn("Klaytn",jOe),...rn("Scroll",zOe),...rn("Blast",UOe),...rn("Xlayer",WOe),...rn("Mantle",HOe)},GOe={...rn("Sei",ROe),...rn("Evmos",_Oe)},VOe={...rn("Aptos",POe)},YOe={ETH:{key:"ETH",symbol:"ETH",nativeChain:"Ethereum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#38487d",decimals:18,wrappedAsset:"WETH"},WETH:{key:"WETH",symbol:"WETH",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDCeth:{key:"USDCeth",symbol:"USDC",nativeChain:"Ethereum",icon:Pe.USDC,tokenId:{chain:"Ethereum",address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},coinGeckoId:"usd-coin",color:"#ffffff",decimals:6},WBTC:{key:"WBTC",symbol:"WBTC",nativeChain:"Ethereum",icon:Pe.WBTC,tokenId:{chain:"Ethereum",address:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},coinGeckoId:"wrapped-bitcoin",color:"#ffffff",decimals:8},USDT:{key:"USDT",symbol:"USDT",nativeChain:"Ethereum",icon:Pe.USDT,tokenId:{chain:"Ethereum",address:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},coinGeckoId:"tether",color:"#ffffff",decimals:6},DAI:{key:"DAI",symbol:"DAI",nativeChain:"Ethereum",icon:Pe.DAI,tokenId:{chain:"Ethereum",address:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},coinGeckoId:"dai",color:"#FEFEFD",decimals:18},BUSD:{key:"BUSD",symbol:"BUSD",nativeChain:"Ethereum",icon:Pe.BUSD,tokenId:{chain:"Ethereum",address:"0x4Fabb145d64652a948d72533023f6E7A623C7C53"},coinGeckoId:"binance-usd",color:"#F0B90B",decimals:18},POL:{key:"POL",symbol:"POL",nativeChain:"Polygon",icon:Pe.POLYGON,coinGeckoId:"matic-network",color:"#8247E5",decimals:18,wrappedAsset:"WPOL"},WPOL:{key:"WPOL",symbol:"WPOL",nativeChain:"Polygon",icon:Pe.POLYGON,tokenId:{chain:"Polygon",address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},coinGeckoId:"matic-network",color:"#8247E5",decimals:18},WETHpolygon:{key:"WETHpolygon",symbol:"WETH",nativeChain:"Polygon",icon:Pe.ETH,tokenId:{chain:"Polygon",address:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"},coinGeckoId:"ethereum",color:"#D53424",decimals:18},USDCpolygon:{key:"USDCpolygon",symbol:"USDC",nativeChain:"Polygon",icon:Pe.USDC,tokenId:{chain:"Polygon",address:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTpolygon:{key:"USDTpolygon",symbol:"USDT",nativeChain:"Polygon",icon:Pe.USDT,tokenId:{chain:"Polygon",address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},coinGeckoId:"tether",color:"#ffffff",decimals:6},BNB:{key:"BNB",symbol:"BNB",nativeChain:"Bsc",icon:Pe.BNB,coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18,wrappedAsset:"WBNB"},WBNB:{key:"WBNB",symbol:"WBNB",nativeChain:"Bsc",icon:Pe.BNB,tokenId:{chain:"Bsc",address:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"},coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18},USDCbnb:{key:"USDCbnb",symbol:"USDC",nativeChain:"Bsc",icon:Pe.USDC,tokenId:{chain:"Bsc",address:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:18},AVAX:{key:"AVAX",symbol:"AVAX",nativeChain:"Avalanche",icon:Pe.AVAX,coinGeckoId:"avalanche-2",color:"#E84141",decimals:18,wrappedAsset:"WAVAX"},WAVAX:{key:"WAVAX",symbol:"WAVAX",nativeChain:"Avalanche",icon:Pe.AVAX,tokenId:{chain:"Avalanche",address:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7"},coinGeckoId:"avalanche-2",color:"#E84141",decimals:18},USDCavax:{key:"USDCavax",symbol:"USDC",nativeChain:"Avalanche",icon:Pe.USDC,tokenId:{chain:"Avalanche",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTavax:{key:"USDTavax",symbol:"USDT",nativeChain:"Avalanche",icon:Pe.USDT,tokenId:{chain:"Avalanche",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"},coinGeckoId:"tether",color:"#ffffff",decimals:6},WETHavax:{key:"WETHavax",symbol:"WETH",nativeChain:"Avalanche",icon:Pe.ETH,tokenId:{chain:"Avalanche",address:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},FTM:{key:"FTM",symbol:"FTM",nativeChain:"Fantom",icon:Pe.FANTOM,coinGeckoId:"fantom",color:"#12B4EC",decimals:18,wrappedAsset:"WFTM"},WFTM:{key:"WFTM",symbol:"WFTM",nativeChain:"Fantom",icon:Pe.FANTOM,tokenId:{chain:"Fantom",address:"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83"},coinGeckoId:"fantom",color:"#12B4EC",decimals:18},USDCfantom:{key:"USDCfantom",symbol:"USDC.e",nativeChain:"Fantom",icon:Pe.USDC,tokenId:{chain:"Fantom",address:"0x2F733095B80A04b38b0D10cC884524a3d09b836a"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},CELO:{key:"CELO",symbol:"CELO",nativeChain:"Celo",icon:Pe.CELO,tokenId:{chain:"Celo",address:"0x471EcE3750Da237f93B8E339c536989b8978a438"},coinGeckoId:"celo",color:"#35D07E",decimals:18},USDTcelo:{key:"USDTcelo",symbol:"USDT",nativeChain:"Celo",icon:Pe.USDT,tokenId:{chain:"Celo",address:"0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e"},coinGeckoId:"tether",color:"#ffffff",decimals:6},GLMR:{key:"GLMR",symbol:"GLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,coinGeckoId:"moonbeam",color:"#e1147b",decimals:18,wrappedAsset:"WGLMR"},WGLMR:{key:"WGLMR",symbol:"WGLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,tokenId:{chain:"Moonbeam",address:"0xAcc15dC74880C9944775448304B263D191c6077F"},coinGeckoId:"moonbeam",color:"#e1147b",decimals:18},SOL:{key:"SOL",symbol:"SOL",nativeChain:"Solana",icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9,wrappedAsset:"WSOL"},WSOL:{key:"WSOL",symbol:"WSOL",nativeChain:"Solana",tokenId:{chain:"Solana",address:"So11111111111111111111111111111111111111112"},icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9},USDCsol:{key:"USDCsol",symbol:"USDC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"},icon:Pe.USDC,coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTsol:{key:"USDTsol",symbol:"USDT",nativeChain:"Solana",icon:Pe.USDT,tokenId:{chain:"Solana",address:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"},coinGeckoId:"tether",color:"#ffffff",decimals:6},SUI:{key:"SUI",symbol:"SUI",nativeChain:"Sui",tokenId:{chain:"Sui",address:"0x2::sui::SUI"},icon:Pe.SUI,coinGeckoId:"sui",color:"#8457EF",decimals:9},APT:{key:"APT",symbol:"APT",nativeChain:"Aptos",tokenId:{chain:"Aptos",address:"0x1::aptos_coin::AptosCoin"},icon:Pe.APT,coinGeckoId:"aptos",color:"#8457EF",decimals:8},ETHarbitrum:{key:"ETHarbitrum",symbol:"ETH",nativeChain:"Arbitrum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHarbitrum"},WETHarbitrum:{key:"WETHarbitrum",symbol:"WETH",nativeChain:"Arbitrum",icon:Pe.ETH,tokenId:{chain:"Arbitrum",address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},coinGeckoId:"ethereum",color:"#5794EC",decimals:18},USDCarbitrum:{key:"USDCarbitrum",symbol:"USDC",nativeChain:"Arbitrum",icon:Pe.USDC,tokenId:{chain:"Arbitrum",address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTarbitrum:{key:"USDTarbitrum",symbol:"USDT",nativeChain:"Arbitrum",icon:Pe.USDT,tokenId:{chain:"Arbitrum",address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"},coinGeckoId:"tether",color:"#ffffff",decimals:6},ETHoptimism:{key:"ETHoptimism",symbol:"ETH",nativeChain:"Optimism",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#D53424",decimals:18,wrappedAsset:"WETHoptimism"},WETHoptimism:{key:"WETHoptimism",symbol:"WETH",nativeChain:"Optimism",icon:Pe.ETH,tokenId:{chain:"Optimism",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"ethereum",color:"#D53424",decimals:18},USDCoptimism:{key:"USDCoptimism",symbol:"USDC",nativeChain:"Optimism",icon:Pe.USDC,tokenId:{chain:"Optimism",address:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDToptimism:{key:"USDToptimism",symbol:"USDT",nativeChain:"Optimism",icon:Pe.USDT,tokenId:{chain:"Optimism",address:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"},coinGeckoId:"tether",color:"#ffffff",decimals:6},WETHbsc:{key:"WETHbsc",symbol:"WETH",nativeChain:"Bsc",icon:Pe.ETH,tokenId:{chain:"Bsc",address:"0x2170Ed0880ac9A755fd29B2688956BD959F933F8"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDTbsc:{key:"USDTbsc",symbol:"USDT",nativeChain:"Bsc",icon:Pe.USDT,tokenId:{chain:"Bsc",address:"0x55d398326f99059fF775485246999027B3197955"},coinGeckoId:"tether",color:"#ffffff",decimals:18},ETHbase:{key:"ETHbase",symbol:"ETH",nativeChain:"Base",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#62688F",decimals:18,wrappedAsset:"WETHbase"},WETHbase:{key:"WETHbase",symbol:"WETH",nativeChain:"Base",icon:Pe.ETH,tokenId:{chain:"Base",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},USDCbase:{key:"USDCbase",symbol:"USDC",nativeChain:"Base",icon:Pe.USDC,tokenId:{chain:"Base",address:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},USDTbase:{key:"USDTbase",symbol:"USDT",nativeChain:"Base",icon:Pe.USDT,tokenId:{chain:"Base",address:"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"},coinGeckoId:"tether",color:"#ffffff",decimals:6},wstETHbase:{key:"wstETHbase",symbol:"wstETH",nativeChain:"Base",tokenId:{chain:"Base",address:"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETH:{key:"wstETH",symbol:"wstETH",nativeChain:"Ethereum",tokenId:{chain:"Ethereum",address:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHarbitrum:{key:"wstETHarbitrum",symbol:"wstETH",nativeChain:"Arbitrum",tokenId:{chain:"Arbitrum",address:"0x5979D7b546E38E414F7E9822514be443A4800529"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHoptimism:{key:"wstETHoptimism",symbol:"wstETH",nativeChain:"Optimism",tokenId:{chain:"Optimism",address:"0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},wstETHpolygon:{key:"wstETHpolygon",symbol:"wstETH",nativeChain:"Polygon",tokenId:{chain:"Polygon",address:"0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD"},icon:Pe.WSTETH,coinGeckoId:"wrapped-steth",color:"#3AA3FF",decimals:18},KLAY:{key:"KLAY",symbol:"KLAY",decimals:18,nativeChain:"Klaytn",icon:Pe.KLAY,coinGeckoId:"klay-token",color:"#fa4212",wrappedAsset:"WKLAY"},WKLAY:{key:"WKLAY",symbol:"WKLAY",displayName:"wKLAY",nativeChain:"Klaytn",icon:Pe.KLAY,tokenId:{chain:"Klaytn",address:"0xe4f05A66Ec68B54A58B17c22107b02e0232cC817"},coinGeckoId:"wrapped-klay",color:"#fa4212",decimals:18},PYTH:{key:"PYTH",symbol:"PYTH",nativeChain:"Solana",tokenId:{chain:"Solana",address:"HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"},icon:Pe.PYTH,coinGeckoId:"pyth-network",color:"#E6DAFE",decimals:6},ETHscroll:{key:"ETHscroll",symbol:"ETH",nativeChain:"Scroll",icon:Pe.SCROLL,coinGeckoId:"ethereum",decimals:18,wrappedAsset:"WETHscroll"},WETHscroll:{key:"WETHscroll",symbol:"WETH",nativeChain:"Scroll",icon:Pe.SCROLL,tokenId:{chain:"Scroll",address:"0x5300000000000000000000000000000000000004"},coinGeckoId:"ethereum",decimals:18},ETHblast:{key:"ETHblast",symbol:"ETH",nativeChain:"Blast",icon:Pe.BLAST,coinGeckoId:"ethereum",decimals:18,wrappedAsset:"WETHblast"},WETHblast:{key:"WETHblast",symbol:"WETH",nativeChain:"Blast",icon:Pe.BLAST,tokenId:{chain:"Blast",address:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7"},coinGeckoId:"ethereum",decimals:18},OKB:{key:"OKB",symbol:"OKB",nativeChain:"Xlayer",icon:Pe.XLAYER,coinGeckoId:"okb",decimals:18,wrappedAsset:"WOKB"},WOKB:{key:"WOKB",symbol:"WOKB",nativeChain:"Xlayer",icon:Pe.XLAYER,tokenId:{chain:"Xlayer",address:"0xe538905cf8410324e03A5A23C1c177a474D59b2b"},coinGeckoId:"okb",decimals:18},MNT:{key:"MNT",symbol:"MNT",nativeChain:"Mantle",icon:Pe.MANTLE,coinGeckoId:"mantle",decimals:18,wrappedAsset:"WMNT"},WMNT:{key:"WMNT",symbol:"WMNT",nativeChain:"Mantle",icon:Pe.MANTLE,tokenId:{chain:"Mantle",address:"0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8"},coinGeckoId:"mantle",decimals:18},tBTC:{key:"tBTC",symbol:"tBTC",nativeChain:"Ethereum",tokenId:{chain:"Ethereum",address:"0x18084fbA666a33d37592fA2633fD49a74DD93a88"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCpolygon:{key:"tBTCpolygon",symbol:"tBTC",nativeChain:"Polygon",tokenId:{chain:"Polygon",address:"0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCoptimism:{key:"tBTCoptimism",symbol:"tBTC",nativeChain:"Optimism",tokenId:{chain:"Optimism",address:"0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCarbitrum:{key:"tBTCarbitrum",symbol:"tBTC",nativeChain:"Arbitrum",tokenId:{chain:"Arbitrum",address:"0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCbase:{key:"tBTCbase",symbol:"tBTC",nativeChain:"Base",tokenId:{chain:"Base",address:"0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:18},tBTCsol:{key:"tBTCsol",symbol:"tBTC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU"},icon:Pe.TBTC,coinGeckoId:"tbtc",color:"#000000",decimals:8}},QOe={WETH:{Bsc:"0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA",Polygon:"0x11CD37bb86F65419713f30673A480EA33c826872",Avalanche:"0x8b82A291F83ca07Af22120ABa21632088fC92931",Fantom:"0x2A126f043BDEBe5A0A9841c51915E562D9B07289",Celo:"0x66803FB87aBd4aaC3cbB3fAd7C3aa01f6F3FB207",Moonbeam:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",Solana:"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",Sui:"0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN",Aptos:"0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb::coin::T",Base:"0x71b35ECb35104773537f849FBC353F81303A5860",Arbitrum:"0xD8369C2EDA18dD6518eABb1F85BD60606dEb39Ec",Optimism:"0xb47bC3ed6D70F04fe759b2529c9bc7377889678f",Blast:"0xC09a79fCF76ab2917c685896E3693e04EEbab69C",Mantle:"0x115Fcc627AcE0457fbeb7Af3b8BcAcE7Ff6211A4",Klaytn:"0x98A8345bB9D3DDa9D808Ca1c9142a28F6b0430E1"},USDCeth:{Bsc:"0xB04906e95AB5D797aDA81508115611fee694c2b3",Polygon:"0x4318CB63A2b8edf2De971E2F17F77097e499459D",Avalanche:"0xB24CA28D4e2742907115fECda335b40dbda07a4C",Fantom:"0x2Ec752329c3EB419136ca5e4432Aa2CDb1eA23e6",Celo:"0x37f750B7cC259A2f741AF45294f6a16572CF5cAd",Moonbeam:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",Solana:"A9mUU4qviSctJVPJdBJWkb28deg915LYJKrzQ19ji3FM",Sui:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",Aptos:"0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T",Base:"0xec267C53f53807c2337C257f8AC3Fc3cC07cc0ed",Arbitrum:"0xC96F2715E2a242d50D1b0bC923dbe1740b8eCf18",Optimism:"0x711e53D031ea9B0bb0C24dD506df11b41AEA419e",Klaytn:"0x608792Deb376CCE1c9FA4D0E6B7b44f507CfFa6A"},WBTC:{Bsc:"0x43359676E1A3F9FbB5de095333f8e9c1B46dFA44",Polygon:"0x5D49c278340655B56609FdF8976eb0612aF3a0C3",Avalanche:"0x1C0e79C5292c59bbC13C9F9f209D204cf4d65aD6",Fantom:"0x87e9E225aD8a0755B9958fd95BE43DD6A91FF3A7",Celo:"0xd71Ffd0940c920786eC4DbB5A12306669b5b81EF",Moonbeam:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",Solana:"3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh",Sui:"0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",Aptos:"0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e::coin::T",Base:"0xE6396f780b543dF16ee3b784D789c75B68319db0",Arbitrum:"0x397846a8078d4845c7f5c6Ca76aeBbcFDc044fAe",Optimism:"0xB214C19d81c99E75e84706a3aa0A757319023e26",Klaytn:"0x981846bE8d2d697f4dfeF6689a161A25FfbAb8F9"},USDT:{Bsc:"0x524bC91Dc82d6b90EF29F76A3ECAaBAffFD490Bc",Polygon:"0x9417669fBF23357D2774e9D421307bd5eA1006d2",Avalanche:"0x9d228444FC4B7E15A2C481b48E10247A03351FD8",Fantom:"0x14BCb86aEed6a74D3452550a25D37f1c30AA0A66",Celo:"0x617f3112bf5397D0467D315cC709EF968D9ba546",Moonbeam:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",Solana:"Dn4noZ5jgGfkntzcQSUZ8czkreiZ1ForXYoV2H8Dm7S1",Sui:"0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",Aptos:"0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852::coin::T",Base:"0xFf0C62A4979400841eFaA6faADb07Ac7d5C98b27",Arbitrum:"0xE4728F3E48E94C6DA2B53610E677cc241DAFB134",Optimism:"0xf6B4185FCf8aF291c0E3927fbEab7046b4f6A8CA",Blast:"0x37C1dea9C51864cc6640FA9c09f4dac574b8285E",Klaytn:"0x5C13E303a62Fc5DEdf5B52D66873f2E59fEdADC2",Xlayer:"0x5866709f926f26C5870191F40333ac462B917bC0"},DAI:{Bsc:"0x3413a030EF81a3dD5a302F4B4D11d911e12ed337",Polygon:"0x732EB1747ecCFC431fF19bc359ffc83755B1918c",Avalanche:"0xca319f81D147559e19A522A0a0310Dd43A96cA0F",Fantom:"0xEE786D3D73Ea645365c7248E4e40eDba08B1169F",Celo:"0x97926a82930bb7B33178E3c2f4ED1BFDc91A9FBF",Moonbeam:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",Solana:"EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o",Aptos:"0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c::coin::T",Base:"0x617Edadb51BfB43A44Bb91C7402129C23bA52381",Arbitrum:"0x5c4f2FEFB97F7DF09E762d95C83f0Ccf8bCe8234",Optimism:"0x098EA47D630b46df1E08e389e5e4466119c7dd30",Blast:"0x286ebE2BacB0EBeF746DBDA24dED0fc001c6d0F6",Sui:"0xc01c54cd767a60835bf100b0a8f7aae66ac9f4e374f76746af60f02493b6f2cf::coin::COIN",Klaytn:"0xCB2C7998696Ef7a582dFD0aAFadCd008D03E791A"},BUSD:{Bsc:"0x035de3679E692C471072d1A09bEb9298fBB2BD31",Polygon:"0x95ea750420da26bE1Ab0891e209e921bCd84763f",Celo:"0x1dd42c0785ca90B677adc2ABad01dfc5ECcD0b4d",Moonbeam:"0xa2284e1F98E4d0B7Eb6a6b4f3C57f1b209C755F3",Solana:"33fsBLA8djQm82RpHmE3SuVrPGtZBWNYExsEUeKX1HXX",Aptos:"0x77400d2f56a01bad2d7c8c6fa282f62647ce3c03f43f2a8742e47ea01a91e24a::coin::T"},WPOL:{Ethereum:"0x7c9f4C87d911613Fe9ca58b579f737911AAD2D43",Bsc:"0xc836d8dC361E44DbE64c4862D55BA041F88Ddd39",Avalanche:"0xf2f13f0B7008ab2FA4A2418F4ccC3684E49D20Eb",Fantom:"0xb88A6064B1F3FF5B9AE4A82fFD52560b0dF9FBD3",Celo:"0x9C234706292b1144133ED509ccc5B3CD193BF712",Moonbeam:"0x82DbDa803bb52434B1f4F41A6F0Acb1242A7dFa3",Solana:"Gz7VkD4MacbEB6yC5XD3HcumEiYx2EtDYYrfikGsvopG",Sui:"0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN",Aptos:"0x6781088e2a1629d38eda521467af4a8ca7bfa7e5516338017940389595c85c0f::coin::T",Base:"0xc863399E5c5C4011B1DC3fB602902C77BA72B709",Arbitrum:"0x3ab0E28C3F56616aD7061b4db38aE337E3809AEA",Optimism:"0x8f02B6a32cebcAe44D2Fd17d87966f5B5dD14c6d",Blast:"0xE00CB9206aCF0413aa9Dc12F01A22BB5Dd7A2866",Mantle:"0x1d15Dc3B3DB5A182eA8E3091F21EB0549d4a72E0",Klaytn:"0x9858e5A4f8202baD619D4BD39382CA67F4CA0E63",Scroll:"0x982D057feCD66c3af27b16EBC67C4db24810bcD8",Xlayer:"0xc97E2b2d7730C34adC389563721d9dF52EDA4A2a"},WETHpolygon:{Bsc:"0x1384284E16e3375522Be54F50909Bc52A69e90e4",Solana:"DQyeU3oFezEGia761GQ4iPcMCnxnH8fuLrmHZUvTYuby",Aptos:"0x2692323828f627a45a75a05eba8281dd46690c538b4f6ccb7a35ffe8199a28b7::coin::T",Sui:"0xa1ed6e76b06ff8f959cc479fbbd423820a3349dad8707b98ff4309c677fa20ad::coin::COIN",Arbitrum:"0xd2b299eD76d1369Ac8762CFEc85245fFD302FC17",Ethereum:"0x32d222E1f6386B3dF7065d639870bE0ef76D3599",Avalanche:"0x061FE51530768889dc20Ac7fCD29b5307b823395",Optimism:"0x2740220fFa4b206280907ce12b7cDC57445f3B92",Fantom:"0x1cAFd8d3301E4E54Fc1462E7117Eb678bF50C765",Base:"0x7A79923734eDA9c7f7ff69ad9ec1e234F67E7CD6",Moonbeam:"0xf1BB9A987B9edC360580b0c9F28069C808c2a7da",Celo:"0x8Ed68859f162970258992168293232e3Bdd987d0",Klaytn:"0x3eb25C7098AC38a852Cd2366161c5e216af50Df3"},USDCpolygon:{Aptos:"0xc5fd7820e9f053e6dd8e7dd8ca3ce8e9b10d200ba1692bdeb7a035217180ad4a::coin::T",Base:"0xFe1579BAc60363c8572CB30Bf4DD1Fd85811BBF8",Moonbeam:"0x4415BfBDee669446550d55c749007EF60B520FC8",Sui:"0x5c8c9082401982e8c2519a5c12883a5475295bf5cec4a0a13c26d35dd9a20d73::coin::COIN",Bsc:"0xe6d82Bbe75041E42E51d755e922cE1BA91af9c4d",Celo:"0x42c76808f3179A091Ee007A2955aF2522978ADE7",Fantom:"0xB4DcfD221048a1Dad989D39456BBd87762c26F06",Avalanche:"0xDb2d08f5A9C9ADBBA0DE5a69bbB1E9Ca03411692",Arbitrum:"0x599ADB10E6A012dF34935D47407450f6D7170e3C",Optimism:"0xbB1EaB9Eb8fDf65F0E291D013DA07B4b65a27a01",Solana:"C321jHPwWBzgfSGndosDTp5pBsiXPyMU1irxKLVcedRB",Ethereum:"0xFbcE0f9e92AD1003e893Ba647bC055D845aAa507",Klaytn:"0x59AEaD999e018a00B162D34de7a81AFFAB88bAbB"},WBNB:{Ethereum:"0x418D75f65a02b3D53B2418FB8E1fe493759c7605",Polygon:"0xeCDCB5B88F8e3C15f95c720C51c71c9E2080525d",Avalanche:"0x442F7f22b1EE2c842bEAFf52880d4573E9201158",Fantom:"0xc033551e05907Ddd643AE14b6D4a9CA72BfF509B",Celo:"0xBf2554ce8A4D1351AFeB1aC3E5545AaF7591042d",Moonbeam:"0xE3b841C3f96e647E6dc01b468d6D0AD3562a9eeb",Solana:"9gP2kCy3wA1ctvYWQk75guqXuHfrEomqydHLtcTCqiLa",Sui:"0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN",Aptos:"0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86::coin::T",Base:"0x7fdAa50d7399ac436943028edA6ed9a1BD89509f",Arbitrum:"0x7AF00405916D823eDb1121546EfA6F4972B51b84",Optimism:"0x6A09fE65ACa27C12573F04aAFa290bD75497E1BC",Blast:"0xdcd0Ec817d3ae2E82bCE8Cc9f92fFA7686A52160",Mantle:"0x9a7E85260d6F5d3c3d2a1FdDc3D980DBC78e508d",Klaytn:"0xaC9C1E4787139aF4c751B1C0fadfb513C44Ed833",Scroll:"0x5b0da0a36DC415714B53A4f24b56921332F42E7C",Xlayer:"0x8bC46166E06122603bA10D2bCA63b75091c25cAe"},USDCbnb:{Ethereum:"0x7cd167B101D2808Cfd2C45d17b2E7EA9F46b74B6",Polygon:"0x4B3a922c773BDCF3BA8f1A4FDAc2029E1D0E9868",Avalanche:"0x6145E8a910aE937913426BF32De2b26039728ACF",Fantom:"0x0FcbDAC44c67A43607D3E95886dB19871ADc985F",Celo:"0x9d9abAE97a9344e3854527b4efbB366a1564bfEb",Moonbeam:"0x7f433E22366E03a3758CE22cCf82887d828078f8",Solana:"FCqfQSujuPxy6V42UvafBhsysWtEq1vhjfMN1PUbgaxA",Sui:"0x909cba62ce96d54de25bec9502de5ca7b4f28901747bbf96b76c2e63ec5f1cba::coin::COIN",Aptos:"0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595::coin::T",Base:"0x68E2b07F92ed506f92935d7359ECA84D5342dbb4",Arbitrum:"0x1a0590F951bc9C3818Ce75ba5Bbe92831b2cf57e",Optimism:"0x1C15057d1F3794C934a6cBC1f7EceE934050F219",Klaytn:"0x01B342d26FEF5749E87CBe412e16163771b0277c"},WAVAX:{Ethereum:"0x85f138bfEE4ef8e540890CFb48F620571d67Eda3",Bsc:"0x96412902aa9aFf61E13f085e70D3152C6ef2a817",Polygon:"0x7Bb11E7f8b10E9e571E5d8Eace04735fDFB2358a",Fantom:"0x358CE030DC6116Cc296E8B9F002728e65459C146",Celo:"0xFFdb274b4909fC2efE26C8e4Ddc9fe91963cAA4d",Moonbeam:"0xd4937A95BeC789CC1AE1640714C61c160279B22F",Solana:"KgV1GvrHQmRBY8sHQQeUKwTm2r2h8t4C8qt12Cw1HVE",Sui:"0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN",Aptos:"0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f::coin::T",Base:"0xc449A60A31E1eebFE83c42E9465fd4Dc318aE9a7",Arbitrum:"0x565609fAF65B92F7be02468acF86f8979423e514",Optimism:"0x8418C1d909842f458c9394886b83F19d62bF1A0D",Blast:"0x7D86F00026c2cD8137D60ae85d53c5E5a15B2481",Mantle:"0x2cAb4233d42043AEBbbb1445af362Ef686f3C133",Klaytn:"0x45830b92443a8f750247da2A76C85c70d0f1EBF3",Scroll:"0xC043c8A3672f397e7b52bF0a04F47d6f1aA952Ed",Xlayer:"0x5208Fb676B2DBab7aFaFB56e8997237F0ceECF71"},USDCavax:{Ethereum:"0x39EbF69137D98FB7659Ef8D4ea21ec26394389d7",Bsc:"0xc88Dc63bf0c8c8198C97Db0945E3eF25Ca89A8e4",Polygon:"0xAEA5CC14DefbC1b845FDE729E563B717Ee6825ae",Fantom:"0xEfE7701cb2B80664385Be226d0300912CA92f66A",Celo:"0x62FFf2D2D1692D52eAf043AeeC727F7918d269D3",Moonbeam:"0xd4918c40cA9f02d42Cb53d06587aF42017Bc345D",Solana:"FHfba3ov5P3RjaiLVgh8FTv4oirxQDoVXuoUUDvHuXax",Sui:"0xe596782fbaebef51ae99ffac8731aed98a80642b9dc193ed659c97fbc2cc0f84::coin::COIN",Aptos:"0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff::coin::T",Arbitrum:"0x93e0FcbEd43CD6fC30DF00CcBD4669718dc74e77",Optimism:"0x355f0a8a7ecAeD971b8Fbd50994558291ff2413a",Base:"0xD83385fE100E20c269a5975D4Bf92525BcE09F87",Blast:"0x3Db095413b5e1e5681c48028e31e8dc2505D8aD3",Klaytn:"0x9C97D4c09679Dfd00A39681f6d3b61A285312B13",Scroll:"0xbEFc3d0457fB88f82364Dd982F7BA195FEE96b74"},WETHavax:{Aptos:"0x25ff8e0c07552c392c9e5dd4c9c07cf0382765c1bca560e80b6296a702034219::coin::T",Solana:"F9B9qLwUN3TAWGV9EGsuzFzS2PxWvKAmLhvfeqYNaS7J",Bsc:"0xBDfe278268524de38Da89B3023C1F49deBDFdA8A",Sui:"0xc1ea686a329e35808c61484d95904d50522f1d1616cab4b416d9cfa9b274bc6c::coin::COIN",Base:"0xEfe64b52bc0bDfa109790736F25cefb79724adF0",Arbitrum:"0xdF64fB41b7f45304a786695E0D5daD8d033C01eF",Polygon:"0x2912b3a9586Fc2AB177dC869e878c688DAA7d06E",Ethereum:"0xD85a87Edbe9fB3Baf6a1Bbd1E46f1C04B291331d",Optimism:"0xBe6EA3e70e2bbB0dbD093B657fbbc0DFF0BA67eC",Moonbeam:"0x9C673c6b651D6FDEF57441125A6AC16b08bba939",Celo:"0xDac2C97b5E64d7C79d040cd2906EBe02341F1Ab5",Klaytn:"0x9971F9d9170D787C4e4E01c56E1BDB308291CacF",Fantom:"0x86a09597fc91b116511B990D29CB46ddedC0fCb0"},WFTM:{Ethereum:"0x4cD2690d86284e044cb63E60F1EB218a825a7e92",Bsc:"0xbF8413EE8612E0E4f66Aa63B5ebE27f3C5883d47",Polygon:"0x3726831304D77f585f1Aca9d9841cc3Ef80dAa62",Avalanche:"0xd19abc09B7b36F7558929b97a866f499a26c2f83",Celo:"0xd1A342eE2210238233a347FEd61EE7Faf9f251ce",Moonbeam:"0x609AedD990bf45926bca9E4eE988b4Fb98587D3A",Solana:"DRQBDBEWmwWGK13fRTLhSPzjbvMSUavhV6nW4RUH8W6T",Sui:"0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN",Aptos:"0xd1aa2ff36a0e93e1b4e4fecdecf8bb95bc5de399061c5e84b515281f48718842::coin::T",Base:"0x936Fa2DE8380Dc5BF34C80F1BaD53a9f3630263B",Arbitrum:"0x7f7dcDb91930033a4Eb269196EBb6fd5f0644E4B",Optimism:"0x0b0ecbe5C3995541876d27633B63296570FB34Af",Blast:"0xf1D0eEeB6B6B35dc7289E1AD5e523F68b82bd09A",Mantle:"0x6BFDc59ECBC5503aE16F71851064597D0a75dA76",Klaytn:"0xF3AebeA789F30C22F3657F70f4CaA0f8b49ed676",Scroll:"0x16f077e2e9bF99Adfb1FEEc8360ee002842C44A2",Xlayer:"0x956b5E88c311b976C76CB415C7E030A5Af87373b"},USDCfantom:{Bsc:"0x521af8b1c43B503BE91F542d82EEFEabc0C93340",Arbitrum:"0xF68734163731ad6A6108f76A8e09862C1d412B42",Ethereum:"0xfcC349c14013EdeFAAcAE09Ba30F4ef2571b8D2c"},CELO:{Ethereum:"0x3294395e62F4eB6aF3f1Fcf89f5602D90Fb3Ef69",Bsc:"0x2A335e327a55b177f5B40132fEC5D7298aa0D7e6",Polygon:"0x922F49a9911effc034eE756196E59BE7b90D43b3",Avalanche:"0x494317B8521c5a5287a06DEE467dd6fe285dA4a8",Fantom:"0xF432490C6c96C9d3bF523a499a1CEaFd8208A373",Moonbeam:"0xc1a792041985F65c17Eb65E66E254DC879CF380b",Solana:"9kvAcwQbqejuJMd59mKuw2bfSsLRaQ7zuvaTVHEeBBec",Sui:"0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN",Aptos:"0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112::coin::T",Base:"0x74df3823aA29D278cAD0A3632fCB56C896a38eD4",Arbitrum:"0x4E51aC49bC5e2d87e0EF713E9e5AB2D71EF4F336",Optimism:"0x9b88D293b7a791E40d36A39765FFd5A1B9b5c349",Blast:"0x75345Cc6a3333cca03aCE2a28C7de328122Db3b1",Klaytn:"0xB2b5bC9bc872c7107CBC8E8e0E2805Db0ac4FBc2"},WGLMR:{Ethereum:"0x93d3696A9F879b331f40CB5059e37015423A3Bd0",Bsc:"0x1C063db3c621BF901FC6C1D03328b08b2F9bbfba",Polygon:"0xcC48d6CF842083fEc0E01d913fB964b585975F05",Avalanche:"0x375aA6C67BF499fBf01804A9f92C03c0776F372d",Fantom:"0xBF227E92D6754EB4BFE26C40cb299ff2809Da45f",Celo:"0x383A5513AbE4Fe36e0E00d484F710148E348Aa9D",Solana:"7ixSaXGsHAFy34wogPk2YXiUX3BMmQMFdercdaHLnBby",Sui:"0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN",Aptos:"0x7ab1283a7b13c4254d4e1f803d7ce6578442c1d7a40d0faee41cd48ba4884c8a::coin::T",Base:"0xfdB7311BeC3b2CcCF8407d0585f81B97b3b5eff1",Arbitrum:"0x944C5b67a03e6Cb93Ae1E4B70081f13b04CDB6Bd",Optimism:"0xbffD46DFDb8d3a02b8D2E0F864a2cD712090a4D3",Blast:"0x43E43580A34c8FdD4694e1F9B5F9b1121a7044a5",Klaytn:"0x52a4558f98dDc7cb40cd9114C005f0B9571258Fc",Scroll:"0x2Aba1Ed24EaFC17F801b1A7dF1c3a06737F8aB72",Xlayer:"0xE2a44Dad57004517738FbD84cdf09Bd1451b4e43"},WSOL:{Ethereum:"0xD31a59c85aE9D8edEFeC411D448f90841571b89c",Bsc:"0xfA54fF1a158B5189Ebba6ae130CEd6bbd3aEA76e",Polygon:"0xd93f7E271cB87c23AaA73edC008A79646d1F9912",Avalanche:"0xFE6B19286885a4F7F55AdAD09C3Cd1f906D2478F",Fantom:"0xd99021C2A33e4Cf243010539c9e9b7c52E0236c1",Celo:"0x4581E64115d46CcdeE65Be2336bEc86c9BA54C01",Moonbeam:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",Sui:"0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",Aptos:"0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T",Base:"0x1C61629598e4a901136a81BC138E5828dc150d67",Arbitrum:"0x2bcC6D6CdBbDC0a4071e48bb3B969b06B3330c07",Optimism:"0xba1Cf949c382A32a09A17B2AdF3587fc7fA664f1",Blast:"0xA5370b8e2413b23eA16F3B78D1d1ba3969678227",Mantle:"0xDA03239f428c76A527e1ceCa0ecA6cC367A2D945",Klaytn:"0xfAA03A2AC2d1B8481Ec3fF44A0152eA818340e6d",Xlayer:"0x3a859D92da2E16Ad32C5C6F3ADAddFBa4dE3A47e",Scroll:"0xCDf95E1F720caade4b1DC83ABfE15400D2a458AD"},USDCsol:{Ethereum:"0x41f7B8b9b897276b7AAE926a9016935280b44E97",Bsc:"0x91Ca579B0D47E5cfD5D0862c21D5659d39C8eCf0",Polygon:"0x576Cf361711cd940CD9C397BB98C4C896cBd38De",Avalanche:"0x0950Fc1AD509358dAeaD5eB8020a3c7d8b43b9DA",Fantom:"0xb8398DA4FB3BC4306B9D9d9d13d9573e7d0E299f",Celo:"0x8B6eef6C449D3Ac723a9C06a9eaE2dCd7d308BA9",Moonbeam:"0x098d6eE48341D6a0a0A72dE5baaF80A10E0F6082",Sui:"0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN",Aptos:"0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080::coin::T",Arbitrum:"0x3870546cfd600ba87e4180686d29dC993A45d3B7",Optimism:"0x6F974A6dfD5B166731704Be226795901c45Bb815",Base:"0xe8CE40EBBB844142400D21558a2F1c9683d69139",Klaytn:"0xa1a7feeD29EbFa38079D943486c23f401939Ce80",Scroll:"0x883Ccb5aEfD0084f1e4D04b133675acd6D5F123F"},SUI:{Ethereum:"0x84074EA631dEc7a4edcD5303d164D5dEa4c653D6",Bsc:"0x8314f6Bf1B4dd8604A0fC33C84F9AF2fc07AABC8",Polygon:"0x34bE049fEbfc6C64Ffd82Da08a8931A9a45f2cc8",Avalanche:"0x1703CB0F762D2a435199B64Ea47E5349B7C17480",Fantom:"0xC277423a21F6e32D886BF85Ef6cCB945d5D28347",Celo:"0x1Cb9859B1A16A67ef83A0c7b9A21eeC17d9a97Dc",Moonbeam:"0x484eCCE6775143D3335Ed2C7bCB22151C53B9F49",Solana:"G1vJEgzepqhnVu35BN4jrkv3wVwkujYWFFCxhbEZ1CZr",Aptos:"0xa72a97e872be9ee3d2f14d56fd511eb7e4a53f4055be3a267d8602e7685b41c0::coin::T",Base:"0x36c6FBF7B49bF65f5F82b674af219C05b2a4aDD1",Arbitrum:"0xCF79d86B8a830030aF6D835737d6eac3bE823fD7",Optimism:"0x27A533e438892DA192725b4C9AcA51447F457212",Mantle:"0x9ef1BB6072d7d6B9C935d9c040133036aD532119",Blast:"0x62c95Ffd6d2f893Ea2EF072d1EbBcb242a974b1A",Klaytn:"0xB0B40516293e0204fB376A18aA230A210cbE0305",Xlayer:"0xEa76dBFE6e449420f294e74E057518F750E99A16"},APT:{Ethereum:"0x8CDf7AF57E4c8B930e1B23c477c22f076530585e",Bsc:"0x2Ba98cf7Edd2c5C794e21bc3Dc6973D3C2585eE3",Polygon:"0xa4ef199d3ad524E9C3C51Ac46B303B103A307Cef",Avalanche:"0x43c588459b3243fA541B98CC4B2E995b3de553A2",Fantom:"0x3Cd9162Ca5256b8E26A0e3Ad14CCfF7C0Da0F174",Celo:"0x89F2b718Ca518db39d377F0ABBa6B42582b549F7",Moonbeam:"0x25331575641d35D9765e1934acC8F0991c58e904",Solana:"6LNeTYMqtNm1pBFN8PfhQaoLyegAH8GD32WmHU9erXKN",Sui:"0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37::coin::COIN",Base:"0x1d36126289Be1658297A35CC3EB2BB80A7D7A04b",Arbitrum:"0x4EdeF400eDe5309240814b5FC403F224504604e9",Optimism:"0xC5B3AC2DF8D8D7AC851F763a5b3Ff23B4A696d59",Blast:"0x2a3DdE20159FbDbC86f1da0e7a462711b610c815",Klaytn:"0x68d5254007BE3a6d3d2A37e2C1ad3921D049F46D",Xlayer:"0xEdF2AEaCE382A3c0722f110c4927d34b78bce34F"},WETHarbitrum:{Ethereum:"0xb945E3F853B5f8033C8513Cf3cE9F8AD9beBB1c9",Bsc:"0xaA1eEdABC48D078350ccBdD620bD088848e299E5",Polygon:"0x6a5c59AB16268d2c872916054C50440B999e417C",Avalanche:"0xDfDA518A1612030536bD77Fd67eAcbe90dDC52Ab",Fantom:"0xE8367853A0823515D37b1538331B4704089becb4",Celo:"0xc6F962fCcb140ece554AfD0E589f971532A57f14",Solana:"CSD6JQMvLi46psjHdpfFdr826mF336pEVMJgjwcoS1m4",Sui:"0x33744e7df340a4d01c23f6b18c13563f767545ea95f976f8045f056358419da3::coin::COIN",Aptos:"0xe977796d7bfb3263609b90dffd264c7bd078ce35dac42b55302858d9fa3452b::coin::T",Base:"0x9D36e0edb8BBaBeec5edE8a218dc2B9a6Fce494F",Optimism:"0x825206E1D29456337769e6f1384101E997C6A732",Moonbeam:"0x18872b45c603eD2EbC508b9C5514a85c2e2791FB",Klaytn:"0x3CF1751E32c4225CB12ba953786C260C2cE89008"},USDCarbitrum:{Ethereum:"0xCFc006a32a98031C2338BF9d5ff8ED2c0Cae4a9e",Bsc:"0x5caa170b465122D15a6D20FD9A804a9613CE7882",Polygon:"0x7800FE8951cdc1cDea748d878fAce63018D97960",Avalanche:"0x4b5fE357Eb11c735078e47526D6e853DBff18541",Celo:"0xA41a62567d9eb960D84b72663FdaeBE0BCdE2683",Solana:"CR4xnGrhsu1fWNPoX4KbTUUtqGMF3mzRLfj4S6YEs1Yo",Sui:"0xc3f8927de33d3deb52c282a836082a413bc73c6ee0bd4d7ec7e3b6b4c28e9abf::coin::COIN",Aptos:"0xca3a2c28bc8c6c762f752dd2a4ebbfd00356ca99977ce6636e3af5897124a87a::coin::T",Optimism:"0xa6252F56cc6eEA21165d56744C795F91c8a3Cf68",Base:"0xb96B82Cd6D45d98Fb6897D16A5E4EE888329C513",Fantom:"0x2228703672906fEe5eD681Ec28e42B4506b8c336",Moonbeam:"0xbd2B6D665439514EEaA8519f4fE87CC8C46e9167",Klaytn:"0x3d5973fF7288f47857dAa5a32C53976A9A968928",Xlayer:"0xd53bD30985B4125fc561774e388d9f679BB84117"},WETHoptimism:{Fantom:"0xe8E8f941377A955bFA72880ec0dc2319dbC827a8",Celo:"0x8d53771b1Ec7461f8e45Bca2609c45bC0bbd0677",Solana:"8M6d63oL7dvMZ1gNbgGe3h8afMSWJEKEhtPTFM2u8h3c",Sui:"0x0aab14ec22908de73d1b0619f5e03842398f8e68262981bd35ef44b42d22b23a::coin::COIN",Aptos:"0x6a7a7f36ef5e2d0e65fcf72669c20d514d68298b0f76c7554517208f73260aaf::coin::T",Arbitrum:"0xB1fC645a86fB5085e12D8BDDb77702F728D2A26F",Avalanche:"0xDf11535274c0FD2Fe41A88bd1bBF802D72296037",Bsc:"0x94AEc09B5e2CE591e39DC6aa58A3A6E85Ed45265",Ethereum:"0x8B5653Ae095529155462eDa8CF664eD96773F557",Polygon:"0x8182De59485Bb646542Db8C7E5958148Dc699319",Base:"0xCb725aC8d9985D3bE306Dd9e1517d3702929176c",Moonbeam:"0xd4870F7F5AD8Ae5139E1a5D8AD4ac55204aE4490",Klaytn:"0x4ab77AF7059435b71dBC3B7c5255983C8628eFdf"},USDCoptimism:{Fantom:"0x385b219f0C4fa2e84EfE5aaf9692a821C57B8248",Celo:"0xEe48963C003e21EaCEdFA8a0A19BB3cbF7E776Fe",Moonbeam:"0x7143e8EA96e158381057a58AfdDF44601c7e532C",Base:"0xc6bfBeb3002aD563D2d1f72614C61C83Bf147Acd",Arbitrum:"0x3A5C2Da9E30741cb59a5e9446A23A86886fC9DC2",Aptos:"0x4f6ecb05a797902d472abc2f5804bde93a53d8b75f14f767824cdb1623a4ee83::coin::T",Bsc:"0xa41ae127D04F7ee73B5058E2C60Fb7c7A2D21F79",Avalanche:"0xBe04f76A0ba2100c3F2d6Aa1FD8484F415469573",Polygon:"0x31F12aCb60C3c32EE884F3894a873347C097D925",Sui:"0x6037801f060f0f54b3817bca05e3c8b9b9ffaa2da8e93fd5b80fa662aa3c9e55::coin::COIN",Solana:"J8kcD4Wnd1ehne1dpL8WNtgZQR6Jpui2cTZcrmg5ybAa",Klaytn:"0x7Ee2AB1443fDB59AECEa3aDD8F81296d68c2D1e3",Ethereum:"0xe77C99b64414e0fd9aeEA48AFFBBD2E97A895020"},WETHbsc:{Aptos:"0xd9fc4259ec5def95477dba9f0861c2882d1f8bee9a4138b476dd0720a3444547::coin::T",Solana:"FzjTz2cD1DfqYvafrbHWZvf1dK9qjwXGLuaU7xYXQjxP",Sui:"0x5029d5a94429a73b8036cd67192d9c5e09bbc2c0fee942d50075a9edba66744f::coin::COIN",Base:"0xf50509Bb6aF76E20c6E1eD493699c5f70764BcCC",Arbitrum:"0x6478377A399bE8c92bD35254aA7bF287836de32e",Ethereum:"0x5DbBB101CDc29443d12055eCDDdD7ca037Dce721",Fantom:"0xc511E3aec79CABD605021C237c475Ec553B002d4",Celo:"0x09F236D3708894581b1Cf679e582ba9eA5BE16f0",Klaytn:"0x4C07075BB44076106f3389766946b79784Fb5C58",Avalanche:"0xf0e509144CfA602d0A5e8C75d76FF74077f52f2b",Optimism:"0x8088Bc767c392b5769b94c9ec1D07c62874c8d5f",Polygon:"0x2D291e940DbDdaa9E847Ba5cC49451575f086b27",Moonbeam:"0xBefd7902B682938b29B3FD3D4AdECD9A984D5930"},WETHbase:{Ethereum:"0x1D4241F7370253C0f12EFC536B7e16E462Fb3526",Bsc:"0x9dc152F4941cE1A138326e70c3600385bf0C22dD",Polygon:"0x5BCf8d8c097FbB35C371F921E3FF3e6F6Eb54B41",Avalanche:"0xFA83178c66fE51ee99109b5cC912f8098Ff812eF",Fantom:"0xd3365E7355230c78098b44B172eE27DAB95B041A",Celo:"0x905CADB645684140E285e2D09D39dF5a2082BC87",Moonbeam:"0x6C6f83366A42fcA4D30a2D3f1914284de995Ac3a",Solana:"DWXe1hxpnb8LAH21iyXcjvMbiAGzoYyuCVQtRLvZdLYd",Sui:"0xaecbc804fa7ca7cffc74c9a05eb6ae86fda0c68375b5c1724204a1065bcb239a::coin::COIN",Aptos:"0x5b5f14781164cf77185a7b6acd8e4f3cbb7e7cfb1cd5760d2b8af81075fc153d::coin::T",Arbitrum:"0xBAfbCB010D920e0Dab9DFdcF634De1B777028a85",Optimism:"0x3F369a664fa665e01e8EB9f20bFcE03A0CAb8971",Mantle:"0x4a2176DE2Fb36485704965bd1Cc471854f21303B",Klaytn:"0x7Bf9ad1D104dEAE4B59Ef1be6a273Cb46BA16362"},USDCbase:{Solana:"EfqRM8ZGWhDTKJ7BHmFvNagKVu3AxQRDQs8WMMaoBCu6",Moonbeam:"0xE6d02a875CcC153c076fe418f33De3A5C420f505",Celo:"0x2e2acb1782Aad0490f8446b6fD4626C467987bD6",Bsc:"0x55CaD531c8E303Cab8B3BE4bB4744Db4f896ac81",Optimism:"0xb931c7BbD87A6e249EaA7355B13927F9c99Bce87",Arbitrum:"0x8619F97D4d08382548F536E5CE1D3e0D9bA40326",Polygon:"0x1eeCaB0F75fE93abbFa0cDFfb4fB13d1dC8706c8",Avalanche:"0xab933e939a9236BD439F7d29b87CE712f42bAC06",Fantom:"0xd9E4C283d8A49Dc3767A6F5a4dFdc1d0cEf21604",Sui:"0x7e3e74afcc1913aa9491c8cee89b02131a6e5519b090f16b54321835c1241cfb::coin::COIN",Aptos:"0xfcc4fcd734d5b8578fb629d238d15264a49eca6165c7444c21feec3b4962eb88::coin::T",Blast:"0x35a926D55A726cdF70Ac498972F22426363F3C77",Mantle:"0x5D628a3285a10fdd93AEa704007957F294e05F91",Ethereum:"0xc38261846c42C1E1D59E04dA675Eb1974E9cE7b1",Klaytn:"0x0a2330c1C46E9A74e8651F7117a1264410eA3C88",Scroll:"0x22C9bde4Ad49C4b6CCFB8D394B5ED42A57853d58"},wstETHbase:{Arbitrum:"0x09E79693E44c8813A8CA25EeD7A40e5E24cD9c01",Ethereum:"0x187175c7a526f48c905202Bd2Bf8D25A457F479F",Polygon:"0x95d4C8e851D9E8c6B92aa518474E991c373E9Fb2",Optimism:"0x6ee40855c0BaB20585d17D2b9dd8d2Cd1cd41801",Avalanche:"0x5e513CA12DbD8424bDFc5B50711dF4AE999a8C58"},wstETH:{Polygon:"0xe082a7Fc696De18172Ad08D956569Ee80BC37f06",Solana:"ZScHuTtqZukUrtZS43teTKGs2VqkKL8k4QCouR2n6Uo",Arbitrum:"0xf2717122Dfdbe988ae811E7eFB157aAa07Ff9D0F",Optimism:"0x855CFcEEe998c8ca34F9c914F584AbF72dC88B87",Base:"0xEd4e2FD35161c3c0e33cA187fce64C70d44Ce32b",Bsc:"0xad80E1A9B5824234afA9dE1F3bbDb8a994796169",Avalanche:"0x11449fd2F05D93827972b40adE96F6ffBE42E35a",Fantom:"0x2a2Ec6Ad3e47C536F47934F63b95BD647F1C730E"},wstETHarbitrum:{Bsc:"0x159167e842C586a81f02E55bc043AC8EdB033E0b",Aptos:"0xd2ca17516bc4ca57c1c69577e0c9cc0129153286695b46b97f438ecc138c225e::coin::T",Solana:"8wJakbZuv7WApfHmRo2sdkeQfu6hXqfEqjb7BYXDKpKe",Sui:"0xb607aed1c09e676384d14ae638dbcb08523fc691d309e71c856c7fdcb60d4430::coin::COIN",Base:"0xbE3981b37CcE5eCb6925d2ad9D9E28dE7b165793",Optimism:"0xEae5ccc3c36beF59f6794b467e7e228CB3720415",Fantom:"0xf65BF40A3299Df500D440520dF7e6ce1BEa53E73",Ethereum:"0x906310cE867C22c5016248Bd791FA5dd162c9D6d",Polygon:"0xcf0aa97c2fD78Ee0f0C3090B9EB65d2bd6C1D81a"},wstETHoptimism:{Bsc:"0x1f29fAD000255BF49D72803b2A8FaC8e31947eF8",Base:"0xBb0BeaB819dEAf091C193bE4bBEeA9D5b0F5227C",Arbitrum:"0xf99C5EEd186601955a9a1027536D1b46b1f909F8",Polygon:"0x9065e1D25E65F7A1D60bb6197154386B52faA469",Ethereum:"0xB3ceE6DCa1dD528CB7CC258e32D8B50ce9Ee46f5"},wstETHpolygon:{Base:"0xcB6D47199d60747152d7671D6497ce8D23cc1D75",Arbitrum:"0x23D3901A635fDd98D8d6509bc0720281f80a8E6D",Ethereum:"0x302F636d723c8Ed75C0d1E9D9C714009184C5624",Optimism:"0x4fad81d2268a7D9E1e0fE7dB38af07FFFA0aA56E",Celo:"0xA4c7302659eCF88a90e62e915Bd486E66B616A4C"},WKLAY:{Aptos:"0x539b652f8230a0e42adaeda4706b5639893d22362eda6ea897493c210cb48219::coin::T",Ethereum:"0x9AEA32B459e96C8eF5010f69130bf95fd129ac05",Celo:"0xe304254de5c2048F9bFb042dDFB54f84d1d77730",Polygon:"0x415ce980fde17F1FF102e1c6e4ce860Acc615D74",Base:"0x41c433c146c47Dc53FC48cDc69e406e365e298E1",Arbitrum:"0xFA95f6c796E54F9C4a99392CAE84410a25794BB3",Moonbeam:"0xf0a9476E4712123A807859f9Fd25fe98213379BD",Fantom:"0x787e2F3509583C0F03A339Be0826463C839CBE5E",Sui:"0xa5ec915864d7f37b25ca9144b2db6ebcf29e73603c2ccf9d0e765adcd9049a98::coin::COIN",Avalanche:"0x126C03982Ad6D7ef7E6aF020bF219e87185a6BC3",Bsc:"0xEA970e7b7D131Ea36c3051C9Ca11e785462fE00c",Optimism:"0xbbeF8233a0d10EEAb84E913FaDB337ab9b62F683",Solana:"2b8fZGLBZjpxFugCdnJbbLLBYxvx23rsrsvLYYueiHb7",Blast:"0x5F6fE613528df9AE4Bf6f667fbCB923263098617",Scroll:"0xA55FB7A046454998b2f6d8D99Df5F0E108b38229"},PYTH:{Aptos:"0x770211b47954e15bec1a4271bf33bacebc2d2adb43b7dc1ca45efa787615dd4c::coin::T",Bsc:"0xb0188B0bb2cD4a6D2744637fC83C94a284B247Da",Base:"0x4c5d8A75F3762c1561D96f177694f67378705E98",Celo:"0x985aa4814419ba338379A634785216301e51113D",Avalanche:"0x8A0691e602B7a5FCc51a27E4a08376dE50889B42",Polygon:"0xFa4B761A1e07909Ba31331a5dfa12390E3ff5583",Fantom:"0x77ad3B2dA29FBd208F12c3C701E969F4422aAD79",Optimism:"0x99C59ACeBFEF3BBFB7129DC90D1a11DB0E91187f",Ethereum:"0xeFc0CED4B3D536103e76a1c4c74F0385C8F4Bdd3",Arbitrum:"0xE4D5c6aE46ADFAF04313081e8C0052A30b6Dd724",Sui:"0x9c6d76eb273e6b5ba2ec8d708b7fa336a5531f6be59f326b5be8d4d8b12348a4::coin::COIN",Moonbeam:"0x27cc3FDbDD1F415b09a41232D0fD71345DAB8030",Xlayer:"0x057b766b3fB76527cf815c3b5C38Dfa8144335CF"},WETHscroll:{Arbitrum:"0xAe81a542e20270b48Bd5297E3e0f280f79E46C42"},WMNT:{Optimism:"0xf704F6a3241609Cfb3E44Db1237E68EB6CaC7C04"}},ZOe={chains:lOe,tokens:YOe,wrappedTokens:QOe,rpcs:qOe,rest:GOe,graphql:VOe,guardianSet:{index:4,keys:["0x5893b5a76c3f739645648885bdccc06cd70a3cd3","0xff6cb952589bde862c25ef4392132fb9d4a42157","0x114de8460193bdf3a2fcf81f86a09765f4762fd1","0x107a0086b32d7a0977926a205131d8731d39cbeb","0x8c82b2fd82faed2711d59af0f2499d16e726f6b2","0x11b39756c042441be6d8650b69b54ebe715e2343","0x54ce5b4d348fb74b958e8966e2ec3dbd4958a7cd","0x15e7caf07c4e3dc8e7c469f92c8cd88fb8005a20","0x74a3bf913953d695260d88bc1aa25a4eee363ef0","0x000ac0076727b35fbea2dac28fee5ccb0fea768e","0xaf45ced136b9d9e24903464ae889f5c8a723fc14","0xf93124b7c738843cbb89e864c862c38cddcccf95","0xd2cc37a4dc036a8d232b48f62cdd4731412f4890","0xda798f6896a3331f64b48c12d1d57fd9cbe70811","0x71aa1be1d36cafe3867910f99c09e347899c19c3","0x8192b6e7387ccd768277c17dab1b7a5027c0b3cf","0x178e21ad2e77ae06711549cfbb1f9c7a9d8096e8","0x5e1487f35515d02a92753504a8d75471b9f49edb","0x6fbebc898f403e4773e95feb15e80c9a99c8348d"]}},{chains:v0}=JF.TESTNET,KOe={Bsc:{...v0.Bsc,displayName:"BSC",explorerUrl:"https://testnet.bscscan.com/",explorerName:"BscScan",gasToken:"BNB",chainId:97,icon:Pe.BSC,maxBlockSearch:2e3},Avalanche:{...v0.Avalanche,displayName:"Fuji",explorerUrl:"https://testnet.avascan.info/blockchain/c/",explorerName:"Avascan",gasToken:"AVAX",chainId:43113,icon:Pe.AVAX,maxBlockSearch:2e3},Fantom:{...v0.Fantom,displayName:"Fantom",explorerUrl:"https://testnet.ftmscan.com/",explorerName:"FtmScan",gasToken:"FTM",chainId:4002,icon:Pe.FANTOM,maxBlockSearch:2e3},Celo:{...v0.Celo,displayName:"Alfajores",explorerUrl:"https://explorer.celo.org/alfajores/",explorerName:"Celo Explorer",gasToken:"CELO",chainId:44787,icon:Pe.CELO,maxBlockSearch:2e3},Moonbeam:{...v0.Moonbeam,displayName:"Moonbase",explorerUrl:"https://moonbase.moonscan.io/",explorerName:"Moonscan",gasToken:"GLMR",chainId:1287,icon:Pe.GLMR,maxBlockSearch:2e3},Solana:{...v0.Solana,displayName:"Solana",explorerUrl:"https://explorer.solana.com/",explorerName:"Solana Explorer",gasToken:"SOL",chainId:0,icon:Pe.SOLANA,maxBlockSearch:2e3},Sui:{...v0.Sui,displayName:"Sui",explorerUrl:"https://suiscan.xyz/testnet/",explorerName:"Suiscan",gasToken:"SUI",chainId:0,icon:Pe.SUI,maxBlockSearch:0},Aptos:{...v0.Aptos,displayName:"Aptos",explorerUrl:"https://explorer.aptoslabs.com/",explorerName:"Aptos Explorer",gasToken:"APT",chainId:0,icon:Pe.APT,maxBlockSearch:0},Klaytn:{...v0.Klaytn,displayName:"Kaia",explorerUrl:"https://kairos.kaiascope.com/",explorerName:"Kaia Scope",gasToken:"KLAY",chainId:1001,icon:Pe.KLAY,maxBlockSearch:2e3},Sepolia:{...v0.Sepolia,displayName:"Sepolia",explorerUrl:"https://sepolia.etherscan.io/",explorerName:"Etherscan",gasToken:"ETHsepolia",chainId:11155111,icon:Pe.ETH,maxBlockSearch:2e3},ArbitrumSepolia:{...v0.ArbitrumSepolia,displayName:"Arbitrum Sepolia",explorerUrl:"https://sepolia.arbiscan.io/",explorerName:"Etherscan",gasToken:"ETHarbitrum_sepolia",chainId:421614,icon:Pe.ARBITRUM,maxBlockSearch:2e3},BaseSepolia:{...v0.BaseSepolia,displayName:"Base Sepolia",explorerUrl:"https://base-sepolia.blockscout.com/",explorerName:"Etherscan",gasToken:"ETHbase_sepolia",chainId:84532,icon:Pe.BASE,maxBlockSearch:2e3},OptimismSepolia:{...v0.OptimismSepolia,displayName:"Optimism Sepolia",explorerUrl:"https://sepolia-optimistic.etherscan.io/",explorerName:"Etherscan",gasToken:"ETHoptimism_sepolia",chainId:11155420,icon:Pe.OPTIMISM,maxBlockSearch:2e3},Scroll:{...v0.Scroll,displayName:"Scroll",explorerUrl:"https://sepolia.scrollscan.dev/",explorerName:"Scrollscan",gasToken:"ETHscroll",chainId:534351,icon:Pe.SCROLL,maxBlockSearch:2e3},Blast:{...v0.Blast,displayName:"Blast",explorerUrl:"https://testnet.blastscan.io/",explorerName:"Blastscan",gasToken:"ETHblast",chainId:168587773,icon:Pe.BLAST,maxBlockSearch:2e3},Xlayer:{...v0.Xlayer,displayName:"X Layer",explorerUrl:"https://www.okx.com/web3/explorer/xlayer-test/",explorerName:"OKX Explorer",gasToken:"OKB",chainId:195,icon:Pe.XLAYER,maxBlockSearch:2e3},Mantle:{...v0.Mantle,displayName:"Mantle",explorerUrl:"https://explorer.testnet.mantle.xyz/",explorerName:"Mantle Explorer",gasToken:"MNT",chainId:5003,icon:Pe.MANTLE,maxBlockSearch:2e3}},$Oe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4",SSR:!1},{REACT_APP_SEPOLIA_RPC:XOe,REACT_APP_BSC_TESTNET_RPC:JOe,REACT_APP_FUJI_RPC:eFe,REACT_APP_FANTOM_TESTNET_RPC:tFe,REACT_APP_ALFAJORES_RPC:nFe,REACT_APP_SOLANA_DEVNET_RPC:rFe,REACT_APP_MOONBASE_RPC:iFe,REACT_APP_SUI_TESTNET_RPC:sFe,REACT_APP_APTOS_TESTNET_RPC:aFe,REACT_APP_SEI_TESTNET_RPC:oFe,REACT_APP_BASE_SEPOLIA_RPC:cFe,REACT_APP_OSMOSIS_TESTNET_RPC:fFe,REACT_APP_INJECTIVE_TESTNET_RPC:uFe,REACT_APP_WORMCHAIN_TESTNET_RPC:lFe,REACT_APP_EVMOS_TESTNET_RPC:dFe,REACT_APP_COSMOSHUB_TESTNET_RPC:hFe,REACT_APP_KUJIRA_TESTNET_RPC:pFe,REACT_APP_KLAYTN_TESTNET_RPC:bFe,REACT_APP_SEI_REST:mFe,REACT_APP_EVMOS_REST:yFe,REACT_APP_ARBITRUM_SEPOLIA_RPC:gFe,REACT_APP_OPTIMISM_SEPOLIA_RPC:xFe,REACT_APP_APTOS_TESTNET_GRAPHQL:vFe,REACT_APP_SCROLL_TESTNET_RPC:wFe,REACT_APP_BLAST_TESTNET_RPC:MFe,REACT_APP_XLAYER_TESTNET_RPC:AFe,REACT_APP_MANTLE_TESTNET_RPC:EFe}=$Oe,SFe={...rn("Sepolia",XOe),...rn("Bsc",JOe),...rn("Avalanche",eFe),...rn("Fantom",tFe),...rn("Celo",nFe),...rn("Solana",rFe),...rn("Moonbeam",iFe),...rn("Sui",sFe),...rn("Aptos",aFe),...rn("Sei",oFe),...rn("BaseSepolia",cFe),...rn("Osmosis",fFe),...rn("Wormchain",lFe),...rn("ArbitrumSepolia",gFe),...rn("OptimismSepolia",xFe),...rn("Cosmoshub",hFe),...rn("Evmos",dFe),...rn("Kujira",pFe),...rn("Injective",uFe),...rn("Klaytn",bFe),...rn("Scroll",wFe),...rn("Blast",MFe),...rn("Xlayer",AFe),...rn("Mantle",EFe)},CFe={...rn("Sei",mFe),...rn("Evmos",yFe)},TFe={...rn("Aptos",vFe)},IFe={BNB:{key:"BNB",symbol:"BNB",nativeChain:"Bsc",icon:Pe.BNB,coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18,wrappedAsset:"WBNB"},WBNB:{key:"WBNB",symbol:"WBNB",nativeChain:"Bsc",icon:Pe.BNB,tokenId:{chain:"Bsc",address:"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"},coinGeckoId:"binancecoin",color:"#F3BA30",decimals:18},AVAX:{key:"AVAX",symbol:"AVAX",nativeChain:"Avalanche",icon:Pe.AVAX,coinGeckoId:"avalanche-2",color:"#E84141",decimals:18,wrappedAsset:"WAVAX"},WAVAX:{key:"WAVAX",symbol:"WAVAX",nativeChain:"Avalanche",icon:Pe.AVAX,tokenId:{chain:"Avalanche",address:"0xd00ae08403B9bbb9124bB305C09058E32C39A48c"},coinGeckoId:"avalanche-2",color:"#E84141",decimals:18},USDCavax:{key:"USDCavax",symbol:"USDC",nativeChain:"Avalanche",icon:Pe.USDC,tokenId:{chain:"Avalanche",address:"0x5425890298aed601595a70AB815c96711a31Bc65"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},FTM:{key:"FTM",symbol:"FTM",nativeChain:"Fantom",icon:Pe.FANTOM,coinGeckoId:"Fantom",color:"#12B4EC",decimals:18,wrappedAsset:"WFTM"},WFTM:{key:"WFTM",symbol:"WFTM",nativeChain:"Fantom",icon:Pe.FANTOM,tokenId:{chain:"Fantom",address:"0xf1277d1Ed8AD466beddF92ef448A132661956621"},coinGeckoId:"Fantom",color:"#12B4EC",decimals:18},CELO:{key:"CELO",symbol:"CELO",nativeChain:"Celo",icon:Pe.CELO,tokenId:{chain:"Celo",address:"0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9"},coinGeckoId:"Celo",color:"#35D07E",decimals:18},USDCalfajores:{key:"USDCalfajores",symbol:"USDC.e",nativeChain:"Celo",icon:Pe.USDC,tokenId:{chain:"Celo",address:"0x72CAaa7e9889E0a63e016748179b43911A3ec9e5"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},GLMR:{key:"GLMR",symbol:"GLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,coinGeckoId:"moonbeam",color:"#e1147b",decimals:18,wrappedAsset:"WGLMR"},WGLMR:{key:"WGLMR",symbol:"WGLMR",nativeChain:"Moonbeam",icon:Pe.GLMR,tokenId:{chain:"Moonbeam",address:"0xD909178CC99d318e4D46e7E66a972955859670E1"},coinGeckoId:"moonbeam",color:"#e1147b",decimals:18},SOL:{key:"SOL",symbol:"SOL",nativeChain:"Solana",icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9,wrappedAsset:"WSOL"},WSOL:{key:"WSOL",symbol:"WSOL",nativeChain:"Solana",tokenId:{chain:"Solana",address:"So11111111111111111111111111111111111111112"},icon:Pe.SOLANA,coinGeckoId:"solana",color:"#8457EF",decimals:9},USDCsol:{key:"USDCsol",symbol:"USDC",nativeChain:"Solana",tokenId:{chain:"Solana",address:"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"},icon:Pe.USDC,coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},SUI:{key:"SUI",symbol:"SUI",nativeChain:"Sui",tokenId:{chain:"Sui",address:"0x2::sui::SUI"},icon:Pe.SUI,coinGeckoId:"Sui",color:"#8457EF",decimals:9},APT:{key:"APT",symbol:"APT",nativeChain:"Aptos",tokenId:{chain:"Aptos",address:"0x1::Aptos_coin::AptosCoin"},icon:Pe.APT,coinGeckoId:"Aptos",color:"#8457EF",decimals:8},KLAY:{key:"KLAY",symbol:"KLAY",decimals:18,nativeChain:"Klaytn",icon:Pe.KLAY,coinGeckoId:"klay-token",color:"#fa4212",wrappedAsset:"WKLAY"},WKLAY:{key:"WKLAY",symbol:"WKLAY",displayName:"wKLAY",nativeChain:"Klaytn",icon:Pe.KLAY,tokenId:{chain:"Klaytn",address:"0x0339d5Eb6D195Ba90B13ed1BCeAa97EbD198b106"},coinGeckoId:"wrapped-klay",color:"#fa4212",decimals:18},ETHsepolia:{key:"ETHsepolia",symbol:"ETH",nativeChain:"Sepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHsepolia"},WETHsepolia:{key:"WETHsepolia",symbol:"WETH",nativeChain:"Sepolia",icon:Pe.ETH,tokenId:{chain:"Sepolia",address:"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},USDCsepolia:{key:"USDCsepolia",symbol:"USDC",nativeChain:"Sepolia",icon:Pe.USDC,tokenId:{chain:"Sepolia",address:"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"},coinGeckoId:"usd-coin",color:"#2774CA",decimals:6},ETHarbitrum_sepolia:{key:"ETHarbitrum_sepolia",symbol:"ETH",nativeChain:"ArbitrumSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHarbitrum_sepolia"},WETHarbitrum_sepolia:{key:"WETHarbitrum_sepolia",symbol:"WETH",nativeChain:"ArbitrumSepolia",icon:Pe.ETH,tokenId:{chain:"ArbitrumSepolia",address:"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHbase_sepolia:{key:"ETHbase_sepolia",symbol:"ETH",nativeChain:"BaseSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHbase_sepolia"},WETHbase_sepolia:{key:"WETHbase_sepolia",symbol:"WETH",nativeChain:"BaseSepolia",icon:Pe.ETH,tokenId:{chain:"BaseSepolia",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHoptimism_sepolia:{key:"ETHoptimism_sepolia",symbol:"ETH",nativeChain:"OptimismSepolia",icon:Pe.ETH,coinGeckoId:"Ethereum",color:"#5794EC",decimals:18,wrappedAsset:"WETHoptimism_sepolia"},WETHoptimism_sepolia:{key:"WETHoptimism_sepolia",symbol:"WETH",nativeChain:"OptimismSepolia",icon:Pe.ETH,tokenId:{chain:"OptimismSepolia",address:"0x4200000000000000000000000000000000000006"},coinGeckoId:"Ethereum",color:"#5794EC",decimals:18},ETHscroll:{key:"ETHscroll",symbol:"ETH",nativeChain:"Scroll",icon:Pe.SCROLL,coinGeckoId:"Ethereum",decimals:18,wrappedAsset:"WETHscroll"},WETHscroll:{key:"WETHscroll",symbol:"WETH",nativeChain:"Scroll",icon:Pe.SCROLL,tokenId:{chain:"Scroll",address:"0x5300000000000000000000000000000000000004"},coinGeckoId:"Ethereum",decimals:18},ETHblast:{key:"ETHblast",symbol:"ETH",nativeChain:"Blast",icon:Pe.BLAST,coinGeckoId:"Ethereum",decimals:18,wrappedAsset:"WETHblast"},WETHblast:{key:"WETHblast",symbol:"WETH",nativeChain:"Blast",icon:Pe.BLAST,tokenId:{chain:"Blast",address:"0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7"},coinGeckoId:"Ethereum",decimals:18},OKB:{key:"OKB",symbol:"OKB",nativeChain:"Xlayer",icon:Pe.XLAYER,coinGeckoId:"okb",decimals:18,wrappedAsset:"WOKB"},WOKB:{key:"WOKB",symbol:"WOKB",nativeChain:"Xlayer",icon:Pe.XLAYER,tokenId:{chain:"Xlayer",address:"0xa2aFfd8301BfB3c5b815829f2F509f053556D21B"},coinGeckoId:"okb",decimals:18},MNT:{key:"MNT",symbol:"MNT",nativeChain:"Mantle",icon:Pe.MANTLE,coinGeckoId:"mantle",decimals:18,wrappedAsset:"WMNT"},WMNT:{key:"WMNT",symbol:"WMNT",nativeChain:"Mantle",icon:Pe.MANTLE,tokenId:{chain:"Mantle",address:"0xa4c4cb2A072eE99f77212Fa18c2B7Ca26DA23905"},coinGeckoId:"mantle",decimals:18}},DFe={WBNB:{Avalanche:"0x10F1053bF2884b28ee0Bd7a2dDBa237Af3511d29",Fantom:"0xfB174b43228950C2055CFc25AE93f2DCe8E2beF0",Celo:"0xa8050be9389466c3c524F10F131f244ACbf21A0D",Moonbeam:"0x6097E80331B0c6aF4F74D7F2363E70Cb2Fd078A5",Solana:"BaGfF51MQ3a61papTRDYaNefBgTQ9ywnVne5fCff4bxT",Sui:"0xddcf8680a8a4b8a527d8c85ec203274991590c2ea898d1c4635b70164d9c584b::coin::COIN",Aptos:"0xa5894f5ddb8647e6143102aa336ff07374f7b32e88c1c703aef5b7c9a370bf80::coin::T",Klaytn:"0xEFa3626825C33C4cd83850920Ad7Ac0a392E1faE",Sepolia:"0x02CdD5eB55934663F0aD8fbA3516dC7DE4E22894"},WAVAX:{Bsc:"0x6cE9E2c8b59bbcf65dA375D3d8AB503c8524caf7",Fantom:"0x0f545Be981C37fB15ab7c65404648761e99016e4",Celo:"0x502c8C83008D9Dd812a7C5fB886C063060C73Dbf",Moonbeam:"0x2E8afeCC19842229358f3650cc3F091908dcbaB4",Solana:"3Ftc5hTz9sG4huk79onufGiebJNDMZNL8HYgdMJ9E7JR",Sui:"0xa600741c469fb57ed01497ddf101e798fa79a9c529bd176675c5c4d970811f80::coin::COIN",Aptos:"0xbe8f4301c0b54e870902b9a23eeb95ce74ac190531782aa3262337ceb145401a::coin::T",Blast:"0x74C6aA987658FcBaB9FdC2ee65f52Ddd5B2cEd95",Klaytn:"0x10257392a2B5e3C4D4bEe1607650a1C0C738202a",Scroll:"0x5Bd1ba0040C16b13894A6EbE3d55708c91eF08bb",Xlayer:"0xb13a464ceE7455A9b2941bFAe1bB1eB5A6833867"},USDCavax:{Bsc:"0x1cfeCf72bcBE1E429A21A5B11E708C7c397AaC54",Fantom:"0x6BC4E8D8c1d54656D1DeBCa96efc53aFd1408aD2",Celo:"0xDDB349c976cA2C873644F21f594767Eb5390C831",Moonbeam:"0x6533CE14804D113b1F494dC56c5D60A43cb5C3b5",Solana:"GQtMXZxnuacCFTXVeTvyHi6P9F6chbtzhVc8JgD8hv7c",Sui:"0x2aa8c885d04e676c4e87b7d0f94d4f3b243b1b5d93239d1cc41d5528ce1714c1::coin::COIN",Aptos:"0x2ef7697bdb33361ca39d228671203afc0dea3202e792d79d2072b761d87c834::coin::T"},WFTM:{Bsc:"0x9aB305B792DBdb8253bEE909E7006611Cb45175b",Avalanche:"0x094cB577C21Ab1360178beE74B9591fa12216dAD",Celo:"0xE6F8710cA14CFe7F5aAAD3A799C3d1D92dCba938",Moonbeam:"0x566c1cebc6A4AFa1C122E039C4BEBe77043148Ee",Solana:"DMw2tLaq1bVoAEKtkoUtieSk9bfCPUvubYLatTMsSVop",Sui:"0x14e756ff65e0ac810a5f69ca5276ef5b899a6df3c4717de1f85559d8b5ae6ea6::coin::COIN",Aptos:"0x533c6ade00d15d1e014c41e29e34853e87df92c4e01a6a3f41318dbd098048d6::coin::T",Klaytn:"0x097c8878A0d852581Dc4D8820151094Ddd3663Ac",Sepolia:"0x852132647d301B7EED02589B1dc73545E73c8596"},CELO:{Bsc:"0x1471698cBD9cAB0228F2EEA9303A2b3aA0ABDC2B",Avalanche:"0xC66d9c2b33c347d4A4441975f4688fcD5DD4c441",Fantom:"0xB18E73a69c3Aaea39a610372537Cf8482622d199",Moonbeam:"0x3406a9b09adf0cb36DC04c1523C4b294C6b79513",Solana:"84F2QX9278ToDmA98u4A86xSV9hz1ovazr8zwGaX6qjS",Sui:"0x81868174a6b11e1acc337b3414f9912455435d486609fb8d50b34312865085f2::coin::COIN",Aptos:"0xecbb0f7e7d049499ca83ca1358344f56557886f6f7adc740d6734cce7bfc9a14::coin::T",Klaytn:"0xC951826bbB310a8160BB78c2eEe6C98246292ba7",Sepolia:"0x648f226f3bDcAEdc844622d604F76935DC05bC24"},WGLMR:{Bsc:"0x5C31B36599ED7f06b09c0ffC7A2F928cE496F046",Avalanche:"0xf080782DF38eD5228D2FC2882d13D56c8f1D6f21",Fantom:"0x41E3CFDFC255A4bF3C8D3560Bc8D3D9b5080338e",Celo:"0x132D2172D89cd9CfD480A8887c6bF92360fB460e",Solana:"8987WGkYa5viiZ9DD8sS3PB5XghKmWjkEgmzvwDuoAEc",Sui:"0xeffae382de96981f7ddd2d294429924827e8f325d612487a12d6a0b249171002::coin::COIN",Aptos:"0x338373b6694f71dbeac5ca4a30503bf5f083888d71678aed31255de416be37c0::coin::T",Sepolia:"0x3F7CD70ECd402BBe71f45A95156A2CAC0d6A822E"},WSOL:{Bsc:"0x30f19eBba919954FDc020B8A20aEF13ab5e02Af0",Avalanche:"0xb10563644a6AB8948ee6d7f5b0a1fb15AaEa1E03",Fantom:"0xED1a08Fc69A7008d225890A96aaE258c465CC7ad",Celo:"0x05EEF2AE1A7A938D78598F7d9e8b97A9bED0c9eC",Sui:"0xbc03aaab4c11eb84df8bf39fdc714fa5d5b65b16eb7d155e22c74a68c8d4e17f::coin::COIN",Aptos:"0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T",Klaytn:"0x48D99C16638E6FFD2ED60375cD35ef6c139e5f41",Moonbeam:"0x5babD0d267Adf2081626654E51d1cABF8c477440",Sepolia:"0x824CB8fC742F8D3300d29f16cA8beE94471169f5"},USDCsol:{Bsc:"0x51a3cc54eA30Da607974C5D07B8502599801AC08"},SUI:{Bsc:"0x5A73D76e09Af2E428EC64aE10F91B78AC990B298",Avalanche:"0xfc5128F8556a6F059466E67740e6cC31EE5C2C47",Fantom:"0xd882AB49372eC093E8697B5153f54ab5e7738e3b",Celo:"0xa40d9E69ca9867C4bFbeC11Ce79C939991e9bf26",Solana:"BJZ72CjPQojVoH68mzrd4VQ4nr6KuhbAGnhZEZCujKxY",Aptos:"0x7b22d0e02f653d4fd1caddcfa4719a2b329da56eb81d8f27db703f02466c26a5::coin::T",Moonbeam:"0x2ed4B5B1071A3C676664E9085C0e3826542C1b27",Klaytn:"0xbA5F07a20681Add3A396E7606c6DC9B03d71d28A"},APT:{Bsc:"0x4A7Bd5E135f421057F97BbA8BCeeE5c18334f454",Avalanche:"0x996a3f12C1FcD7339Ea8801f629201e4d42EAD04",Fantom:"0xAb2297E8994149BA91737944E40891881aF762a4",Celo:"0xAC0a2fF7DD597de863878a3372142b07B614C125",Moonbeam:"0xCaa2A1d3BbbA0D1466571e83b4E2CbE04252593D",Solana:"7EvFD3JKCJVdtkAYdaSVKJsrPEJCzy2neJha7TREGrCa",Sui:"0x812d6feb8b84e55d47a0bfcae9fb6a4e7e09be5ec86ce0a729e0f67d5f59f477::coin::COIN"},WKLAY:{Bsc:"0x79D34FDb686B5D139949E4F92D83EEe376489176",Aptos:"0xa8ffe1ffe3057756019345cdf9cf3d1f1a3d9a355147dd9440878c448a057579::coin::T",Celo:"0x8e50fC4b7F8B7018E72475f78C640F973218C8Cf",Avalanche:"0x84f3298Bcc019BD5B995756494095e1Eb72B565C",Solana:"6p7qTfX4tRFtQovxwT77Jn9HFQEV7nxLbux9C31Tgm23",Fantom:"0x72A1C24dA7F08d11a7668E228Ec287Fc6ec16E48",Sepolia:"0x142D0E977768cA4De6f2161D9E5B5C9F00435F9e",Moonbeam:"0x6eFf019D79D4136e57A7FC141967F3D0AD41089a",Sui:"0xd4a59fb612b162df75a9d190c0f72098dcae883e88bd0eb28667c31f8208dc3c::coin::COIN"},WETHsepolia:{Solana:"6F5YWWrUMNpee8C6BDUc6DmRvYRMDDTgJHwKhbXuifWs",Celo:"0x890ad4a7eD5bD08b7d6638515157dF3bF4BaD1Bc",Bsc:"0x667a61Efa611399970AE927637dD6f9A16f51e40",Moonbeam:"0xa7276055a1d45fB9982575411801e10ac9970Da8",ArbitrumSepolia:"0x97Ee87C7Db6049669a518730a2Ee60d1Fc58844E",Avalanche:"0x12bFE94230daaE3d48067577F45b7b031dD357f3",Fantom:"0x7F96D67186561Aa17cEb699494E94bEE3F3499D4"},USDCsepolia:{Aptos:"0x3f2912a313c5bea312dbf19f9080101d2e762df6546a6fe9f60a4de72c93d015::coin::T",Solana:"23Adx8na44L3M1Nf9RrUpQPb41eufdRXKseg25FfcJtw",Celo:"0xD6A34325e5F6BE27b7006bf06651444196Da579a",Bsc:"0xb8850F591019F0794F813426d4A4A9b5fB8f23C8",BaseSepolia:"0x3F872340B6A75397aa9b0A463000349962a8795D",ArbitrumSepolia:"0x27B8F40Cf0915e729ae5A96970E91045Fe9724dF",Fantom:"0xa686203C86140142230f44A724281E1BEd09c369",Klaytn:"0x25f2a470a2e1E75DDAc40289AB277eDE4DD98aFa",Sui:"0x6529fef82a8a09470c550a3129bbd889030b62306f0c14161224b1a40ef1346f::coin::COIN"},WETHoptimism_sepolia:{ArbitrumSepolia:"0xa2610700cCA8361DECD27dB2564848C530f20813"}},kFe={chains:KOe,tokens:IFe,wrappedTokens:DFe,rpcs:SFe,rest:CFe,graphql:TFe,guardianSet:{index:0,keys:["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]}},{chains:B9}=JF.DEVNET,NFe={Ethereum:{...B9.Ethereum,displayName:"EVM",explorerUrl:"",explorerName:"",gasToken:"ETH",chainId:1,icon:Pe.ETH,maxBlockSearch:0},Osmosis:{...B9.Osmosis,displayName:"Osmosis",explorerUrl:"",explorerName:"",gasToken:"OSMO",chainId:"osmosis-1002",icon:Pe.OSMO,maxBlockSearch:0},Wormchain:{...B9.Wormchain,displayName:"Wormchain",explorerUrl:"",explorerName:"",gasToken:"WORM",chainId:"wormchain-1",icon:Pe.OSMO,maxBlockSearch:0},Terra2:{...B9.Terra2,displayName:"Terra",explorerUrl:"",explorerName:"",gasToken:"LUNA",chainId:"localterra",icon:Pe.OSMO,maxBlockSearch:0}},LFe={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,REACT_APP_CONNECT_GIT_HASH:"5534a95209cc64101f6b34f3fa3e7486d56a9233",REACT_APP_CONNECT_VERSION:"1.1.4",SSR:!1},{REACT_APP_ETHEREUM_DEVNET_RPC:BFe,REACT_APP_OSMOSIS_DEVNET_RPC:jFe,REACT_APP_WORMCHAIN_DEVNET_RPC:RFe,REACT_APP_TERRA2_DEVNET_RPC:_Fe,REACT_APP_SEI_REST:OFe,REACT_APP_APTOS_DEVNET_REST:FFe}=LFe,PFe={...rn("Ethereum",BFe),...rn("Osmosis",jFe),...rn("Wormchain",RFe),...rn("Terra2",_Fe)},zFe={...rn("Sei",OFe)},UFe={...rn("Aptos",FFe)},WFe={ETH:{key:"ETH",symbol:"ETH",nativeChain:"Ethereum",icon:Pe.ETH,coinGeckoId:"ethereum",color:"#62688F",decimals:18,wrappedAsset:"WETH"},WETH:{key:"WETH",symbol:"WETH",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E"},coinGeckoId:"ethereum",color:"#62688F",decimals:18},TKN:{key:"TKN",symbol:"TKN",nativeChain:"Ethereum",icon:Pe.ETH,tokenId:{chain:"Ethereum",address:"0x2D8BE6BF0baA74e0A907016679CaE9190e80dD0A"},coinGeckoId:"ethereum",color:"#62688F",decimals:18}},HFe={},qFe={chains:NFe,tokens:WFe,wrappedTokens:HFe,rpcs:PFe,rest:zFe,graphql:UFe,guardianSet:{index:0,keys:["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]}},kfe="https://wormholescan.io/#/",GFe="1.1.4",VFe="5534a95209cc64101f6b34f3fa3e7486d56a9233",BZ=["Ethereum","Solana","Arbitrum","Base","Sui","Bsc","Optimism","Fantom","Polygon","Avalanche","Osmosis","Celo","Moonbeam","Klaytn","Injective","Kujira","Scroll","Evmos","Mantle"];function YFe(t){return function(e){var r;const n={meta:{version:GFe,hash:VFe,host:(r=window==null?void 0:window.location)==null?void 0:r.host},...e};if(console.info("Wormhole Connect event:",n),t)try{t(n)}catch(i){console.error("Error handling event:",i)}}}const eP=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new Fe("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const QFe=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new Fe("So11111111111111111111111111111111111111112");new Fe("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const tP=t=>{const e=t.decode.bind(t),n=t.encode.bind(t);return{decode:e,encode:n}},ZFe=t=>e=>{const n=_r(t,e),{encode:r,decode:i}=tP(n),s=n;return s.decode=(a,o)=>{const f=i(a,o);return W1e(ze.Buffer.from(f))},s.encode=(a,o,f)=>{const u=OF(a,t);return r(u,o,f)},s},B1=ZFe(8),Zh=t=>{const e=Mn(t),{encode:n,decode:r}=tP(e),i=e;return i.decode=(s,a)=>!!r(s,a),i.encode=(s,a,o)=>{const f=Number(s);return n(f,a,o)},i},Vn=t=>{const e=_r(32,t),{encode:n,decode:r}=tP(e),i=e;return i.decode=(s,a)=>{const o=r(s,a);return new Fe(o)},i.encode=(s,a,o)=>{const f=s.toBuffer();return n(f,a,o)},i};let rg=class extends Error{constructor(e){super(e)}},KFe=class extends rg{constructor(){super(...arguments),this.name="TokenAccountNotFoundError"}};class $Fe extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountError"}}let XFe=class extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountOwnerError"}},jZ=class extends rg{constructor(){super(...arguments),this.name="TokenInvalidAccountSizeError"}},JFe=class extends rg{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}};var SB;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Mint=1]="Mint",t[t.Account=2]="Account"})(SB||(SB={}));const ePe=1,tPe=_t([Mn("m"),Mn("n"),Zh("isInitialized"),Vn("signer1"),Vn("signer2"),Vn("signer3"),Vn("signer4"),Vn("signer5"),Vn("signer6"),Vn("signer7"),Vn("signer8"),Vn("signer9"),Vn("signer10"),Vn("signer11")]),nPe=tPe.span;var nw;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initialized=1]="Initialized",t[t.Frozen=2]="Frozen"})(nw||(nw={}));const Nfe=_t([Vn("mint"),Vn("owner"),B1("amount"),Ft("delegateOption"),Vn("delegate"),Mn("state"),Ft("isNativeOption"),B1("isNative"),B1("delegatedAmount"),Ft("closeAuthorityOption"),Vn("closeAuthority")]),Z3=Nfe.span;async function Lfe(t,e,n,r=eP){const i=await t.getAccountInfo(e,n);return rPe(e,i,r)}function rPe(t,e,n=eP){if(!e)throw new KFe;if(!e.owner.equals(n))throw new XFe;if(e.data.length<Z3)throw new jZ;const r=Nfe.decode(e.data.slice(0,Z3));let i=ze.Buffer.alloc(0);if(e.data.length>Z3){if(e.data.length===nPe)throw new jZ;if(e.data[Z3]!=SB.Account)throw new $Fe;i=e.data.slice(Z3+ePe)}return{address:t,mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegateOption?r.delegate:null,delegatedAmount:r.delegatedAmount,isInitialized:r.state!==nw.Uninitialized,isFrozen:r.state===nw.Frozen,isNative:!!r.isNativeOption,rentExemptReserve:r.isNativeOption?r.isNative:null,closeAuthority:r.closeAuthorityOption?r.closeAuthority:null,tlvData:i}}const iPe=_t([Ft("mintAuthorityOption"),Vn("mintAuthority"),B1("supply"),Mn("decimals"),Zh("isInitialized"),Ft("freezeAuthorityOption"),Vn("freezeAuthority")]);iPe.span;function sPe(t,e,n=!1,r=eP,i=QFe){if(!n&&!Fe.isOnCurve(e.toBuffer()))throw new JFe;const[s]=Fe.findProgramAddressSync([e.toBuffer(),r.toBuffer(),t.toBuffer()],i);return s}function aPe(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=r}var a=t.length,o=t.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var w=0,E=0,I=0,T=x.length;I!==T&&x[I]===0;)I++,w++;for(var D=(T-I)*u+1>>>0,k=new Uint8Array(D);I!==T;){for(var N=x[I],R=0,_=D-1;(N!==0||R<E)&&_!==-1;_--,R++)N+=256*k[_]>>>0,k[_]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error("Non-zero carry");E=R,I++}for(var F=D-E;F!==D&&k[F]===0;)F++;for(var L=o.repeat(w);F<D;++F)L+=t.charAt(k[F]);return L}function m(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;for(var w=0,E=0,I=0;x[w]===o;)E++,w++;for(var T=(x.length-w)*f+1>>>0,D=new Uint8Array(T);x[w];){var k=e[x.charCodeAt(w)];if(k===255)return;for(var N=0,R=T-1;(k!==0||N<I)&&R!==-1;R--,N++)k+=a*D[R]>>>0,D[R]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");I=N,w++}for(var _=T-I;_!==T&&D[_]===0;)_++;for(var F=new Uint8Array(E+(T-_)),L=E;_!==T;)F[L++]=D[_++];return F}function y(x){var w=m(x);if(w)return w;throw new Error("Non-base"+a+" character")}return{encode:h,decodeUnsafe:m,decode:y}}var oPe=aPe;const cPe=oPe,fPe="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var uPe=cPe(fPe);const Bfe=hs(uPe);function lPe(t){return t>64&&t<91?t-65:t>96&&t<123?t-71:t>47&&t<58?t+4:t===43?62:t===47?63:0}function Kh(t,e){for(var n=t.replace(/[^A-Za-z0-9+/]/g,""),r=n.length,i=r*3+1>>2,s=new Uint8Array(i),a,o,f=0,u=0,h=0;h<r;h++)if(o=h&3,f|=lPe(n.charCodeAt(h))<<6*(3-o),o===3||r-h===1){for(a=0;a<3&&u<i;a++,u++)s[u]=f>>>(16>>>a&24)&255;f=0}return s}function j9(t){return t<26?t+65:t<52?t+71:t<62?t-4:t===62?43:t===63?47:65}function N6(t){for(var e=2,n="",r=t.length,i=0,s=0;s<r;s++)e=s%3,s>0&&s*4/3%76===0&&(n+=""),i|=t[s]<<(16>>>e&24),(e===2||t.length-s===1)&&(n+=String.fromCodePoint(j9(i>>>18&63),j9(i>>>12&63),j9(i>>>6&63),j9(i&63)),i=0);return n.slice(0,n.length-2+e)+(e===2?"":e===1?"=":"==")}function nP(t){let e=t.replace("0x","").match(/.{1,2}/g).map(n=>parseInt(n,16));if(e===null)throw new Error(`Unable to parse HEX: ${t}`);return Uint8Array.from(e)}function rP(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}var dPe=32;function WD(t,e){let n=new Uint8Array(e),r=0;for(;t>0;)n[r]=Number(t%BigInt(256)),t=t/BigInt(256),r+=1;return n}var iP=t=>Bfe.encode(t),sP=t=>Bfe.decode(t),hPe=class{constructor(t){this.bytePosition=0,this.dataView=new DataView(t.buffer)}shift(t){return this.bytePosition+=t,this}read8(){let t=this.dataView.getUint8(this.bytePosition);return this.shift(1),t}read16(){let t=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),t}read32(){let t=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),t}read64(){let t=this.read32(),n=this.read32().toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read128(){let t=BigInt(this.read64()),n=BigInt(this.read64()).toString(16)+t.toString(16).padStart(8,"0");return BigInt("0x"+n).toString(10)}read256(){let t=BigInt(this.read128()),n=BigInt(this.read128()).toString(16)+t.toString(16).padStart(16,"0");return BigInt("0x"+n).toString(10)}readBytes(t){let e=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,e,t);return this.shift(t),n}readULEB(){let t=this.bytePosition+this.dataView.byteOffset,e=new Uint8Array(this.dataView.buffer,t),{value:n,length:r}=mPe(e);return this.shift(r),n}readVec(t){let e=this.readULEB(),n=[];for(let r=0;r<e;r++)n.push(t(this,r,e));return n}},pPe=class{constructor({size:t=1024,maxSize:e,allocateSize:n=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=e||t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){const e=this.bytePosition+t;if(e>this.size){const n=Math.min(this.maxSize,this.size+this.allocateSize);if(e>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${e}`);this.size=n;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return WD(BigInt(t),8).forEach(e=>this.write8(e)),this}write128(t){return WD(BigInt(t),16).forEach(e=>this.write8(e)),this}write256(t){return WD(BigInt(t),32).forEach(e=>this.write8(e)),this}writeULEB(t){return bPe(t).forEach(e=>this.write8(e)),this}writeVec(t,e){return this.writeULEB(t.length),Array.from(t).forEach((n,r)=>e(this,n,r,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return yPe(this.toBytes(),t)}};function bPe(t){let e=[],n=0;if(t===0)return[0];for(;t>0;)e[n]=t&127,(t>>=7)&&(e[n]|=128),n+=1;return e}function mPe(t){let e=0,n=0,r=0;for(;;){let i=t[r];if(r+=1,e|=(i&127)<<n,!(i&128))break;n+=7}return{value:e,length:r}}var Sb=class{constructor(t){if(this.types=new Map,this.counter=0,t instanceof Sb){this.schema=t.schema,this.types=new Map(t.types);return}if(this.schema=t,this.registerAddressType(Sb.ADDRESS,t.addressLength,t.addressEncoding),this.registerVectorType(t.vectorType),t.types&&t.types.structs)for(let e of Object.keys(t.types.structs))this.registerStructType(e,t.types.structs[e]);if(t.types&&t.types.enums)for(let e of Object.keys(t.types.enums))this.registerEnumType(e,t.types.enums[e]);if(t.types&&t.types.aliases)for(let e of Object.keys(t.types.aliases))this.registerAlias(e,t.types.aliases[e]);t.withPrimitives!==!1&&xPe(this)}tempKey(){return`bcs-struct-${++this.counter}`}ser(t,e,n){if(typeof t=="string"||Array.isArray(t)){const{name:r,params:i}=this.parseTypeName(t);return this.getTypeInterface(r).encode(this,e,n,i)}if(typeof t=="object"){const r=this.tempKey();return new Sb(this).registerStructType(r,t).ser(r,e,n)}throw new Error(`Incorrect type passed into the '.ser()' function.
110
110
  ${JSON.stringify(t)}`)}de(t,e,n){if(typeof e=="string")if(n)e=gPe(e,n);else throw new Error("To pass a string to `bcs.de`, specify encoding");if(typeof t=="string"||Array.isArray(t)){const{name:r,params:i}=this.parseTypeName(t);return this.getTypeInterface(r).decode(this,e,i)}if(typeof t=="object"){const r=new Sb(this),i=this.tempKey();return r.registerStructType(i,t).de(i,e,n)}throw new Error(`Incorrect type passed into the '.de()' function.
111
111
  ${JSON.stringify(t)}`)}hasType(t){return this.types.has(t)}registerAlias(t,e){return this.types.set(t,e),this}registerType(t,e,n,r=()=>!0){const{name:i,params:s}=this.parseTypeName(t);return this.types.set(i,{encode(a,o,f,u){const h=s.reduce((m,y,x)=>Object.assign(m,{[y]:u[x]}),{});return this._encodeRaw.call(a,new pPe(f),o,u,h)},decode(a,o,f){const u=s.reduce((h,m,y)=>Object.assign(h,{[m]:f[y]}),{});return this._decodeRaw.call(a,new hPe(o),f,u)},_encodeRaw(a,o,f,u){if(r(o))return e.call(this,a,o,f,u);throw new Error(`Validation failed for type ${i}, data: ${o}`)},_decodeRaw(a,o,f){return n.call(this,a,o,f)}}),this}registerAddressType(t,e,n="hex"){switch(n){case"base64":return this.registerType(t,function(i,s){return Kh(s).reduce((a,o)=>a.write8(o),i)},function(i){return N6(i.readBytes(e))});case"hex":return this.registerType(t,function(i,s){return nP(s).reduce((a,o)=>a.write8(o),i)},function(i){return rP(i.readBytes(e))});default:throw new Error("Unsupported encoding! Use either hex or base64")}}registerVectorType(t){let{name:e,params:n}=this.parseTypeName(t);if(n.length>1)throw new Error("Vector can have only one type parameter; got "+e);return this.registerType(t,function(i,s,a,o){return i.writeVec(s,(f,u)=>{let h=a[0];if(!h)throw new Error(`Incorrect number of type parameters passed a to vector '${t}'`);let{name:m,params:y}=this.parseTypeName(h);if(this.hasType(m))return this.getTypeInterface(m)._encodeRaw.call(this,f,u,y,o);if(!(m in o))throw new Error(`Unable to find a matching type definition for ${m} in vector; make sure you passed a generic`);let{name:x,params:w}=this.parseTypeName(o[m]);return this.getTypeInterface(x)._encodeRaw.call(this,f,u,w,o)})},function(i,s,a){return i.readVec(o=>{let f=s[0];if(!f)throw new Error(`Incorrect number of type parameters passed to a vector '${t}'`);let{name:u,params:h}=this.parseTypeName(f);if(this.hasType(u))return this.getTypeInterface(u)._decodeRaw.call(this,o,h,a);if(!(u in a))throw new Error(`Unable to find a matching type definition for ${u} in vector; make sure you passed a generic`);let{name:m,params:y}=this.parseTypeName(a[u]);this.getTypeInterface(m)._decodeRaw.call(this,o,y,a)})})}registerStructType(t,e){for(let a in e){let o=this.tempKey(),f=e[a];!Array.isArray(f)&&typeof f!="string"&&(e[a]=o,this.registerStructType(o,f))}let n=Object.freeze(e),r=Object.keys(n),{name:i,params:s}=this.parseTypeName(t);return this.registerType(t,function(o,f,u,h){if(!f||f.constructor!==Object)throw new Error(`Expected ${i} to be an Object, got: ${f}`);if(u.length!==s.length)throw new Error(`Incorrect number of generic parameters passed; expected: ${s.length}, got: ${u.length}`);for(let m of r){if(!(m in f))throw new Error(`Struct ${i} requires field ${m}:${n[m]}`);const{name:y,params:x}=this.parseTypeName(n[m]);if(!s.includes(y))this.getTypeInterface(y)._encodeRaw.call(this,o,f[m],x,h);else{const w=s.indexOf(y);let{name:E,params:I}=this.parseTypeName(u[w]);if(this.hasType(E)){this.getTypeInterface(E)._encodeRaw.call(this,o,f[m],I,h);continue}if(!(E in h))throw new Error(`Unable to find a matching type definition for ${E} in ${i}; make sure you passed a generic`);let{name:T,params:D}=this.parseTypeName(h[E]);this.getTypeInterface(T)._encodeRaw.call(this,o,f[m],D,h)}}return o},function(o,f,u){if(f.length!==s.length)throw new Error(`Incorrect number of generic parameters passed; expected: ${s.length}, got: ${f.length}`);let h={};for(let m of r){const{name:y,params:x}=this.parseTypeName(n[m]);if(!s.includes(y))h[m]=this.getTypeInterface(y)._decodeRaw.call(this,o,x,u);else{const w=s.indexOf(y);let{name:E,params:I}=this.parseTypeName(f[w]);if(this.hasType(E)){h[m]=this.getTypeInterface(E)._decodeRaw.call(this,o,I,u);continue}if(!(E in u))throw new Error(`Unable to find a matching type definition for ${E} in ${i}; make sure you passed a generic`);let{name:T,params:D}=this.parseTypeName(u[E]);h[m]=this.getTypeInterface(T)._decodeRaw.call(this,o,D,u)}}return h})}registerEnumType(t,e){for(let a in e){let o=this.tempKey(),f=e[a];f!==null&&!Array.isArray(f)&&typeof f!="string"&&(e[a]=o,this.registerStructType(o,f))}let n=Object.freeze(e),r=Object.keys(n),{name:i,params:s}=this.parseTypeName(t);return this.registerType(t,function(o,f,u,h){if(!f)throw new Error(`Unable to write enum "${i}", missing data.
112
112
  Received: "${f}"`);if(typeof f!="object")throw new Error(`Incorrect data passed into enum "${i}", expected object with properties: "${r.join(" | ")}".
113
113
  Received: "${JSON.stringify(f)}"`);let m=Object.keys(f)[0];if(m===void 0)throw new Error(`Empty object passed as invariant of the enum "${i}"`);let y=r.indexOf(m);if(y===-1)throw new Error(`Unknown invariant of the enum "${i}", allowed values: "${r.join(" | ")}"; received "${m}"`);let x=r[y],w=n[x];if(o.write8(y),w===null)return o;let E=s.indexOf(w),I=E===-1?w:u[E];{let{name:T,params:D}=this.parseTypeName(I);return this.getTypeInterface(T)._encodeRaw.call(this,o,f[m],D,h)}},function(o,f,u){let h=o.readULEB(),m=r[h],y=n[m];if(h===-1)throw new Error(`Decoding type mismatch, expected enum "${i}" invariant index, received "${h}"`);if(y===null)return{[m]:!0};let x=s.indexOf(y),w=x===-1?y:f[x];{let{name:E,params:I}=this.parseTypeName(w);return{[m]:this.getTypeInterface(E)._decodeRaw.call(this,o,I,u)}}})}getTypeInterface(t){let e=this.types.get(t);if(typeof e=="string"){let n=[];for(;typeof e=="string";){if(n.includes(e))throw new Error(`Recursive definition found: ${n.join(" -> ")} -> ${e}`);n.push(e),e=this.types.get(e)}}if(e===void 0)throw new Error(`Type ${t} is not registered`);return e}parseTypeName(t){if(Array.isArray(t)){let[o,...f]=t;return{name:o,params:f}}if(typeof t!="string")throw new Error(`Illegal type passed as a name of the type: ${t}`);let[e,n]=this.schema.genericSeparators||["<",">"],r=t.indexOf(e),i=Array.from(t).reverse().indexOf(n);if(r===-1&&i===-1)return{name:t,params:[]};if(r===-1||i===-1)throw new Error(`Unclosed generic in name '${t}'`);let s=t.slice(0,r),a=t.slice(r+1,t.length-i-1).split(",").map(o=>o.trim());return{name:s,params:a}}},ln=Sb;ln.U8="u8";ln.U16="u16";ln.U32="u32";ln.U64="u64";ln.U128="u128";ln.U256="u256";ln.BOOL="bool";ln.VECTOR="vector";ln.ADDRESS="address";ln.STRING="string";ln.HEX="hex-string";ln.BASE58="base58-string";ln.BASE64="base64-string";function yPe(t,e){switch(e){case"base58":return iP(t);case"base64":return N6(t);case"hex":return rP(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function gPe(t,e){switch(e){case"base58":return sP(t);case"base64":return Kh(t);case"hex":return nP(t);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function xPe(t){t.registerType(ln.U8,function(e,n){return e.write8(n)},function(e){return e.read8()},e=>e<256),t.registerType(ln.U16,function(e,n){return e.write16(n)},function(e){return e.read16()},e=>e<65536),t.registerType(ln.U32,function(e,n){return e.write32(n)},function(e){return e.read32()},e=>e<=4294967296n),t.registerType(ln.U64,function(e,n){return e.write64(n)},function(e){return e.read64()}),t.registerType(ln.U128,function(e,n){return e.write128(n)},function(e){return e.read128()}),t.registerType(ln.U256,function(e,n){return e.write256(n)},function(e){return e.read256()}),t.registerType(ln.BOOL,function(e,n){return e.write8(n)},function(e){return e.read8().toString(10)==="1"}),t.registerType(ln.STRING,function(e,n){return e.writeVec(Array.from(n),(r,i)=>r.write8(i.charCodeAt(0)))},function(e){return e.readVec(n=>n.read8()).map(n=>String.fromCharCode(Number(n))).join("")},e=>!0),t.registerType(ln.HEX,function(e,n){return e.writeVec(Array.from(nP(n)),(r,i)=>r.write8(i))},function(e){let n=e.readVec(r=>r.read8());return rP(new Uint8Array(n))}),t.registerType(ln.BASE58,function(e,n){return e.writeVec(Array.from(sP(n)),(r,i)=>r.write8(i))},function(e){let n=e.readVec(r=>r.read8());return iP(new Uint8Array(n))}),t.registerType(ln.BASE64,function(e,n){return e.writeVec(Array.from(Kh(n)),(r,i)=>r.write8(i))},function(e){let n=e.readVec(r=>r.read8());return N6(new Uint8Array(n))})}function vPe(){return{genericSeparators:["<",">"],vectorType:"vector",addressLength:dPe,addressEncoding:"hex"}}const wPe=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3]);class MPe extends Sy{constructor(e,n,r={},i,s,a){if(super(),this.blockLen=e,this.outputLen=n,this.length=0,this.pos=0,this.finished=!1,this.destroyed=!1,mh(e),mh(n),mh(i),n<0||n>i)throw new Error("outputLen bigger than keyLen");if(r.key!==void 0&&(r.key.length<1||r.key.length>i))throw new Error(`key must be up 1..${i} byte long or undefined`);if(r.salt!==void 0&&r.salt.length!==s)throw new Error(`salt must be ${s} byte long or undefined`);if(r.personalization!==void 0&&r.personalization.length!==a)throw new Error(`personalization must be ${a} byte long or undefined`);this.buffer32=l8(this.buffer=new Uint8Array(e))}update(e){yd(this);const{blockLen:n,buffer:r,buffer32:i}=this;e=Ac(e);const s=e.length,a=e.byteOffset,o=e.buffer;for(let f=0;f<s;){this.pos===n&&(u1||xf(i),this.compress(i,0,!1),u1||xf(i),this.pos=0);const u=Math.min(n-this.pos,s-f),h=a+f;if(u===n&&!(h%4)&&f+u<s){const m=new Uint32Array(o,h,Math.floor((s-f)/4));u1||xf(m);for(let y=0;f+n<s;y+=i.length,f+=n)this.length+=n,this.compress(m,y,!1);u1||xf(m);continue}r.set(e.subarray(f,f+u),this.pos),this.pos+=u,this.length+=u,f+=u}return this}digestInto(e){yd(this),$_(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,this.buffer.subarray(n).fill(0),u1||xf(r),this.compress(r,0,!0),u1||xf(r);const i=l8(e);this.get().forEach((s,a)=>i[a]=Hc(s))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:i,destroyed:s,outputLen:a,pos:o}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.length=r,e.finished=i,e.destroyed=s,e.outputLen=a,e.buffer.set(n),e.pos=o,e}}const Yi=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),qt=new Uint32Array(32);function qu(t,e,n,r,i,s){const a=i[s],o=i[s+1];let f=qt[2*t],u=qt[2*t+1],h=qt[2*e],m=qt[2*e+1],y=qt[2*n],x=qt[2*n+1],w=qt[2*r],E=qt[2*r+1],I=fn.add3L(f,h,a);u=fn.add3H(I,u,m,o),f=I|0,{Dh:E,Dl:w}={Dh:E^u,Dl:w^f},{Dh:E,Dl:w}={Dh:fn.rotr32H(E,w),Dl:fn.rotr32L(E,w)},{h:x,l:y}=fn.add(x,y,E,w),{Bh:m,Bl:h}={Bh:m^x,Bl:h^y},{Bh:m,Bl:h}={Bh:fn.rotrSH(m,h,24),Bl:fn.rotrSL(m,h,24)},qt[2*t]=f,qt[2*t+1]=u,qt[2*e]=h,qt[2*e+1]=m,qt[2*n]=y,qt[2*n+1]=x,qt[2*r]=w,qt[2*r+1]=E}function Gu(t,e,n,r,i,s){const a=i[s],o=i[s+1];let f=qt[2*t],u=qt[2*t+1],h=qt[2*e],m=qt[2*e+1],y=qt[2*n],x=qt[2*n+1],w=qt[2*r],E=qt[2*r+1],I=fn.add3L(f,h,a);u=fn.add3H(I,u,m,o),f=I|0,{Dh:E,Dl:w}={Dh:E^u,Dl:w^f},{Dh:E,Dl:w}={Dh:fn.rotrSH(E,w,16),Dl:fn.rotrSL(E,w,16)},{h:x,l:y}=fn.add(x,y,E,w),{Bh:m,Bl:h}={Bh:m^x,Bl:h^y},{Bh:m,Bl:h}={Bh:fn.rotrBH(m,h,63),Bl:fn.rotrBL(m,h,63)},qt[2*t]=f,qt[2*t+1]=u,qt[2*e]=h,qt[2*e+1]=m,qt[2*n]=y,qt[2*n+1]=x,qt[2*r]=w,qt[2*r+1]=E}class APe extends MPe{constructor(e={}){super(128,e.dkLen===void 0?64:e.dkLen,e,64,16,16),this.v0l=Yi[0]|0,this.v0h=Yi[1]|0,this.v1l=Yi[2]|0,this.v1h=Yi[3]|0,this.v2l=Yi[4]|0,this.v2h=Yi[5]|0,this.v3l=Yi[6]|0,this.v3h=Yi[7]|0,this.v4l=Yi[8]|0,this.v4h=Yi[9]|0,this.v5l=Yi[10]|0,this.v5h=Yi[11]|0,this.v6l=Yi[12]|0,this.v6h=Yi[13]|0,this.v7l=Yi[14]|0,this.v7h=Yi[15]|0;const n=e.key?e.key.length:0;if(this.v0l^=this.outputLen|n<<8|65536|1<<24,e.salt){const r=l8(Ac(e.salt));this.v4l^=Hc(r[0]),this.v4h^=Hc(r[1]),this.v5l^=Hc(r[2]),this.v5h^=Hc(r[3])}if(e.personalization){const r=l8(Ac(e.personalization));this.v6l^=Hc(r[0]),this.v6h^=Hc(r[1]),this.v7l^=Hc(r[2]),this.v7h^=Hc(r[3])}if(e.key){const r=new Uint8Array(this.blockLen);r.set(Ac(e.key)),this.update(r)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:i,v2l:s,v2h:a,v3l:o,v3h:f,v4l:u,v4h:h,v5l:m,v5h:y,v6l:x,v6h:w,v7l:E,v7h:I}=this;return[e,n,r,i,s,a,o,f,u,h,m,y,x,w,E,I]}set(e,n,r,i,s,a,o,f,u,h,m,y,x,w,E,I){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=i|0,this.v2l=s|0,this.v2h=a|0,this.v3l=o|0,this.v3h=f|0,this.v4l=u|0,this.v4h=h|0,this.v5l=m|0,this.v5h=y|0,this.v6l=x|0,this.v6h=w|0,this.v7l=E|0,this.v7h=I|0}compress(e,n,r){this.get().forEach((f,u)=>qt[u]=f),qt.set(Yi,16);let{h:i,l:s}=fn.fromBig(BigInt(this.length));qt[24]=Yi[8]^s,qt[25]=Yi[9]^i,r&&(qt[28]=~qt[28],qt[29]=~qt[29]);let a=0;const o=wPe;for(let f=0;f<12;f++)qu(0,4,8,12,e,n+2*o[a++]),Gu(0,4,8,12,e,n+2*o[a++]),qu(1,5,9,13,e,n+2*o[a++]),Gu(1,5,9,13,e,n+2*o[a++]),qu(2,6,10,14,e,n+2*o[a++]),Gu(2,6,10,14,e,n+2*o[a++]),qu(3,7,11,15,e,n+2*o[a++]),Gu(3,7,11,15,e,n+2*o[a++]),qu(0,5,10,15,e,n+2*o[a++]),Gu(0,5,10,15,e,n+2*o[a++]),qu(1,6,11,12,e,n+2*o[a++]),Gu(1,6,11,12,e,n+2*o[a++]),qu(2,7,8,13,e,n+2*o[a++]),Gu(2,7,8,13,e,n+2*o[a++]),qu(3,4,9,14,e,n+2*o[a++]),Gu(3,4,9,14,e,n+2*o[a++]);this.v0l^=qt[0]^qt[16],this.v0h^=qt[1]^qt[17],this.v1l^=qt[2]^qt[18],this.v1h^=qt[3]^qt[19],this.v2l^=qt[4]^qt[20],this.v2h^=qt[5]^qt[21],this.v3l^=qt[6]^qt[22],this.v3h^=qt[7]^qt[23],this.v4l^=qt[8]^qt[24],this.v4h^=qt[9]^qt[25],this.v5l^=qt[10]^qt[26],this.v5h^=qt[11]^qt[27],this.v6l^=qt[12]^qt[28],this.v6h^=qt[13]^qt[29],this.v7l^=qt[14]^qt[30],this.v7h^=qt[15]^qt[31],qt.fill(0)}destroy(){this.destroyed=!0,this.buffer32.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const EPe=yse(t=>new APe(t));let SPe=class extends TypeError{constructor(e,n){let r;const{message:i,explanation:s,...a}=e,{path:o}=e,f=o.length===0?i:`At path: ${o.join(".")} -- ${i}`;super(s??f),s!=null&&(this.cause=f),Object.assign(this,a),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...n()])}};function CPe(t){return Ro(t)&&typeof t[Symbol.iterator]=="function"}function Ro(t){return typeof t=="object"&&t!=null}function qo(t){return typeof t=="symbol"?t.toString():typeof t=="string"?JSON.stringify(t):`${t}`}function TPe(t){const{done:e,value:n}=t.next();return e?void 0:n}function IPe(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t=="string"&&(t={message:t});const{path:i,branch:s}=e,{type:a}=n,{refinement:o,message:f=`Expected a value of type \`${a}\`${o?` with refinement \`${o}\``:""}, but received: \`${qo(r)}\``}=t;return{value:r,type:a,refinement:o,key:i[i.length-1],path:i,branch:s,...t,message:f}}function*RZ(t,e,n,r){CPe(t)||(t=[t]);for(const i of t){const s=IPe(i,e,n,r);s&&(yield s)}}function*aP(t,e,n={}){const{path:r=[],branch:i=[t],coerce:s=!1,mask:a=!1}=n,o={path:r,branch:i};if(s&&(t=e.coercer(t,o),a&&e.type!=="type"&&Ro(e.schema)&&Ro(t)&&!Array.isArray(t)))for(const u in t)e.schema[u]===void 0&&delete t[u];let f="valid";for(const u of e.validator(t,o))u.explanation=n.message,f="not_valid",yield[u,void 0];for(let[u,h,m]of e.entries(t,o)){const y=aP(h,m,{path:u===void 0?r:[...r,u],branch:u===void 0?i:[...i,h],coerce:s,mask:a,message:n.message});for(const x of y)x[0]?(f=x[0].refinement!=null?"not_refined":"not_valid",yield[x[0],void 0]):s&&(h=x[1],u===void 0?t=h:t instanceof Map?t.set(u,h):t instanceof Set?t.add(h):Ro(t)&&(h!==void 0||u in t)&&(t[u]=h))}if(f!=="not_valid")for(const u of e.refiner(t,o))u.explanation=n.message,f="not_refined",yield[u,void 0];f==="valid"&&(yield[void 0,t])}let J1=class{constructor(e){const{type:n,schema:r,validator:i,refiner:s,coercer:a=f=>f,entries:o=function*(){}}=e;this.type=n,this.schema=r,this.entries=o,this.coercer=a,i?this.validator=(f,u)=>{const h=i(f,u);return RZ(h,u,this,f)}:this.validator=()=>[],s?this.refiner=(f,u)=>{const h=s(f,u);return RZ(h,u,this,f)}:this.refiner=()=>[]}assert(e,n){return rw(e,this,n)}create(e,n){return jfe(e,this,n)}is(e){return R0(e,this)}mask(e,n){return Rfe(e,this,n)}validate(e,n={}){return y3(e,this,n)}};function rw(t,e,n){const r=y3(t,e,{message:n});if(r[0])throw r[0]}function jfe(t,e,n){const r=y3(t,e,{coerce:!0,message:n});if(r[0])throw r[0];return r[1]}function Rfe(t,e,n){const r=y3(t,e,{coerce:!0,mask:!0,message:n});if(r[0])throw r[0];return r[1]}function R0(t,e){return!y3(t,e)[0]}function y3(t,e,n={}){const r=aP(t,e,n),i=TPe(r);return i[0]?[new SPe(i[0],function*(){for(const a of r)a[0]&&(yield a[0])}),void 0]:[void 0,i[1]]}function Yf(...t){const e=t[0].type==="type",n=t.map(i=>i.schema),r=Object.assign({},...n);return e?DPe(r):et(r)}function _c(t,e){return new J1({type:t,schema:null,validator:e})}function wu(){return _c("any",()=>!0)}function Ct(t){return new J1({type:"array",schema:t,*entries(e){if(t&&Array.isArray(e))for(const[n,r]of e.entries())yield[n,r,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${qo(e)}`}})}function zr(){return _c("boolean",t=>typeof t=="boolean")}function nu(){return _c("integer",t=>typeof t=="number"&&!isNaN(t)&&Number.isInteger(t)||`Expected an integer, but received: ${qo(t)}`)}function cn(t){const e=qo(t),n=typeof t;return new J1({type:"literal",schema:n==="string"||n==="number"||n==="boolean"?t:null,validator(r){return r===t||`Expected the literal \`${e}\`, but received: ${qo(r)}`}})}function _fe(){return _c("never",()=>!1)}function Pr(t){return new J1({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}function On(){return _c("number",t=>typeof t=="number"&&!isNaN(t)||`Expected a number, but received: ${qo(t)}`)}function et(t){const e=t?Object.keys(t):[],n=_fe();return new J1({type:"object",schema:t||null,*entries(r){if(t&&Ro(r)){const i=new Set(Object.keys(r));for(const s of e)i.delete(s),yield[s,r[s],t[s]];for(const s of i)yield[s,r[s],n]}},validator(r){return Ro(r)||`Expected an object, but received: ${qo(r)}`},coercer(r){return Ro(r)?{...r}:r}})}function Ot(t){return new J1({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function Mu(t,e){return new J1({type:"record",schema:null,*entries(n){if(Ro(n))for(const r in n){const i=n[r];yield[r,r,t],yield[r,i,e]}},validator(n){return Ro(n)||`Expected an object, but received: ${qo(n)}`}})}function Le(){return _c("string",t=>typeof t=="string"||`Expected a string, but received: ${qo(t)}`)}function Na(t){const e=_fe();return new J1({type:"tuple",schema:null,*entries(n){if(Array.isArray(n)){const r=Math.max(t.length,n.length);for(let i=0;i<r;i++)yield[i,n[i],t[i]||e]}},validator(n){return Array.isArray(n)||`Expected an array, but received: ${qo(n)}`}})}function DPe(t){const e=Object.keys(t);return new J1({type:"type",schema:t,*entries(n){if(Ro(n))for(const r of e)yield[r,n[r],t[r]]},validator(n){return Ro(n)||`Expected an object, but received: ${qo(n)}`},coercer(n){return Ro(n)?{...n}:n}})}function Er(t){const e=t.map(n=>n.type).join(" | ");return new J1({type:"union",schema:null,coercer(n){for(const r of t){const[i,s]=r.validate(n,{coerce:!0});if(!i)return s}return n},validator(n,r){const i=[];for(const s of t){const[...a]=aP(n,s,r),[o]=a;if(o[0])for(const[f]of a)f&&i.push(f);else return[]}return[`Expected the value to satisfy a union of \`${e}\`, but received: ${qo(n)}`,...i]}})}var oP={},cP={},Ofe={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(f,u,h){this.fn=f,this.context=u,this.once=h||!1}function s(f,u,h,m,y){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||f,y),w=n?n+u:u;return f._events[w]?f._events[w].fn?f._events[w]=[f._events[w],x]:f._events[w].push(x):(f._events[w]=x,f._eventsCount++),f}function a(f,u){--f._eventsCount===0?f._events=new r:delete f._events[u]}function o(){this._events=new r,this._eventsCount=0}o.prototype.eventNames=function(){var u=[],h,m;if(this._eventsCount===0)return u;for(m in h=this._events)e.call(h,m)&&u.push(n?m.slice(1):m);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(h)):u},o.prototype.listeners=function(u){var h=n?n+u:u,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,x=m.length,w=new Array(x);y<x;y++)w[y]=m[y].fn;return w},o.prototype.listenerCount=function(u){var h=n?n+u:u,m=this._events[h];return m?m.fn?1:m.length:0},o.prototype.emit=function(u,h,m,y,x,w){var E=n?n+u:u;if(!this._events[E])return!1;var I=this._events[E],T=arguments.length,D,k;if(I.fn){switch(I.once&&this.removeListener(u,I.fn,void 0,!0),T){case 1:return I.fn.call(I.context),!0;case 2:return I.fn.call(I.context,h),!0;case 3:return I.fn.call(I.context,h,m),!0;case 4:return I.fn.call(I.context,h,m,y),!0;case 5:return I.fn.call(I.context,h,m,y,x),!0;case 6:return I.fn.call(I.context,h,m,y,x,w),!0}for(k=1,D=new Array(T-1);k<T;k++)D[k-1]=arguments[k];I.fn.apply(I.context,D)}else{var N=I.length,R;for(k=0;k<N;k++)switch(I[k].once&&this.removeListener(u,I[k].fn,void 0,!0),T){case 1:I[k].fn.call(I[k].context);break;case 2:I[k].fn.call(I[k].context,h);break;case 3:I[k].fn.call(I[k].context,h,m);break;case 4:I[k].fn.call(I[k].context,h,m,y);break;default:if(!D)for(R=1,D=new Array(T-1);R<T;R++)D[R-1]=arguments[R];I[k].fn.apply(I[k].context,D)}}return!0},o.prototype.on=function(u,h,m){return s(this,u,h,m,!1)},o.prototype.once=function(u,h,m){return s(this,u,h,m,!0)},o.prototype.removeListener=function(u,h,m,y){var x=n?n+u:u;if(!this._events[x])return this;if(!h)return a(this,x),this;var w=this._events[x];if(w.fn)w.fn===h&&(!y||w.once)&&(!m||w.context===m)&&a(this,x);else{for(var E=0,I=[],T=w.length;E<T;E++)(w[E].fn!==h||y&&!w[E].once||m&&w[E].context!==m)&&I.push(w[E]);I.length?this._events[x]=I.length===1?I[0]:I:a(this,x)}return this},o.prototype.removeAllListeners=function(u){var h;return u?(h=n?n+u:u,this._events[h]&&a(this,h)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,t.exports=o})(Ofe);var fP=Ofe.exports;const kPe=hs(fP);Object.defineProperty(cP,"__esModule",{value:!0});const NPe=fP;class LPe extends NPe.EventEmitter{constructor(n,r,i){super();ce(this,"socket");this.socket=new window.WebSocket(n,i),this.socket.onopen=()=>this.emit("open"),this.socket.onmessage=s=>this.emit("message",s.data),this.socket.onerror=s=>this.emit("error",s),this.socket.onclose=s=>{this.emit("close",s.code,s.reason)}}send(n,r,i){const s=i||r;try{this.socket.send(n),s()}catch(a){s(a)}}close(n,r){this.socket.close(n,r)}addEventListener(n,r,i){this.socket.addEventListener(n,r,i)}}function BPe(t,e){return new LPe(t,e)}cP.default=BPe;var uP={},A8={};Object.defineProperty(A8,"__esModule",{value:!0});A8.createError=A8.DefaultDataPack=void 0;const jPe=new Map([[-32e3,"Event not provided"],[-32600,"Invalid Request"],[-32601,"Method not found"],[-32602,"Invalid params"],[-32603,"Internal error"],[-32604,"Params not found"],[-32605,"Method forbidden"],[-32606,"Event forbidden"],[-32700,"Parse error"]]);class RPe{encode(e){return JSON.stringify(e)}decode(e){return JSON.parse(e)}}A8.DefaultDataPack=RPe;function _Pe(t,e){const n={code:t,message:jPe.get(t)||"Internal Server Error"};return e&&(n.data=e),n}A8.createError=_Pe;Object.defineProperty(uP,"__esModule",{value:!0});const OPe=fP,FPe=A8;class PPe extends OPe.EventEmitter{constructor(n,r="ws://localhost:8080",{autoconnect:i=!0,reconnect:s=!0,reconnect_interval:a=1e3,max_reconnects:o=5,...f}={},u,h){super();ce(this,"address");ce(this,"rpc_id");ce(this,"queue");ce(this,"options");ce(this,"autoconnect");ce(this,"ready");ce(this,"reconnect");ce(this,"reconnect_timer_id");ce(this,"reconnect_interval");ce(this,"max_reconnects");ce(this,"rest_options");ce(this,"current_reconnects");ce(this,"generate_request_id");ce(this,"socket");ce(this,"webSocketFactory");ce(this,"dataPack");this.webSocketFactory=n,this.queue={},this.rpc_id=0,this.address=r,this.autoconnect=i,this.ready=!1,this.reconnect=s,this.reconnect_timer_id=void 0,this.reconnect_interval=a,this.max_reconnects=o,this.rest_options=f,this.current_reconnects=0,this.generate_request_id=u||(()=>++this.rpc_id),h?this.dataPack=h:this.dataPack=new FPe.DefaultDataPack,this.autoconnect&&this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}connect(){this.socket||this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}call(n,r,i,s){return!s&&typeof i=="object"&&(s=i,i=null),new Promise((a,o)=>{if(!this.ready)return o(new Error("socket not ready"));const f=this.generate_request_id(n,r),u={jsonrpc:"2.0",method:n,params:r||void 0,id:f};this.socket.send(this.dataPack.encode(u),s,h=>{if(h)return o(h);this.queue[f]={promise:[a,o]},i&&(this.queue[f].timeout=setTimeout(()=>{delete this.queue[f],o(new Error("reply timeout"))},i))})})}async login(n){const r=await this.call("rpc.login",n);if(!r)throw new Error("authentication failed");return r}async listMethods(){return await this.call("__listMethods")}notify(n,r){return new Promise((i,s)=>{if(!this.ready)return s(new Error("socket not ready"));const a={jsonrpc:"2.0",method:n,params:r};this.socket.send(this.dataPack.encode(a),o=>{if(o)return s(o);i()})})}async subscribe(n){typeof n=="string"&&(n=[n]);const r=await this.call("rpc.on",n);if(typeof n=="string"&&r[n]!=="ok")throw new Error("Failed subscribing to an event '"+n+"' with: "+r[n]);return r}async unsubscribe(n){typeof n=="string"&&(n=[n]);const r=await this.call("rpc.off",n);if(typeof n=="string"&&r[n]!=="ok")throw new Error("Failed unsubscribing from an event with: "+r);return r}close(n,r){this.socket.close(n||1e3,r)}setAutoReconnect(n){this.reconnect=n}setReconnectInterval(n){this.reconnect_interval=n}setMaxReconnects(n){this.max_reconnects=n}_connect(n,r){clearTimeout(this.reconnect_timer_id),this.socket=this.webSocketFactory(n,r),this.socket.addEventListener("open",()=>{this.ready=!0,this.emit("open"),this.current_reconnects=0}),this.socket.addEventListener("message",({data:i})=>{i instanceof ArrayBuffer&&(i=ze.Buffer.from(i).toString());try{i=this.dataPack.decode(i)}catch{return}if(i.notification&&this.listeners(i.notification).length){if(!Object.keys(i.params).length)return this.emit(i.notification);const s=[i.notification];if(i.params.constructor===Object)s.push(i.params);else for(let a=0;a<i.params.length;a++)s.push(i.params[a]);return Promise.resolve().then(()=>{this.emit.apply(this,s)})}if(!this.queue[i.id])return i.method?Promise.resolve().then(()=>{this.emit(i.method,i==null?void 0:i.params)}):void 0;"error"in i=="result"in i&&this.queue[i.id].promise[1](new Error('Server response malformed. Response must include either "result" or "error", but not both.')),this.queue[i.id].timeout&&clearTimeout(this.queue[i.id].timeout),i.error?this.queue[i.id].promise[1](i.error):this.queue[i.id].promise[0](i.result),delete this.queue[i.id]}),this.socket.addEventListener("error",i=>this.emit("error",i)),this.socket.addEventListener("close",({code:i,reason:s})=>{this.ready&&setTimeout(()=>this.emit("close",i,s),0),this.ready=!1,this.socket=void 0,i!==1e3&&(this.current_reconnects++,this.reconnect&&(this.max_reconnects>this.current_reconnects||this.max_reconnects===0)&&(this.reconnect_timer_id=setTimeout(()=>this._connect(n,r),this.reconnect_interval)))})}}uP.default=PPe;var Ffe=an&&an.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oP,"__esModule",{value:!0});var Pfe=oP.Client=void 0;const zPe=Ffe(cP),UPe=Ffe(uP);class WPe extends UPe.default{constructor(e="ws://localhost:8080",{autoconnect:n=!0,reconnect:r=!0,reconnect_interval:i=1e3,max_reconnects:s=5}={},a){super(zPe.default,e,{autoconnect:n,reconnect:r,reconnect_interval:i,max_reconnects:s},a)}}Pfe=oP.Client=WPe;function zfe(t){return/^\d+\.\d+\.\d+$/.test(t)}function Lc(t){if(!zfe(t))throw new Error("Invalid semver version: "+t);const[e,n,r]=t.split(".").map(i=>parseInt(i,10));return{major:e,minor:n,patch:r}}function HPe(t,e){const n=Lc(t),r=Lc(e);return n.major!==r.major?n.major<r.major:n.minor!==r.minor?n.minor<r.minor:n.patch!==r.patch?n.patch<r.patch:!1}function qPe(t,e){const n=Lc(t),r=Lc(e);return n.major!==r.major?n.major<=r.major:n.minor!==r.minor?n.minor<=r.minor:n.patch!==r.patch?n.patch<=r.patch:!0}function GPe(t,e){const n=Lc(t),r=Lc(e);return n.major!==r.major?n.major>r.major:n.minor!==r.minor?n.minor>r.minor:n.patch!==r.patch?n.patch>r.patch:!1}function VPe(t,e){const n=Lc(t),r=Lc(e);return n.major!==r.major?n.major>=r.major:n.minor!==r.minor?n.minor>=r.minor:n.patch!==r.patch?n.patch>=r.patch:!0}function YPe(t,e){return Lc(t),Lc(e),t===e}var _Z={isValid:zfe,parse:Lc,lt:HPe,lte:qPe,gt:GPe,gte:VPe,eq:YPe},lP=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)},Tr=(t,e,n)=>(lP(t,e,"read from private field"),n?n.call(t):e.get(t)),Cb=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},Tb=(t,e,n,r)=>(lP(t,e,"write to private field"),e.set(t,n),n),Ib=(t,e,n)=>(lP(t,e,"access private method"),n),Wa=Le(),QPe=Le(),ZPe=Le(),wr=Le(),ia=Le(),ua=Le(),Od=Er([et({AddressOwner:ia}),et({ObjectOwner:ia}),et({Shared:et({initial_shared_version:On()})}),cn("Immutable")]),KPe=_c("SuiJsonValue",()=>!0),$Pe=32;function CB(t){try{return sP(t).length===$Pe}catch{return!1}}var Ufe=32;function Ju(t){return XPe(t)&&JPe(t)===Ufe}function R9(t){return Ju(t)}function xs(t,e=!1){let n=t.toLowerCase();return!e&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(Ufe*2,"0")}`}function Qf(t,e=!1){return xs(t,e)}function XPe(t){return/^(0x|0X)?[a-fA-F0-9]+$/.test(t)&&t.length%2===0}function JPe(t){return/^(0x|0X)/.test(t)?(t.length-2)/2:t.length/2}Er([Le(),cn("package")]);var A1=et({digest:Wa,objectId:Le(),version:Er([On(),Le()])}),eze=et({payment:Ct(A1),owner:Le(),price:Le(),budget:Le()}),tze=Yf(A1,et({type:Le(),owner:Od,previousTransaction:Wa})),nze=Mu(Le(),wu()),rze=Mu(Le(),Le()),Wfe=et({type:Le(),fields:nze,hasPublicTransfer:zr()}),TB=et({disassembled:rze}),ize=Er([Yf(Wfe,et({dataType:cn("moveObject")})),Yf(TB,et({dataType:cn("package")}))]);et({type:Le(),hasPublicTransfer:zr(),version:ua,bcsBytes:Ct(On())});var sze=et({id:wr,moduleMap:Mu(Le(),Le())}),aze=Er([Yf(Wfe,et({dataType:cn("moveObject")})),Yf(sze,et({dataType:cn("package")}))]);BigInt(1e9);var m5=Le(),Hfe=et({code:Le(),error:Ot(Le()),object_id:Ot(wr),version:Ot(ua),digest:Ot(m5)}),oze=et({data:Pr(Mu(Le(),Le())),error:Pr(Hfe)}),cze=Er([oze,Ot(Mu(Le(),Le()))]),fze=et({objectId:wr,version:ua,digest:m5,type:Ot(Le()),content:Ot(ize),bcs:Ot(aze),owner:Ot(Od),previousTransaction:Ot(Wa),storageRebate:Ot(Le()),display:Ot(cze)});et({showType:Ot(zr()),showContent:Ot(zr()),showBcs:Ot(zr()),showOwner:Ot(zr()),showPreviousTransaction:Ot(zr()),showStorageRebate:Ot(zr()),showDisplay:Ot(zr())});Er([cn("Exists"),cn("notExists"),cn("Deleted")]);Ct(tze);var vx=et({data:Ot(fze),error:Ot(Hfe)});function qfe(t){return t.data}function uze(t){if(t.error&&"object_id"in t.error&&"version"in t.error&&"digest"in t.error){const e=t.error;return{objectId:e.object_id,version:e.version,digest:e.digest}}}function lze(t){if("reference"in t)return t.reference;const e=qfe(t);return e?{objectId:e.objectId,version:e.version,digest:e.digest}:uze(t)}function dze(t){var e;return R0(t,Od)?t:(e=qfe(t))==null?void 0:e.owner}function hze(t){const e=dze(t);if(typeof e=="object"&&"Shared"in e)return e.Shared.initial_shared_version}var pze=et({objectId:wr,atCheckpoint:Ot(On())}),bze=et({data:Ct(vx),nextCursor:Er([Pr(wr),Pr(pze)]),hasNextPage:zr()}),Gfe=et({txDigest:Wa,eventSeq:ua}),dP=et({id:Gfe,packageId:wr,transactionModule:Le(),sender:ia,type:Le(),parsedJson:Ot(Mu(Le(),wu())),bcs:Ot(Le()),timestampMs:Ot(Le())}),mze=et({data:Ct(dP),nextCursor:Pr(Gfe),hasNextPage:zr()}),yze=On(),gze=et({subscription:yze,result:dP}),$h=Le(),xze=et({epoch:$h,storage_charge:Le(),computation_charge:Le(),storage_rebate:Le(),epoch_start_timestamp_ms:Ot(Le())}),vze=et({epoch:$h,round:Le(),commit_timestamp_ms:Le()}),wze=et({objects:Ct(wr)}),qc=Er([cn("GasCoin"),et({Input:On()}),et({Result:On()}),et({NestedResult:Na([On(),On()])})]),Mze=et({arguments:Ot(Ct(qc)),type_arguments:Ot(Ct(Le())),package:wr,module:Le(),function:Le()}),Aze=Er([et({MoveCall:Mze}),et({TransferObjects:Na([Ct(qc),qc])}),et({SplitCoins:Na([qc,Ct(qc)])}),et({MergeCoins:Na([qc,Ct(qc)])}),et({Publish:Na([TB,Ct(wr)])}),et({Upgrade:Na([TB,Ct(wr),wr,qc])}),et({MakeMoveVec:Na([Pr(Le()),Ct(qc)])})]),Eze=Er([et({type:cn("pure"),valueType:Ot(Le()),value:KPe}),et({type:cn("object"),objectType:cn("immOrOwnedObject"),objectId:wr,version:ua,digest:m5}),et({type:cn("object"),objectType:cn("sharedObject"),objectId:wr,initialSharedVersion:ua,mutable:zr()})]),Sze=et({transactions:Ct(Aze),inputs:Ct(Eze)}),Cze=Er([Yf(xze,et({kind:cn("ChangeEpoch")})),Yf(vze,et({kind:cn("ConsensusCommitPrologue")})),Yf(wze,et({kind:cn("Genesis")})),Yf(Sze,et({kind:cn("ProgrammableTransaction")}))]),Vfe=et({messageVersion:cn("v1"),transaction:Cze,sender:ia,gasData:eze}),OZ=Le(),Tze=Er([OZ,Ct(OZ)]);et({epoch:$h,signature:Tze,signers_map:Ct(On())});var Ize=et({computationCost:Le(),storageCost:Le(),storageRebate:Le(),nonRefundableStorageFee:Le()}),Dze=Er([cn("success"),cn("failure")]),kze=et({status:Dze,error:Ot(Le())}),_9=et({owner:Od,reference:A1}),Nze=et({objectId:wr,sequenceNumber:ua}),hP=et({messageVersion:cn("v1"),status:kze,executedEpoch:$h,modifiedAtVersions:Ot(Ct(Nze)),gasUsed:Ize,sharedObjects:Ot(Ct(A1)),transactionDigest:Wa,created:Ot(Ct(_9)),mutated:Ot(Ct(_9)),unwrapped:Ot(Ct(_9)),deleted:Ot(Ct(A1)),unwrapped_then_deleted:Ot(Ct(A1)),wrapped:Ot(Ct(A1)),gasObject:_9,eventsDigest:Ot(ZPe),dependencies:Ot(Ct(Wa))}),pP=Ct(dP),Lze=Na([Ct(On()),Le()]),Bze=Na([qc,Ct(On()),Le()]),jze=et({mutableReferenceOutputs:Ot(Ct(Bze)),returnValues:Ot(Ct(Lze))}),Rze=et({effects:hP,events:pP,results:Ot(Ct(jze)),error:Ot(Le())}),_ze=Le(),Oze=et({data:Vfe,txSignatures:Ct(Le())}),Fze=et({type:cn("published"),packageId:wr,version:ua,digest:m5,modules:Ct(Le())}),Pze=et({type:cn("transferred"),sender:ia,recipient:Od,objectType:Le(),objectId:wr,version:ua,digest:m5}),zze=et({type:cn("mutated"),sender:ia,owner:Od,objectType:Le(),objectId:wr,version:ua,previousVersion:ua,digest:m5}),Uze=et({type:cn("deleted"),sender:ia,objectType:Le(),objectId:wr,version:ua}),Wze=et({type:cn("wrapped"),sender:ia,objectType:Le(),objectId:wr,version:ua}),Hze=et({type:cn("created"),sender:ia,owner:Od,objectType:Le(),objectId:wr,version:ua,digest:m5}),Yfe=Er([Fze,Pze,zze,Uze,Wze,Hze]),Qfe=et({owner:Od,coinType:Le(),amount:Le()}),wx=et({digest:Wa,transaction:Ot(Oze),effects:Ot(hP),events:Ot(pP),timestampMs:Ot(Le()),checkpoint:Ot(Le()),confirmedLocalExecution:Ot(zr()),objectChanges:Ot(Ct(Yfe)),balanceChanges:Ot(Ct(Qfe)),errors:Ot(Ct(Le()))});et({showInput:Ot(zr()),showEffects:Ot(zr()),showEvents:Ot(zr()),showObjectChanges:Ot(zr()),showBalanceChanges:Ot(zr())});var qze=et({data:Ct(wx),nextCursor:Pr(Wa),hasNextPage:zr()}),Gze=et({effects:hP,events:pP,objectChanges:Ct(Yfe),balanceChanges:Ct(Qfe),input:Ot(Vfe)}),Zfe="0x2",bP="0x1",Vze="object",Yze="ID",Kfe=`${Zfe}::sui::SUI`;Qf("0x6");var Qze=et({decimals:On(),name:Le(),symbol:Le(),description:Le(),iconUrl:Pr(Le()),id:Pr(wr)}),B5="vector",Zze={kind:"TransactionKind",sender:ln.ADDRESS,gasData:"GasData",expiration:"TransactionExpiration"},Kze={enums:{"Option<T>":{None:null,Some:"T"},ObjectArg:{ImmOrOwned:"SuiObjectRef",Shared:"SharedObjectRef"},CallArg:{Pure:[B5,ln.U8],Object:"ObjectArg",ObjVec:[B5,"ObjectArg"]},TypeTag:{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:"TypeTag",struct:"StructTag",u16:null,u32:null,u256:null},TransactionKind:{ProgrammableTransaction:"ProgrammableTransaction",ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null},TransactionExpiration:{None:null,Epoch:ln.U64},TransactionData:{V1:"TransactionDataV1"}},structs:{SuiObjectRef:{objectId:ln.ADDRESS,version:ln.U64,digest:"ObjectDigest"},SharedObjectRef:{objectId:ln.ADDRESS,initialSharedVersion:ln.U64,mutable:ln.BOOL},StructTag:{address:ln.ADDRESS,module:ln.STRING,name:ln.STRING,typeParams:[B5,"TypeTag"]},GasData:{payment:[B5,"SuiObjectRef"],owner:ln.ADDRESS,price:ln.U64,budget:ln.U64},SenderSignedData:{data:"TransactionData",txSignatures:[B5,[B5,ln.U8]]},TransactionDataV1:Zze},aliases:{ObjectDigest:ln.BASE58}},$fe=new ln({...vPe(),types:Kze});$fe.registerType("utf8string",(t,e)=>{const n=Array.from(new TextEncoder().encode(e));return t.writeVec(n,(r,i)=>r.write8(i))},t=>{let e=t.readVec(n=>n.read8());return new TextDecoder().decode(new Uint8Array(e))});var $ze=et({amount:On(),id:wr,transferTxDigest:Wa});et({transferredGasObjects:Ct($ze),error:Pr(Le())});var Xze=Er([Le(),et({Object:Le()})]),Jze=Ct(Xze),eUe=et({address:Le(),name:Le()}),tUe=Er([cn("Private"),cn("Public"),cn("Friend")]),mP=et({abilities:Ct(Le())}),nUe=et({constraints:mP,isPhantom:zr()}),rUe=et({TypeParameter:On()});function Xfe(t){if(!t)return!1;if(typeof t=="string"||R0(t,rUe)||Jfe(t))return!0;if(typeof t!="object")return!1;const e=t;return!!(R0(e.Reference,H2)||R0(e.MutableReference,H2)||R0(e.Vector,H2))}var H2=_c("SuiMoveNormalizedType",Xfe);function Jfe(t){if(!t||typeof t!="object")return!1;const e=t;if(!e.Struct||typeof e.Struct!="object")return!1;const n=e.Struct;return!(typeof n.address!="string"||typeof n.module!="string"||typeof n.name!="string"||!Array.isArray(n.typeArguments)||!n.typeArguments.every(r=>Xfe(r)))}_c("SuiMoveNormalizedStructType",Jfe);var eue=et({visibility:tUe,isEntry:zr(),typeParameters:Ct(mP),parameters:Ct(H2),return:Ct(H2)}),iUe=et({name:Le(),type:H2}),tue=et({abilities:mP,typeParameters:Ct(nUe),fields:Ct(iUe)}),nue=et({fileFormatVersion:On(),address:Le(),name:Le(),friends:Ct(eUe),structs:Mu(Le(),tue),exposedFunctions:Mu(Le(),eue)}),sUe=Mu(Le(),nue);function rue(t){return typeof t=="object"&&"MutableReference"in t?t.MutableReference:void 0}function aUe(t){return typeof t=="object"&&"Reference"in t?t.Reference:void 0}function iue(t){if(typeof t=="object"&&"Struct"in t)return t;const e=aUe(t),n=rue(t);if(typeof e=="object"&&"Struct"in e)return e;if(typeof n=="object"&&"Struct"in n)return n}et({value:On()});var oUe=et({stakedSuiId:wr,stakeRequestEpoch:$h,stakeActiveEpoch:$h,principal:Le(),status:Er([cn("Active"),cn("Pending"),cn("Unstaked")]),estimatedReward:Ot(Le())}),FZ=et({validatorAddress:ia,stakingPool:wr,stakes:Ct(oUe)}),cUe=et({balance:et({value:On()}),distribution_counter:On(),current_distribution_amount:On(),stake_subsidy_period_length:On(),stake_subsidy_decrease_rate:On()});et({type:Le(),fields:cUe});et({value:On()});var fUe=et({id:Le(),size:On(),head:et({vec:Ct()}),tail:et({vec:Ct()})});et({id:Le(),size:On()});et({type:Le(),fields:fUe});var uUe=et({exchangeRates:et({id:Le(),size:On()}),id:Le(),pendingStake:On(),pendingPoolTokenWithdraw:On(),pendingTotalSuiWithdraw:On(),poolTokenBalance:On(),rewardsPool:et({value:On()}),activationEpoch:et({vec:Ct()}),deactivationEpoch:et({vec:Ct()}),suiBalance:On()});et({type:Le(),fields:uUe});var lUe=Ct(Na([_ze,Le()])),dUe=et({epoch:$h,validators:lUe}),sue=et({suiAddress:ia,protocolPubkeyBytes:Le(),networkPubkeyBytes:Le(),workerPubkeyBytes:Le(),proofOfPossessionBytes:Le(),operationCapId:Le(),name:Le(),description:Le(),imageUrl:Le(),projectUrl:Le(),p2pAddress:Le(),netAddress:Le(),primaryAddress:Le(),workerAddress:Le(),nextEpochProtocolPubkeyBytes:Pr(Le()),nextEpochProofOfPossession:Pr(Le()),nextEpochNetworkPubkeyBytes:Pr(Le()),nextEpochWorkerPubkeyBytes:Pr(Le()),nextEpochNetAddress:Pr(Le()),nextEpochP2pAddress:Pr(Le()),nextEpochPrimaryAddress:Pr(Le()),nextEpochWorkerAddress:Pr(Le()),votingPower:Le(),gasPrice:Le(),commissionRate:Le(),nextEpochStake:Le(),nextEpochGasPrice:Le(),nextEpochCommissionRate:Le(),stakingPoolId:Le(),stakingPoolActivationEpoch:Pr(Le()),stakingPoolDeactivationEpoch:Pr(Le()),stakingPoolSuiBalance:Le(),rewardsPool:Le(),poolTokenBalance:Le(),pendingStake:Le(),pendingPoolTokenWithdraw:Le(),pendingTotalSuiWithdraw:Le(),exchangeRatesId:Le(),exchangeRatesSize:Le()}),hUe=et({epoch:Le(),protocolVersion:Le(),systemStateVersion:Le(),storageFundTotalObjectStorageRebates:Le(),storageFundNonRefundableBalance:Le(),referenceGasPrice:Le(),safeMode:zr(),safeModeStorageRewards:Le(),safeModeComputationRewards:Le(),safeModeStorageRebates:Le(),safeModeNonRefundableStorageFee:Le(),epochStartTimestampMs:Le(),epochDurationMs:Le(),stakeSubsidyStartEpoch:Le(),maxValidatorCount:Le(),minValidatorJoiningStake:Le(),validatorLowStakeThreshold:Le(),validatorVeryLowStakeThreshold:Le(),validatorLowStakeGracePeriod:Le(),stakeSubsidyBalance:Le(),stakeSubsidyDistributionCounter:Le(),stakeSubsidyCurrentDistributionAmount:Le(),stakeSubsidyPeriodLength:Le(),stakeSubsidyDecreaseRate:On(),totalStake:Le(),activeValidators:Ct(sue),pendingActiveValidatorsId:Le(),pendingActiveValidatorsSize:Le(),pendingRemovals:Ct(Le()),stakingPoolMappingsId:Le(),stakingPoolMappingsSize:Le(),inactivePoolsId:Le(),inactivePoolsSize:Le(),validatorCandidatesId:Le(),validatorCandidatesSize:Le(),atRiskValidators:Ct(Na([ia,Le()])),validatorReportRecords:Ct(Na([ia,Ct(ia)]))}),pUe=et({coinType:Le(),coinObjectId:wr,version:Le(),digest:Wa,balance:Le(),lockedUntilEpoch:Ot(Pr(On())),previousTransaction:Wa}),PZ=et({data:Ct(pUe),nextCursor:Pr(wr),hasNextPage:zr()}),zZ=et({coinType:Le(),coinObjectCount:On(),totalBalance:Le(),lockedBalance:et({epochId:Ot(On()),number:Ot(On())})}),bUe=et({value:Le()}),mUe=et({lastCheckpointId:Le(),epochEndTimestamp:Le(),protocolVersion:Le(),referenceGasPrice:Le(),totalStake:Le(),storageFundReinvestment:Le(),storageCharge:Le(),storageRebate:Le(),storageFundBalance:Le(),stakeSubsidyAmount:Le(),totalGasFees:Le(),totalStakeRewardsDistributed:Le(),leftoverStorageFundInflow:Le()}),aue=et({epoch:Le(),validators:Ct(sue),epochTotalTransactions:Le(),firstCheckpointId:Le(),epochStartTimestamp:Le(),endOfEpochInfo:Pr(mUe)}),yUe=et({data:Ct(aue),nextCursor:Pr(Le()),hasNextPage:zr()}),gUe=et({computationCost:Le(),storageCost:Le(),storageRebate:Le(),nonRefundableStorageFee:Le()});Le();var UZ=Le();et({digest:Ct(On())});var oue=wu(),xUe=Le(),vUe=et({nextEpochCommittee:Ct(Na([Le(),Le()])),nextEpochProtocolVersion:Le(),epochCommitments:Ct(oue)});et({transaction:Wa,effects:QPe});var cue=et({epoch:Le(),sequenceNumber:Le(),digest:UZ,networkTotalTransactions:Le(),previousDigest:Ot(UZ),epochRollingGasCostSummary:gUe,timestampMs:Le(),endOfEpochData:Ot(vUe),validatorSignature:Ot(xUe),transactions:Ct(Wa),checkpointCommitments:Ct(oue)}),wUe=et({data:Ct(cue),nextCursor:Pr(Le()),hasNextPage:zr()}),MUe="0.32.2",AUe="0.34.0",IB=class extends Error{constructor(t){super(t.cause?`RPC Error: ${t.cause.message}`:"Unknown RPC Error",{cause:t.cause}),this.req=t.req,this.code=t.code,this.data=t.data}},EUe=class extends Error{constructor(t){super("RPC Validation Error: The response returned from RPC server does not match the TypeScript definition. This is likely because the SDK version is not compatible with the RPC server.",{cause:t.cause}),this.req=t.req,this.result=t.result,this.message=this.toString()}toString(){let t=super.toString();return this.cause&&(t+=`
114
114
  Cause: ${this.cause}`),this.result&&(t+=`
115
- Reponse Received: ${JSON.stringify(this.result,null,2)}`),t}},SUe=class extends Error{},CUe=et({jsonrpc:cn("2.0"),id:Le(),result:wu()}),fue=et({jsonrpc:cn("2.0"),id:Le(),error:et({code:wu(),message:Le(),data:Ot(wu())})}),TUe=class{constructor(t,e){this.rpcClient=new $1e(async(n,r)=>{const i={method:"POST",body:n,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":MUe,"Client-Target-Api-Version":AUe,...e}};try{let s=await fetch(t,i);const a=await s.text();if(s.ok)r(null,a);else{const o=s.headers.get("content-type")==="text/html";r(new Error(`${s.status} ${s.statusText}${o?"":`: ${a}`}`))}}catch(s){r(s)}},{})}async requestWithType(t,e,n){const r={method:t,args:e},i=await this.request(t,e);if(R0(i,fue))throw new IB({req:r,code:i.error.code,data:i.error.data,cause:new Error(i.error.message)});if(R0(i,CUe)){const[s]=y3(i.result,n);return s&&console.warn(new EUe({req:r,result:i.result,cause:s})),i.result}throw new IB({req:r,data:i})}async request(t,e){return new Promise((n,r)=>{this.rpcClient.request(t,e,(i,s)=>{if(i){r(i);return}n(s)})})}},IUe=Er([cn("DynamicField"),cn("DynamicObject")]),DUe=et({type:Le(),value:wu()}),kUe=et({name:DUe,bcsName:Le(),type:IUe,objectType:Le(),objectId:wr,version:On(),digest:Le()}),NUe=et({data:Ct(kUe),nextCursor:Pr(wr),hasNextPage:zr()}),LUe=(t,e)=>{const n=new URL(t);return n.protocol=n.protocol.replace("http","ws"),n.toString()},BUe=t=>t&&"subscription"in t&&typeof t.subscription=="number"&&"result"in t&&typeof t.result=="object",uue={connectTimeout:15e3,callTimeout:3e4,reconnectInterval:3e3,maxReconnects:5},WZ="suix_subscribeEvent",jUe="suix_unsubscribeEvent",RUe=class{constructor(t,e=uue){this.endpoint=t,this.options=e,this.connectionState=0,this.connectionTimeout=null,this.isSetup=!1,this.connectionPromise=null,this.eventSubscriptions=new Map,this.endpoint.startsWith("http")&&(this.endpoint=LUe(this.endpoint)),this.rpcClient=new Pfe(this.endpoint,{reconnect_interval:this.options.reconnectInterval,max_reconnects:this.options.maxReconnects,autoconnect:!1})}setupSocket(){this.isSetup||(this.rpcClient.on("open",()=>{this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=null),this.connectionState=2,this.rpcClient.socket.on("message",this.onSocketMessage.bind(this))}),this.rpcClient.on("close",()=>{this.connectionState=0}),this.rpcClient.on("error",console.error),this.isSetup=!0)}onSocketMessage(t){const e=JSON.parse(t),n=e.params;if(e.method===WZ){if(BUe(n)){const r=this.eventSubscriptions.get(n.subscription);r&&r.onMessage(n.result)}else if(R0(n,gze)){const r=this.eventSubscriptions.get(n.subscription);r&&r.onMessage(n.result)}}}async connect(){return this.connectionPromise?this.connectionPromise:this.connectionState===2?Promise.resolve():(this.setupSocket(),this.rpcClient.connect(),this.connectionState=1,this.connectionPromise=new Promise((t,e)=>{this.connectionTimeout=setTimeout(()=>e(new Error("timeout")),this.options.connectTimeout),this.rpcClient.once("open",()=>{this.refreshSubscriptions(),this.connectionPromise=null,t()}),this.rpcClient.once("error",n=>{this.connectionPromise=null,e(n)})}),this.connectionPromise)}async refreshSubscriptions(){if(this.eventSubscriptions.size!==0)try{let t=new Map;(await Promise.all(Array.from(this.eventSubscriptions.values()).map(async n=>{const r=n.onMessage,i=n.filter;return!i||!r?Promise.resolve(null):{id:await this.subscribeEvent(i,r),onMessage:r,filter:i}}))).forEach(n=>{if(n===null)return;const r=n.filter,i=n.onMessage;t.set(n.id,{filter:r,onMessage:i})}),this.eventSubscriptions=t}catch(t){throw new Error(`error refreshing event subscriptions: ${t}`)}}async subscribeEvent(t,e){try{this.connectionState!==2&&await this.connect();let n=await this.rpcClient.call(WZ,[t],this.options.callTimeout);return this.eventSubscriptions.set(n,{filter:t,onMessage:e}),n}catch(n){throw new Error(`Error subscribing to event: ${JSON.stringify(n,null,2)}, filter: ${JSON.stringify(t)}`)}}async unsubscribeEvent(t){try{this.connectionState!==2&&await this.connect();let e=await this.rpcClient.call(jUe,[t],this.options.callTimeout);return this.eventSubscriptions.delete(t)||e}catch(e){throw new Error(`Error unsubscribing from event: ${e}, subscription: ${t}`)}}};async function _Ue(t,e,n){const r=await fetch(t,{method:"POST",body:JSON.stringify({FixedAmountRequest:{recipient:e}}),headers:{"Content-Type":"application/json",...n||{}}});if(r.status===429)throw new SUe("Too many requests from this client have been sent to the faucet. Please retry later");let i;try{i=await r.json()}catch(s){throw new Error(`Encountered error when parsing response from faucet, error: ${s}, status ${r.status}, response ${r}`)}if(i.error)throw new Error(`Faucet returns error: ${i.error}`);return i}var t6,yP=class{constructor(t){Cb(this,t6,void 0),Tb(this,t6,t)}get fullnode(){return Tr(this,t6).fullnode}get websocket(){return Tr(this,t6).websocket||Tr(this,t6).fullnode}get faucet(){return Tr(this,t6).faucet}};t6=new WeakMap;new yP({fullnode:"http://127.0.0.1:9000",faucet:"http://127.0.0.1:9123/gas"});var OUe=new yP({fullnode:"https://fullnode.devnet.sui.io:443/",faucet:"https://faucet.devnet.sui.io/gas"});new yP({fullnode:"https://fullnode.testnet.sui.io:443/",faucet:"https://faucet.testnet.sui.io/gas"});function Da(t,e){return jfe(t,e)}var iw=Symbol("transaction-argument-type"),FUe=t=>Er([et({None:cn(null)}),et({Some:t})]),vm=et({kind:cn("Input"),index:nu(),value:Ot(wu()),type:Ot(Er([cn("pure"),cn("object")]))}),gP=[vm,et({kind:cn("GasCoin")}),et({kind:cn("Result"),index:nu()}),et({kind:cn("NestedResult"),index:nu(),resultIndex:nu()})],PUe=Er([...gP]),Xh=Er([...gP]);Xh[iw]={kind:"object"};var lue=t=>{const e=Er([...gP]);return e[iw]={kind:"pure",type:t},e},due=et({kind:cn("MoveCall"),target:_c("target",Le().validator),typeArguments:Ct(Le()),arguments:Ct(PUe)}),hue=et({kind:cn("TransferObjects"),objects:Ct(Xh),address:lue(ln.ADDRESS)}),pue=et({kind:cn("SplitCoins"),coin:Xh,amounts:Ct(lue("u64"))}),bue=et({kind:cn("MergeCoins"),destination:Xh,sources:Ct(Xh)}),mue=et({kind:cn("MakeMoveVec"),type:Ot(FUe(Le())),objects:Ct(Xh)}),yue=et({kind:cn("Publish"),modules:Ct(Ct(nu())),dependencies:Ct(wr)}),gue=et({kind:cn("Upgrade"),modules:Ct(Ct(nu())),dependencies:Ct(wr),packageId:wr,ticket:Xh}),xue=[due,hue,pue,bue,yue,gue,mue],vue=Er([...xue]);function zUe(t){return rw(t,vue),xue.find(e=>R0(t,e))}var Vu={MoveCall(t){return Da({kind:"MoveCall",target:t.target,arguments:t.arguments??[],typeArguments:t.typeArguments??[]},due)},TransferObjects(t,e){return Da({kind:"TransferObjects",objects:t,address:e},hue)},SplitCoins(t,e){return Da({kind:"SplitCoins",coin:t,amounts:e},pue)},MergeCoins(t,e){return Da({kind:"MergeCoins",destination:t,sources:e},bue)},Publish({modules:t,dependencies:e}){return Da({kind:"Publish",modules:t.map(n=>typeof n=="string"?Array.from(Kh(n)):n),dependencies:e.map(n=>Qf(n))},yue)},Upgrade({modules:t,dependencies:e,packageId:n,ticket:r}){return Da({kind:"Upgrade",modules:t.map(i=>typeof i=="string"?Array.from(Kh(i)):i),dependencies:e.map(i=>Qf(i)),packageId:n,ticket:r},gue)},MakeMoveVec({type:t,objects:e}){return Da({kind:"MakeMoveVec",type:t?{Some:t}:{None:null},objects:e},mue)}},UUe=/^vector<(.+)>$/,WUe=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/,h6=class{static parseFromStr(t,e=!1){if(t==="address")return{address:null};if(t==="bool")return{bool:null};if(t==="u8")return{u8:null};if(t==="u16")return{u16:null};if(t==="u32")return{u32:null};if(t==="u64")return{u64:null};if(t==="u128")return{u128:null};if(t==="u256")return{u256:null};if(t==="signer")return{signer:null};const n=t.match(UUe);if(n)return{vector:h6.parseFromStr(n[1],e)};const r=t.match(WUe);if(r)return{struct:{address:e?xs(r[1]):r[1],module:r[2],name:r[3],typeParams:r[5]===void 0?[]:h6.parseStructTypeArgs(r[5],e)}};throw new Error(`Encountered unexpected token when parsing type args for ${t}`)}static parseStructTypeArgs(t,e=!1){const n=[];let r="",i=0;for(let s=0;s<t.length;s++){const a=t[s];if(a==="<"&&i++,a===">"&&i--,i===0&&a===","){n.push(r.trim()),r="";continue}r+=a}return n.push(r.trim()),n.map(s=>h6.parseFromStr(s,e))}static tagToString(t){if("bool"in t)return"bool";if("u8"in t)return"u8";if("u16"in t)return"u16";if("u32"in t)return"u32";if("u64"in t)return"u64";if("u128"in t)return"u128";if("u256"in t)return"u256";if("address"in t)return"address";if("signer"in t)return"signer";if("vector"in t)return`vector<${h6.tagToString(t.vector)}>`;if("struct"in t){const e=t.struct,n=e.typeParams.map(h6.tagToString).join(", ");return`${e.address}::${e.module}::${e.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}},wue="Argument",Rs="vector",HUe="Option",qUe="CallArg",HZ="TypeTag",GUe="ProgrammableTransaction",DB="ProgrammableMoveCall",Mue="Transaction",xP="EnumKind",VUe=[xP,Mue],cf=[xP,wue],Aue="SimpleProgrammableMoveCall",_l=new ln($fe).registerStructType(GUe,{inputs:[Rs,qUe],transactions:[Rs,VUe]}).registerEnumType(wue,{GasCoin:null,Input:{index:ln.U16},Result:{index:ln.U16},NestedResult:{index:ln.U16,resultIndex:ln.U16}}).registerStructType(DB,{package:ln.ADDRESS,module:ln.STRING,function:ln.STRING,type_arguments:[Rs,HZ],arguments:[Rs,cf]}).registerEnumType(Mue,{MoveCall:Aue,TransferObjects:{objects:[Rs,cf],address:cf},SplitCoins:{coin:cf,amounts:[Rs,cf]},MergeCoins:{destination:cf,sources:[Rs,cf]},Publish:{modules:[Rs,[Rs,ln.U8]],dependencies:[Rs,ln.ADDRESS]},MakeMoveVec:{type:[HUe,HZ],objects:[Rs,cf]},Upgrade:{modules:[Rs,[Rs,ln.U8]],dependencies:[Rs,ln.ADDRESS],packageId:ln.ADDRESS,ticket:cf}});_l.registerType([xP,"T"],function(e,n,r,i){const a={[n.kind]:n},[o]=r;return this.getTypeInterface(o)._encodeRaw.call(this,e,a,r,i)},function(e,n,r){const[i]=n,s=this.getTypeInterface(i)._decodeRaw.call(this,e,n,r),a=Object.keys(s)[0];return{kind:a,...s[a]}},t=>{if(typeof t!="object"&&!("kind"in t))throw new Error(`EnumKind: Missing property "kind" in the input ${JSON.stringify(t)}`);return!0});_l.registerType(Aue,function(e,n,r,i){const[s,a,o]=n.target.split("::"),f=n.typeArguments.map(u=>h6.parseFromStr(u,!0));return this.getTypeInterface(DB)._encodeRaw.call(this,e,{package:xs(s),module:a,function:o,type_arguments:f,arguments:n.arguments},r,i)},function(e,n,r){let i=_l.getTypeInterface(DB)._decodeRaw.call(this,e,n,r);return{target:[i.package,i.module,i.function].join("::"),arguments:i.arguments,typeArguments:i.type_arguments.map(h6.tagToString)}},t=>t.target.split("::").length===3);var YUe=Er([et({ImmOrOwned:A1}),et({Shared:et({objectId:Le(),initialSharedVersion:Er([nu(),Le()]),mutable:zr()})})]),kB=et({Pure:Ct(nu())}),QUe=et({Object:YUe}),e4=Er([kB,QUe]),Uf={Pure(t,e){return{Pure:Array.from(t instanceof Uint8Array?t:_l.ser(e,t).toBytes())}},ObjectRef({objectId:t,digest:e,version:n}){return{Object:{ImmOrOwned:{digest:e,version:n,objectId:xs(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:n}){return{Object:{Shared:{mutable:e,initialSharedVersion:n,objectId:xs(t)}}}}};function qZ(t){return typeof t=="string"?xs(t):"ImmOrOwned"in t.Object?xs(t.Object.ImmOrOwned.objectId):xs(t.Object.Shared.objectId)}function ZUe(t){return typeof t=="object"&&"Object"in t&&"Shared"in t.Object?t.Object.Shared:void 0}function KUe(t){var e;return((e=ZUe(t))==null?void 0:e.mutable)??!1}var $Ue="ascii",XUe="String",JUe="string",eWe="String",tWe="option",nWe="Option",rWe={address:Zfe,module:Vze,name:Yze},iWe={address:bP,module:$Ue,name:XUe},sWe={address:bP,module:JUe,name:eWe},aWe={address:bP,module:tWe,name:nWe},O9=(t,e)=>t.address===e.address&&t.module===e.module&&t.name===e.name;function oWe(t){var n;const e=(n=iue(t))==null?void 0:n.Struct;return(e==null?void 0:e.address)==="0x2"&&(e==null?void 0:e.module)==="tx_context"&&(e==null?void 0:e.name)==="TxContext"}function HD(t,e){if(!(typeof e>"u")&&typeof e!==t)throw new Error(`Expect ${e} to be ${t}, received ${typeof e}`)}var cWe=["Address","Bool","U8","U16","U32","U64","U128","U256"];function NB(t,e){if(typeof t=="string"&&cWe.includes(t)){if(t in["U8","U16","U32","U64","U128","U256"])HD("number",e);else if(t==="Bool")HD("boolean",e);else if(t==="Address"&&(HD("string",e),e&&!Ju(e)))throw new Error("Invalid Sui Address");return t.toLowerCase()}else if(typeof t=="string")throw new Error(`Unknown pure normalized type ${JSON.stringify(t,null,2)}`);if("Vector"in t){if((e===void 0||typeof e=="string")&&t.Vector==="U8")return"string";if(e!==void 0&&!Array.isArray(e))throw new Error(`Expect ${e} to be a array, received ${typeof e}`);const n=NB(t.Vector,e?e[0]:void 0);return n===void 0?void 0:`vector<${n}>`}if("Struct"in t){if(O9(t.Struct,iWe))return"string";if(O9(t.Struct,sWe))return"utf8string";if(O9(t.Struct,rWe))return"address";if(O9(t.Struct,aWe)){const n={Vector:t.Struct.typeArguments[0]};return NB(n,e)}}}function fWe(t,e){const n=Array.from(`${t}::`).map(i=>i.charCodeAt(0)),r=new Uint8Array(n.length+e.length);return r.set(n),r.set(e,n.length),EPe(r,{dkLen:32})}var uWe=Ot(Pr(Er([et({Epoch:nu()}),et({None:Er([cn(!0),cn(null)])})]))),Eue=Le(),GZ=_c("StringEncodedBigint",t=>{if(!["string","number","bigint"].includes(typeof t))return!1;try{return BigInt(t),!0}catch{return!1}}),lWe=et({budget:Ot(GZ),price:Ot(GZ),payment:Ot(Ct(A1)),owner:Ot(Eue)}),F9=et({version:cn(1),sender:Ot(Eue),expiration:uWe,gasConfig:lWe,inputs:Ct(vm),transactions:Ct(vue)});function VZ(t){return xs(t).replace("0x","")}var YZ=128*1024,Ol=class{constructor(t){this.version=1,this.sender=t==null?void 0:t.sender,this.expiration=t==null?void 0:t.expiration,this.gasConfig=(t==null?void 0:t.gasConfig)??{},this.inputs=(t==null?void 0:t.inputs)??[],this.transactions=(t==null?void 0:t.transactions)??[]}static fromKindBytes(t){const e=_l.de("TransactionKind",t),n=e==null?void 0:e.ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");const r=Da({version:1,gasConfig:{},inputs:n.inputs.map((i,s)=>Da({kind:"Input",value:i,index:s,type:R0(i,kB)?"pure":"object"},vm)),transactions:n.transactions},F9);return Ol.restore(r)}static fromBytes(t){var s;const e=_l.de("TransactionData",t),n=e==null?void 0:e.V1,r=(s=n==null?void 0:n.kind)==null?void 0:s.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");const i=Da({version:1,sender:n.sender,expiration:n.expiration,gasConfig:n.gasData,inputs:r.inputs.map((a,o)=>Da({kind:"Input",value:a,index:o,type:R0(a,kB)?"pure":"object"},vm)),transactions:r.transactions},F9);return Ol.restore(i)}static restore(t){rw(t,F9);const e=new Ol;return Object.assign(e,t),e}static getDigestFromBytes(t){const e=fWe("TransactionData",t);return iP(e)}build({overrides:t,onlyTransactionKind:e}={}){const n=this.inputs.map(f=>(rw(f.value,e4),f.value)),r={ProgrammableTransaction:{inputs:n,transactions:this.transactions}};if(e)return _l.ser("TransactionKind",r,{maxSize:YZ}).toBytes();const i=(t==null?void 0:t.expiration)??this.expiration,s=(t==null?void 0:t.sender)??this.sender,a={...this.gasConfig,...t==null?void 0:t.gasConfig};if(!s)throw new Error("Missing transaction sender");if(!a.budget)throw new Error("Missing gas budget");if(!a.payment)throw new Error("Missing gas payment");if(!a.price)throw new Error("Missing gas price");const o={sender:VZ(s),expiration:i||{None:!0},gasData:{payment:a.payment,owner:VZ(this.gasConfig.owner??s),price:BigInt(a.price),budget:BigInt(a.budget)},kind:{ProgrammableTransaction:{inputs:n,transactions:this.transactions}}};return _l.ser("TransactionData",{V1:o},{maxSize:YZ}).toBytes()}getDigest(){const t=this.build({onlyTransactionKind:!1});return Ol.getDigestFromBytes(t)}snapshot(){return Da(this,F9)}};function dWe(t){const e={kind:"Result",index:t},n=[],r=i=>n[i]??(n[i]={kind:"NestedResult",index:t,resultIndex:i});return new Proxy(e,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,s){if(s in i)return Reflect.get(i,s);if(s===Symbol.iterator)return function*(){let o=0;for(;;)yield r(o),o++};if(typeof s=="symbol")return;const a=parseInt(s,10);if(!(Number.isNaN(a)||a<0))return r(a)}})}function Db(t){if(!t)throw new Error("No provider passed to Transaction#build, but transaction data was not sufficient to build offline.");return t}var QZ=Symbol.for("@mysten/transaction"),LB=256,hWe=5e10,pWe=1000n,gr,Mx,BB,vP,Sue,Ax,jB,RB=class{constructor(t){Cb(this,Mx),Cb(this,vP),Cb(this,Ax),Cb(this,gr,void 0),Tb(this,gr,new Ol(t?t.blockData:void 0))}static is(t){return!!t&&typeof t=="object"&&t[QZ]===!0}static fromKind(t){const e=new RB;return Tb(e,gr,Ol.fromKindBytes(typeof t=="string"?Kh(t):t)),e}static from(t){const e=new RB;return typeof t!="string"||!t.startsWith("{")?Tb(e,gr,Ol.fromBytes(typeof t=="string"?Kh(t):t)):Tb(e,gr,Ol.restore(JSON.parse(t))),e}static get Transactions(){return Vu}static get Inputs(){return Uf}setSender(t){Tr(this,gr).sender=t}setSenderIfNotSet(t){Tr(this,gr).sender||(Tr(this,gr).sender=t)}setExpiration(t){Tr(this,gr).expiration=t}setGasPrice(t){Tr(this,gr).gasConfig.price=String(t)}setGasBudget(t){Tr(this,gr).gasConfig.budget=String(t)}setGasOwner(t){Tr(this,gr).gasConfig.owner=t}setGasPayment(t){if(t.length>=LB)throw new Error(`Payment objects exceed maximum amount ${LB}`);Tr(this,gr).gasConfig.payment=t.map(e=>Rfe(e,A1))}get blockData(){return Tr(this,gr).snapshot()}get[QZ](){return!0}get gas(){return{kind:"GasCoin"}}object(t){const e=qZ(t);return Tr(this,gr).inputs.find(r=>r.type==="object"&&e===qZ(r.value))??Ib(this,Mx,BB).call(this,"object",t)}objectRef(...t){return this.object(Uf.ObjectRef(...t))}sharedObjectRef(...t){return this.object(Uf.SharedObjectRef(...t))}pure(t,e){return Ib(this,Mx,BB).call(this,"pure",t instanceof Uint8Array?Uf.Pure(t):e?Uf.Pure(t,e):t)}add(t){const e=Tr(this,gr).transactions.push(t);return dWe(e-1)}splitCoins(...t){return this.add(Vu.SplitCoins(...t))}mergeCoins(...t){return this.add(Vu.MergeCoins(...t))}publish(...t){return this.add(Vu.Publish(...t))}upgrade(...t){return this.add(Vu.Upgrade(...t))}moveCall(...t){return this.add(Vu.MoveCall(...t))}transferObjects(...t){return this.add(Vu.TransferObjects(...t))}makeMoveVec(...t){return this.add(Vu.MakeMoveVec(...t))}serialize(){return JSON.stringify(Tr(this,gr).snapshot())}async build({provider:t,onlyTransactionKind:e}={}){return await Ib(this,Ax,jB).call(this,{provider:t,onlyTransactionKind:e}),Tr(this,gr).build({onlyTransactionKind:e})}async getDigest({provider:t}={}){return await Ib(this,Ax,jB).call(this,{provider:t}),Tr(this,gr).getDigest()}},bWe=RB;gr=new WeakMap;Mx=new WeakSet;BB=function(t,e){const n=Tr(this,gr).inputs.length,r=Da({kind:"Input",value:typeof e=="bigint"?String(e):e,index:n,type:t},vm);return Tr(this,gr).inputs.push(r),r};vP=new WeakSet;Sue=async function(t){const e=Tr(this,gr).gasConfig.owner??Tr(this,gr).sender,r=(await Db(t).getCoins({owner:e,coinType:Kfe})).data.filter(i=>!Tr(this,gr).inputs.find(a=>R0(a.value,e4)&&"Object"in a.value&&"ImmOrOwned"in a.value.Object?i.coinObjectId===a.value.Object.ImmOrOwned.objectId:!1)).slice(0,LB-1).map(i=>({objectId:i.coinObjectId,digest:i.digest,version:i.version}));if(!r.length)throw new Error("No valid gas coins found for the transaction.");return r};Ax=new WeakSet;jB=async function({provider:t,onlyTransactionKind:e}){if(!e&&!Tr(this,gr).sender)throw new Error("Missing transaction sender");const{inputs:n,transactions:r}=Tr(this,gr),i=[],s=[];if(r.forEach(a=>{if(a.kind==="MoveCall"){a.arguments.some(u=>u.kind==="Input"&&!R0(n[u.index].value,e4))&&i.push(a);return}const o=zUe(a);o.schema&&Object.entries(a).forEach(([f,u])=>{if(f==="kind")return;const h=o.schema[f],m=h.type==="array",y=m?h.schema[iw]:h[iw];if(!y)return;const x=w=>{const E=n[w];if(!E)throw new Error(`Missing input ${u.index}`);if(!R0(E.value,e4))if(y.kind==="object"&&typeof E.value=="string")s.push({id:E.value,input:E});else if(y.kind==="pure")E.value=Uf.Pure(E.value,y.type);else throw new Error("Unexpected input format.")};if(m)u.forEach(w=>{w.kind==="Input"&&x(w.index)});else{if(u.kind!=="Input")return;x(u.index)}})}),i.length&&await Promise.all(i.map(async a=>{const[o,f,u]=a.target.split("::"),h=await Db(t).getNormalizedMoveFunction({package:Qf(o),module:f,function:u}),y=h.parameters.length>0&&oWe(h.parameters.at(-1))?h.parameters.slice(0,h.parameters.length-1):h.parameters;if(y.length!==a.arguments.length)throw new Error("Incorrect number of arguments.");y.forEach((x,w)=>{const E=a.arguments[w];if(E.kind!=="Input")return;const I=n[E.index];if(R0(I.value,e4))return;const T=I.value,D=NB(x,T);if(D){I.value=Uf.Pure(T,D);return}if(iue(x)!=null||typeof x=="object"&&"TypeParameter"in x){if(typeof T!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(T,null,2)}`);s.push({id:T,input:I,normalizedType:x});return}throw new Error(`Unknown call arg type ${JSON.stringify(x,null,2)} for value ${JSON.stringify(T,null,2)}`)})})),s.length){const a=[...new Set(s.map(({id:h})=>h))],o=await Db(t).multiGetObjects({ids:a,options:{showOwner:!0}});let f=new Map(a.map((h,m)=>[h,o[m]]));const u=Array.from(f).filter(([h,m])=>m.error).map(([h,m])=>h);if(u.length)throw new Error(`The following input objects are not invalid: ${u.join(", ")}`);s.forEach(({id:h,input:m,normalizedType:y})=>{const x=f.get(h),w=hze(x);if(w){const E=KUe(m.value)||y!=null&&rue(y)!=null;m.value=Uf.SharedObjectRef({objectId:h,initialSharedVersion:w,mutable:E})}else m.value=Uf.ObjectRef(lze(x))})}if(!e&&(Tr(this,gr).gasConfig.price||this.setGasPrice(await Db(t).getReferenceGasPrice()),Tr(this,gr).gasConfig.payment||(Tr(this,gr).gasConfig.payment=await Ib(this,vP,Sue).call(this,t)),!this.blockData.gasConfig.budget)){const a=await Db(t).dryRunTransactionBlock({transactionBlock:Tr(this,gr).build({overrides:{gasConfig:{budget:String(hWe),payment:[]}}})});if(a.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${a.effects.status.error}`,{cause:a});const o=pWe*BigInt(this.blockData.gasConfig.price||1n),f=BigInt(a.effects.gasUsed.computationCost)+o,u=f+BigInt(a.effects.gasUsed.storageCost)-BigInt(a.effects.gasUsed.storageRebate);this.setGasBudget(u>f?u:f)}};var mWe=et({currentTps:On(),tps30Days:On(),currentCheckpoint:Le(),currentEpoch:Le(),totalAddresses:Le(),totalObjects:Le(),totalPackages:Le()}),ZZ={socketOptions:uue,versionCacheTimeoutInSeconds:600},Mft=class{constructor(t=OUe,e=ZZ){this.options=e,this.connection=t;const n={...ZZ,...e};this.options=n,this.client=n.rpcClient??new TUe(this.connection.fullnode),this.wsClient=n.websocketClient??new RUe(this.connection.websocket,n.socketOptions)}async getRpcApiVersion(){if(this.rpcApiVersion&&this.cacheExpiry&&this.cacheExpiry<=Date.now())return this.rpcApiVersion;try{const t=await this.client.requestWithType("rpc.discover",[],wu());return this.rpcApiVersion=t.info.version,this.cacheExpiry=Date.now()+(this.options.versionCacheTimeoutInSeconds??0)*1e3,this.rpcApiVersion}catch(t){console.warn("Error fetching version number of the RPC API",t)}}async requestSuiFromFaucet(t,e){if(!this.connection.faucet)throw new Error("Faucet URL is not specified");return _Ue(this.connection.faucet,t,e)}async getCoins(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getCoins",[t.owner,t.coinType,t.cursor,t.limit],PZ)}async getAllCoins(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getAllCoins",[t.owner,t.cursor,t.limit],PZ)}async getBalance(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getBalance",[t.owner,t.coinType],zZ)}async getAllBalances(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getAllBalances",[t.owner],Ct(zZ))}async getCoinMetadata(t){return await this.client.requestWithType("suix_getCoinMetadata",[t.coinType],Qze)}async getTotalSupply(t){return await this.client.requestWithType("suix_getTotalSupply",[t.coinType],bUe)}async call(t,e){const n=await this.client.request(t,e);if(R0(n,fue))throw new IB({req:{method:t,args:e},code:n.error.code,data:n.error.data,cause:new Error(n.error.message)});return n.result}async getMoveFunctionArgTypes(t){return await this.client.requestWithType("sui_getMoveFunctionArgTypes",[t.package,t.module,t.function],Jze)}async getNormalizedMoveModulesByPackage(t){return await this.client.requestWithType("sui_getNormalizedMoveModulesByPackage",[t.package],sUe)}async getNormalizedMoveModule(t){return await this.client.requestWithType("sui_getNormalizedMoveModule",[t.package,t.module],nue)}async getNormalizedMoveFunction(t){return await this.client.requestWithType("sui_getNormalizedMoveFunction",[t.package,t.module,t.function],eue)}async getNormalizedMoveStruct(t){return await this.client.requestWithType("sui_getNormalizedMoveStruct",[t.package,t.module,t.struct],tue)}async getOwnedObjects(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getOwnedObjects",[t.owner,{filter:t.filter,options:t.options},t.cursor,t.limit],bze)}async getObject(t){if(!t.id||!R9(Qf(t.id)))throw new Error("Invalid Sui Object id");return await this.client.requestWithType("sui_getObject",[t.id,t.options],vx)}async multiGetObjects(t){if(t.ids.forEach(n=>{if(!n||!R9(Qf(n)))throw new Error(`Invalid Sui Object id ${n}`)}),t.ids.length!==new Set(t.ids).size)throw new Error(`Duplicate object ids in batch call ${t.ids}`);return await this.client.requestWithType("sui_multiGetObjects",[t.ids,t.options],Ct(vx))}async queryTransactionBlocks(t){return await this.client.requestWithType("suix_queryTransactionBlocks",[{filter:t.filter,options:t.options},t.cursor,t.limit,(t.order||"descending")==="descending"],qze)}async getTransactionBlock(t){if(!CB(t.digest))throw new Error("Invalid Transaction digest");return await this.client.requestWithType("sui_getTransactionBlock",[t.digest,t.options],wx)}async multiGetTransactionBlocks(t){if(t.digests.forEach(n=>{if(!CB(n))throw new Error(`Invalid Transaction digest ${n}`)}),t.digests.length!==new Set(t.digests).size)throw new Error(`Duplicate digests in batch call ${t.digests}`);return await this.client.requestWithType("sui_multiGetTransactionBlocks",[t.digests,t.options],Ct(wx))}async executeTransactionBlock(t){return await this.client.requestWithType("sui_executeTransactionBlock",[typeof t.transactionBlock=="string"?t.transactionBlock:N6(t.transactionBlock),Array.isArray(t.signature)?t.signature:[t.signature],t.options,t.requestType],wx)}async getTotalTransactionBlocks(){const t=await this.client.requestWithType("sui_getTotalTransactionBlocks",[],Le());return BigInt(t)}async getReferenceGasPrice(){const t=await this.client.requestWithType("suix_getReferenceGasPrice",[],Le());return BigInt(t)}async getStakes(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getStakes",[t.owner],Ct(FZ))}async getStakesByIds(t){return t.stakedSuiIds.forEach(e=>{if(!e||!R9(Qf(e)))throw new Error(`Invalid Sui Stake id ${e}`)}),await this.client.requestWithType("suix_getStakesByIds",[t.stakedSuiIds],Ct(FZ))}async getLatestSuiSystemState(){return await this.client.requestWithType("suix_getLatestSuiSystemState",[],hUe)}async queryEvents(t){return await this.client.requestWithType("suix_queryEvents",[t.query,t.cursor,t.limit,(t.order||"descending")==="descending"],mze)}async subscribeEvent(t){return this.wsClient.subscribeEvent(t.filter,t.onMessage)}async unsubscribeEvent(t){return this.wsClient.unsubscribeEvent(t.id)}async devInspectTransactionBlock(t){let e;if(bWe.is(t.transactionBlock))t.transactionBlock.setSenderIfNotSet(t.sender),e=N6(await t.transactionBlock.build({provider:this,onlyTransactionKind:!0}));else if(typeof t.transactionBlock=="string")e=t.transactionBlock;else if(t.transactionBlock instanceof Uint8Array)e=N6(t.transactionBlock);else throw new Error("Unknown transaction block format.");return await this.client.requestWithType("sui_devInspectTransactionBlock",[t.sender,e,t.gasPrice,t.epoch],Rze)}async dryRunTransactionBlock(t){return await this.client.requestWithType("sui_dryRunTransactionBlock",[typeof t.transactionBlock=="string"?t.transactionBlock:N6(t.transactionBlock)],Gze)}async getDynamicFields(t){if(!t.parentId||!R9(Qf(t.parentId)))throw new Error("Invalid Sui Object id");return await this.client.requestWithType("suix_getDynamicFields",[t.parentId,t.cursor,t.limit],NUe)}async getDynamicFieldObject(t){return await this.client.requestWithType("suix_getDynamicFieldObject",[t.parentId,t.name],vx)}async getLatestCheckpointSequenceNumber(){const t=await this.client.requestWithType("sui_getLatestCheckpointSequenceNumber",[],Le());return String(t)}async getCheckpoint(t){return await this.client.requestWithType("sui_getCheckpoint",[t.id],cue)}async getCheckpoints(t){const e=await this.getRpcApiVersion();return await this.client.requestWithType("sui_getCheckpoints",[t.cursor,e&&_Z.lt(e,"0.32.0")?String(t==null?void 0:t.limit):t==null?void 0:t.limit,t.descendingOrder],wUe)}async getCommitteeInfo(t){return await this.client.requestWithType("suix_getCommitteeInfo",[t==null?void 0:t.epoch],dUe)}async getNetworkMetrics(){return await this.client.requestWithType("suix_getNetworkMetrics",[],mWe)}async getEpochs(t){const e=await this.getRpcApiVersion();return await this.client.requestWithType("suix_getEpochs",[t==null?void 0:t.cursor,e&&_Z.lt(e,"0.32.0")?String(t==null?void 0:t.limit):t==null?void 0:t.limit,t==null?void 0:t.descendingOrder],yUe)}async getCurrentEpoch(){return await this.client.requestWithType("suix_getCurrentEpoch",[],aue)}async waitForTransactionBlock({signal:t,timeout:e=60*1e3,pollInterval:n=2*1e3,...r}){const i=AbortSignal.timeout(e),s=new Promise((a,o)=>{i.addEventListener("abort",()=>o(i.reason))});for(;!i.aborted;){t==null||t.throwIfAborted();try{return await this.getTransactionBlock(r)}catch{await Promise.race([new Promise(o=>setTimeout(o,n)),s])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}};Qf("0x5");function yWe(t){return t.length===22?t:`0x${t.slice(t.length-40,t.length)}`}function gWe(t){return t===Kfe||t==="0x1::aptos_coin::AptosCoin"}function q2(t,e=6){return gWe(t)?t:t.slice(0,e)+"..."+t.slice(t.length-4,t.length)}function Cue(t){const e=t.slice(0,6),n=t.slice(t.length-4,t.length);return`${e}...${n}`}function Tue(t,e){return t?t===un.ETH?q2(yWe(e)):t===un.SOLANA?q2(e,4):q2(e):""}function xWe(t){return Ne.chainsArr.filter(e=>t===e.chainId)[0]}function vWe(t){const e=Ne.chains[t];if(!e)throw new Error(`chain config for ${t} not found`);return e}function Jh(t){if(!t)throw new Error("token must be defined");if(t.tokenId)return t;if(!t.tokenId&&!t.wrappedAsset)throw new Error(`token details misconfigured for ${t.key}`);if(!t.tokenId&&t.wrappedAsset){const e=Ne.tokens[t.wrappedAsset];if(!e)throw new Error("wrapped token not found");return e}return t}function ig(t){return Jh(t).tokenId}function Iue(t){return Ne.tokensArr.find(e=>e.tokenId&&t.chain===e.tokenId.chain&&t.address.toLowerCase()===e.tokenId.address.toLowerCase())}function wP(t,e){const n=G2(t,e),r=t.displayName??t.symbol;if(!n)return r;const i=t.nativeChain==="Ethereum";return SWe(t)&&!i&&e==="Sui"?`Wormhole-wrapped ${t.nativeChain} ${r}`:`${`Wormhole-wrapped ${t4(t,e)?i?"":`${t.nativeChain} `:""}`}${r}`}function E8(t){const e=Ne.tokens[vWe(t).gasToken];if(!e)throw new Error(`gas token not found for ${t}`);return e}function sg(t,e="native"){if(!Ne.chains[t])throw new Error(`chain config for ${t} not found`);if(e==="native"){const{decimals:u}=E8(t);return u}const r=Iue(e);if(!r)throw new Error("token config not found");const{nativeChain:i,decimals:s}=r,a=bd(t),o=bd(i);return a===o?s:Math.min(s,a==="Evm"?18:8)}function KZ(t){const e=document.createElement("textarea");e.value=t,e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(e)}}function Due(t){return navigator.clipboard&&navigator.clipboard.writeText(t).then(function(){return!0},function(){return KZ(t)}),KZ(t)}function wWe(t){return t.startsWith("0x")?t:`0x${t}`}function MWe(t,e){return t==="Sui"?CB(e):t==="Sei"?Ur(wWe(e),32):e.startsWith("0x")&&e.length===66?!0:e.length>70&&e.length<100}function AWe(t){const e=$.useRef();return $.useEffect(()=>{e.current=t}),e.current}async function kue(t){return new Promise(e=>setTimeout(e,t))}const Nue=(t,e)=>{var n;if(t&&e)return(n=t[e.coinGeckoId])==null?void 0:n.usd},MP=t=>typeof t>"u"?"":t===0?"$0":"~"+Intl.NumberFormat("en-EN",{style:"currency",currency:"USD"}).format(t),b2=(t,e,n)=>{if(typeof t>"u"||t===""||!e||!n)return;const r=Nue(e||{},n)||0;if(r>0)return Number.parseFloat(`${t}`)*r},Fl=(t,e,n)=>MP(b2(t,e,n)),Lue=t=>{if(t==null)return!0;for(const e in t)if(t.hasOwnProperty.call(t,e))return!1;return!0},EWe=(t,e)=>{const n=Ne.chains[t];let r="";return t==="Sui"?r=`${n.explorerUrl}coin/${e}`:r=`${n.explorerUrl}address/${e}`,r},t4=(t,e)=>{const{nativeChain:n,symbol:r}=t;return r==="USDC"&&n==="Ethereum"&&e==="Fantom"?!0:G2(t,e)?I8(t.symbol,e)||t.symbol==="tBTC"?!0:t.symbol==="USDC"&&e==="Sui"?!1:!["Ethereum","Sepolia"].includes(n)&&["ETH","WETH","wstETH","USDT","USDC","USDC.e"].includes(r):!1},G2=(t,e)=>t.nativeChain!==e,$Z=(t,e)=>t.key==="USDCeth"&&e==="Sui",SWe=t=>["USDC","USDT","DAI"].includes(t.symbol),Bue=t=>t>6e4?`~${Math.ceil(t/6e4)} min`:`~${Math.ceil(t/1e3)} sec`,CWe=t=>{if(t>864e5){const i=Math.floor(t/864e5);return`~${i} ${i===1?"day":"days"} ago`}else if(t>36e5){const i=Math.floor(t/36e5);return`~${i} ${i===1?"hour":"hours"} ago`}else if(t>6e4){const i=Math.floor(t/6e4);return`~${i} ${i===1?"minute":"minutes"} ago`}else return"~1 minute ago"},TWe=t=>{if(t<60)return t===1?`${t} second`:`${t} seconds`;if(t<3600){const e=Math.floor(t/60);return e===1?`${e} minute`:`${e} minutes`}else{const e=Math.floor(t/3600);return e===1?`${e} hour`:`${e} hours`}};async function jue(t,e){const n=Ne.wrappedTokenAddressCache.get(t.key,e);if(n)return n;const s=await(await xc()).getChain(e).getTokenBridge();console.info(`Resolving foreign address for token ${t.key} on chain ${e}`);const a=Ne.sdkConverter.toTokenIdV2(t);try{const o=await s.getWrappedAsset(a);return o&&Ne.wrappedTokenAddressCache.set(t.key,e,o),o}catch{return null}}function e5(t,e){return Ne.wrappedTokenAddressCache.get(t.key,e)}function IWe(t,e){return(typeof t=="string"?t:t.constructor.meta.name).startsWith("MayanSwap")?{url:`https://explorer.mayan.finance/swap/${e}`,name:"Mayan Explorer",apiUrl:`${Ne.mayanApi}/v3/swap/trx/${e}`}:{url:`${kfe}tx/${e}${Ne.isMainnet?"":"?network=TESTNET"}`,name:"Wormholescan",apiUrl:`${Ne.wormholeApi}api/v1/operations?txHash=${e}`}}async function DWe(t,e){switch(t){case"ManualTokenBridge":return await kWe(e);case"ManualCCTP":return await NWe(e);case"ManualNtt":return XZ(e);case"AutomaticNtt":return XZ(e);default:throw new Error(`Unknown route type ${t}`)}}const kWe=async t=>{var r,i;const e={toChain:t.to,fromChain:t.from};if("originTxs"in t&&t.originTxs.length>0)e.sendTx=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");const{payload:n}=t.attestation.attestation;if(!n.token)throw new Error("Attestation is missing token.");if(n.token){const f=(await(await(await xc()).getChain(n.token.chain).getTokenBridge()).getTokenNativeAddress(n.token.chain,n.token.address)).toString(),u=Nn.tokenId(n.token.chain,f),h=Ne.sdkConverter.findTokenConfigV1(u,Ne.tokensArr);if(!h)throw new Error("Unknown token");const m=t.from,y=sg(m,ig(h));e.tokenDecimals=y,e.amount=ea({amount:n.token.amount.toString(),decimals:Math.min(8,y)}),e.tokenAddress=f,e.tokenKey=h.key,e.receivedTokenKey=h.key,e.receiveAmount=e.amount,(r=n.payload)!=null&&r.toNativeTokenAmount&&(e.receiveNativeAmount=Number(Tv(n.payload.toNativeTokenAmount,Math.min(8,y)))),(i=n.payload)!=null&&i.targetRelayerFee&&(e.relayerFee={fee:Number(Tv(n.payload.targetRelayerFee,Math.min(8,y))),tokenKey:h.key})}if(n.to)if(t.to==="Solana"){if(!Ne.rpcs.Solana)throw new Error("Missing Solana RPC");const s=n.to.address.toNative(t.to).toString(),a=new QE(Ne.rpcs.Solana);try{const o=await Lfe(a,new Fe(s));e.recipient=o.owner.toBase58()}catch(o){console.error(o),e.recipient=s}}else e.recipient=n.to.address.toNative(t.to).toString();return e},NWe=async t=>{const e={toChain:t.to,fromChain:t.from};if("originTxs"in t&&t.originTxs.length>0)e.sendTx=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");if(!t.attestation.attestation)throw new Error("Missing Circle attestation");const{payload:n}=t.attestation.attestation.message,r=Nn.tokenId(t.from,n.burnToken.toNative(t.from).toString()),i=Ne.sdkConverter.findTokenConfigV1(r,Ne.tokensArr);if(!i)throw new Error("Couldn't find USDC for source chain");e.tokenAddress=r.address.toString(),e.tokenKey=i.key;const s=sg(t.from,ig(i));if(e.tokenDecimals=s,e.amount=ea({amount:n.amount.toString(),decimals:s}),e.receiveAmount=e.amount,e.sender=n.messageSender.toNative(t.from).toString(),t.to==="Solana"){if(!Ne.rpcs.Solana)throw new Error("Missing Solana RPC");const o=n.mintRecipient.toNative(t.to).toString(),f=new QE(Ne.rpcs.Solana);try{const u=await Lfe(f,new Fe(o));e.recipient=u.owner.toBase58()}catch(u){console.error(u),e.recipient=o}}else e.recipient=n.mintRecipient.toNative(t.to).toString();const a=Ne.tokensArr.find(o=>o.symbol==="USDC"&&o.nativeChain===e.toChain);if(!a)throw new Error("Couldn't find USDC for destination chain");return e.receivedTokenKey=a.key,e},XZ=t=>{let e="";if("originTxs"in t&&t.originTxs.length>0)e=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");const n=Nn.tokenId(t.from,t.params.normalizedParams.sourceContracts.token),r=Ne.sdkConverter.findTokenConfigV1(n,Ne.tokensArr);if(!r)throw new Error("Unknown src token");const i=Nn.tokenId(t.to,t.params.normalizedParams.destinationContracts.token),s=Ne.sdkConverter.findTokenConfigV1(i,Ne.tokensArr);if(!s)throw new Error("Unknown dst token");const{attestation:a}=t.attestation,{payload:o}=a.payloadName==="WormholeTransfer"?a:a.payload,{trimmedAmount:f}=o.nttManagerPayload.payload,u=ea({amount:f.amount.toString(),decimals:f.decimals});return{toChain:t.to,fromChain:t.from,sendTx:e,sender:o.nttManagerPayload.sender.toNative(t.from).toString(),recipient:o.nttManagerPayload.payload.recipientAddress.toNative(t.to).toString(),amount:u,tokenAddress:r.tokenId.address.toString(),tokenKey:r.key,tokenDecimals:f.decimals,receivedTokenKey:s.key,receiveAmount:u,relayerFee:void 0}},LWe=t=>typeof t=="object"&&typeof t.amount=="string"&&typeof t.decimals=="number",BWe=t=>{const e=t;return LWe(e==null?void 0:e.min)};class jWe{constructor(e){ce(this,"wh");this.wh=e}toTokenIdV1(e){if(e.address!=="native")return{chain:e.chain,address:e.address.toString()}}toTokenIdV2(e,n){if(this.isTokenConfigV1(e))if(n&&n!=e.nativeChain){const r=e5(e,n);if(r)return Nn.tokenId(n,r.toString());throw new Error("no foreign asset")}else{const r=this.getNativeTokenAddressV2(e);if(!r)throw new Error("no address");return Nn.tokenId(e.nativeChain,r)}else return Nn.tokenId(e.chain,e.address)}tokenIdV2(e,n){return Nn.tokenId(e,n)}isTokenConfigV1(e){return"key"in e}findTokenConfigV1(e,n){var s;const r=e.address==="native",i=e.chain;for(const a in n){const o=n[a];if(o.nativeChain===i){if(r&&o.key===E8(i).key)return o;if(((s=o.tokenId)==null?void 0:s.address.toLowerCase())===e.address.toString().toLowerCase())return o}else{const f=e5(o,i);if(f&&f.toString()===e.address.toString())return o}}}async getTokenIdV2ForKey(e,n,r){const i=r[e];if(i)if(i.nativeChain===n){const s=this.getNativeTokenAddressV2(i);return s?this.tokenIdV2(n,s):void 0}else{const s=await jue(r[e],n);return s?this.tokenIdV2(n,s.toString()):void 0}}getNativeTokenAddressV2(e){var r;return E8(e.nativeChain).key===e.key&&e.key!=="CELO"?"native":(r=e.tokenId)==null?void 0:r.address}}const RWe="modulepreload",_We=function(t){return"/"+t},JZ={},ss=function(e,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),o=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.allSettled(n.map(f=>{if(f=_We(f),f in JZ)return;JZ[f]=!0;const u=f.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${h}`))return;const m=document.createElement("link");if(m.rel=u?"stylesheet":RWe,u||(m.as="script"),m.crossOrigin="",m.href=f,o&&m.setAttribute("nonce",o),document.head.appendChild(m),u)return new Promise((y,x)=>{m.addEventListener("load",y),m.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${f}`)))})}))}function s(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return i.then(a=>{for(const o of a||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})},OWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/evm-C-buBtRY.js");return{default:t}},[])).default,FWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/solana-BmGIyTEt.js");return{default:t}},__vite__mapDeps([0,1]))).default,PWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/aptos-k14Q8oIC.js").then(e=>e.a);return{default:t}},[])).default,zWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/sui-CW05lm4n.js").then(e=>e.s);return{default:t}},__vite__mapDeps([2,3]))).default,UWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/cosmwasm-Bb55TeV-.js").then(e=>e.a3);return{default:t}},__vite__mapDeps([4,3,5,6,7]))).default,WWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/algorand-CyJRjYjt.js").then(e=>e.a);return{default:t}},[])).default;var Rue={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(f,u,h){this.fn=f,this.context=u,this.once=h||!1}function s(f,u,h,m,y){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||f,y),w=n?n+u:u;return f._events[w]?f._events[w].fn?f._events[w]=[f._events[w],x]:f._events[w].push(x):(f._events[w]=x,f._eventsCount++),f}function a(f,u){--f._eventsCount===0?f._events=new r:delete f._events[u]}function o(){this._events=new r,this._eventsCount=0}o.prototype.eventNames=function(){var u=[],h,m;if(this._eventsCount===0)return u;for(m in h=this._events)e.call(h,m)&&u.push(n?m.slice(1):m);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(h)):u},o.prototype.listeners=function(u){var h=n?n+u:u,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,x=m.length,w=new Array(x);y<x;y++)w[y]=m[y].fn;return w},o.prototype.listenerCount=function(u){var h=n?n+u:u,m=this._events[h];return m?m.fn?1:m.length:0},o.prototype.emit=function(u,h,m,y,x,w){var E=n?n+u:u;if(!this._events[E])return!1;var I=this._events[E],T=arguments.length,D,k;if(I.fn){switch(I.once&&this.removeListener(u,I.fn,void 0,!0),T){case 1:return I.fn.call(I.context),!0;case 2:return I.fn.call(I.context,h),!0;case 3:return I.fn.call(I.context,h,m),!0;case 4:return I.fn.call(I.context,h,m,y),!0;case 5:return I.fn.call(I.context,h,m,y,x),!0;case 6:return I.fn.call(I.context,h,m,y,x,w),!0}for(k=1,D=new Array(T-1);k<T;k++)D[k-1]=arguments[k];I.fn.apply(I.context,D)}else{var N=I.length,R;for(k=0;k<N;k++)switch(I[k].once&&this.removeListener(u,I[k].fn,void 0,!0),T){case 1:I[k].fn.call(I[k].context);break;case 2:I[k].fn.call(I[k].context,h);break;case 3:I[k].fn.call(I[k].context,h,m);break;case 4:I[k].fn.call(I[k].context,h,m,y);break;default:if(!D)for(R=1,D=new Array(T-1);R<T;R++)D[R-1]=arguments[R];I[k].fn.apply(I[k].context,D)}}return!0},o.prototype.on=function(u,h,m){return s(this,u,h,m,!1)},o.prototype.once=function(u,h,m){return s(this,u,h,m,!0)},o.prototype.removeListener=function(u,h,m,y){var x=n?n+u:u;if(!this._events[x])return this;if(!h)return a(this,x),this;var w=this._events[x];if(w.fn)w.fn===h&&(!y||w.once)&&(!m||w.context===m)&&a(this,x);else{for(var E=0,I=[],T=w.length;E<T;E++)(w[E].fn!==h||y&&!w[E].once||m&&w[E].context!==m)&&I.push(w[E]);I.length?this._events[x]=I.length===1?I[0]:I:a(this,x)}return this},o.prototype.removeAllListeners=function(u){var h;return u?(h=n?n+u:u,this._events[h]&&a(this,h)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,t.exports=o})(Rue);var HWe=Rue.exports;const qWe=hs(HWe);class GWe extends Error{constructor(){super("Not supported")}}class Aft extends Error{constructor(){super("Not connected")}}var eK;(function(t){t.SignTransaction="SignTransaction",t.SendTransaction="SendTransaction",t.SignAndSendTransaction="SignAndSendTransaction",t.SignMessage="SignMessage"})(eK||(eK={}));var wm;(function(t){t.Installed="Installed",t.NotDetected="NotDetected",t.Loadable="Loadable",t.Unsupported="Unsupported"})(wm||(wm={}));class Eft extends qWe{getWalletState(){return wm.Installed}supportsFeature(e){const n=this.getFeatures();return Array.isArray(e)?e.every(r=>n.includes(r)):n.includes(e)}}const Jr={unset:0,solana:1,ethereum:2,terra:3,bsc:4,polygon:5,avalanche:6,oasis:7,algorand:8,aurora:9,fantom:10,karura:11,acala:12,klaytn:13,celo:14,near:15,moonbeam:16,neon:17,terra2:18,injective:19,osmosis:20,sui:21,aptos:22,arbitrum:23,optimism:24,gnosis:25,pythnet:26,xpla:28,btc:29,base:30,sei:32,rootstock:33,scroll:34,mantle:35,blast:36,xlayer:37,linea:38,berachain:39,seievm:40,wormchain:3104,cosmoshub:4e3,evmos:4001,kujira:4002,neutron:4003,celestia:4004,stargaze:4005,seda:4006,dymension:4007,provenance:4008,sepolia:10002,arbitrum_sepolia:10003,base_sepolia:10004,optimism_sepolia:10005,holesky:10006,polygon_sepolia:10007};Object.entries(Jr).reduce((t,[e,n])=>(t[n]=e,t),{});const Sft=Jr.solana,VWe=Jr.ethereum,YWe=Jr.bsc,QWe=Jr.polygon,ZWe=Jr.avalanche,KWe=Jr.oasis,$We=Jr.aurora,XWe=Jr.fantom,JWe=Jr.karura,eHe=Jr.acala,tHe=Jr.klaytn,nHe=Jr.celo,rHe=Jr.moonbeam,iHe=Jr.neon,Cft=Jr.sui,Tft=Jr.aptos,sHe=Jr.arbitrum,aHe=Jr.optimism,oHe=Jr.gnosis,cHe=Jr.base,fHe=Jr.scroll,uHe=Jr.mantle,lHe=Jr.blast,dHe=Jr.xlayer;function Ift(t){return t===VWe||t===YWe||t===ZWe||t===QWe||t===KWe||t===$We||t===XWe||t===JWe||t===eHe||t===tHe||t===nHe||t===rHe||t===iHe||t===sHe||t===aHe||t===oHe||t===cHe||t===fHe||t===lHe||t===dHe||t===uHe}const sw={address:"",type:void 0,currentAddress:"",error:"",icon:void 0,name:""},qD={sending:sw,receiving:sw},_ue=H8({name:"wallet",initialState:qD,reducers:{connectWallet:(t,{payload:e})=>{t.sending.address=e.address,t.sending.currentAddress=e.address,t.sending.type=e.type,t.sending.name=e.name,t.sending.error="",t.sending.icon=e.icon},connectReceivingWallet:(t,{payload:e})=>{t.receiving.address=e.address,t.receiving.currentAddress=e.address,t.receiving.type=e.type,t.receiving.name=e.name,t.receiving.error="",t.receiving.icon=e.icon},clearWallet:(t,{payload:e})=>{t[e]=sw},disconnectWallet:(t,{payload:e})=>{GD(e),t[e]=sw},setWalletError:(t,{payload:e})=>{const{type:n,error:r}=e;t[n].error=r},setAddress:(t,{payload:e})=>{const{type:n,address:r}=e;t[n].address=r,t[n].currentAddress=r},clearWallets:t=>{Object.keys(t).forEach(e=>{t[e]=qD[e]})},disconnectWallets:t=>{GD(h0.SENDING),GD(h0.RECEIVING),Object.keys(t).forEach(e=>{t[e]=qD[e]})},swapWallets:t=>{const e=t.sending;t.sending=t.receiving,t.receiving=e,wHe()}}}),{connectWallet:hHe,connectReceivingWallet:pHe,clearWallet:Oue,setAddress:Dft,setWalletError:bHe,clearWallets:mHe,disconnectWallet:yHe,disconnectWallets:kft,swapWallets:gHe}=_ue.actions,xHe=_ue.reducer;var h0=(t=>(t.SENDING="sending",t.RECEIVING="receiving",t))(h0||{});const Zf={sending:void 0,receiving:void 0},Fue=t=>t?Ne.chainsArr.filter(e=>e.context===t).map(e=>e.key):Ne.chainsArr.map(e=>e.key),vHe=(t,e)=>{Zf[t]=e},Pue=async(t,e,n,r)=>{const{wallet:i,name:s}=n;vHe(t,i);const a=Ne.chains[e];if(!a)throw new Error(`Unable to find wallets for chain ${e}`);const{chainId:o,context:f}=a;await i.connect({chainId:o}),Ne.triggerEvent({type:"wallet.connect",details:{side:t,chain:e,wallet:n.name.toLowerCase()}});const u=i.getAddress(),h={address:u,type:n.type,icon:i.getIcon(),name:i.getName()};r(t==="sending"?hHe(h):pHe(h)),i.on("disconnect",()=>{i.removeAllListeners(),r(Oue(t)),localStorage.removeItem(`wormhole-connect:wallet:${f}`)}),i.on("accountsChanged",m=>{(m.length===0||m.length&&u&&m[0]!==u)&&i.disconnect()}),localStorage.setItem(`wormhole-connect:wallet:${f}`,s)},tK=async(t,e,n)=>{const r=Ne.chains[e],i=localStorage.getItem(`wormhole-connect:wallet:${r.context}`);if(i&&i!=="WalletConnect"){const a=(await Hue(r)).find(o=>o.name===i);a&&await Pue(t,e,a,n)}},zue=()=>{const t=Ri(),{toChain:e,fromChain:n}=Yn(r=>r.transferInput);$.useEffect(()=>{n&&tK("sending",n,t),e&&tK("receiving",e,t)},[n,e])},wHe=()=>{const t=Zf.sending;Zf.sending=Zf.receiving,Zf.receiving=t},Uue=async(t,e)=>{const n=Zf[e];if(!n)throw new Error("must connect wallet");const r=await n.getSigner();Ne.whLegacy.registerSigner(t,r)},Wue=async(t,e)=>{const n=Zf[e];if(!n)throw new Error("must connect wallet");const r=xWe(t);if(n.getNetworkInfo().chainId!==t){if(r.context===un.ETH)try{await(await ss(()=>import("./assets/evm-BxXdWj24.js").then(a=>a.j),__vite__mapDeps([8,9]))).switchChain(n,t)}catch(s){if(s instanceof GWe)return;throw s}return n.getAddress()}},GD=async t=>{const e=Zf[t];e&&await e.disconnect()},MHe=async(t,e,n,r={})=>{const i=Ne.chains[t],s=Zf[n];if(!s)throw new Error("wallet is undefined");if(i.context===un.ETH)return await(await ss(()=>import("./assets/evm-BxXdWj24.js").then(f=>f.j),__vite__mapDeps([8,9]))).signAndSendTransaction(e,s,t,r);if(i.context===un.SOLANA)return await(await ss(()=>import("./assets/solana-D5RkygmT.js"),__vite__mapDeps([10,11,1]))).signAndSendTransaction(e,s,r);if(i.context===un.SUI)return(await(await ss(()=>import("./assets/sui-DKCuV9MM.js"),__vite__mapDeps([12,11]))).signAndSendTransaction(e,s)).id;if(i.context===un.APTOS)return(await(await ss(()=>import("./assets/aptos-iv_Arec9.js"),__vite__mapDeps([13,6]))).signAndSendTransaction(e,s)).id;throw new Error("unimplemented")},AHe=t=>{const e=t.getWalletState();return e!==wm.Unsupported&&e!==wm.NotDetected},P9=(t,e,n=[])=>Object.values(t).filter((r,i,s)=>i===s.findIndex(a=>a.getName()===r.getName())).filter(r=>!n.includes(r.getName())).map(r=>({wallet:r,type:e,name:r.getName(),icon:r.getIcon(),isReady:AHe(r)})),Hue=async t=>{if(t===void 0)return[];if(t.context===un.ETH){const e=await ss(()=>import("./assets/evm-BxXdWj24.js").then(n=>n.j),__vite__mapDeps([8,9]));return Object.values(P9(e.wallets,un.ETH))}else if(t.context===un.SOLANA){const n=(await ss(()=>import("./assets/solana-D5RkygmT.js"),__vite__mapDeps([10,11,1]))).fetchOptions();return Object.values(P9(n,un.SOLANA))}else if(t.context===un.SUI){const n=await(await ss(()=>import("./assets/sui-DKCuV9MM.js"),__vite__mapDeps([12,11]))).fetchOptions();return Object.values(P9(n,un.SUI))}else if(t.context===un.APTOS){const n=(await ss(()=>import("./assets/aptos-iv_Arec9.js"),__vite__mapDeps([13,6]))).fetchOptions();return Object.values(P9(n,un.APTOS))}return[]};class XE{constructor(e,n,r,i,s){ce(this,"_chain");ce(this,"_chainContextV2");ce(this,"_address");ce(this,"_options");ce(this,"_walletType");this._chain=e,this._chainContextV2=n,this._address=r,this._options=i,this._walletType=s}static async fromChain(e,n,r,i){const a=(await xc()).getPlatform(bd(e)).getChain(e);return new XE(e,a,n,r,i)}async signAndSend(e){const n=[];for(const r of e){const i=await MHe(this._chain,r,this._walletType,this._options);n.push(i)}return n}chain(){return this._chainContextV2.chain}address(){return this._address}}class EHe{constructor(e){ce(this,"IS_TOKEN_BRIDGE_ROUTE",!1);this.rc=e,this.IS_TOKEN_BRIDGE_ROUTE=["ManualTokenBridge","AutomaticTokenBridge","CosmosGateway"].includes(e.meta.name)}get AUTOMATIC_DEPOSIT(){return this.rc.IS_AUTOMATIC}get NATIVE_GAS_DROPOFF_SUPPORTED(){return this.rc.NATIVE_GAS_DROPOFF_SUPPORTED}async getV2ChainContext(e){const r=(await xc()).getPlatform(bd(e)).getChain(e);return{chain:e,context:r}}async isRouteSupported(e,n,r,i,s){const a=await this.getV2ChainContext(i),o=await this.getV2ChainContext(s),f=this.rc.supportedChains(Ne.network),u=f.includes(a.chain),h=f.includes(o.chain),m=await Ne.sdkConverter.getTokenIdV2ForKey(e,i,Ne.tokens),y=await Ne.sdkConverter.getTokenIdV2ForKey(n,s,Ne.tokens);if(!m||!y)return!1;const x=!!(await this.rc.supportedSourceTokens(a.context)).find(T=>_v(T,m)),E=!!(await this.rc.supportedDestinationTokens(m,a.context,o.context)).find(T=>{let D=y;if(this.IS_TOKEN_BRIDGE_ROUTE&&ci(y.address)){const k=ig(E8(s));D=Ne.sdkConverter.tokenIdV2(s,k.address)}return _v(T,D)});return u&&h&&x&&E}isSupportedChain(e){return this.rc.supportedChains(Ne.network).includes(e)}async supportedSourceTokens(e,n,r,i){if(!r)return[];const s=await this.getV2ChainContext(r);return(await this.rc.supportedSourceTokens(s.context)).map(a=>Ne.sdkConverter.findTokenConfigV1(a,e)).filter(a=>a!=null)}async supportedDestTokens(e,n,r,i){if(!r||!i||!n)return[];if(this.IS_TOKEN_BRIDGE_ROUTE&&this.isIlliquidDestToken(n,i))return[];const s=await this.getV2ChainContext(r),a=await this.getV2ChainContext(i),o=Ne.sdkConverter.toTokenIdV2(n,r),f=await this.rc.supportedDestinationTokens(o,s.context,a.context);if(this.IS_TOKEN_BRIDGE_ROUTE&&f.length>0){const u=G2(n,i),h=e5(Jh(n),i);return u&&!h?[]:[Jh(n)]}return f.map(u=>Ne.sdkConverter.findTokenConfigV1(u,e)).filter(u=>u!=null)}async getQuote(e,n,r,i,s,a){const o=await this.createRequest(e,n,r,i,s),f=await xc(),u=new this.rc(f),h=await u.validate(o,{amount:e,options:a});if(!h.valid)throw h.error;const m=await u.quote(o,h.params);return[u,m,o]}async createRequest(e,n,r,i,s){const a=await Ne.sdkConverter.getTokenIdV2ForKey(n,i,Ne.tokens),o=await Ne.sdkConverter.getTokenIdV2ForKey(r,s,Ne.tokens);if(a===void 0)throw new Error(`Failed to find TokenId for ${n}`);if(o===void 0)throw new Error(`Failed to find TokenId for ${r}`);const f=(await this.getV2ChainContext(i)).context,u=(await this.getV2ChainContext(s)).context,h=await xc();return await xO.create(h,{source:a,destination:o},f,u)}async computeReceiveAmount(e,n,r,i,s,a){if(isNaN(e))return 0;if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");const[,o]=await this.getQuote(e.toString(),n,r,i,s,a);if(o.success)return N1(o.destinationToken.amount);throw o.error}async computeReceiveAmountWithFees(e,n,r,i,s,a){if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");return this.computeReceiveAmount(e,n,r,i,s,a)}async computeQuote(e,n,r,i,s,a){if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");const[,o]=await this.getQuote(e,n,r,i,s,a);if(!o.success)throw o.error;return o}async send(e,n,r,i,s,a,o,f){const[u,h,m]=await this.getQuote(n.toString(),e.key,o,r,s,f);if(!h.success)throw h.error;const y=await XE.fromChain(r,i,{},h0.SENDING);let x=await u.initiate(m,y,h,Nn.chainAddress(s,a));if(x.state===Jt.SourceInitiated||x.state===Jt.SourceFinalized)return[u,x];for await(x of u.track(x,120*1e3))if(x.state>=Jt.SourceInitiated)return[u,x];throw new Error("Never got a SourceInitiated state in receipt")}async resumeIfManual(e){const n=await xc(),r=new this.rc(n);return XL(r)||JL(r)?r.resume(e):null}isIlliquidDestToken(e,n){const{symbol:r,nativeChain:i}=e;return!!(t4(e,n)||["ETH","WETH"].includes(r)&&i==="Ethereum"&&["Scroll","Blast","Xlayer","Mantle"].includes(n))}}var nK;(function(t){t.ManualOptions={automatic:!1},t.AutomaticOptions={automatic:!0,gasDropoff:"0.0"};function e(f){return["Mainnet","Testnet"]}t.resolveSupportedNetworks=e;function n(f,u){return Object.values(f.tokens).flatMap(m=>m.map(y=>y.chain))}t.resolveSupportedChains=n;function r(f,u){return Object.entries(f.tokens).map(([,m])=>{const y=m.find(x=>x.chain===u.chain);return y?Nn.tokenId(u.chain,y.token):null}).filter(m=>!!m)}t.resolveSourceTokens=r;function i(f,u,h,m){return Object.entries(f.tokens).map(([,y])=>{if(!y.find(E=>E.chain===h.chain&&E.token.toLowerCase()===Ui(u).toLowerCase()))return;const w=y.find(E=>E.chain===m.chain);if(w)return Nn.tokenId(m.chain,w.token)}).filter(y=>!!y)}t.resolveDestinationTokens=i;function s(f,u){const h=Object.values(f.tokens),m=Ui(u);for(const y of h){const x=y.find(w=>w.token.toLowerCase()===m.toLowerCase()&&w.chain===u.chain);if(x)return{token:x.token,manager:x.manager,transceiver:{wormhole:x.transceiver.find(w=>w.type==="wormhole").address},quoter:x.quoter}}throw new Error("Cannot find Ntt contracts in config for: "+m)}t.resolveNttContracts=s;function a(f,u,h){const m=Object.values(f.tokens),y=Ui(u);for(const x of m)if(x.find(E=>E.manager.toLowerCase()===y.toLowerCase()&&E.chain===u.chain)){const E=x.find(I=>I.chain===h);if(!E)throw new Error(`Cannot find destination Ntt contracts in config for: ${y}`);return{token:E.token,manager:E.manager,transceiver:{wormhole:E.transceiver.find(I=>I.type==="wormhole").address},quoter:E.quoter}}throw new Error("Cannot find Ntt contracts in config for: "+y)}t.resolveDestinationNttContracts=a;function o(f,u){const h=u*95n/100n;return f>h}t.isCapacityThresholdExceeded=o})(nK||(nK={}));const _B=t=>[...Array(t).keys()],SHe=(t,e)=>t.map(n=>n[e]),kb=t=>_B(t[0].length).map(e=>_B(t.length).map(n=>t[n][e]));function CHe(t){return["string","number","symbol","bigint","boolean"].includes(typeof t)}const rK=t=>t.length===2&&!Array.isArray(t[0])&&Array.isArray(t[1]),OB=t=>t.length===0?[]:Array.isArray(t[0])?t.map(([e,n])=>Array.isArray(n)?(rK(n)?OB(n):n).map(r=>[e,r].flat()):[[e,n]]).flat():rK(t)?OB(t[1]).map(e=>[t[0],e]):t,THe=(t,e)=>{const n=OB(t);if(n.length===0)throw new Error("Invalid mapping: empty");const r=e===void 0?[_B(n[0].length-1),[n[0].length-1]]:e.map(y=>typeof y=="number"?[y]:y);let i=[],s=!0;const a=(y,x)=>{const w=Array.from(new Set(y[0]).values()),E=new Map(w.map(T=>[T,[]]));for(const[T,D]of y[0].entries())E.get(D).push(T);if(y.length===1){const T=Object.fromEntries(w.map(D=>[D,E.get(D).map(k=>x[k].length===1?x[k][0]:x[k])]));if(s){for(const D of E.values())if(D.length>1)return s=!1,T;i.push(T)}return T}const I=kb(y.slice(1));return Object.fromEntries(w.map(T=>{const D=E.get(T),k=kb(D.map(R=>I[R])),N=D.map(R=>x[R]);return[T,a(k,N)]}))},o=kb(n),f=y=>{const x=o[y];if(x===void 0)throw new Error(`Invalid shape: column ${y} does not exist`);return x},[u,h]=r.map(y=>y.map(x=>f(x)));if(u.length===0)throw new Error("Invalid shape: empty key set");if(h.length===0)throw new Error("Invalid shape: empty value set");for(const y of u)for(const x of y)if(!CHe(x))throw new Error(`Invalid key: ${x} in ${y}`);const m=a(u,kb(h));if(s)for(const y of i)for(const x of Object.keys(y))y[x]=y[x][0];return m};function Fd(t,e){const n=THe(t,e),r=(...i)=>i.reduce((s,a)=>s?s[a.toString()]??void 0:void 0,n);return Object.assign(r,{has:(...i)=>r(...i)!==void 0,get:(...i)=>r(...i),subMap:i=>n[i.toString()]})}const IHe=["int","uint","bytes","array","switch"],que="big",AP=6,aw=t=>typeof t=="number"||typeof t=="bigint",JE=t=>t instanceof Uint8Array,ow=t=>IHe.includes(t==null?void 0:t.binary),DHe=t=>ow(t)||Array.isArray(t)&&t.every(ow),eS=t=>JE(t==null?void 0:t.from),cw=(t,e)=>({...t,binary:"bytes",...e===void 0?{}:DHe(e)?{layout:e}:e instanceof Uint8Array||eS(e)||!Array.isArray(e)?{custom:e}:{layout:e[0],custom:e[1]}}),Gue=(t,e)=>{if(t!==e)throw new Error(`size mismatch: layout size: ${t}, data size: ${e}`);return e},Ex=(t,e)=>"size"in t&&t.size!==void 0?Gue(t.size,e):e,FB=(t,e)=>{if(t!=e)throw new Error(`value mismatch: (constant) layout value: ${t}, data value: ${e}`)},PB=(t,e,n)=>{const r=(u,h)=>h===void 0?[0,u.length]:Array.isArray(h)?h:[h,u.length],[i,s]=r(t,n==null?void 0:n.customSlice),[a,o]=r(e,n==null?void 0:n.dataSlize),f=s-i;Gue(f,o-a);for(let u=0;u<t.length;++u)if(t[u+i]!==e[u+a])throw new Error(`binary data mismatch: layout value: ${t}, offset: ${i}, data value: ${e}, offset: ${a}`)};function Vue(t,e){const n=e[t.idTag??"id"];return t.layouts.find(([r])=>(Array.isArray(r)?r[1]:r)==n)}function iK(t,e){switch(t.binary){case"int":case"uint":return t.size;case"bytes":{const n="lengthSize"in t?t.lengthSize|0:0;if("layout"in t){const{custom:i}=t,s=G5(t.layout,i===void 0?e:typeof i.from=="function"?i.from(e):i.from);return s===null?"size"in t?t.size??null:null:n+Ex(t,s)}const{custom:r}=t;return JE(r)?n+r.length:eS(r)?n+r.from.length:r===void 0?e?n+Ex(t,e.length):null:e!==void 0?n+Ex(t,r.from(e).length):null}case"array":{const n="length"in t?t.length:void 0;if(e===void 0){if(n!==void 0){const i=G5(t.layout);return i===null?null:n*i}return null}let r=0;if(n!==void 0&&n!==e.length)throw new Error(`array length mismatch: layout length: ${n}, data length: ${e.length}`);"lengthSize"in t&&t.lengthSize!==void 0&&(r+=t.lengthSize);for(let i=0;i<e.length;++i){const s=G5(t.layout,e[i]);if(s===null)return null;r+=s}return r}case"switch":{if(e!==void 0){const[r,i]=Vue(t,e),s=G5(i,e);return s!==null?t.idSize+s:null}let n=null;for(const[r,i]of t.layouts){const s=G5(i);if(n===null)n=s;else if(s!==n)return null}return t.idSize+n}}}function G5(t,e){if(ow(t))return iK(t,e);let n=0;for(const r of t){let i;if(e&&(!("omit"in r)||!r.omit)){if(!(r.name in e))throw new Error(`missing data for layout item: ${r.name}`);i=e[r.name]}const s=iK(r,i);if(s===null){if(e!==void 0)throw new Error(`coding error: couldn't calculate size for layout item: ${r.name}`);return null}n+=s}return n}function kHe(t,e){const n=G5(t,e);if(n===null)throw new Error(`coding error: couldn't calculate layout size for layout ${t} with data ${e}`);return n}const VD=(t,e)=>{t.bytes.set(e,t.offset),t.offset+=e.length};function zB(t,e,n,r=0){const i={bytes:n??new Uint8Array(kHe(t,e)),offset:r};if(Sx(t,e,i),!n&&i.offset!==i.bytes.length)throw new Error(`encoded data is shorter than expected: ${i.bytes.length} > ${i.offset}`);return n?i.offset:i.bytes}const sK=2**(AP*8);function z9(t,e,n,r=que,i=!1){if(!i&&t<0)throw new Error(`Value ${t} is negative but unsigned`);if(typeof t=="number"){if(!Number.isInteger(t))throw new Error(`Value ${t} is not an integer`);if(e>AP){if(t>=sK)throw new Error(`Value ${t} is too large to be safely converted into an integer`);if(i&&t<=-sK)throw new Error(`Value ${t} is too small to be safely converted into an integer`)}}const s=2n**BigInt(e*8);if(t>=s)throw new Error(`Value ${t} is too large for ${e} bytes`);if(i&&t<-s)throw new Error(`Value ${t} is too small for ${e} bytes`);for(let a=0;a<e;++a)n.bytes[n.offset+a]=Number(BigInt(t)>>BigInt(8*(r==="big"?e-a-1:a))&0xffn);n.offset+=e}function Sx(t,e,n){if(ow(t))aK(t,e,n);else for(const r of t)try{aK(r,e[r.name],n)}catch(i){throw i.message=`when serializing item '${r.name}': ${i.message}`,i}}function aK(t,e,n){switch(t.binary){case"int":case"uint":{const r=(()=>{var i;return aw(t.custom)?("omit"in t&&t.omit||FB(t.custom,e),t.custom):aw((i=t==null?void 0:t.custom)==null?void 0:i.from)?t.custom.from:t.custom!==void 0?t.custom.from(e):e})();z9(r,t.size,n,t.endianness,t.binary==="int");break}case"bytes":{const r=n.offset;if("lengthSize"in t&&t.lengthSize!==void 0&&(n.offset+=t.lengthSize),"layout"in t){const{custom:i}=t;let s;i===void 0?s=e:typeof i.from!="function"?s=i.from:s=i.from(e),Sx(t.layout,s,n)}else{const{custom:i}=t;JE(i)?("omit"in t&&t.omit||PB(i,e),VD(n,i)):eS(i)?VD(n,i.from):VD(n,i!==void 0?i.from(e):e)}if("lengthSize"in t&&t.lengthSize!==void 0){const i=n.offset-r-t.lengthSize,s=n.offset;n.offset=r,z9(i,t.lengthSize,n,t.lengthEndianness),n.offset=s}else Ex(t,n.offset-r);break}case"array":{if("length"in t&&t.length!==e.length)throw new Error(`array length mismatch: layout length: ${t.length}, data length: ${e.length}`);"lengthSize"in t&&t.lengthSize!==void 0&&z9(e.length,t.lengthSize,n,t.lengthEndianness);for(let r=0;r<e.length;++r)Sx(t.layout,e[r],n);break}case"switch":{const[r,i]=Vue(t,e),s=Array.isArray(r)?r[0]:r;z9(s,t.idSize,n,t.idEndianness),Sx(i,e,n);break}}}function NHe(t){const e=t.custom;if(!("cachedSerializedFrom"in e)&&(e.cachedSerializedFrom=zB(t.layout,e.from),"size"in t&&t.size!==void 0&&t.size!==e.cachedSerializedFrom.length))throw new Error("Layout specification error: custom.from does not serialize to specified size");return e.cachedSerializedFrom}function Yue(t,e,n){const r={bytes:e,offset:0,end:e.length},i=Nb(t,r);if(r.offset!==r.end)throw new Error(`encoded data is longer than expected: ${r.end} > ${r.offset}`);return i}function Cx(t,e){const n=t.offset+e;if(n>t.end)throw new Error(`chunk is shorter than expected: ${t.end} < ${n}`);t.offset=n}function Nb(t,e){if(!Array.isArray(t))return oK(t,e);let n={};for(const r of t)try{(r.omit?{}:n)[r.name]=oK(r,e)}catch(i){throw i.message=`when deserializing item '${r.name}': ${i.message}`,i}return n}function U9(t,e,n=que,r=!1){let i=0n;for(let s=0;s<e;++s)i|=BigInt(t.bytes[t.offset+s])<<BigInt(8*(n==="big"?e-s-1:s));return r&&t.bytes[t.offset+(n==="big"?0:e-1)]&128&&(i-=1n<<BigInt(8*e)),Cx(t,e),e>AP?i:Number(i)}function oK(t,e){switch(t.binary){case"int":case"uint":{const n=U9(e,t.size,t.endianness,t.binary==="int"),{custom:r}=t;return aw(r)?(FB(r,n),r):aw(r==null?void 0:r.from)?(FB(r.from,n),r.to):r!==void 0?r.to(n):n}case"bytes":{const n="lengthSize"in t&&t.lengthSize!==void 0?U9(e,t.lengthSize,t.lengthEndianness):t==null?void 0:t.size;if("layout"in t){const{custom:o}=t,f=e.offset;let u;if(n===void 0)u=Nb(t.layout,e);else{const h={...e,end:e.offset+n};if(Cx(e,n),u=Nb(t.layout,h),h.offset!==h.end)throw new Error(`read less data than expected: ${h.offset-e.offset} < ${n}`)}return o!==void 0?typeof o.from!="function"?(PB(NHe(t),e.bytes,{dataSlize:[f,e.offset]}),o.to):o.to(u):u}const{custom:r}=t;{let o,f;if(JE(r)?o=r:eS(r)&&(o=r.from,f=r.to),o!==void 0){const u=n??o.length,h=e.bytes.slice(e.offset,e.offset+u);return PB(o,h),Cx(e,u),f??o}}const i=e.offset,s=n!==void 0?e.offset+n:e.end;Cx(e,s-i);const a=e.bytes.slice(i,s);return r!==void 0?r.to(a):a}case"array":{let n=[];const{layout:r}=t,i=()=>{const a=Nb(r,e);n.push(a)};let s=null;if("length"in t&&t.length!==void 0?s=t.length:"lengthSize"in t&&t.lengthSize!==void 0&&(s=U9(e,t.lengthSize,t.lengthEndianness)),s!==null)for(let a=0;a<s;++a)i();else for(;e.offset<e.end;)i();return n}case"switch":{const n=U9(e,t.idSize,t.idEndianness),{layouts:r}=t;if(r.length===0)throw new Error("switch item has no layouts");const i=typeof r[0][0]=="number",s=r.find(([u])=>i?u===n:u[0]===n);if(s===void 0)throw new Error(`unknown id value: ${n}`);const[a,o]=s,f=Nb(o,e);return{[t.idTag??"id"]:i?n:a[1],...f}}}}function LHe(t,e){return{amount:t.toString(),decimals:e}}function Que(t,e){jHe(t);let n=t.amount.substring(0,t.amount.length-t.decimals).padStart(1,"0"),r=t.amount.substring(t.amount.length-t.decimals).padStart(t.decimals,"0");if(e!==void 0){for(;r.length>e&&r[r.length-1]==="0";)r=r.substring(0,r.length-1);r=r.padEnd(e,"0")}else r=r.replace(/0+$/,"");return r.length>0?`${n}.${r}`:n}function BHe(t){return Number(Que(t))}function jHe(t){if(!/^[0-9]*$/.test(t.amount))throw new Error("Amount: invalid input. Must only contain digits.");if(t.decimals<0)throw new Error("Amount: invalid input. Decimals must be >= 0");if(!isFinite(t.decimals))throw new Error("Amount: invalid input. Decimals must be a finite number.")}const RHe=(t,e)=>e.startsWith(t)?e.slice(t.length):e,_He=/^(?:0x)?[0-9a-fA-F]+$/,fw={valid:t=>_He.test(t),decode:t=>hd.decode(RHe("0x",t).toUpperCase()),encode:(t,e=!1)=>(t=typeof t=="string"?sa.encode(t):t,(e?"0x":"")+hd.encode(t).toLowerCase())},OHe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,FHe={valid:t=>OHe.test(t),decode:pd.decode,encode:t=>pd.encode(typeof t=="string"?sa.encode(t):t)};Ic.decode;const n4={decode:t=>(typeof t!="string"&&(t=fw.encode(t,!0)),t===""||t==="0x"?0n:BigInt(t)),encode:(t,e=!1)=>n4.toString(t,e),toString:(t,e=!1)=>{let n=t.toString(16);return n=n.length%2===1?n="0"+n:n,e?"0x"+n:n},toBytes:(t,e)=>{typeof t=="number"&&(t=n4.toBigInt(t));const n=fw.decode(n4.toString(t));if(!e)return n;if(e<n.length)throw new Error(`Can't fit ${t} into ${e} bytes.`);return sa.zpad(n,e)},toNumber:t=>{if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error(`Invalid cast: ${t} exceeds MAX_SAFE_INTEGER`);return Number(t)},toBigInt:t=>{if(t>Number.MAX_SAFE_INTEGER)throw new Error(`Invalid cast: ${t} exceeds MAX_SAFE_INTEGER`);return BigInt(t)}},sa={encode:t=>new TextEncoder().encode(t),decode:t=>new TextDecoder().decode(t),equals:(t,e)=>t.length===e.length&&t.every((n,r)=>n===e[r]),zpad:(t,e,n=!0)=>n?sa.concat(new Uint8Array(e-t.length),t):sa.concat(t,new Uint8Array(e-t.length)),concat:(...t)=>{const e=t.reduce((i,s)=>i+s.length,0),n=new Uint8Array(e);let r=0;return t.forEach(i=>{n.set(i,r),r+=i.length}),n}},EP=[[1,"Solana"],[2,"Ethereum"],[3,"Terra"],[4,"Bsc"],[5,"Polygon"],[6,"Avalanche"],[7,"Oasis"],[8,"Algorand"],[9,"Aurora"],[10,"Fantom"],[11,"Karura"],[12,"Acala"],[13,"Klaytn"],[14,"Celo"],[15,"Near"],[16,"Moonbeam"],[17,"Neon"],[18,"Terra2"],[19,"Injective"],[20,"Osmosis"],[21,"Sui"],[22,"Aptos"],[23,"Arbitrum"],[24,"Optimism"],[25,"Gnosis"],[26,"Pythnet"],[28,"Xpla"],[29,"Btc"],[30,"Base"],[32,"Sei"],[33,"Rootstock"],[34,"Scroll"],[35,"Mantle"],[36,"Blast"],[37,"Xlayer"],[38,"Linea"],[39,"Berachain"],[40,"Seievm"],[43,"Snaxchain"],[44,"Unichain"],[45,"Worldchain"],[3104,"Wormchain"],[4e3,"Cosmoshub"],[4001,"Evmos"],[4002,"Kujira"],[4003,"Neutron"],[4004,"Celestia"],[4005,"Stargaze"],[4006,"Seda"],[4007,"Dymension"],[4008,"Provenance"],[10002,"Sepolia"],[10003,"ArbitrumSepolia"],[10004,"BaseSepolia"],[10005,"OptimismSepolia"],[10006,"Holesky"],[10007,"PolygonSepolia"],[10008,"MonadDevnet"]];kb(EP);const Zue=Fd(EP,[1,0]),UB=Fd(EP),Kue=t=>Zue.has(t),WB=t=>UB.has(t),ai=t=>{switch(typeof t){case"string":if(Kue(t))return Zue(t);break;case"number":if(WB(t))return t;break}throw Error(`Cannot convert to ChainId: ${t}`)},cK=t=>{switch(typeof t){case"string":if(Kue(t))return t;break;case"number":if(WB(t))return UB(t);break;case"bigint":if(WB(Number(t)))return UB.get(Number(t));break}throw Error(`Cannot convert to Chain: ${t}`)},SP=[["Evm",["Acala","Arbitrum","Aurora","Avalanche","Base","Bsc","Celo","Ethereum","Fantom","Gnosis","Karura","Klaytn","Moonbeam","Neon","Oasis","Optimism","Polygon","Rootstock","Sepolia","ArbitrumSepolia","BaseSepolia","OptimismSepolia","Holesky","PolygonSepolia","Mantle","Scroll","Blast","Xlayer","Linea","Berachain","Seievm","Snaxchain","Unichain","Worldchain","MonadDevnet"]],["Solana",["Solana","Pythnet"]],["Cosmwasm",["Cosmoshub","Evmos","Injective","Kujira","Osmosis","Sei","Terra","Terra2","Wormchain","Xpla","Dymension","Neutron","Stargaze","Celestia","Seda","Provenance"]],["Btc",["Btc"]],["Algorand",["Algorand"]],["Sui",["Sui"]],["Aptos",["Aptos"]],["Near",["Near"]]];SHe(SP,0);Fd(SP);const $ue=Fd(SP,[1,0]),PHe=[["Evm","hex"],["Solana","base58"],["Cosmwasm","bech32"],["Btc","bech32"],["Algorand","algorandAppId"],["Sui","hex"],["Aptos","hex"],["Near","sha256"]];Fd(PHe);const zHe=[["Mainnet",[["Ethereum","https://rpc.ankr.com/eth"],["Solana","https://api.mainnet-beta.solana.com"],["Polygon","https://rpc.ankr.com/polygon"],["Bsc","https://bscrpc.com"],["Avalanche","https://rpc.ankr.com/avalanche"],["Fantom","https://rpc.ankr.com/fantom"],["Celo","https://rpc.ankr.com/celo"],["Moonbeam","https://rpc.ankr.com/moonbeam"],["Sui","https://rpc.mainnet.sui.io"],["Aptos","https://fullnode.mainnet.aptoslabs.com/v1"],["Arbitrum","https://arb1.arbitrum.io/rpc"],["Optimism","https://mainnet.optimism.io"],["Base","https://mainnet.base.org"],["Osmosis","https://osmosis-rpc.polkachu.com"],["Cosmoshub","https://cosmos-rpc.publicnode.com:443"],["Evmos","https://evmos-rpc.polkachu.com"],["Injective","https://sentry.tm.injective.network"],["Wormchain","https://wormchain-rpc.quickapi.com"],["Xpla","https://dimension-rpc.xpla.dev"],["Sei","https://sei-rpc.polkachu.com/"],["Algorand","https://mainnet-api.algonode.cloud"],["Terra","https://terra-classic-rpc.publicnode.com"],["Terra2","https://terra-rpc.polkachu.com"],["Karura","https://eth-rpc-karura.aca-api.network"],["Acala","https://eth-rpc-acala.aca-api.network"],["Oasis","https://emerald.oasis.dev"],["Dymension","https://dymension-rpc.polkachu.com/"],["Stargaze","https://stargaze-rpc.polkachu.com/"],["Celestia","https://celestia-rpc.polkachu.com/"],["Neutron","https://neutron-rpc.polkachu.com/"],["Blast","https://rpc.blast.io"],["Provenance","https://rpc.provenance.io/"],["Linea","https://rpc.linea.build"],["Scroll","https://rpc.ankr.com/scroll"],["Xlayer","https://xlayerrpc.okx.com/"],["Gnosis","https://rpc.ankr.com/gnosis"],["Rootstock","https://public-node.rsk.co"],["Mantle","https://rpc.mantle.xyz"],["Klaytn","https://rpc.ankr.com/klaytn"],["Snaxchain","https://mainnet.snaxchain.io"]]],["Testnet",[["Ethereum","https://eth-goerli.public.blastapi.io"],["Polygon","https://rpc-mumbai.polygon.technology"],["Bsc","https://data-seed-prebsc-1-s3.binance.org:8545"],["Avalanche","https://api.avax-test.network/ext/bc/C/rpc"],["Fantom","https://rpc.ankr.com/fantom_testnet"],["Celo","https://alfajores-forno.celo-testnet.org"],["Solana","https://api.devnet.solana.com"],["Oasis","https://testnet.emerald.oasis.io"],["Moonbeam","https://rpc.api.moonbase.moonbeam.network"],["Sui","https://fullnode.testnet.sui.io"],["Aptos","https://fullnode.testnet.aptoslabs.com/v1"],["Sei","https://sei-testnet-rpc.polkachu.com"],["Arbitrum","https://arbitrum-goerli.public.blastapi.io"],["Optimism","https://optimism-goerli.public.blastapi.io"],["Base","https://base-goerli.public.blastapi.io"],["Injective","https://testnet.sentry.tm.injective.network"],["Osmosis","https://rpc.testnet.osmosis.zone"],["Cosmoshub","https://rpc.sentry-02.theta-testnet.polypore.xyz"],["Evmos","https://evmos-testnet-rpc.polkachu.com"],["Wormchain","https://gateway.testnet.xlabs.xyz/"],["Xpla","https://cube-rpc.xpla.dev"],["Sepolia","https://ethereum-sepolia.publicnode.com"],["Algorand","https://testnet-api.algonode.cloud"],["Terra","https://bombay.stakesystems.io"],["Terra2","https://terra-testnet-rpc.polkachu.com"],["ArbitrumSepolia","https://sepolia-rollup.arbitrum.io/rpc"],["OptimismSepolia","https://sepolia.optimism.io"],["BaseSepolia","https://sepolia.base.org"],["PolygonSepolia","https://rpc-amoy.polygon.technology/"],["Mantle","https://mantle-sepolia.drpc.org"],["Karura","https://eth-rpc-karura-testnet.aca-staging.network"],["Acala","https://eth-rpc-acala-testnet.aca-staging.network"],["Blast","https://sepolia.blast.io"],["Berachain","https://artio.rpc.berachain.com"],["Linea","https://rpc.sepolia.linea.build"],["Xlayer","https://testrpc.xlayer.tech/"],["Scroll","https://rpc.ankr.com/scroll_sepolia_testnet"],["Rootstock","https://public-node.testnet.rsk.co"],["Gnosis","https://rpc.chiadochain.net"],["Klaytn","https://rpc.ankr.com/klaytn_testnet"],["Snaxchain","https://testnet.snaxchain.io"],["Unichain","https://sepolia.unichain.org"],["Worldchain","https://worldchain-sepolia.g.alchemy.com/public"],["MonadDevnet",""]]],["Devnet",[["Ethereum","http://eth-devnet:8545"],["Bsc","http://eth-devnet2:8545"],["Solana","http://solana-devnet:8899"]]]],UHe=Fd(zHe),WHe=(t,e)=>UHe.get(t,e)??"",Xue=[["Mainnet",[["Aptos",1n],["Algorand","mainnet-v1.0"],["Near","mainnet"],["Cosmoshub","cosmoshub-4"],["Evmos","evmos_9001-2"],["Injective","injective-1"],["Osmosis","osmosis-1"],["Sei","pacific-1"],["Terra","columbus-5"],["Terra2","phoenix-1"],["Wormchain","wormchain"],["Xpla","dimension_37-1"],["Kujira","kaiyo-1"],["Solana","5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d"],["Sui","35834a8a"],["Acala",787n],["Arbitrum",42161n],["Aurora",1313161554n],["Avalanche",43114n],["Base",8453n],["Bsc",56n],["Celo",42220n],["Ethereum",1n],["Fantom",250n],["Gnosis",100n],["Karura",686n],["Klaytn",8217n],["Moonbeam",1284n],["Neon",245022934n],["Oasis",42262n],["Optimism",10n],["Polygon",137n],["Rootstock",30n],["Neutron","neutron-1"],["Stargaze","stargaze-1"],["Celestia","celestia"],["Dymension","dymension_1100-1"],["Provenance","pio-mainnet-1"],["Xlayer",196n],["Mantle",5000n],["Scroll",534352n],["Blast",81457n],["Linea",59144n],["Snaxchain",2192n]]],["Testnet",[["Aptos",2n],["Algorand","testnet-v1.0"],["Near","testnet"],["Cosmoshub","theta-testnet-001"],["Evmos","evmos_9000-4"],["Injective","injective-888"],["Osmosis","osmo-test-5"],["Sei","atlantic-2"],["Terra","bombay-12"],["Terra2","pisco-1"],["Wormchain","wormchain-testnet-0"],["Xpla","cube_47-5"],["Kujira","harpoon-4"],["Solana","EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG"],["Sui","4c78adac"],["Acala",597n],["Arbitrum",421613n],["Aurora",1313161555n],["Avalanche",43113n],["Base",84531n],["Bsc",97n],["Celo",44787n],["Ethereum",5n],["Fantom",4002n],["Gnosis",10200n],["Karura",596n],["Klaytn",1001n],["Moonbeam",1287n],["Neon",245022940n],["Oasis",42261n],["Optimism",420n],["Polygon",80001n],["Rootstock",31n],["Sepolia",11155111n],["ArbitrumSepolia",421614n],["BaseSepolia",84532n],["OptimismSepolia",11155420n],["PolygonSepolia",80002n],["Holesky",17000n],["Neutron","pion-1"],["Celestia","mocha-4"],["Seda","seda-1-testnet"],["Blast",168587773n],["Mantle",5003n],["Scroll",534351n],["Berachain",80084n],["Snaxchain",13001n],["Unichain",1301n],["Worldchain",4801n],["Xlayer",195n],["Linea",59141n],["MonadDevnet",41454n]]],["Devnet",[["Aptos",0n],["Algorand","sandnet-v1.0"],["Bsc",1397n],["Ethereum",1337n],["Injective","injective_devnet_fake"],["Solana","8wF6jKV3cKwyaVkWcoV9KpDqmkjvEYno9hKZrKx8TbZn"]]]],HHe=Fd(Xue);Fd(Xue,[2,[0,1]]);const HB=t=>[{name:"id",binary:"bytes",size:32},{name:"sender",...Tn},cw({name:"payload",lengthSize:2},t)],tS=t=>({name:"prefix",binary:"bytes",custom:Uint8Array.from(t),omit:!0}),qHe=(t,e,n)=>[tS(t),{name:"sourceNttManager",...Tn},{name:"recipientNttManager",...Tn},cw({name:"nttManagerPayload",lengthSize:2},e),cw({name:"transceiverPayload",lengthSize:2},n)],GHe=[tS([156,35,189,59]),{name:"managerAddress",...Tn},{name:"mode",binary:"uint",size:1},{name:"token",...Tn},{name:"decimals",binary:"uint",size:1}],VHe=[tS([24,252,103,194]),{name:"chain",...cs()},{name:"transceiver",...Tn}],YHe=[{name:"decimals",binary:"uint",size:1},{name:"amount",binary:"uint",size:8}],QHe={binary:"bytes",layout:YHe};function ZHe(t,e){let n=0n;for(let r=0;r<e;++r)n|=BigInt(t[r])<<BigInt(8*(e-r-1));return Number(n)}function KHe(t,e){const n=2n**BigInt(e*8);if(t>=n)throw new Error(`Value ${t} is too large for ${e} bytes`);const r=new Uint8Array(e);for(let i=0;i<e;++i)r[i]=Number(BigInt(t)>>BigInt(8*(e-i-1))&0xffn);return r}const $He={binary:"bytes",custom:{to:t=>{if(t.byteLength>=2){const e=ZHe(t,2);return t.slice(2,2+e)}return new Uint8Array},from:t=>t.byteLength>0?new Uint8Array([...KHe(t.byteLength,2),...t]):new Uint8Array}},qB=[tS([153,78,84,84]),{name:"trimmedAmount",...QHe},{name:"sourceToken",...Tn},{name:"recipientAddress",...Tn},{name:"recipientChain",...cs()},{name:"additionalPayload",...$He}],fK=t=>qHe([153,69,255,16],t,new Uint8Array(0)),XHe=t=>[{name:"index",binary:"uint",size:1},cw({name:"payload",lengthSize:1},t)],JHe=[["WormholeTransfer",fK(HB(qB))],["WormholeTransferStandardRelayer",cae(fK(HB(qB)))],["TransceiverInfo",GHe],["TransceiverRegistration",VHe]];var Co;(function(t){function e(i){if(i.length>255)throw new Error(`Too many instructions (${i.length})`);return sa.concat(new Uint8Array([i.length]),...i.map(s=>zB(XHe(),s)))}t.encodeTransceiverInstructions=e;function n(i,s){return gd(sa.concat(n4.toBytes(ai(i),2),zB(HB(qB),s)))}t.messageDigest=n;function r(i,s){const a=m=>{const y=/^(\d+)\.(\d+)\.(.*)$/,x=m.match(y);if(!x)throw new Error(`Invalid version format: ${m}`);const[,w,E,I]=x;return{major:Number(w),minor:Number(E),patchAndTag:I}},{major:o,minor:f}=a(i),{major:u,minor:h}=a(s);return o===u&&f>=h}t.abiVersionMatches=r})(Co||(Co={}));y0("Ntt",JHe);class Jue{constructor(e,n,r,i,s=!1){ce(this,"transaction");ce(this,"network");ce(this,"chain");ce(this,"description");ce(this,"parallelizable");this.transaction=e,this.network=n,this.chain=r,this.description=i,this.parallelizable=s}}const W9=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"},{internalType:"address",name:"spender_",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"subtractedValue_",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"domainFields",type:"bytes1"},{internalType:"string",name:"domainName",type:"string"},{internalType:"string",name:"domainVersion",type:"string"},{internalType:"uint256",name:"domainChainId",type:"uint256"},{internalType:"address",name:"domainVerifyingContract",type:"address"},{internalType:"bytes32",name:"domainSalt",type:"bytes32"},{internalType:"uint256[]",name:"domainExtensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"addedValue_",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"},{internalType:"uint64",name:"sequence_",type:"uint64"},{internalType:"address",name:"owner_",type:"address"},{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bytes32",name:"nativeContract_",type:"bytes32"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"},{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"value_",type:"uint256"},{internalType:"uint256",name:"deadline_",type:"uint256"},{internalType:"uint8",name:"v_",type:"uint8"},{internalType:"bytes32",name:"r_",type:"bytes32"},{internalType:"bytes32",name:"s_",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender_",type:"address"},{internalType:"address",name:"recipient_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint64",name:"sequence_",type:"uint64"}],name:"updateDetails",outputs:[],stateMutability:"nonpayable",type:"function"}],uK="0x6080806040523461001657611af2908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816306fdde0314611136578163095ea7b31461110c57816318160ddd146110ed57816323b872dd14611026578163313ce567146110055781633644e51514610fe15781633950935114610f985781633d6c043b14610f7957816340c10f1914610ea157816370a0823114610e695781637ecebe0014610e3157816384b0196e14610d575781638da5cb5b14610d2e57816395d89b4114610c595781639a8a059214610c335781639dc29fac14610af1578163a18cd7c6146107bf578163a457c2d71461070f578163a9059cbb146106de578163c71f461514610335578163d505accf14610160575063dd62ed3e1461011557600080fd5b3461015c578060031936011261015c57806020926101316111af565b6101396111ca565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b5080fd5b8391503461015c5760e036600319011261015c5761017c6111af565b6101846111ca565b906044359260643560843560ff81168103610331576101a16112e1565b8142116102ee5760018060a01b039081851692838952600e602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815261021e81611212565b519020610229611798565b918a5191602083019361190160f01b855260228401526042830152604282526080820182811067ffffffffffffffff8211176102db5791610283939161027b938d5260c4359260a435925190206119c7565b919091611855565b160361029857506102959394506115e0565b80f35b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b9050346106da5760e03660031901126106da5767ffffffffffffffff81358181116106d6576103679036908401611250565b916024358281116106d25761037f9036908301611250565b6044359060ff821680920361033157606435938085168095036106ce576084356001600160a01b03811696908790036106ca5760a4359761ffff891689036106c6576007549060ff8260a01c1661068e575060ff60a01b1916600160a01b17600755805182811161067b57806103f58b546112a7565b92601f93848111610622575b506020908483116001146105b3578c926105a8575b50508160011b916000199060031b1c19161789555b825191821161059557819060019361044385546112a7565b828111610538575b5060209183116001146104cd578a926104c2575b5050600019600383901b1c191690821b1790555b60ff1982541617905567ffffffffffffffff1960025416176002556007549161ffff60a81b9060a81b16916bffffffffffffffffff0000ff60a01b16171760075560c4356008556102956112e1565b01519050388061045f565b848b52849350600080516020611a9d8339815191529190601f1984168c5b81811061052057508411610507575b505050811b019055610473565b015160001960f88460031b161c191690553880806104fa565b828401518555879690940193602093840193016104eb565b90919250848b52600080516020611a9d8339815191528380860160051c8201926020871061058c575b91869588929594930160051c01915b82811061057e57505061044b565b8d8155869550879101610570565b92508192610561565b634e487b7160e01b895260418552602489fd5b015190503880610416565b8c8052600080516020611a7d8339815191529250601f1984168d5b81811061060a57509084600195949392106105f1575b505050811b01895561042b565b015160001960f88460031b161c191690553880806105e4565b929360206001819287860151815501950193016105ce565b9091508b8052600080516020611a7d8339815191528480850160051c82019260208610610672575b9085949392910160051c01905b8181106106645750610401565b8d8155849350600101610657565b9250819261064a565b634e487b7160e01b8a526041865260248afd5b5162461bcd60e51b81526020818801526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b8980fd5b8880fd5b8780fd5b8580fd5b8480fd5b8280fd5b50503461015c578060031936011261015c576020906107086106fe6111af565b6024359033611416565b5160018152f35b905082346107bc57826003193601126107bc5761072a6111af565b918360243592338152600660205281812060018060a01b038616825260205220549082821061076b576020856107088661076487876113e6565b90336115e0565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83833461015c57606036600319011261015c5767ffffffffffffffff928035848111610aed576107f29036908301611250565b936024358181116106d65761080a9036908401611250565b91604435938285168095036106d25761082e60018060a01b03600754163314611594565b8483600254161015610aaa57508551828111610a97578061084f87546112a7565b97601f98898111610a3e575b506020908983116001146109cf5788926109c4575b50508160011b916000199060031b1c19161785555b82519182116109b1575060019161089c83546112a7565b868111610961575b5060209582116001146108f75794849582939495926108ec575b5050600019600383901b1c191690821b1790555b67ffffffffffffffff1960025416176002556102956112e1565b0151905085806108be565b828552601f19821695600080516020611a9d83398151915291865b88811061094b5750838596979810610932575b505050811b0190556108d2565b015160001960f88460031b161c19169055858080610925565b8183015184559285019260209283019201610912565b838652600080516020611a9d8339815191528780850160051c820192602086106109a8575b0160051c019084905b82811061099d5750506108a4565b87815501849061098f565b92508192610986565b634e487b7160e01b855260419052602484fd5b015190508880610870565b888052600080516020611a7d8339815191529250601f198416895b818110610a265750908460019594939210610a0d575b505050811b018555610885565b015160001960f88460031b161c19169055888080610a00565b929360206001819287860151815501950193016109ea565b909150878052600080516020611a7d8339815191528980850160051c82019260208610610a8e575b9085949392910160051c01905b818110610a80575061085b565b898155849350600101610a73565b92508192610a66565b634e487b7160e01b865260418252602486fd5b906020606492519162461bcd60e51b8352820152601e60248201527f63757272656e74206d6574616461746120697320757020746f206461746500006044820152fd5b8380fd5b8391503461015c578260031936011261015c57610b0c6111af565b600754602435916001600160a01b0391610b299083163314611594565b16918215610be65782845260056020528484205490828210610b985750818495610b767fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef946020946113e6565b8587526005845281872055610b8d826003546113e6565b60035551908152a380f35b608490602087519162461bcd60e51b8352820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152fd5b608490602086519162461bcd60e51b8352820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152fd5b50503461015c578160031936011261015c5760209061ffff60075460a81c169051908152f35b50503461015c578160031936011261015c57805190826001805491610c7d836112a7565b80865292828116908115610d065750600114610cbc575b505050610ca682610cb894038361122e565b5191829160208352602083019061118a565b0390f35b9450808552600080516020611a9d8339815191525b828610610cee57505050610ca6826020610cb89582010194610c94565b80546020878701810191909152909501948101610cd1565b610cb8975086935060209250610ca694915060ff191682840152151560051b82010194610c94565b50503461015c578160031936011261015c5760075490516001600160a01b039091168152602090f35b9050346106da57826003193601126106da57610d7161133d565b918051610d7d816111e0565b600194858252602091603160f81b83820152610d97611810565b938051918483019683881067ffffffffffffffff8911176109b1575093879592610dee838b978a859652878452610de182519a601f60f81b8c5260e0878d015260e08c019061118a565b918a8303908b015261118a565b9346606089015230608089015260a088015286840360c088015251928381520195925b828110610e1e5785870386f35b8351875295810195928101928401610e11565b50503461015c57602036600319011261015c5760209181906001600160a01b03610e596111af565b168152600e845220549051908152f35b50503461015c57602036600319011261015c5760209181906001600160a01b03610e916111af565b1681526005845220549051908152f35b919050346106da57806003193601126106da57610ebc6111af565b60075460243592916001600160a01b0391610eda9083163314611594565b16928315610f3757506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610f158795600354611409565b60035585855260058352808520610f2d838254611409565b905551908152a380f35b6020606492519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b50503461015c578160031936011261015c576020906008549051908152f35b50503461015c578060031936011261015c57610708602092610764610fbb6111af565b338352600686528483206001600160a01b03821684528652918490205460243590611409565b50503461015c578160031936011261015c57602090610ffe611798565b9051908152f35b8284346107bc57806003193601126107bc575060ff60209254169051908152f35b905082346107bc5760603660031901126107bc576110426111af565b918361104c6111ca565b9261105b604435809587611416565b6001600160a01b0385168152600660209081528282203383529052205490828210611099576020856107088661109187876113e6565b9033906115e0565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b50503461015c578160031936011261015c576020906003549051908152f35b50503461015c578060031936011261015c5760209061070861112c6111af565b60243590336115e0565b50503461015c578160031936011261015c57610cb89061115461133d565b905191829160208352602083019061118a565b60005b83811061117a5750506000910152565b818101518382015260200161116a565b906020916111a381518092818552858086019101611167565b601f01601f1916010190565b600435906001600160a01b03821682036111c557565b600080fd5b602435906001600160a01b03821682036111c557565b6040810190811067ffffffffffffffff8211176111fc57604052565b634e487b7160e01b600052604160045260246000fd5b60e0810190811067ffffffffffffffff8211176111fc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111fc57604052565b81601f820112156111c55780359067ffffffffffffffff82116111fc5760405192611285601f8401601f19166020018561122e565b828452602083830101116111c557816000926020809301838601378301015290565b90600182811c921680156112d7575b60208310146112c157565b634e487b7160e01b600052602260045260246000fd5b91607f16916112b6565b6112e96117de565b6112f1611810565b81600d5414801590611331575b611306575050565b46600a55600b80546001600160a01b0319163017905561132681836116e2565b600955600c55600d55565b5080600c5414156112fe565b60405190600082815491611350836112a7565b808352926001908181169081156113c45750600114611379575b506113779250038361122e565b565b60008080529150600080516020611a7d8339815191525b8483106113a9575061137793505081016020013861136a565b81935090816020925483858a01015201910190918592611390565b90506020925061137794915060ff191682840152151560051b8201013861136a565b919082039182116113f357565b634e487b7160e01b600052601160045260246000fd5b919082018092116113f357565b6001600160a01b0390811691821561154157169182156114f0576000828152600560205260408120549180831061149c576040602092611477837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef966113e6565b868252600585528282205586815220611491828254611409565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b1561159b57565b60405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606490fd5b6001600160a01b0390811691821561169157169182156116415760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260068252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90604051906116f0826111e0565b600191828152602092603160f81b84830152604051918460005b83811061178457505050600060218301528152611726816111e0565b828151910120604051928301937fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564728552604084015260608301524660808301523060a083015260c082015260c0815261177e81611212565b51902090565b81818401015182828701015201859061170a565b600b546001600160a01b03163014806117d3575b156117b75760095490565b6117d06117c26117de565b6117ca611810565b906116e2565b90565b50600a5446146117ac565b6117e661133d565b60405161177e602082816118038183019687815193849201611167565b810103808452018261122e565b60075460085460405190602082019261ffff60f01b9060481b1683526022820152602281526060810181811067ffffffffffffffff8211176111fc5760405251902090565b60058110156119b157806118665750565b600181036118b35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036119005760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600381036119585760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b60041461196157565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611a705760ff16601b81141580611a65575b611a59579160809493916020936040519384528484015260408301526060820152600093849182805260015afa15611a4c5781516001600160a01b03811615611a46579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600490565b50601c8114156119ff565b5050505060009060039056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212209c2a6ab851b98b79f450a0f6c6580132088da5913ef53a145eab9f7b320248f664736f6c63430008130033",eqe=t=>t.length>1;class GB extends V1{constructor(...e){eqe(e)?super(...e):super(W9,uK,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(W9)}static connect(e,n){return new Js(e,W9,n)}}ce(GB,"bytecode",uK),ce(GB,"abi",W9);class tqe extends nae{}const uo=class uo extends Jse{constructor(e,n){super(e,n??mO(e,uo._platform))}getRpc(e){if(e in this.config&&this.config[e].rpc)return new l0e(this.config[e].rpc);throw new Error("No configuration available for chain: "+e)}getChain(e,n){if(e in this.config)return new tqe(e,this,n);throw new Error("No configuration available for chain: "+e)}static nativeTokenId(e,n){if(!uo.isSupportedChain(n))throw new Error(`invalid chain for EVM: ${n}`);return Nn.tokenId(n,dZ)}static isNativeTokenId(e,n,r){return!uo.isSupportedChain(n)||r.chain!==n?!1:r.address.toString()===dZ}static isSupportedChain(e){return bd(e)===uo._platform}static async getDecimals(e,n,r){if(ci(r))return V0e(uo._platform);const i=uo.getTokenImplementation(n,new L0(r).toString());return Number(await i.decimals())}static async getBalance(e,n,r,i){return ci(i)?n.getBalance(r):uo.getTokenImplementation(n,new L0(i).toString()).balanceOf(r)}static async getBalances(e,n,r,i){return(await Promise.all(i.map(async a=>{const o=await this.getBalance(e,n,r,a);return{[ci(a)?"native":new L0(a).toString()]:o}}))).reduce((a,o)=>Object.assign(a,o),{})}static async sendWait(e,n,r){const i=[];for(const s of r){const a=await n.broadcastTransaction(s);if(i.push(a.hash),e==="Celo"){console.error("TODO: override celo block fetching");continue}if(await a.wait()===null)throw new Error("Received null TxReceipt")}return i}static async getLatestBlock(e){return await e.getBlockNumber()}static async getLatestFinalizedBlock(e){const n=await e.getBlock("finalized");if(!n)throw new Error("Could not get finalized block");return n==null?void 0:n.number}static chainFromChainId(e){const n=Q0e(uo._platform,BigInt(e));if(n===void 0)throw new Error(`Unknown EVM chainId ${e}`);const[r,i]=n;return[r,i]}static async chainFromRpc(e){const{chainId:n}=await e.getNetwork();return uo.chainFromChainId(ed.encode(n,!0))}static getTokenImplementation(e,n){const r=GB.connect(n,e);if(!r)throw new Error(`No token implementation available for: ${n}`);return r}};ce(uo,"_platform",Ky);let V2=uo;class nS{constructor(e,n,r,i){ce(this,"network");ce(this,"chain");ce(this,"provider");ce(this,"contracts");ce(this,"chainId");ce(this,"coreAddress");ce(this,"core");ce(this,"coreIface");this.network=e,this.chain=n,this.provider=r,this.contracts=i,this.chainId=Pwe.get(e,n),this.coreIface=Mm.createInterface();const s=this.contracts.coreBridge;if(!s)throw new Error("Core bridge address not found");this.coreAddress=s,this.core=Mm.connect(s,r)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const n=await this.core.getGuardianSet(e);return{index:e,keys:n[0],expiry:n[1]}}static async fromRpc(e,n){const[r,i]=await V2.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new nS(r,i,e,s.contracts)}async*publishMessage(e,n,r,i){const s=new L0(e).toString(),a=await this.core.publishMessage.populateTransaction(r,n,i);yield this.createUnsignedTx(Yv(a,s),"WormholeCore.publishMessage")}async*verifyMessage(e,n){const r=new L0(e).toString(),i=await this.core.parseAndVerifyVM.populateTransaction(jv(n));yield this.createUnsignedTx(Yv(i,r),"WormholeCore.verifyMessage")}async parseTransaction(e){const n=await this.provider.getTransactionReceipt(e);return n===null?[]:n.logs.filter(r=>r.address===this.coreAddress).map(r=>{const{topics:i,data:s}=r,a=this.coreIface.parseLog({topics:i.slice(),data:s});if(a===null)return;const o=new L0(a.args.sender);return{chain:this.chain,emitter:o.toUniversalAddress(),sequence:a.args.sequence}}).filter(gh)}async parseMessages(e){const n=await this.provider.getTransactionReceipt(e);if(n===null)throw new Error("Could not get transaction receipt");const r=await this.getGuardianSetIndex();return n.logs.filter(i=>i.address===this.coreAddress).map(i=>{const{topics:s,data:a}=i,o=this.coreIface.parseLog({topics:s.slice(),data:a});if(o===null)return null;const f=new L0(o.args.sender);return Xse("Uint8Array",{guardianSet:r,timestamp:0,emitterChain:this.chain,emitterAddress:f.toUniversalAddress(),consistencyLevel:Number(o.args.consistencyLevel),sequence:BigInt(o.args.sequence),nonce:Number(o.args.nonce),signatures:[],payload:Ji.decode(o.args.payload)})}).filter(i=>!!i)}createUnsignedTx(e,n,r=!1){return new Jue(p1e(e,this.chainId),this.network,this.chain,n,r)}}const H9=[{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:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],lK="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",nqe=t=>t.length>1;class Mm extends V1{constructor(...e){nqe(e)?super(...e):super(H9,lK,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(H9)}static connect(e,n){return new Js(e,H9,n)}}ce(Mm,"bytecode",lK),ce(Mm,"abi",H9);const rqe=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:Mm},Symbol.toStringTag,{value:"Module"}));uA(Ky,"WormholeCore",nS);const Nft=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:nS,ethers_contracts:rqe},Symbol.toStringTag,{value:"Module"})),q9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],dK="0x61016034620005a857601f620062e138819003918201601f19168301916001600160401b038311848410176200055b5780849260a094604052833981010312620005a8578051906001600160a01b0382168203620005a8576020810151916002831015620005a85760408201519161ffff83168303620005a8576060810151906001600160401b03821690818303620005a8576080015180159182158203620005a857158092816200059f575b50821562000583575b505062000571576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005ad565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003ce57505060005b60ff8260081c1681106200033a5750604060ff6200016d92161115620005ad565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1662000328576002600160401b03196001600160401b03821601620002dc575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615cb693846200062b85396080518481816112ee0152818161192e01528181611d7f015281816127c501528181613241015281816137e701528181613e3a015281816152ca015281816153dd0152818161549d015281816155bc0152615684015260a05184614cf1015260c051848181610285015281816104e00152818161052d015281816126b10152818161365701528181613cb8015281816145240152818161494301526149f3015260e05184611a7801525183818161047701528181611df801528181611f3e015281816126ff015281816136d901528181613d3501526148cb0152518281816111960152818161276801526131cb0152518161312d0152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003b8575b60ff8360081c1681106200036757506200036190620005cb565b6200014c565b620003b290620003ac6200037b84620005db565b90546200038884620005db565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005ad565b620005cb565b62000347565b634e487b7160e01b600052601160045260246000fd5b620003d981620005db565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200055b5760608401604052546200047b60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a0152926200053e575b5050620005ad565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c168110620004ec575b50505082620004e6959492620004cb620003ac95620004d49414620005ad565b151514620005ad565b60ff60408188169201511610620005ad565b62000139565b620004f781620005db565b9054600391821b1c6001600160a01b039081169184901b85901c161462000529576200052390620005cb565b6200049c565b5060019350849150829050620004cb620004ab565b9091508162000551575b50388062000473565b9050153862000548565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b1591508162000596575b503880620000b5565b9050386200058d565b925038620000ac565b600080fd5b15620005b557565b634e487b7160e01b600052600160045260246000fd5b6000198114620003b85760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006145760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612a42578063036de8af146129b75780630677df54146129985780630900f01014612531578063186ce612146124dc57806319017175146124a65780631f97c9a8146122b4578063203e4a9b14611fb657806323d75e3114611f82578063295a521214611f28578063396c16b714611eec5780633b97e85614611ed15780633f4ba83a14611e435780634b4fd03b14611de5578063689f90c314611da357806374aa7bfc14611d5f5780637c91863414611c0a5780638129fc1c146119e75780638413bcba146118cb5780638456cb591461184e57806386e11ffa1461182957806389c619dd146117c95780638da5cb5b146117935780638e3ba8c91461175c5780638fd3ab801461161d5780639057412d146114a0578063961b94d01461144257806397c35146146111ba5780639a8a05921461117b5780639d78245414610f405780639f86029c14610c2f5780639fd0506d14610bf9578063b187bd2614610bcb578063b293f97f14610b35578063b4d591bb14610a74578063c0b07bde14610a2e578063c128d170146109b2578063d788c14714610927578063da4856a1146108f4578063e5a9860314610848578063e75235b81461081a578063f2fde38b146106d5578063f5cfec18146106b2578063f7514fbc146102b4578063fc0c546a1461026f5763fd96063c1461021757600080fd5b3461026c57602036600319011261026c576060610235600435615228565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b503461026c578060031936011261026c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461026c57602036600319011261026c576004356001600160401b03811681036106ae576102e1615a50565b6002600080516020615b21833981519152541461069c576001600160401b038116600052600080516020615c0183398151915260205260406000206040519061032982612b1a565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039084613587565b808452936001811690811561067a5750600114610636575b506103b592500382612ba1565b60c08201526001600160401b03606082015116156106155760a08101516001600160a01b03163381036105e85750606061045860407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615c01833981519152602052610437826000206135d8565b01516104416149cd565b906001600160401b0360ff82169160081c166158bf565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156105d25780610522575060405163a9059cbb60e01b6020820152336024820152604481019190915261050d906104de81606481015b03601f198101835282612ba1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614218565b6001600080516020615c218339815191525580f35b600181036105b657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105b1576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105a557610596575b5061050d565b61059f90612b07565b38610590565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b81831061065e5750509060206103b592820101386103a8565b6020919350806001915483858801015201910190918392610645565b9050602092506103b594915060ff191682840152151560051b820101386103a8565b6040516309e3d0f360e11b8152600490fd5b5080fd5b503461026c578060031936011261026c5760206106cd615211565b604051908152f35b503461026c57602036600319011261026c576001600160a01b03600435818116908181036107e55761071690610709615a17565b610711615a17565b6159a3565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615ba183398151915254168082036107fc575050908391825b84548110156107f8578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b156107f457848091602460405180948193632c7b84dd60e11b83528960048401525af19081156107e95785916107d1575b50506107cc90612de1565b61075b565b6107da90612b07565b6107e55783386107c1565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b503461026c578060031936011261026c57602060ff600080516020615aa18339815191525416604051908152f35b503461026c57602036600319011261026c5760043560ff8116908181036105b157610871615a17565b81156108e2577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a9916108dc60ff92600080516020615aa1833981519152805493851985161790556108c0613060565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b503461026c5761090336612c24565b906002600080516020615b21833981519152541461069c5761092492613129565b80f35b503461026c57602036600319011261026c5761ffff610944612a9d565b61094c6151f2565b5016600052600080516020615bc18339815191526020526109ae6109736040600020614dcd565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b503461026c57602036600319011261026c5761ffff906109d0612a9d565b9060206040516109df81612b50565b828152015216600052600080516020615a8183398151915260205260408060002060ff8251610a0d81612b50565b60208260018554958685520154169101908152835192835251166020820152f35b503461026c578060031936011261026c576109ae604051610a4e81612b50565b60058152640302e312e360dc1b6020820152604051918291602083526020830190612ae2565b503461026c578060031936011261026c576040518091600080516020615b6183398151915290815480845260208094019081938352600080516020615ac183398151915290835b818110610b185750505084610ad1910385612ba1565b60405193838594850191818652518092526040850193925b828110610af857505050500390f35b83516001600160a01b031685528695509381019392810192600101610ae9565b82546001600160a01b031684529286019260019283019201610abb565b5060c036600319011261026c57610b4a612aae565b906084359182151583036106ae5760a4356001600160401b039283821161026c5750610b7a903690600401612bdd565b610b82615a50565b6002600080516020615b21833981519152541461069c57602093610bb0926064359060443590600435613c9c565b6001600080516020615c218339815191525560405191168152f35b503461026c578060031936011261026c5760206002600080516020615b218339815191525414604051908152f35b503461026c578060031936011261026c57600080516020615c41833981519152546040516001600160a01b039091168152602090f35b503461026c576020806003193601126106ae576001600160a01b039060043582811691908281036107f457610c62615a17565b8215610f2e5782600052600080516020615be183398151915280835260ff91826040600020541615610f1557846000528184528260406000205460081c1615610efc5784600052818452604060002061ff001990818154169055600080516020615ba1833981519152928354858160081c16928315610ee85761ff0060001980950160081b169116178455600080516020615b418339815191528054918860005287526001600160401b03600192610d2f82858a60406000205460101c161b198316169282168310614a9f565b6001600160401b0319161790558897600080516020615b618339815191528054938b5b858110610de2575b505050505050918091610da26040969594610d957f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614a9f565b610d9d614abc565b614ba7565b5460081c16600080516020615aa18339815191529081548381168210610dd4575b50505416908351928352820152a180f35b60ff19161781553880610dc3565b838b610ded8361302f565b929054600393841b1c1614610e0b5750610e0690612de1565b610d52565b9590918093959798999a9b9c508101908111610ed45790610e3f84610e32610e5e9461302f565b905490891b1c169161302f565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015610ec057946040999794610da2948a9894610d95947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c990192610ea68461302f565b81939154921b1b1916905555998496979899839650610d5a565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b503461026c57610f4f36612c24565b9033600052600080516020615be183398151915260209080825260ff60406000205460081c161561116357600080516020615b2183398151915291600283541461069c5761ffff861680600052600080516020615a8183398151915282528460406000205403611145575060405163b3f07bbd60e01b815291818380610fd9898b600484016130ff565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561113a57889361110b575b503360005280825261101d60ff60406000205460101c1684612ff9565b6110f25760606110d193927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615ae1833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a1612f8c565b6110d9578480f35b5460021461069c576110ea92613129565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611133575b6111238183612ba1565b810103126105b157519138611000565b503d611119565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b503461026c578060031936011261026c57602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50602036600319011261026c576001600160401b036004351690816004350361026c576111e5615a50565b6002600080516020615b21833981519152541461069c5781600052600080516020615c018339815191526020526040600020916040519261122584612b1a565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a08501526040518381949060048401549361128d85613587565b808552946001811690811561141e57506001146113d9575b50506112b392500383612ba1565b60c083019182526001600160401b03606084015116156113c1576112e46001600160401b0360608501511642612f7f565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001611611396579161137391602093600052600080516020615c01833981519152845261133c60406000206135d8565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b0391015116935194600435614412565b6001600080516020615c21833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106114025750509060206112b39282010138806112a5565b60209193508060019154838589010152019101909184926113e8565b915050602092506112b394915060ff191682840152151560051b82010138806112a5565b50606036600319011261026c57611457612aae565b604435611462615a50565b6002600080516020615b21833981519152541461069c5760209181611373926040519261148e84612b50565b6001845285368186013760043561363a565b503461026c57604036600319011261026c576114ba612a9d565b6024356001600160401b038111611619576114d9903690600401612bdd565b91604051918290600080516020615b61833981519152828154918287526020809701908652600080516020615ac183398151915292865b888282106115fa5750505061152792500383612ba1565b826115518351966040519788928392635b10743960e11b8452604060048501526044840190612ae2565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156115ef5783949561158a94926115cb575b50612e24565b604051926040840160408552835180915285606086019401915b8181106115b75750505082938301520390f35b8251855293860193918601916001016115a4565b6115e89192503d8087833e6115e08183612ba1565b810190612d0f565b9038611584565b6040513d85823e3d90fd5b85546001600160a01b0316845260019586019588955093019201611510565b8280fd5b503461026c578060031936011261026c57611636614cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082169060018201918183116117465760ff8460401c16908115611739575b5061172757600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615611715577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926116f5613060565b6116fd614abc565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611680565b634e487b7160e01b600052601160045260246000fd5b503461026c57604036600319011261026c5760243560ff811681036105b157611789602091600435612ff9565b6040519015158152f35b503461026c578060031936011261026c57600080516020615b01833981519152546040516001600160a01b039091168152602090f35b503461026c57602036600319011261026c5761181e6001600160401b036020926040600080516020615b4183398151915254916004358152600080516020615ae18339815191528652205460081c16166157e1565b60ff60405191168152f35b503461026c578060031936011261026c576118426151f2565b506109ae610973614d85565b503461026c578060031936011261026c57600080516020615b0183398151915254611881906001600160a01b0316614d32565b600080516020615b21833981519152600281541461069c57600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461026c57602036600319011261026c576004356118e8615a50565b6002600080516020615b21833981519152541461069c5761190881615228565b602081016001600160401b039081815116156119ce5761192b8282511642612f7f565b827f000000000000000000000000000000000000000000000000000000000000000016116119ac578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260408086208681556001018690558301518351869161050d916001600160481b0316906001600160a01b031687614893565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b503461026c578060031936011261026c57611a00614cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611c02575b6001149081611bf8575b159081611bef575b506117275767ffffffffffffffff198116600117835581611bd0575b50611a76615962565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611ba75750611ab0615962565b611ab8615962565b611ac0615962565b6001600080516020615b2183398151915255600080516020615c4183398151915280546001600160a01b03191633179055611af9615962565b611b01615962565b611b0a336159a3565b611b12615962565b611b1a615962565b6001600080516020615c2183398151915255611b51610100600160481b0360ff611b4a611b456149cd565b615888565b1617614e2d565b611b59613060565b611b61614abc565b611b69575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611a6d565b90501538611a51565b303b159150611a49565b839150611a3f565b503461026c57608036600319011261026c57611c24612a9d565b6024356044359160ff83168093036105b15761ffff90611c42615a17565b16918215611d4d578115611d3b578015611d29577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615a81833981519152918260205260ff604060002081600160405192611caa84612b50565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611d0c611ceb611ce26149cd565b8060643561591a565b89600052600080516020615bc183398151915260205260406000209061502b565b51935116604051938452602084015260408301526060820152a280f35b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461026c578060031936011261026c5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461026c578060031936011261026c57602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b503461026c578060031936011261026c577f0000000000000000000000000000000000000000000000000000000000000000906002821015611e2f5760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b503461026c578060031936011261026c57600080516020615b0183398151915254611e76906001600160a01b0316614d32565b600080516020615b218339815191526002815403611ebf57600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b503461026c578060031936011261026c57602061181e6149cd565b503461026c57602036600319011261026c5760ff60406020926004358152600080516020615ae183398151915284522054166040519015158152f35b503461026c578060031936011261026c576040517f00000000000000000000000000000000000000000000000000000000000000006002811015611f6e57602092508152f35b634e487b7160e01b83526021600452602483fd5b503461026c578060031936011261026c5760206001600160401b03600080516020615b818339815191525416604051908152f35b503461026c576020806003193601126106ae576004356001600160a01b038116918282036107e557611fe6615a17565b8215610f2e5782600052600080516020615be18339815191529182825260ff90816040600020541660001461218a5784600052838352604060002061010061ff00198254161790555b600080516020615b6183398151915290815491600160401b8310156121745782610e3f9160016120619501905561302f565b600080516020615ba183398151915292835461ff00612084848360081c16614a8e565b60081b169061ff00191617809455600080516020615b4183398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b16821791821461215b5767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612110614abc565b84600052825280600080516020615aa183398151915280548281161561214c575b5054169260405194855260081c16908301526040820152a180f35b60ff1916600117815538612131565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615ba18339815191528281541660408110156122a257604051906121b382612b35565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff1916171717905580548361220b818316614a8e565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b821015612174576001820180825582101561228c576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b0319168617905561202f565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b503461026c57602036600319011261026c576004356001600160401b0381168091036106ae57606060c06040516122ea81612b1a565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615c0183398151915260205260406000206040519061233382612b1a565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a08301526040518381949060048401549361239b85613587565b8085529460018116908115612482575060011461243d575b50506123c192500383612ba1565b60c081019182526109ae6040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612ae2565b60049193949250018252602082205b8183106124665750509060206123c19282010138806123b3565b602091935080600191548385890101520191019091849261244c565b915050602092506123c194915060ff191682840152151560051b82010138806123b3565b503461026c57602036600319011261026c576124c0615a17565b6109246124d76124ce6149cd565b8060043561591a565b614e2d565b503461026c57604036600319011261026c576109246124f9612aae565b612501615a17565b61ffff61250f6124ce6149cd565b9116600052600080516020615bc183398151915260205260406000209061502b565b503461026c576020806003193601126106ae576001600160a01b03600435818116908181036107f457612562615a17565b61256a614cee565b3b1561293d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e918254916125f760ff841615614a9f565b60ff199283166001178455303b156107f45760405163011fa75760e71b8152858160048183305af180156128f25761292a575b5060405163689f90c360e01b81528281600481305afa9081156128f25786916128fd575b5015612686575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa9081156128f25786916128b4575b50816126d9927f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b6040516314ad290960e11b81528181600481305afa9081156107e957859161287e575b507f000000000000000000000000000000000000000000000000000000000000000090600282101561286a57600281101561286a5761273b9114614a9f565b604051634d4502c960e11b81528181600481305afa80156107e9578590612834575b612790915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b604051631d2a9eff60e21b8152908082600481305afa9081156107e95785916127f4575b506127ed91506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b3880612655565b905081813d831161282d575b61280a8183612ba1565b810103126107e557516001600160401b03811681036107e5576127ed90386127b4565b503d612800565b508181813d8311612863575b61284a8183612ba1565b810103126107f45761285e6127909161311a565b61275d565b503d612840565b634e487b7160e01b86526021600452602486fd5b90508181813d83116128ad575b6128958183612ba1565b810103126107f4575160028110156107f457386126fc565b503d61288b565b90508281813d83116128eb575b6128cb8183612ba1565b810103126128e757519080821682036128e757906126d96126a9565b8580fd5b503d6128c1565b6040513d88823e3d90fd5b61291d9150833d8511612923575b6129158183612ba1565b810190614200565b3861264e565b503d61290b565b61293690959195612b07565b933861262a565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461026c57602036600319011261026c576020611789600435612f8c565b503461026c57602036600319011261026c576004356001600160a01b0381811691829003611619576129f981600080516020615b018339815191525416614d32565b600080516020615c4183398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b503461026c57602036600319011261026c576106cd612a95612a90604060209461ffff612a6d612a9d565b612a756151f2565b50168152600080516020615bc1833981519152865220614dcd565b6152be565b6104416149cd565b6004359061ffff821682036105b157565b6024359061ffff821682036105b157565b60005b838110612ad25750506000910152565b8181015183820152602001612ac2565b90602091612afb81518092818552858086019101612abf565b601f01601f1916010190565b6001600160401b03811161217457604052565b60e081019081106001600160401b0382111761217457604052565b606081019081106001600160401b0382111761217457604052565b604081019081106001600160401b0382111761217457604052565b608081019081106001600160401b0382111761217457604052565b60a081019081106001600160401b0382111761217457604052565b90601f801991011681019081106001600160401b0382111761217457604052565b6001600160401b03811161217457601f01601f191660200190565b81601f820112156105b157803590612bf482612bc2565b92612c026040519485612ba1565b828452602083830101116105b157816000926020809301838601378301015290565b90600319906060828401126105b15760043561ffff811681036105b1579260243592604435916001600160401b03918284116105b15760609084830301126105b15760405192612c7384612b35565b806004013584526024810135602085015260448101359283116105b157612c9d9201600401612bdd565b604082015290565b6001600160401b0381116121745760051b60200190565b519060ff821682036105b157565b81601f820112156105b1578051612ce081612bc2565b92612cee6040519485612ba1565b818452602082840101116105b157612d0c9160208085019101612abf565b90565b9060209081838203126105b15782516001600160401b03938482116105b157019080601f830112156105b1578151612d4681612ca5565b94604090612d5682519788612ba1565b828752858088019360051b860101948486116105b157868101935b868510612d8357505050505050505090565b84518381116105b15782019084601f1983890301126105b157845190612da882612b50565b612db38a8401612cbc565b825285830151918583116105b157612dd2898c80969581960101612cca565b83820152815201940193612d71565b60001981146117465760010190565b805182101561228c5760209160051b010190565b9060406020612d0c9360ff81511684520151918160208201520190612ae2565b909291805191612e3383612ca5565b92604091612e4383519586612ba1565b818552601f19612e5283612ca5565b01602090368288013760009788955b848710612e7357505050505050509190565b909192939495988685612eec868d612e9260018060a01b039188612df0565b511680600052600080516020615be18339815191528252612ebd60ff866000205460101c1689612df0565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190612e04565b03915afa908115612f7457908d91600091612f42575b50612f0e81928d612df0565b528301809311612f2f575050612f249099612de1565b959493929190612e61565b601190634e487b7160e01b600052526000fd5b91508782813d8311612f6d575b612f598183612ba1565b8101031261026c5750518c90612f0e612f02565b503d612f4f565b8a513d6000823e3d90fd5b9190820391821161174657565b6001600160401b039060ff612fe581600080516020615aa18339815191525416938493600080516020615b418339815191525490600052600080516020615ae183398151915260205260406000205460081c16166157e1565b1610159081612ff2575090565b9050151590565b906001600160401b0391600052600080516020615ae1833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615b61833981519152805482101561228c57600052600080516020615ac18339815191520190600090565b60ff600080516020615aa1833981519152541660405161307f81612b50565b60ff600080516020615ba183398151915254818116835260081c168060208301528083116130ba57505160ff166130b35750565b156108e257565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612d0c9380518452602081015160208501520151918160408201520190612ae2565b60409061ffff612d0c949316815281602082015201906130d8565b519061ffff821682036105b157565b91907f000000000000000000000000000000000000000000000000000000000000000046810361344957508161315f9184613467565b9190916134445760408091015191815192635399ded560e11b8452608084806131946020948560048401526024830190612ae2565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415613439576000946133c4575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036133a95750506131fc6149cd565b8161322587519280613220816001600160401b03968760ff82169160081c166158bf565b61591a565b960151908160a01c613392576001600160a01b039182169560007f000000000000000000000000000000000000000000000000000000000000000083161561338b57506132706151f2565b508816600052600080516020615bc18339815191528452613296612a9084600020614dcd565b6132a08882615853565b81808960081c169160081c16105b6132d357505050506132c36132d194846155b1565b6132cc83615491565b614893565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f316297509561336f839596949760019394519261330e84612b35565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b03198554161784555116826157a0565b019151166001600160601b0360a01b82541617905551908152a1565b90506132ae565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d8211613431575b816133df60809383612ba1565b810103126106ae578351916133f383612b6b565b8151906001600160481b038216820361026c57508252848101518583015283810151848301526134259060600161311a565b606082015292386131bc565b3d91506133d2565b83513d6000823e3d90fd5b505050565b604490604051906377d879fb60e01b82526004820152466024820152fd5b60405163b3f07bbd60e01b81529193926020918391829161348c9190600484016130ff565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105a55760009161351d575b506134be81612f8c565b15613505576134cc8161354e565b92836134da57509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d8211613546575b8161353660209383612ba1565b8101031261026c575051386134b4565b3d9150613529565b600052600080516020615ae18339815191526020526040600020805460ff81166135805760ff19166001179055600090565b5050600190565b90600182811c921680156135b7575b60208310146135a157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613596565b8181106135cc575050565b600081556001016135c1565b6004600091828155826001820155826002820155826003820155016135fd8154613587565b8061360757505050565b82601f821160011461361857505055565b9091808252613636601f60208420940160051c8401600185016135c1565b5555565b9194939290946000958315613c8a578115613c78578215613c66577f00000000000000000000000000000000000000000000000000000000000000006136803082614a36565b906136c360018060a01b03821696604051906323b872dd60e01b60208301523360248301523060448301526064820152606481526136bd81612b86565b87614218565b6136d6826136d13084614a36565b612f7f565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613c52579060018b9214613bcb575b5050505061ffff8116600052600080516020615a8183398151915260205260ff600160406000200154168015611d295761374f6137476149cd565b91828761591a565b906001600160401b038260081c1661376c60ff84169283836158bf565b808803613ba4575061378e61379391613786611b456149cd565b9384916158bf565b615369565b98600080516020615b8183398151915254966001600160401b0380891614613b905767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615b81833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613b8a576138146151f2565b50613820612a90614d85565b61383d8c610100600160481b0360ff87169160081b161782615853565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613b64578180613b5c575b6138b957505082612d0c9899610100600160481b0360ff8461389d826138a99716848660081b16176153d1565b169160081b1617615679565b6001600160401b03339516614412565b61ffff95979896919a506001600160481b039392506138d6615211565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661392388612b1a565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615c0183398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b03198254161781556139be6001600160401b03606087015116826157a0565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613b4857613a1f8354613587565b601f8111613b0d575b50602090601f8311600114613aa157906001600160401b03959683613a96575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613a92346143bb565b1690565b015190503880613a48565b95601f19831684885260208820975b818110613af55750916001600160401b03969791846001959410613adc575b505050811b019055613a5d565b015160001960f88460031b161c19169055388080613acf565b83830151895560019098019760209384019301613ab0565b613b389084835260208320601f850160051c81019160208610613b3e575b601f0160051c01906135c1565b38613a28565b9091508190613b2b565b634e487b7160e01b81526041600452602490fd5b506000613870565b604490613b6f615211565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613865565b634e487b7160e01b82526011600452602482fd5b87613bb160449282612f7f565b604051916338f831a560e11b835260048301526024820152fd5b803b156106ae578190602460405180948193630852cd8d60e31b83528c60048401525af18015613c4757613c32575b50613c06903090614a36565b808203613c1457888161370c565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613c40613c06929a612b07565b9890613bfa565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613c8a578215613c78578315613c66577f0000000000000000000000000000000000000000000000000000000000000000613ce13082614a36565b90613d2460018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613d1e81612b86565b8b614218565b613d32826136d13084614a36565b997f000000000000000000000000000000000000000000000000000000000000000060028110156141ec57600114614182575b50505061ffff8216600052600080516020615a8183398151915260205260ff600160406000200154168015611d2957613da7613d9f6149cd565b91828b61591a565b916001600160401b038360081c16613dc460ff85169384836158bf565b808c03614175575061378e613de691613dde611b456149cd565b9485916158bf565b99600080516020615b8183398151915254976001600160401b03808a16146141615767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615b81833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561415b57613e676151f2565b508b6001600160401b0380613e7d612a90614d85565b9260081b610100600160481b031660ff881617613e9a8185615853565b60081c169160081c16105b811580614154575b6141495781614141575b50613ee857505082612d0c9899610100600160481b0360ff6138a994169160081b1617613ee3816153d1565b615679565b61ffff95979896919a506001600160481b03939250613f05615211565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613f5288612b1a565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615c0183398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613fed6001600160401b03606087015116826157a0565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613b485761404e8354613587565b601f8111614111575b50602090601f83116001146140bf57906001600160401b03959683613a965750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613a92346143bb565b95601f19831684885260208820975b8181106140f95750916001600160401b03969791846001959410613adc57505050811b019055613a5d565b838301518955600190980197602093840193016140ce565b61413b9084835260208320601f850160051c81019160208610613b3e57601f0160051c01906135c1565b38614057565b905038613eb7565b604483613b6f615211565b5080613ead565b82613ea5565b634e487b7160e01b83526011600452602483fd5b8b613bb160449282612f7f565b803b156107e55783809160248d6040519485938492630852cd8d60e31b845260048401525af180156141e1576141cc575b506141bf903090614a36565b808203613c145780613d65565b926141da6141bf9294612b07565b92906141b3565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105b1575180151581036105b15790565b604051614276916001600160a01b031661423182612b50565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16142706142f2565b91614322565b8051908161428357505050565b8280614293938301019101614200565b1561429b5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d1561431d573d9061430382612bc2565b916143116040519384612ba1565b82523d6000602084013e565b606090565b919290156143845750815115614336575090565b3b1561433f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156143975750805190602001fd5b60405162461bcd60e51b815260206004820152908190610611906024830190612ae2565b600080808084335af16143cc6142f2565b50156143d55750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105b15781516001600160401b0381116105b157612d0c9201612cca565b959492949391936040518081600080516020615b6183398151915260208154938481520190600052600080516020615ac18339815191529260005b81811061487157505061446292500382612ba1565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978549181511561485f576144b56000916040519485928392635b10743960e11b8452604060048501526044840190612ae2565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105a557600092614842575b506144ef818388612e24565b95863410614823576145018734612f7f565b80614814575b506040519061451582612b6b565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105a557614614926000928d9284926147f8575b506001600160401b03604051936145dd85612b35565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b83526020600484015260248301906130d8565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105a5576000916147d5575b5061ffff8816600052600080516020615a818339815191526020526040600020549383519385156147b95760005b8581106146dd5750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff926146ae60c0966104416149cd565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b036146ef8284612df0565b5116906146fc8187612df0565b5182600052600080516020615be183398151915260205261472860ff60406000205460101c1686612df0565b51833b156105b15761476e9361ffff8f936000948f8e906147808d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190612e04565b85810360031901604487015290612ae2565b916064840152608483015203925af19182156105a5576147a5926147aa575b50612de1565b61466a565b6147b390612b07565b3861479f565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b6147f291503d806000833e6147ea8183612ba1565b8101906143ed565b3861463c565b61480d9192503d8086833e6147ea8183612ba1565b90386145c7565b61481d906143bb565b38614507565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b6148589192503d806000833e6115e08183612ba1565b90386144e3565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b031683526001948501948694506020909301920161444d565b92916148a1906104416149cd565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f0000000000000000000000000000000000000000000000000000000000000000936002851015611e2f5784614936575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506132d1906104de81606481016104d0565b9193600181036105b657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15611619576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af19081156149c157506149b85750565b6132d190612b07565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b8252600481526149ef81612b50565b51907f00000000000000000000000000000000000000000000000000000000000000005afa50614a1d6142f2565b6020818051810103126105b1576020612d0c9101612cbc565b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614a6d81612b35565b51915afa50614a7a6142f2565b6020818051810103126105b1576020015190565b60ff1660ff81146117465760010190565b15614aa657565b634e487b7160e01b600052600160045260246000fd5b600080516020615ba18339815191525460ff8160081c16614aed600080516020615b61833981519152548214614a9f565b60005b818110614b7b575060005b818110614b14575050604060ff6132d192161115614a9f565b60018101808211611746575b828110614b365750614b3190612de1565b614afb565b614b7690614b71614b468461302f565b905490614b528461302f565b92909160018060a01b03809354600395861b1c16931b1c161415614a9f565b612de1565b614b20565b80614b71614b8b614ba29361302f565b905460039190911b1c6001600160a01b0316614ba7565b614af0565b6001600160a01b039081166000818152600080516020615be18339815191526020526040908190209051929190614bdd84612b35565b5460ff91614c19838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614cd4575b5050614a9f565b600080516020615b4183398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615ba18339815191525497878960081c16935b848110614c96575b5050505050816132d196614c84869594614c8c9414614a9f565b151514614a9f565b5116911611614a9f565b8282614ca18361302f565b90549060031b1c1614614cbc57614cb790612de1565b614c62565b50919850849250839150614c849050826132d1614c6a565b90915081614ce5575b503880614c12565b90501538614cdd565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614d2057565b604051633c64f99360e21b8152600490fd5b600080516020615c4183398151915254336001600160a01b039182161415919082614d78575b5050614d6057565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880614d58565b60405190614d9282612b35565b8160406001600160401b03600080516020615c61833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b90604051614dda81612b35565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615c618339815191529081546001600160481b03908181166001600160401b036008918184841c16801580615020575b15614ed1575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b86614edd612a90614d85565b926000614eea8383615831565b15614fb65750614f099291614efe91615853565b8388861c16906157c8565b610100600160481b039290841b831660ff861617614f278184615831565b15614fa8578160ff9282614f3e614f4b9487615853565b871c169084871c166157c8565b9116921b16175b614f5c8482615831565b614f8657600160481b600160901b039060481b1690600160481b600160901b031916178355614e99565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff915016614f52565b9493959290614fc890614fd293615853565b8389841c166157c8565b9260ff881694838087610100600160481b038098871b1617614ff48185615853565b851c1691841c160192831161500c57501b1617614f52565b634e487b7160e01b81526011600452602490fd5b5060ff851615614e63565b919080546001600160481b03808216916001600160401b03926008908483831c168015806151e7575b156150ba57505050508461506c6132d1959685614e07565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b8590896150c9612a908a614dcd565b9360006150d68383615831565b156151915750916150ee6150f99260ff979894615853565b838c881c16906157c8565b610100600160481b039490861b85169116176151158184615831565b156151835760ff918161512b6151389386615853565b861c168784871c166157c8565b9116921b16175b6151498682615831565b615161579461515c6132d1959685614e07565b61506c565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff91501661513f565b9496506151ac93506151a291615853565b868a851c166157c8565b9160ff891693868086610100600160481b038097861b16176151ce8185615853565b841c1691831c16019186831161500c57501b161761513f565b5060ff841615615054565b604051906151ff82612b35565b60006040838281528260208201520152565b6152196151f2565b50612d0c612a95612a90614d85565b6152306151f2565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260406000206040519061526a82612b35565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b81156152a8570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156153525761533f828260ff936040610100600160481b0396015116420381615323602085019889519383875160081c160261529e565b9160081c1601915160081c1680821060001461534b5750615369565b9251169160081b161790565b9050615369565b506020015160ff16610100600160481b0317919050565b6001600160401b039081811161537d571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561548d5761540a6151f2565b50600160481b600160901b03615421612a90614d85565b610100600160481b0360ff61545c600080516020615c61833981519152968088549761544d8188615853565b60081c16908560081c166157c8565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561548d576154ca6151f2565b506154d6612a90614d85565b90600160481b600160901b03600080516020615c6183398151915293845493816001600160401b0360901b4260901b16946155118184615853565b60081c16828260081c160182811160001461559d5750610100600160481b0360ff61553b84615369565b92169160081b1617906001600160481b038516906155598284615853565b80856001600160401b0360901b1988161760081c16908360081c161060001461559657505b60481b1691600160481b600160d01b03191617179055565b905061557e565b60ff61553b610100600160481b0392615369565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561344457610100600160481b0360ff61566b61ffff6132d1966155fe6151f2565b50169384600052600080516020615bc183398151915280602052615628612a906040600020614dcd565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b1617815595819061544d8188615853565b92169160081b161790614e07565b6001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016156134445761ffff6132d1936156b86151f2565b5016600090808252600080516020615bc1833981519152806020526156e2612a9060408520614dcd565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b1617815593839061571f8184615853565b60081c16838260081c160183811160001461578c5750610100600160481b0360ff61574985615369565b92169160081b1617918084546001600160481b0381169361576a8587615853565b5060081c16908360081c1610600014615784575090614e07565b905090614e07565b60ff615749610100600160481b0392615369565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b6001600160401b03918216908216039190821161174657565b60009182915b6001600160401b03908181168015615829576000190191821161581557169161580f90614a8e565b916157e7565b634e487b7160e01b85526011600452602485fd5b505050915090565b9061583c8183615853565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615865575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612d0c5750600890565b9060ff8091169116039060ff821161174657565b60ff16604d811161174657600a0a90565b919060ff821660ff82168181146159135711156158f2576158e7612d0c93926158ec9261589a565b6158ae565b9061529e565b6158e7906158ff9261589a565b908181029181830414901517156117465790565b5050505090565b61594d61378e60ff92610100600160481b03949561593787615888565b90858116868316101561595857509586916158bf565b92169160081b161790565b90509586916158bf565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561599157565b604051631afcd79f60e31b8152600490fd5b6001600160a01b039081169081156159fe57600080516020615b0183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615b01833981519152546001600160a01b03163303615a3857565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615c218339815191526002815414615a6e5760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a2646970667358221220ff24bb6218d11a60fad2e17b2c54e55dfe3f8155f61d7f10dfd1f2886b23efbc64736f6c63430008130033",iqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Cl;let sqe=(Cl=class extends V1{constructor(...e){if(iqe(e))super(...e);else{const[n,r]=e;super(q9,Cl.linkBytecode(n),r)}}static linkBytecode(e){let n=dK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(q9)}static connect(e,n){return new Js(e,q9,n)}},ce(Cl,"bytecode",dK),ce(Cl,"abi",q9),Cl);const G9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],hK="0x6101c06040818152346200031d5760c082620036f8803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a094855251946133869687620003728839608051876130f1015260a051878181610dc201528181611503015281816118860152818161200b015281816121ba015281816128960152612a9a015260c051878181610e4d01528181611c490152818161220c015281816126430152612d32015260e05187610cca01525186818161076301528181610f000152818161122a01528181611bb401528181611da701526123510152518581816101fd01528181610bbe01528181610f2b0152818161125601528181611b5c01528181611dd40152818161225c01528181612db801528181612e980152612f3601525184818161079c015281816115ec01528181611a00015281816122ac0152612c7b015251838181610a1e01528181611bf2015281816122fc0152612d6f015251826102410152518181816106a1015281816119cb0152612c500152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af14612561575080630900f0101461203a5780630b4a1e891461139157806324fb21db14611ff6578063320d0d8e14611fb357806348b330d614611f6d5780634b5b0505146117f55780634b795b2114611754578063529dca321461154a57806358f709ba146114db578063657b3b2f1461143a57806366152efc146113d9578063689f90c314611396578063694977d7146113915780637ab564031461113157806380eb3239146110f55780638129fc1c14610c3657806381e8ec7f14610bed57806384acd1bb14610ba95780638da5cb5b14610b735780638fd3ab8014610a4d57806390ea542814610a09578063935dec07146109c757806396dddc63146109125780639fd0506d146108ca578063b187bd2614610889578063b5634c731461083c578063bc7f6d37146107f9578063d8d28418146107cb578063da25b72514610787578063e8dfd50814610749578063f2fde38b14610714578063f48066a8146106c8578063f68016b7146106895763f953cec7146101a457600080fd5b346106855760209081600319360112610681578035906001600160401b038581841161067e576101da6101f99436908501612754565b86518095819263607ec5ef60e11b83528887840152602483019061283d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156106745786938790889261046f575b501561044c57507f000000000000000000000000000000000000000000000000000000000000000046810361043057506060830161ffff918282511660005260008051602061327183398151915286528660002054608086019081518091036103ff575061014086016102c7815160005260008051602061329183398151915260205260ff6040600020541690565b6103e657927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103286103799d9b516000526000805160206132918339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a15116940151906103576128f9565b5061036061291f565b508651630453806b60e11b815293849283928301612a78565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103dc576103b39450859186946103b6575b50815191015191612a97565b80f35b9093506103d591503d8087833e6103cd8183612718565b8101906129fa565b92386103a7565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b815280840186905290819061042c90602483019061283d565b945050503d8087853e6104828185612718565b830160609081858203126106705784518381116105f45785016101609283828403126105f85788519384018481108682111761065b5789526104c382613009565b84526104d0888301613017565b888501526104df898301613017565b898501528082015161ffff8116810361065757818501526080808301518186015261050c60a08401612fa1565b60a086015261051d60c08401613009565b60c086015260e0830151868111610653578461053a918501612977565b60e086015261010061054d818501613017565b90860152610120908184015187811161064f57840185601f8201121561064f5780518c9461058661057d83612803565b96519687612718565b8186528c8087019260071b8401019288841161064b578d01915b8383106105fc57505050505084015261014080910151908301526105c5868601613028565b9487810151908482116105f857019080601f830112156105f45781516105ec928801612940565b909338610238565b8880fd5b8980fd5b84838a031261064b578d8f918287935190610616826126e2565b86518252838701518483015261062d818801613009565b9082015261063c858701613009565b858201528152019201916105a0565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106c457816003193601126106c457602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106c45760203660031901126106c45760209061ffff6106e9612672565b166000526000805160206132b1833981519152825261070b81600020546130ad565b90519015158152f35b8382346106c45760203660031901126106c457356001600160a01b03811681036106c4576103b3906107446131c1565b613190565b5050346106c457816003193601126106c4576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4576020906107e8612881565b90516001600160a01b039091168152f35b5050346106c45760203660031901126106c45760209061ffff61081a612672565b16600052600080516020613251833981519152825261070b81600020546130ad565b5034610685578160031936011261068557610855612672565b92602435906001600160401b03821161067e57509261087c6108829260209536910161279b565b90612bda565b9051908152f35b5050346106c457816003193601126106c45760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106c457816003193601126106c4577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106c457826003193601126106c45761092d612672565b6109356127f4565b9161093e6131c1565b61ffff82169081156109b957507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c93946109b39161097b856130df565b906000526000805160206132b18339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106c45760203660031901126106c45760209061ffff6109e8612672565b16600052600080516020613271833981519152825280600020549051908152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610685578260031936011261068557610a676130ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610b605760ff84871c16908115610b53575b50610b4357169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b35575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610aaf565b634e487b7160e01b885260118752602488fd5b5050346106c457816003193601126106c4576000805160206132f18339815191525490516001600160a01b039091168152602090f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4578051610c3291610c0e826126fd565b60058252640302e312e360dc1b60208301525191829160208352602083019061283d565b0390f35b5034610685578260031936011261068557610c4f6130ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b0393848116801590816110ed575b60011490816110e3575b1590816110da575b506110cb5767ffffffffffffffff1981166001178655826110ac575b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116338190036110905750610cfc61314f565b610d0461314f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610db0610d33612881565b610d3b61314f565b610d4361314f565b610d4b61314f565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610da861314f565b61074461314f565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa918215611086578a9261104f575b508651631dcbf42b60e11b81529188838781855afa928315611045578b9361100e575b5087519360a085019081118582101761065b578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110045791610f27939187938a91610fe2575b508987518096819582946358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b03927f0000000000000000000000000000000000000000000000000000000000000000165af18015610fd857610fa0575b50610f61578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311610fd1575b610fb58183612718565b81010312610fcd57610fc690612fa1565b5038610f58565b8580fd5b503d610fab565b83513d88823e3d90fd5b610ffe91503d808c833e610ff68183612718565b810190613035565b38610eea565b85513d8a823e3d90fd5b9092508881813d831161103e575b6110268183612718565b810103126106575761103790613009565b9138610e1b565b503d61101c565b88513d8d823e3d90fd5b9091508781813d831161107f575b6110678183612718565b810103126105f85761107890613009565b9038610df8565b503d61105d565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610cbf565b50825163f92ee8a960e01b8152fd5b90501538610ca3565b303b159150610c9b565b849150610c91565b50913461067e57602036600319011261067e575061070b6020923560005260008051602061329183398151915260205260ff6040600020541690565b503461068557816003193601126106855761114a612672565b602435916111566131c1565b61ffff80831690811561138157841561137157816000526000805160206132718339815191529160209280845287600020548061134857508160005283528587600020558651916111a6836126c7565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561133e576112519383928991611324575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b0381897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610674576112c8575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669080604081016109b3565b81813d831161131d575b6112dc8183612718565b81010312611319577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466936113126109b392612fa1565b509361128b565b8480fd5b503d6112d2565b61133891503d808b833e610ff68183612718565b38611216565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b61262d565b5050346106c457816003193601126106c45760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b50913461067e57602036600319011261067e57508051916113f9836126ac565b35908115159182810361143557610c32935280519160f81b602083015260018252611423826126fd565b5191829160208352602083019061283d565b600080fd5b508290346106c457826003193601126106c457611455612672565b61145d6127f4565b916114666131c1565b61ffff82169081156109b957507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c393946109b3916114a3856130df565b906000526000805160206132d18339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610685576020366003190112610685578035916001600160a01b038084168403611319577f000000000000000000000000000000000000000000000000000000000000000016330361153357836103b3846131fa565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610685576001600160401b038135818111611319576115759036908401612754565b602492833593838511611750573660238601121561175057848201359361159b85612803565b946115a888519687612718565b808652602096838888019260051b8201019236841161065757848201925b84841061172a5750505050506044356064359461ffff86169081870361143557608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361171757826000526000805160206132718339815191528952838a60002054036116f057848b52600080516020613291833981519152895260ff8a8c2054166116dc5750611685846000526000805160206132918339815191526020526040600020600160ff19825416179055565b516116cc57606061037995938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a16103576128f9565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161064f578a916117458392893691880101612754565b8152019301926115c6565b8680fd5b508290346106c457826003193601126106c45761176f612672565b6117776127f4565b916117806131c1565b61ffff82169081156109b957507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c93946109b3916117bd856130df565b906000526000805160206132518339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a0368201126106815761180c612672565b9060249283356001600160401b03908181116106705761182f903690880161279b565b906044358181116105f4576118479036908901612754565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611f5e57600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f4857908b61190181936119108a519b6118c38d6126ac565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a486019061283d565b9184830301608485015261283d565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f3e5782988395611eec575b50611948602080980151612b5f565b80511580611edd575b15611b34575050928a928592838989976119c361ffff8f16968792836000526000805160206132718339815191528c526119976119918660002054612fdd565b9b612fdd565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e487019061283d565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b2a57611ab9575b5061ffff926060611a9e84611ab2946000805160206133318339815191528460019c6000805160206133118339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c086019061283d565b910151838203603f190160a085015261283d565b0390a15580f35b9391928185813d8311611b23575b611ad18183612718565b81010312610670576060611a9e61ffff95611ab2946000805160206133318339815191528460019c611b116000805160206133118339815191529c612fa1565b509c5050509450949650505092611a2d565b503d611ac7565b83513d8a823e3d90fd5b919394959250959697989a50511580611eb1575b15611d87578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611d7c57908993929197611d49575b50869291611bdc918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fb5565b03925af1948515611d3f578c95611d08575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611cf45790818d9796959493923b15610670578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611cea57611cd2575b50600080516020613311833981519152936060611a9e856001999560008051602061333183398151915284611ab29761ffff9a51908e8252848201523485820152a1611a71565b611cde90969296612683565b610fcd57938538611c8b565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d38575b611d208183612718565b8101031261065357611d3190612fa1565b9338611bee565b503d611d16565b88513d8e823e3d90fd5b9196509181813d8111611d75575b611d618183612718565b810103126114355751948791611bdc611b98565b503d611d57565b8a51903d90823e3d90fd5b9050611dce9350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611ea757611e49575b5091611ab26001956060611a9e8560008051602061331183398151915297600080516020613331833981519152848d61ffff9a519060028252848201523485820152a1611a71565b9181838195933d8311611ea0575b611e618183612718565b81010312611750576001956060611a9e611ab29360008051602061331183398151915297611e9161ffff98612fa1565b50959750955050509550611e01565b503d611e57565b83513d89823e3d90fd5b5061ffff8a166000526000805160206132518339815191528652611ed887600020546130ad565b611b48565b50611ee78b61305a565b611951565b985093503d80838a3e611eff818a612718565b88019787818a03126106855780518581116106815789611f20918301612991565b98602082015186811161131957611f379201612977565b9338611939565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b50913461067e57602036600319011261067e578235906001600160401b03821161067e5750611fa4602093611fa992369101612754565b612b5f565b9051905115158152f35b5050346106c45760203660031901126106c45760209061ffff611fd4612672565b166000526000805160206132d1833981519152825261070b81600020546130ad565b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5090346106855760209182600319360112610681576001600160a01b03918135838116908181036117505761206d6131c1565b6120756130ee565b3b15612508577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9384549361210260ff861615613132565b60ff199485166001178655303b1561175057825163011fa75760e71b81528781868183305af180156123fc576124f5575b50825163689f90c360e01b815282818681305afa9081156123fc5788916124c0575b501561218f575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa9081156123fc57906121e19189916124a3575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b8251630b4a1e8960e01b815282818681305afa9081156123fc5790612233918991612476575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b82516384acd1bb60e01b815282818681305afa80156123fc57889061243e575b612283915082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b825163da25b72560e01b815282818681305afa80156123fc578890612406575b6122d3915082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b825163121d4a8560e31b815282818681305afa9081156123fc5788916123c2575b5081612324927f000000000000000000000000000000000000000000000000000000000000000016911614613132565b8082518094631d1bfaa160e31b825281305afa9182156123b957508591612382575b50612379915060ff807f000000000000000000000000000000000000000000000000000000000000000016911614613132565b3880808061215c565b905081813d83116123b2575b6123988183612718565b81010312610681576123ac61237991613009565b38612346565b503d61238e565b513d87823e3d90fd5b90508281813d83116123f5575b6123d98183612718565b81010312610670575190808216820361067057906123246122f4565b503d6123cf565b84513d8a823e3d90fd5b508281813d8311612437575b61241c8183612718565b8101031261067057518181168103610670576122d3906122a3565b503d612412565b508281813d831161246f575b6124548183612718565b81010312610670575181811681036106705761228390612253565b503d61244a565b6124969150843d861161249c575b61248e8183612718565b810190612862565b38612207565b503d612484565b6124ba9150843d861161249c5761248e8183612718565b386121b5565b90508281813d83116124ee575b6124d78183612718565b81010312610670576124e890613028565b38612155565b503d6124cd565b61250190979197612683565b9538612133565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106855760203660031901126106855781356001600160a01b03818116939184900361131957806000805160206132f18339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124992835492831694338614159081612622575b5061260d5750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b9050331415886125d1565b34611435576000366003190112611435576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361143557565b6001600160401b03811161269657604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761269657604052565b606081019081106001600160401b0382111761269657604052565b608081019081106001600160401b0382111761269657604052565b604081019081106001600160401b0382111761269657604052565b90601f801991011681019081106001600160401b0382111761269657604052565b6001600160401b03811161269657601f01601f191660200190565b81601f820112156114355780359061276b82612739565b926127796040519485612718565b8284526020838301011161143557816000926020809301838601378301015290565b9190916040818403126114355760408051916001600160401b0391830182811184821017612696576040528294813560ff811681036114355784526020820135928311611435576020926127ef9201612754565b910152565b60243590811515820361143557565b6001600160401b0381116126965760051b60200190565b60005b83811061282d5750506000910152565b818101518382015260200161281d565b906020916128568151809281855285808601910161281a565b601f01601f1916010190565b9081602091031261143557516001600160a01b03811681036114355790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128ed576000916128d2575090565b6128ea915060203d811161249c5761248e8183612718565b90565b6040513d6000823e3d90fd5b60405190612906826126e2565b6060808360008152600060208201528160408201520152565b6040519061292c826126c7565b606060408360008152600060208201520152565b9092919261294d81612739565b9161295b6040519384612718565b82948284528282011161143557602061297593019061281a565b565b9080601f830112156114355781516128ea92602001612940565b919060808382031261143557604051906129aa826126e2565b819380518352602081015160208401526040810151916001600160401b039283811161143557816129dc918401612977565b60408501526060820151928311611435576060926127ef9201612977565b9190604083820312611435578251906001600160401b03918281116114355781612a25918601612991565b936020810151908382116114355701906060828203126114355760405192612a4c846126c7565b8251845260208301516020850152604083015190811161143557612a709201612977565b604082015290565b6309945ff160e41b81526040602082018190526128ea9291019061283d565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b415750803b156114355761ffff60008094612b27604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c483019061283d565b03925af180156128ed57612b385750565b61297590612683565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612b6d836126ac565b6000835282815115612bd55750600181015160fe8116612bb95760ff16151583525160018103612b9a5750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612be9602080920151612b5f565b51612f205761ffff8216906000908282526000805160206132d18339815191528152604093612c1a858420546130ad565b80612ef9575b612ee157612c2d9061305a565b15612cf45750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612cea578193612cb9575b50505090565b9091809350813d8311612ce3575b612cd18183612718565b8101031261067e575051388080612cb3565b503d612cc7565b51903d90823e3d90fd5b8282939492526000805160206132518339815191528152612d17828420546130ad565b15612e7f57815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612e72578495612e43575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e3a57508392612e0c575b50508201809211612df8575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e33575b612e238183612718565b810103126106c457513880612de9565b503d612e19565b513d85823e3d90fd5b9094508181813d8311612e6b575b612e5b8183612718565b8101031261068157519381612da0565b503d612e51565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612ed657508193612cb95750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132b18339815191528252612f1a858420546130ad565b15612c20565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128ed57600091612f75575b50905090565b82813d8311612f9a575b612f898183612718565b8101031261067e5750518038612f6f565b503d612f7f565b51906001600160401b038216820361143557565b9060ff612fd66040929594956000855260606020860152606085019061283d565b9416910152565b8060a01c612ff1576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361143557565b519063ffffffff8216820361143557565b5190811515820361143557565b906020828203126114355781516001600160401b038111611435576128ea9201612977565b61ffff16806000526000805160206132d18339815191526020526130826040600020546130ad565b908161308c575090565b90506000526000805160206132b18339815191526020526128ea6040600020545b80156130d957600181146130d3576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b156130e957600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461312057565b604051633c64f99360e21b8152600490fd5b1561313957565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561317e57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b038116156131a857612975906131fa565b604051631e4fbdf760e01b815260006004820152602490fd5b6000805160206132f1833981519152546001600160a01b031633036131e257565b60405163118cdaa760e01b8152336004820152602490fd5b6000805160206132f183398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea264697066735822122034563781985a1b9124e36fffc44a6c32ed3932670b1c579b553016e6928c9abb64736f6c63430008130033",aqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Tl;let oqe=(Tl=class extends V1{constructor(...e){if(aqe(e))super(...e);else{const[n,r]=e;super(G9,Tl.linkBytecode(n),r)}}static linkBytecode(e){let n=hK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(G9)}static connect(e,n){return new Js(e,G9,n)}},ce(Tl,"bytecode",hK),ce(Tl,"abi",G9),Tl);const V9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceiverInfo",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct TransceiverRegistry.TransceiverInfo[]",components:[{name:"registered",type:"bool",internalType:"bool"},{name:"enabled",type:"bool",internalType:"bool"},{name:"index",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerSameChainId",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"StaticcallFailed",inputs:[]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedMsgValue",inputs:[]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],pK="0x61016034620005cb57601f620065cb38819003918201601f19168301916001600160401b038311848410176200057e5780849260a094604052833981010312620005cb578051906001600160a01b0382168203620005cb576020810151916002831015620005cb5760408201519161ffff83168303620005cb576060810151906001600160401b03821690818303620005cb576080015180159182158203620005cb5715809281620005c2575b508215620005a6575b505062000594576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005d0565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003f157505060005b60ff8260081c1681106200035d5750604060ff6200016d92161115620005d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c166200034b576002600160401b03196001600160401b03821601620002ff575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615f7d93846200064e85396080518481816114d401528181611b1401528181611fb1015281816129fc01528181613447015281816139cf0152818161404b015281816155690152818161567c0152818161573c0152818161585b0152615923015260a05184614faf015260c0518481816102900152818161051401528181610561015281816128e80152818161383f01528181613ec90152818161478701528181614bc60152614c76015260e05184611c590152518381816104ab0152818161202a0152818161217001528181612936015281816138c101528181613f460152614b4e01525182818161137c01528181611e500152818161299f01526133d101525181818161044901528181613abb01528181614113015281816146580152614b000152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003db575b60ff8360081c1681106200038a57506200038490620005ee565b6200014c565b620003d590620003cf6200039e84620005fe565b9054620003ab84620005fe565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005d0565b620005ee565b6200036a565b634e487b7160e01b600052601160045260246000fd5b620003fc81620005fe565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200057e5760608401604052546200049e60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a01529262000561575b5050620005d0565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c1681106200050f575b5050508262000509959492620004ee620003cf95620004f79414620005d0565b151514620005d0565b60ff60408188169201511610620005d0565b62000139565b6200051a81620005fe565b9054600391821b1c6001600160a01b039081169184901b85901c16146200054c576200054690620005ee565b620004bf565b5060019350849150829050620004ee620004ce565b9091508162000574575b50388062000496565b905015386200056b565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b15915081620005b9575b503880620000b5565b905038620005b0565b925038620000ac565b600080fd5b15620005d857565b634e487b7160e01b600052600160045260246000fd5b6000198114620003db5760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006375760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612c79578063036de8af14612bee5780630677df5414612bcf5780630900f01014612768578063186ce6121461271357806319017175146126dd5780631f97c9a8146124eb578063203e4a9b146121e857806323d75e31146121b4578063295a52121461215a578063396c16b71461211e5780633b97e856146121035780633f4ba83a146120755780634b4fd03b14612017578063689f90c314611fd557806374aa7bfc14611f915780637c91863414611e025780638129fc1c14611bcd5780638413bcba14611ab15780638456cb5914611a3457806386e11ffa14611a0f57806389c619dd146119af5780638da5cb5b146119795780638e3ba8c9146119425780638fd3ab80146118035780639057412d14611686578063961b94d01461162857806397c35146146113a05780639a8a0592146113615780639d782454146111265780639f86029c14610e105780639fd0506d14610dda578063b150fc5514610c2d578063b187bd2614610bff578063b293f97f14610b69578063b4d591bb14610aa8578063c0b07bde14610a62578063c128d170146109e6578063d788c1471461095b578063da4856a114610928578063e5a986031461087c578063e75235b81461084e578063f2fde38b14610709578063f5cfec18146106e6578063f7514fbc146102bf578063fc0c546a1461027a5763fd96063c1461022257600080fd5b346102775760203660031901126102775760606102406004356154c7565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b50346102775780600319360112610277576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610277576020366003190112610277576004356001600160401b03811681036106e2576102ec615d17565b6002600080516020615de883398151915254146106d0576001600160401b038116600052600080516020615ec883398151915260205260406000206040519061033482612d49565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039b8461376f565b80845293600181169081156106ae575060011461066a575b506103c092500382612dd0565b60c08201526001600160401b03606082015116156106495760a08101516001600160a01b031633810361061c5750606061048c60407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615ec8833981519152602052610442826000206137c0565b015161046d7f0000000000000000000000000000000000000000000000000000000000000000615a67565b610475614c50565b906001600160401b0360ff82169160081c16615b86565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156106065780610556575060405163a9059cbb60e01b602082015233602482015260448101919091526105419061051281606481015b03601f198101835282612dd0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614452565b6001600080516020615ee88339815191525580f35b600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105e5576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105d9576105ca575b50610541565b6105d390612d36565b386105c4565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b8183106106925750509060206103c092820101386103b3565b6020919350806001915483858801015201910190918392610679565b9050602092506103c094915060ff191682840152151560051b820101386103b3565b6040516309e3d0f360e11b8152600490fd5b5080fd5b503461027757806003193601126102775760206107016154b0565b604051908152f35b5034610277576020366003190112610277576001600160a01b03600435818116908181036108195761074a9061073d615cde565b610745615cde565b615c6a565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615e688339815191525416808203610830575050908391825b845481101561082c578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b1561082857848091602460405180948193632c7b84dd60e11b83528960048401525af190811561081d578591610805575b505061080090613010565b61078f565b61080e90612d36565b6108195783386107f5565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b5034610277578060031936011261027757602060ff600080516020615d688339815191525416604051908152f35b50346102775760203660031901126102775760043560ff8116908181036105e5576108a5615cde565b8115610916577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a99161091060ff92600080516020615d68833981519152805493851985161790556108f461328f565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b50346102775761093736612e53565b906002600080516020615de883398151915254146106d05761095892613358565b80f35b50346102775760203660031901126102775761ffff610978612ccc565b610980614d5b565b5016600052600080516020615e888339815191526020526109e26109a7604060002061508b565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b50346102775760203660031901126102775761ffff90610a04612ccc565b906020604051610a1381612d7f565b828152015216600052600080516020615d4883398151915260205260408060002060ff8251610a4181612d7f565b60208260018554958685520154169101908152835192835251166020820152f35b50346102775780600319360112610277576109e2604051610a8281612d7f565b60058152640312e302e360dc1b6020820152604051918291602083526020830190612d11565b50346102775780600319360112610277576040518091600080516020615e2883398151915290815480845260208094019081938352600080516020615d8883398151915290835b818110610b4c5750505084610b05910385612dd0565b60405193838594850191818652518092526040850193925b828110610b2c57505050500390f35b83516001600160a01b031685528695509381019392810192600101610b1d565b82546001600160a01b031684529286019260019283019201610aef565b5060c036600319011261027757610b7e612cdd565b906084359182151583036106e25760a4356001600160401b03928382116102775750610bae903690600401612e0c565b610bb6615d17565b6002600080516020615de883398151915254146106d057602093610be4926064359060443590600435613ead565b6001600080516020615ee88339815191525560405191168152f35b503461027757806003193601126102775760206002600080516020615de88339815191525414604051908152f35b503461027757806003193601126102775760405180600080516020615e2883398151915280548084526020809401918552600080516020615d8883398151915290855b818110610dbd5750505081610c86910382612dd0565b8051610c9181612ed4565b91610c9f6040519384612dd0565b818352601f19610cae83612ed4565b01855b818110610da1575050845b828110610d1d575050506040519180830190808452825180925280604085019301945b828110610cec5784840385f35b85518051151585528083015115158584015260409081015160ff169085015294810194606090930192600101610cdf565b929492610d99906001600160a01b03610d36828561301f565b5116600052600080516020615ea88339815191528652604060002060405190610d5e82612d64565b5460ff9081811615158352818160081c1615158984015260101c166040820152610d88828961301f565b52610d93818861301f565b50613010565b949294610cbc565b8590610dae979597614d5b565b82828a01015201959395610cb1565b82546001600160a01b031684529285019260019283019201610c70565b5034610277578060031936011261027757600080516020615f08833981519152546040516001600160a01b039091168152602090f35b5034610277576020806003193601126106e2576001600160a01b0390600435828116919082810361082857610e43615cde565b82156111145782600052600080516020615ea883398151915280835260ff918260406000205416156110fb57846000528184528260406000205460081c16156110e25784600052818452604060002061ff001990818154169055600080516020615e68833981519152928354858160081c169283156110ce5761ff0060001980950160081b169116178455600080516020615e088339815191528054918860005287526001600160401b03600192610f1082858a60406000205460101c161b198316169282168310614d3e565b6001600160401b0319161790558897600080516020615e288339815191528054938b5b858110610fc8575b505050505050918091610f836040969594610f767f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614d3e565b610f7e614d7a565b614e65565b5460081c16600080516020615d688339815191529081548381168210610fba575b50505416908351928352820152a161095861328f565b60ff19161781553880610fa4565b838b610fd38361325e565b929054600393841b1c1614610ff15750610fec90613010565b610f33565b9590918093959798999a9b9c5081019081116110ba5790611025846110186110449461325e565b905490891b1c169161325e565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156110a657946040999794610f83948a9894610f76947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c99019261108c8461325e565b81939154921b1b1916905555998496979899839650610f3b565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b50346102775761113536612e53565b9033600052600080516020615ea883398151915260209080825260ff60406000205460081c161561134957600080516020615de88339815191529160028354146106d05761ffff861680600052600080516020615d488339815191528252846040600020540361132b575060405163b3f07bbd60e01b8152918183806111bf898b6004840161332e565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113205788936112f1575b503360005280825261120360ff60406000205460101c1684613228565b6112d85760606112b793927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615da8833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a16131bb565b6112bf578480f35b546002146106d0576112d092613358565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611319575b6113098183612dd0565b810103126105e5575191386111e6565b503d6112ff565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b5034610277578060031936011261027757602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b506020366003190112610277576001600160401b0360043516908160043503610277576113cb615d17565b6002600080516020615de883398151915254146106d05781600052600080516020615ec88339815191526020526040600020916040519261140b84612d49565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a0850152604051838194906004840154936114738561376f565b808552946001811690811561160457506001146115bf575b505061149992500383612dd0565b60c083019182526001600160401b03606084015116156115a7576114ca6001600160401b03606085015116426131ae565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000161161157c579161155991602093600052600080516020615ec8833981519152845261152260406000206137c0565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b039101511693519460043561464c565b6001600080516020615ee8833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106115e857505090602061149992820101388061148b565b60209193508060019154838589010152019101909184926115ce565b9150506020925061149994915060ff191682840152151560051b820101388061148b565b5060603660031901126102775761163d612cdd565b604435611648615d17565b6002600080516020615de883398151915254146106d05760209181611559926040519261167484612d7f565b60018452853681860137600435613822565b5034610277576040366003190112610277576116a0612ccc565b6024356001600160401b0381116117ff576116bf903690600401612e0c565b91604051918290600080516020615e28833981519152828154918287526020809701908652600080516020615d8883398151915292865b888282106117e05750505061170d92500383612dd0565b826117378351966040519788928392635b10743960e11b8452604060048501526044840190612d11565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156117d55783949561177094926117b1575b50613053565b604051926040840160408552835180915285606086019401915b81811061179d5750505082938301520390f35b82518552938601939186019160010161178a565b6117ce9192503d8087833e6117c68183612dd0565b810190612f3e565b903861176a565b6040513d85823e3d90fd5b85546001600160a01b03168452600195860195889550930192016116f6565b8280fd5b503461027757806003193601126102775761181c614fac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b0380821690600182019181831161192c5760ff8460401c1690811561191f575b5061190d57600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e5416156118fb577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926118db61328f565b6118e3614d7a565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611866565b634e487b7160e01b600052601160045260246000fd5b50346102775760403660031901126102775760243560ff811681036105e55761196f602091600435613228565b6040519015158152f35b5034610277578060031936011261027757600080516020615dc8833981519152546040516001600160a01b039091168152602090f35b503461027757602036600319011261027757611a046001600160401b036020926040600080516020615e0883398151915254916004358152600080516020615da88339815191528652205460081c1616615aa8565b60ff60405191168152f35b5034610277578060031936011261027757611a28614d5b565b506109e26109a7615043565b5034610277578060031936011261027757600080516020615dc883398151915254611a67906001600160a01b0316614ff0565b600080516020615de883398151915260028154146106d057600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461027757602036600319011261027757600435611ace615d17565b6002600080516020615de883398151915254146106d057611aee816154c7565b602081016001600160401b03908181511615611bb457611b1182825116426131ae565b827f00000000000000000000000000000000000000000000000000000000000000001611611b92578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b8602052604080862086815560010186905583015183518691610541916001600160481b0316906001600160a01b031687614af5565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b508060031936011261027757611be1614fac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611dfa575b6001149081611df0575b159081611de7575b5061190d5767ffffffffffffffff198116600117835581611dc8575b50611c57615c29565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611d9f575034611d8d57611c96615c29565b611c9e615c29565b611ca6615c29565b6001600080516020615de883398151915255600080516020615f0883398151915280546001600160a01b03191633179055611cdf615c29565b611ce7615c29565b611cf033615c6a565b611cf8615c29565b611d00615c29565b6001600080516020615ee883398151915255611d37610100600160481b0360ff611d30611d2b614c50565b615b4f565b16176150eb565b611d3f61328f565b611d47614d7a565b611d4f575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405163bd28e88960e01b8152600490fd5b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611c4e565b90501538611c32565b303b159150611c2a565b839150611c20565b503461027757608036600319011261027757611e1c612ccc565b60243560443560ff81168091036105e557611e35615cde565b61ffff809316928315611f7f578215611f6d578115611f5b577f0000000000000000000000000000000000000000000000000000000000000000168314611f49577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615d48833981519152918260205260ff604060002081600160405192611eca84612d7f565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611f2c611f0b611f02614c50565b80606435615be1565b89600052600080516020615e888339815191526020526040600020906152e9565b51935116604051938452602084015260408301526060820152a280f35b60405163101b8f9560e11b8152600490fd5b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461027757806003193601126102775760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610277578060031936011261027757602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b50346102775780600319360112610277577f00000000000000000000000000000000000000000000000000000000000000009060028210156120615760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b5034610277578060031936011261027757600080516020615dc8833981519152546120a8906001600160a01b0316614ff0565b600080516020615de883398151915260028154036120f157600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b50346102775780600319360112610277576020611a04614c50565b50346102775760203660031901126102775760ff60406020926004358152600080516020615da883398151915284522054166040519015158152f35b50346102775780600319360112610277576040517f000000000000000000000000000000000000000000000000000000000000000060028110156121a057602092508152f35b634e487b7160e01b83526021600452602483fd5b503461027757806003193601126102775760206001600160401b03600080516020615e488339815191525416604051908152f35b5034610277576020806003193601126106e2576004356001600160a01b0381169182820361081957612218615cde565b82156111145782600052600080516020615ea88339815191529182825260ff9081604060002054166000146123c15784600052838352604060002061010061ff00198254161790555b600080516020615e2883398151915290815491600160401b8310156123ab57826110259160016122939501905561325e565b600080516020615e6883398151915292835461ff006122b6848360081c16614d2d565b60081b169061ff00191617809455600080516020615e0883398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b1682179182146123925767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612342614d7a565b84600052825280600080516020615d68833981519152805482811615612383575b5054169260405194855260081c16908301526040820152a161095861328f565b60ff1916600117815538612363565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615e688339815191528281541660408110156124d957604051906123ea82612d64565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff19161717179055805483612442818316614d2d565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b8210156123ab57600182018082558210156124c3576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b03191686179055612261565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b5034610277576020366003190112610277576004356001600160401b0381168091036106e257606060c060405161252181612d49565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615ec883398151915260205260406000206040519061256a82612d49565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a0830152604051838194906004840154936125d28561376f565b80855294600181169081156126b95750600114612674575b50506125f892500383612dd0565b60c081019182526109e26040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612d11565b60049193949250018252602082205b81831061269d5750509060206125f89282010138806125ea565b6020919350806001915483858901015201910190918492612683565b915050602092506125f894915060ff191682840152151560051b82010138806125ea565b5034610277576020366003190112610277576126f7615cde565b61095861270e612705614c50565b80600435615be1565b6150eb565b503461027757604036600319011261027757610958612730612cdd565b612738615cde565b61ffff612746612705614c50565b9116600052600080516020615e888339815191526020526040600020906152e9565b5034610277576020806003193601126106e2576001600160a01b036004358181169081810361082857612799615cde565b6127a1614fac565b3b15612b74577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9182549161282e60ff841615614d3e565b60ff199283166001178455303b156108285760405163011fa75760e71b8152858160048183305af18015612b2957612b61575b5060405163689f90c360e01b81528281600481305afa908115612b29578691612b34575b50156128bd575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa908115612b29578691612aeb575b5081612910927f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b6040516314ad290960e11b81528181600481305afa90811561081d578591612ab5575b507f0000000000000000000000000000000000000000000000000000000000000000906002821015612aa1576002811015612aa1576129729114614d3e565b604051634d4502c960e11b81528181600481305afa801561081d578590612a6b575b6129c7915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b604051631d2a9eff60e21b8152908082600481305afa90811561081d578591612a2b575b50612a2491506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b388061288c565b905081813d8311612a64575b612a418183612dd0565b8101031261081957516001600160401b038116810361081957612a2490386129eb565b503d612a37565b508181813d8311612a9a575b612a818183612dd0565b8101031261082857612a956129c791613349565b612994565b503d612a77565b634e487b7160e01b86526021600452602486fd5b90508181813d8311612ae4575b612acc8183612dd0565b81010312610828575160028110156108285738612933565b503d612ac2565b90508281813d8311612b22575b612b028183612dd0565b81010312612b1e5751908082168203612b1e57906129106128e0565b8580fd5b503d612af8565b6040513d88823e3d90fd5b612b549150833d8511612b5a575b612b4c8183612dd0565b81019061443a565b38612885565b503d612b42565b612b6d90959195612d36565b9338612861565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461027757602036600319011261027757602061196f6004356131bb565b5034610277576020366003190112610277576004356001600160a01b03818116918290036117ff57612c3081600080516020615dc88339815191525416614ff0565b600080516020615f0883398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b50346102775760203660031901126102775761070161046d612cc7604060209461ffff612ca4612ccc565b612cac614d5b565b50168152600080516020615e8883398151915286522061508b565b61555d565b6004359061ffff821682036105e557565b6024359061ffff821682036105e557565b60005b838110612d015750506000910152565b8181015183820152602001612cf1565b90602091612d2a81518092818552858086019101612cee565b601f01601f1916010190565b6001600160401b0381116123ab57604052565b60e081019081106001600160401b038211176123ab57604052565b606081019081106001600160401b038211176123ab57604052565b604081019081106001600160401b038211176123ab57604052565b608081019081106001600160401b038211176123ab57604052565b60a081019081106001600160401b038211176123ab57604052565b90601f801991011681019081106001600160401b038211176123ab57604052565b6001600160401b0381116123ab57601f01601f191660200190565b81601f820112156105e557803590612e2382612df1565b92612e316040519485612dd0565b828452602083830101116105e557816000926020809301838601378301015290565b90600319906060828401126105e55760043561ffff811681036105e5579260243592604435916001600160401b03918284116105e55760609084830301126105e55760405192612ea284612d64565b806004013584526024810135602085015260448101359283116105e557612ecc9201600401612e0c565b604082015290565b6001600160401b0381116123ab5760051b60200190565b519060ff821682036105e557565b81601f820112156105e5578051612f0f81612df1565b92612f1d6040519485612dd0565b818452602082840101116105e557612f3b9160208085019101612cee565b90565b9060209081838203126105e55782516001600160401b03938482116105e557019080601f830112156105e5578151612f7581612ed4565b94604090612f8582519788612dd0565b828752858088019360051b860101948486116105e557868101935b868510612fb257505050505050505090565b84518381116105e55782019084601f1983890301126105e557845190612fd782612d7f565b612fe28a8401612eeb565b825285830151918583116105e557613001898c80969581960101612ef9565b83820152815201940193612fa0565b600019811461192c5760010190565b80518210156124c35760209160051b010190565b9060406020612f3b9360ff81511684520151918160208201520190612d11565b90929180519161306283612ed4565b9260409161307283519586612dd0565b818552601f1961308183612ed4565b01602090368288013760009788955b8487106130a257505050505050509190565b90919293949598868561311b868d6130c160018060a01b03918861301f565b511680600052600080516020615ea883398151915282526130ec60ff866000205460101c168961301f565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190613033565b03915afa9081156131a357908d91600091613171575b5061313d81928d61301f565b52830180931161315e5750506131539099613010565b959493929190613090565b601190634e487b7160e01b600052526000fd5b91508782813d831161319c575b6131888183612dd0565b810103126102775750518c9061313d613131565b503d61317e565b8a513d6000823e3d90fd5b9190820391821161192c57565b6001600160401b039060ff61321481600080516020615d688339815191525416938493600080516020615e088339815191525490600052600080516020615da883398151915260205260406000205460081c1616615aa8565b1610159081613221575090565b9050151590565b906001600160401b0391600052600080516020615da8833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615e2883398151915280548210156124c357600052600080516020615d888339815191520190600090565b60ff600080516020615d6883398151915254166040516132ae81612d7f565b60ff600080516020615e6883398151915254818116835260081c168060208301528083116132e957505160ff166132e25750565b1561091657565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612f3b9380518452602081015160208501520151918160408201520190612d11565b60409061ffff612f3b94931681528160208201520190613307565b519061ffff821682036105e557565b919081613365918461364f565b91909161364a5760408091015191815192635399ded560e11b84526080848061339a6020948560048401526024830190612d11565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af493841561363f576000946135ca575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036135af575050613402614c50565b8161342b87519280613426816001600160401b03968760ff82169160081c16615b86565b615be1565b960151908160a01c613598576001600160a01b039182169560007f00000000000000000000000000000000000000000000000000000000000000008316156135915750613476614d5b565b508816600052600080516020615e88833981519152845261349c612cc78460002061508b565b6134a68882615b1a565b81808960081c169160081c16105b6134d957505050506134c96134d79484615850565b6134d283615730565b614af5565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f3162975095613575839596949760019394519261351484612d64565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b0319855416178455511682615a3f565b019151166001600160601b0360a01b82541617905551908152a1565b90506134b4565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d8211613637575b816135e560809383612dd0565b810103126106e2578351916135f983612d9a565b8151906001600160481b0382168203610277575082528481015185830152838101518483015261362b90606001613349565b606082015292386133c2565b3d91506135d8565b83513d6000823e3d90fd5b505050565b60405163b3f07bbd60e01b81529193926020918391829161367491906004840161332e565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091613705575b506136a6816131bb565b156136ed576136b481613736565b92836136c257509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d821161372e575b8161371e60209383612dd0565b810103126102775750513861369c565b3d9150613711565b600052600080516020615da88339815191526020526040600020805460ff81166137685760ff19166001179055600090565b5050600190565b90600182811c9216801561379f575b602083101461378957565b634e487b7160e01b600052602260045260246000fd5b91607f169161377e565b8181106137b4575050565b600081556001016137a9565b6004600091828155826001820155826002820155826003820155016137e5815461376f565b806137ef57505050565b82601f821160011461380057505055565b909180825261381e601f60208420940160051c8401600185016137a9565b5555565b9194939290946000958315613e9b578115613e89578215613e77577f00000000000000000000000000000000000000000000000000000000000000006138683082614cd0565b906138ab60018060a01b03821696604051906323b872dd60e01b60208301523360248301523060448301526064820152606481526138a581612db5565b87614452565b6138be826138b93084614cd0565b6131ae565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613e63579060018b9214613ddc575b5050505061ffff8116600052600080516020615d4883398151915260205260ff600160406000200154168015611f5b5761393761392f614c50565b918287615be1565b906001600160401b038260081c1661395460ff8416928383615b86565b808803613db5575061397661397b9161396e611d2b614c50565b938491615b86565b615608565b98600080516020615e4883398151915254966001600160401b0380891614613da15767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615e48833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613d9b576139fc614d5b565b50613a08612cc7615043565b613a258c610100600160481b0360ff87169160081b161782615b1a565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613d75578180613d6d575b613aa157505082612f3b9899610100600160481b0360ff84613a8582613a919716848660081b1617615670565b169160081b1617615918565b6001600160401b0333951661464c565b61ffff95979896919a506001600160481b03939250613adf7f0000000000000000000000000000000000000000000000000000000000000000615a67565b613ae76154b0565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613b3488612d49565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615ec883398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613bcf6001600160401b0360608701511682615a3f565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d5957613c30835461376f565b601f8111613d1e575b50602090601f8311600114613cb257906001600160401b03959683613ca7575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613ca3346145f5565b1690565b015190503880613c59565b95601f19831684885260208820975b818110613d065750916001600160401b03969791846001959410613ced575b505050811b019055613c6e565b015160001960f88460031b161c19169055388080613ce0565b83830151895560019098019760209384019301613cc1565b613d499084835260208320601f850160051c81019160208610613d4f575b601f0160051c01906137a9565b38613c39565b9091508190613d3c565b634e487b7160e01b81526041600452602490fd5b506000613a58565b604490613d806154b0565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613a4d565b634e487b7160e01b82526011600452602482fd5b87613dc2604492826131ae565b604051916338f831a560e11b835260048301526024820152fd5b803b156106e2578190602460405180948193630852cd8d60e31b83528c60048401525af18015613e5857613e43575b50613e17903090614cd0565b808203613e255788816138f4565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613e51613e17929a612d36565b9890613e0b565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613e9b578215613e89578315613e77577f0000000000000000000000000000000000000000000000000000000000000000613ef23082614cd0565b90613f3560018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613f2f81612db5565b8b614452565b613f43826138b93084614cd0565b997f00000000000000000000000000000000000000000000000000000000000000006002811015614426576001146143bc575b50505061ffff8216600052600080516020615d4883398151915260205260ff600160406000200154168015611f5b57613fb8613fb0614c50565b91828b615be1565b916001600160401b038360081c16613fd560ff8516938483615b86565b808c036143af5750613976613ff791613fef611d2b614c50565b948591615b86565b99600080516020615e4883398151915254976001600160401b03808a161461439b5767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615e48833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561439557614078614d5b565b508b6001600160401b038061408e612cc7615043565b9260081b610100600160481b031660ff8816176140ab8185615b1a565b60081c169160081c16105b81158061438e575b614383578161437b575b506140f957505082612f3b9899610100600160481b0360ff613a9194169160081b16176140f481615670565b615918565b61ffff95979896919a506001600160481b039392506141377f0000000000000000000000000000000000000000000000000000000000000000615a67565b61413f6154b0565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661418c88612d49565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615ec883398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b03198254161781556142276001600160401b0360608701511682615a3f565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d5957614288835461376f565b601f811161434b575b50602090601f83116001146142f957906001600160401b03959683613ca75750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613ca3346145f5565b95601f19831684885260208820975b8181106143335750916001600160401b03969791846001959410613ced57505050811b019055613c6e565b83830151895560019098019760209384019301614308565b6143759084835260208320601f850160051c81019160208610613d4f57601f0160051c01906137a9565b38614291565b9050386140c8565b604483613d806154b0565b50806140be565b826140b6565b634e487b7160e01b83526011600452602483fd5b8b613dc2604492826131ae565b803b156108195783809160248d6040519485938492630852cd8d60e31b845260048401525af1801561441b57614406575b506143f9903090614cd0565b808203613e255780613f76565b926144146143f99294612d36565b92906143ed565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105e5575180151581036105e55790565b6040516144b0916001600160a01b031661446b82612d7f565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16144aa61452c565b9161455c565b805190816144bd57505050565b82806144cd93830101910161443a565b156144d55750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d15614557573d9061453d82612df1565b9161454b6040519384612dd0565b82523d6000602084013e565b606090565b919290156145be5750815115614570575090565b3b156145795790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156145d15750805190602001fd5b60405162461bcd60e51b815260206004820152908190610645906024830190612d11565b600080808084335af161460661452c565b501561460f5750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105e55781516001600160401b0381116105e557612f3b9201612ef9565b9594929493919361467c7f0000000000000000000000000000000000000000000000000000000000000000615a67565b6040518081600080516020615e2883398151915260208154938481520190600052600080516020615d888339815191529260005b818110614ad35750506146c592500382612dd0565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed9785491815115614ac1576147186000916040519485928392635b10743960e11b8452604060048501526044840190612d11565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957600092614aa4575b50614752818388613053565b95863410614a855761476487346131ae565b80614a76575b506040519061477882612d9a565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957614877926000928d928492614a5a575b506001600160401b036040519361484085612d64565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b8352602060048401526024830190613307565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091614a37575b5061ffff8816600052600080516020615d48833981519152602052604060002054938351938515614a1b5760005b8581106149405750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff9261491160c096610475614c50565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b03614952828461301f565b51169061495f818761301f565b5182600052600080516020615ea883398151915260205261498b60ff60406000205460101c168661301f565b51833b156105e5576149d19361ffff8f936000948f8e906149e38d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190613033565b85810360031901604487015290612d11565b916064840152608483015203925af19182156105d957614a0792614a0c5750613010565b6148cd565b614a1590612d36565b38610d93565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b614a5491503d806000833e614a4c8183612dd0565b810190614627565b3861489f565b614a6f9192503d8086833e614a4c8183612dd0565b903861482a565b614a7f906145f5565b3861476a565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b614aba9192503d806000833e6117c68183612dd0565b9038614746565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b03168352600194850194869450602090930192016146b0565b9291614b249061046d7f0000000000000000000000000000000000000000000000000000000000000000615a67565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f00000000000000000000000000000000000000000000000000000000000000009360028510156120615784614bb9575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506134d7906105128160648101610504565b9193600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156117ff576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af1908115614c445750614c3b5750565b6134d790612d36565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b825260048152614c7281612d7f565b51907f00000000000000000000000000000000000000000000000000000000000000005afa614c9f61452c565b9015614cbe576020818051810103126105e5576020612f3b9101612eeb565b604051631222cd8360e01b8152600490fd5b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614d0781612d64565b51915afa614d1361452c565b9015614cbe576020818051810103126105e5576020015190565b60ff1660ff811461192c5760010190565b15614d4557565b634e487b7160e01b600052600160045260246000fd5b60405190614d6882612d64565b60006040838281528260208201520152565b600080516020615e688339815191525460ff8160081c16614dab600080516020615e28833981519152548214614d3e565b60005b818110614e39575060005b818110614dd2575050604060ff6134d792161115614d3e565b6001810180821161192c575b828110614df45750614def90613010565b614db9565b614e3490614e2f614e048461325e565b905490614e108461325e565b92909160018060a01b03809354600395861b1c16931b1c161415614d3e565b613010565b614dde565b80614e2f614e49614e609361325e565b905460039190911b1c6001600160a01b0316614e65565b614dae565b6001600160a01b039081166000818152600080516020615ea88339815191526020526040908190209051929190614e9b84612d64565b5460ff91614ed7838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614f92575b5050614d3e565b600080516020615e0883398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615e688339815191525497878960081c16935b848110614f54575b5050505050816134d796614f42869594614f4a9414614d3e565b151514614d3e565b5116911611614d3e565b8282614f5f8361325e565b90549060031b1c1614614f7a57614f7590613010565b614f20565b50919850849250839150614f429050826134d7614f28565b90915081614fa3575b503880614ed0565b90501538614f9b565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614fde57565b604051633c64f99360e21b8152600490fd5b600080516020615f0883398151915254336001600160a01b039182161415919082615036575b505061501e57565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880615016565b6040519061505082612d64565b8160406001600160401b03600080516020615f28833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b9060405161509881612d64565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615f288339815191529081546001600160481b03908181166001600160401b036008918184841c168015806152de575b1561518f575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b8661519b612cc7615043565b9260006151a88383615af8565b1561527457506151c792916151bc91615b1a565b8388861c1690615a8f565b610100600160481b039290841b831660ff8616176151e58184615af8565b15615266578160ff92826151fc6152099487615b1a565b871c169084871c16615a8f565b9116921b16175b61521a8482615af8565b61524457600160481b600160901b039060481b1690600160481b600160901b031916178355615157565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff915016615210565b94939592906152869061529093615b1a565b8389841c16615a8f565b9260ff881694838087610100600160481b038098871b16176152b28185615b1a565b851c1691841c16019283116152ca57501b1617615210565b634e487b7160e01b81526011600452602490fd5b5060ff851615615121565b919080546001600160481b03808216916001600160401b03926008908483831c168015806154a5575b1561537857505050508461532a6134d79596856150c5565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b859089615387612cc78a61508b565b9360006153948383615af8565b1561544f5750916153ac6153b79260ff979894615b1a565b838c881c1690615a8f565b610100600160481b039490861b85169116176153d38184615af8565b156154415760ff91816153e96153f69386615b1a565b861c168784871c16615a8f565b9116921b16175b6154078682615af8565b61541f579461541a6134d79596856150c5565b61532a565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff9150166153fd565b94965061546a935061546091615b1a565b868a851c16615a8f565b9160ff891693868086610100600160481b038097861b161761548c8185615b1a565b841c1691831c1601918683116152ca57501b16176153fd565b5060ff841615615312565b6154b8614d5b565b50612f3b61046d612cc7615043565b6154cf614d5b565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260406000206040519061550982612d64565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b8115615547570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156155f1576155de828260ff936040610100600160481b03960151164203816155c2602085019889519383875160081c160261553d565b9160081c1601915160081c168082106000146155ea5750615608565b9251169160081b161790565b9050615608565b506020015160ff16610100600160481b0317919050565b6001600160401b039081811161561c571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561572c576156a9614d5b565b50600160481b600160901b036156c0612cc7615043565b610100600160481b0360ff6156fb600080516020615f2883398151915296808854976156ec8188615b1a565b60081c16908560081c16615a8f565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561572c57615769614d5b565b50615775612cc7615043565b90600160481b600160901b03600080516020615f2883398151915293845493816001600160401b0360901b4260901b16946157b08184615b1a565b60081c16828260081c160182811160001461583c5750610100600160481b0360ff6157da84615608565b92169160081b1617906001600160481b038516906157f88284615b1a565b80856001600160401b0360901b1988161760081c16908360081c161060001461583557505b60481b1691600160481b600160d01b03191617179055565b905061581d565b60ff6157da610100600160481b0392615608565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561364a57610100600160481b0360ff61590a61ffff6134d79661589d614d5b565b50169384600052600080516020615e88833981519152806020526158c7612cc7604060002061508b565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b161781559581906156ec8188615b1a565b92169160081b1617906150c5565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561364a5761ffff6134d793615957614d5b565b5016600090808252600080516020615e8883398151915280602052615981612cc76040852061508b565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b161781559383906159be8184615b1a565b60081c16838260081c1601838111600014615a2b5750610100600160481b0360ff6159e885615608565b92169160081b1617918084546001600160481b03811693615a098587615b1a565b5060081c16908360081c1610600014615a235750906150c5565b9050906150c5565b60ff6159e8610100600160481b0392615608565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b468103615a715750565b604490604051906377d879fb60e01b82526004820152466024820152fd5b6001600160401b03918216908216039190821161192c57565b60009182915b6001600160401b03908181168015615af05760001901918211615adc571691615ad690614d2d565b91615aae565b634e487b7160e01b85526011600452602485fd5b505050915090565b90615b038183615b1a565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615b2c575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612f3b5750600890565b9060ff8091169116039060ff821161192c57565b60ff16604d811161192c57600a0a90565b919060ff821660ff8216818114615bda571115615bb957615bae612f3b9392615bb392615b61565b615b75565b9061553d565b615bae90615bc692615b61565b9081810291818304149015171561192c5790565b5050505090565b615c1461397660ff92610100600160481b039495615bfe87615b4f565b908581168683161015615c1f5750958691615b86565b92169160081b161790565b9050958691615b86565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615615c5857565b604051631afcd79f60e31b8152600490fd5b6001600160a01b03908116908115615cc557600080516020615dc883398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615dc8833981519152546001600160a01b03163303615cff57565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615ee88339815191526002815414615d355760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a26469706673582212207ed5e889b9f55b8e46c735a86c62e208aeae9aa95f45c30245d74d8a7fdad80c64736f6c63430008130033",cqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Il;let fqe=(Il=class extends V1{constructor(...e){if(cqe(e))super(...e);else{const[n,r]=e;super(V9,Il.linkBytecode(n),r)}}static linkBytecode(e){let n=pK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(V9)}static connect(e,n){return new Js(e,V9,n)}},ce(Il,"bytecode",pK),ce(Il,"abi",V9),Il);const Y9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],bK="0x6101c06040818152346200031d5760c082620036ef803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a0948552519461337d9687620003728839608051876130e8015260a051878181610dbd015281816114fa0152818161187d01528181612002015281816121b10152818161288d0152612a91015260c051878181610e4801528181611c40015281816122030152818161263a0152612d29015260e05187610cc501525186818161076301528181610efa0152818161122101528181611bab01528181611d9e01526123480152518581816101fd01528181610bbe01528181610f270152818161124d01528181611b5301528181611dcb0152818161225301528181612daf01528181612e8f0152612f2d01525184818161079c015281816115e3015281816119f7015281816122a30152612c72015251838181610a1e01528181611be9015281816122f30152612d66015251826102410152518181816106a1015281816119c20152612c470152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af14612558575080630900f010146120315780630b4a1e891461138857806324fb21db14611fed578063320d0d8e14611faa57806348b330d614611f645780634b5b0505146117ec5780634b795b211461174b578063529dca321461154157806358f709ba146114d2578063657b3b2f1461143157806366152efc146113d0578063689f90c31461138d578063694977d7146113885780637ab564031461112d57806380eb3239146110f15780638129fc1c14610c3657806381e8ec7f14610bed57806384acd1bb14610ba95780638da5cb5b14610b735780638fd3ab8014610a4d57806390ea542814610a09578063935dec07146109c757806396dddc63146109125780639fd0506d146108ca578063b187bd2614610889578063b5634c731461083c578063bc7f6d37146107f9578063d8d28418146107cb578063da25b72514610787578063e8dfd50814610749578063f2fde38b14610714578063f48066a8146106c8578063f68016b7146106895763f953cec7146101a457600080fd5b346106855760209081600319360112610681578035906001600160401b038581841161067e576101da6101f9943690850161274b565b86518095819263607ec5ef60e11b835288878401526024830190612834565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156106745786938790889261046f575b501561044c57507f000000000000000000000000000000000000000000000000000000000000000046810361043057506060830161ffff918282511660005260008051602061326883398151915286528660002054608086019081518091036103ff575061014086016102c7815160005260008051602061328883398151915260205260ff6040600020541690565b6103e657927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103286103799d9b516000526000805160206132888339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a15116940151906103576128f0565b50610360612916565b508651630453806b60e11b815293849283928301612a6f565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103dc576103b39450859186946103b6575b50815191015191612a8e565b80f35b9093506103d591503d8087833e6103cd818361270f565b8101906129f1565b92386103a7565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b815280840186905290819061042c906024830190612834565b945050503d8087853e610482818561270f565b830160609081858203126106705784518381116105f45785016101609283828403126105f85788519384018481108682111761065b5789526104c382613000565b84526104d088830161300e565b888501526104df89830161300e565b898501528082015161ffff8116810361065757818501526080808301518186015261050c60a08401612f98565b60a086015261051d60c08401613000565b60c086015260e0830151868111610653578461053a91850161296e565b60e086015261010061054d81850161300e565b90860152610120908184015187811161064f57840185601f8201121561064f5780518c9461058661057d836127fa565b9651968761270f565b8186528c8087019260071b8401019288841161064b578d01915b8383106105fc57505050505084015261014080910151908301526105c586860161301f565b9487810151908482116105f857019080601f830112156105f45781516105ec928801612937565b909338610238565b8880fd5b8980fd5b84838a031261064b578d8f918287935190610616826126d9565b86518252838701518483015261062d818801613000565b9082015261063c858701613000565b858201528152019201916105a0565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106c457816003193601126106c457602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106c45760203660031901126106c45760209061ffff6106e9612669565b166000526000805160206132a8833981519152825261070b81600020546130a4565b90519015158152f35b8382346106c45760203660031901126106c457356001600160a01b03811681036106c4576103b3906107446131b8565b613187565b5050346106c457816003193601126106c4576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4576020906107e8612878565b90516001600160a01b039091168152f35b5050346106c45760203660031901126106c45760209061ffff61081a612669565b16600052600080516020613248833981519152825261070b81600020546130a4565b5034610685578160031936011261068557610855612669565b92602435906001600160401b03821161067e57509261087c61088292602095369101612792565b90612bd1565b9051908152f35b5050346106c457816003193601126106c45760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106c457816003193601126106c4577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106c457826003193601126106c45761092d612669565b6109356127eb565b9161093e6131b8565b61ffff82169081156109b957507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c93946109b39161097b856130d6565b906000526000805160206132a88339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106c45760203660031901126106c45760209061ffff6109e8612669565b16600052600080516020613268833981519152825280600020549051908152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610685578260031936011261068557610a676130e5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610b605760ff84871c16908115610b53575b50610b4357169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b35575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610aaf565b634e487b7160e01b885260118752602488fd5b5050346106c457816003193601126106c4576000805160206132e88339815191525490516001600160a01b039091168152602090f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4578051610c3291610c0e826126f4565b60058252640312e302e360dc1b602083015251918291602083526020830190612834565b0390f35b508260031936011261068557610c4a6130e5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b0393848116801590816110e9575b60011490816110df575b1590816110d6575b506110c75767ffffffffffffffff1981166001178655826110a8575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163381900361108c5750610cf7613146565b610cff613146565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610dab610d2e612878565b610d36613146565b610d3e613146565b610d46613146565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610da3613146565b610744613146565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa918215611082578a9261104b575b508651631dcbf42b60e11b81529188838781855afa928315611041578b9361100a575b5087519360a085019081118582101761065b578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110005791610f21939187938a91610fde575b5086518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015610fd457610f9c575b50610f5d578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311610fcd575b610fb1818361270f565b81010312610fc957610fc290612f98565b5038610f54565b8580fd5b503d610fa7565b83513d88823e3d90fd5b610ffa91503d808c833e610ff2818361270f565b81019061302c565b38610ee5565b85513d8a823e3d90fd5b9092508881813d831161103a575b611022818361270f565b810103126106575761103390613000565b9138610e16565b503d611018565b88513d8d823e3d90fd5b9091508781813d831161107b575b611063818361270f565b810103126105f85761107490613000565b9038610df3565b503d611059565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610cba565b50825163f92ee8a960e01b8152fd5b90501538610c9e565b303b159150610c96565b849150610c8c565b50913461067e57602036600319011261067e575061070b6020923560005260008051602061328883398151915260205260ff6040600020541690565b508160031936011261068557611141612669565b6024359161114d6131b8565b61ffff80831690811561137857841561136857816000526000805160206132688339815191529160209280845287600020548061133f575081600052835285876000205586519161119d836126be565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561133557611248938392899161131b575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b0381347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610674576112bf575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669080604081016109b3565b81813d8311611314575b6112d3818361270f565b81010312611310577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466936113096109b392612f98565b5093611282565b8480fd5b503d6112c9565b61132f91503d808b833e610ff2818361270f565b3861120d565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b612624565b5050346106c457816003193601126106c45760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b50913461067e57602036600319011261067e57508051916113f0836126a3565b35908115159182810361142c57610c32935280519160f81b60208301526001825261141a826126f4565b51918291602083526020830190612834565b600080fd5b508290346106c457826003193601126106c45761144c612669565b6114546127eb565b9161145d6131b8565b61ffff82169081156109b957507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c393946109b39161149a856130d6565b906000526000805160206132c88339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610685576020366003190112610685578035916001600160a01b038084168403611310577f000000000000000000000000000000000000000000000000000000000000000016330361152a57836103b3846131f1565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610685576001600160401b0381358181116113105761156c903690840161274b565b6024928335938385116117475736602386011215611747578482013593611592856127fa565b9461159f8851968761270f565b808652602096838888019260051b8201019236841161065757848201925b8484106117215750505050506044356064359461ffff86169081870361142c57608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361170e57826000526000805160206132688339815191528952838a60002054036116e757848b52600080516020613288833981519152895260ff8a8c2054166116d3575061167c846000526000805160206132888339815191526020526040600020600160ff19825416179055565b516116c357606061037995938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a16103576128f0565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161064f578a9161173c839289369188010161274b565b8152019301926115bd565b8680fd5b508290346106c457826003193601126106c457611766612669565b61176e6127eb565b916117776131b8565b61ffff82169081156109b957507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c93946109b3916117b4856130d6565b906000526000805160206132488339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a03682011261068157611803612669565b9060249283356001600160401b0390818111610670576118269036908801612792565b906044358181116105f45761183e903690890161274b565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611f5557600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f3f57908b6118f881936119078a519b6118ba8d6126a3565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a4860190612834565b91848303016084850152612834565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f355782988395611ee3575b5061193f602080980151612b56565b80511580611ed4575b15611b2b575050928a928592838989976119ba61ffff8f16968792836000526000805160206132688339815191528c5261198e6119888660002054612fd4565b9b612fd4565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e4870190612834565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b2157611ab0575b5061ffff926060611a9584611aa9946000805160206133288339815191528460019c6000805160206133088339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c0860190612834565b910151838203603f190160a0850152612834565b0390a15580f35b9391928185813d8311611b1a575b611ac8818361270f565b81010312610670576060611a9561ffff95611aa9946000805160206133288339815191528460019c611b086000805160206133088339815191529c612f98565b509c5050509450949650505092611a24565b503d611abe565b83513d8a823e3d90fd5b919394959250959697989a50511580611ea8575b15611d7e578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611d7357908993929197611d40575b50869291611bd3918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fac565b03925af1948515611d36578c95611cff575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611ceb5790818d9796959493923b15610670578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611ce157611cc9575b50600080516020613308833981519152936060611a95856001999560008051602061332883398151915284611aa99761ffff9a51908e8252848201523485820152a1611a68565b611cd59096929661267a565b610fc957938538611c82565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d2f575b611d17818361270f565b8101031261065357611d2890612f98565b9338611be5565b503d611d0d565b88513d8e823e3d90fd5b9196509181813d8111611d6c575b611d58818361270f565b8101031261142c5751948791611bd3611b8f565b503d611d4e565b8a51903d90823e3d90fd5b9050611dc59350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611e9e57611e40575b5091611aa96001956060611a958560008051602061330883398151915297600080516020613328833981519152848d61ffff9a519060028252848201523485820152a1611a68565b9181838195933d8311611e97575b611e58818361270f565b81010312611747576001956060611a95611aa99360008051602061330883398151915297611e8861ffff98612f98565b50959750955050509550611df8565b503d611e4e565b83513d89823e3d90fd5b5061ffff8a166000526000805160206132488339815191528652611ecf87600020546130a4565b611b3f565b50611ede8b613051565b611948565b985093503d80838a3e611ef6818a61270f565b88019787818a03126106855780518581116106815789611f17918301612988565b98602082015186811161131057611f2e920161296e565b9338611930565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b50913461067e57602036600319011261067e578235906001600160401b03821161067e5750611f9b602093611fa09236910161274b565b612b56565b9051905115158152f35b5050346106c45760203660031901126106c45760209061ffff611fcb612669565b166000526000805160206132c8833981519152825261070b81600020546130a4565b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5090346106855760209182600319360112610681576001600160a01b0391813583811690818103611747576120646131b8565b61206c6130e5565b3b156124ff577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e938454936120f960ff861615613129565b60ff199485166001178655303b1561174757825163011fa75760e71b81528781868183305af180156123f3576124ec575b50825163689f90c360e01b815282818681305afa9081156123f35788916124b7575b5015612186575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa9081156123f357906121d891899161249a575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b8251630b4a1e8960e01b815282818681305afa9081156123f3579061222a91899161246d575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b82516384acd1bb60e01b815282818681305afa80156123f3578890612435575b61227a915082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b825163da25b72560e01b815282818681305afa80156123f35788906123fd575b6122ca915082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b825163121d4a8560e31b815282818681305afa9081156123f35788916123b9575b508161231b927f000000000000000000000000000000000000000000000000000000000000000016911614613129565b8082518094631d1bfaa160e31b825281305afa9182156123b057508591612379575b50612370915060ff807f000000000000000000000000000000000000000000000000000000000000000016911614613129565b38808080612153565b905081813d83116123a9575b61238f818361270f565b81010312610681576123a361237091613000565b3861233d565b503d612385565b513d87823e3d90fd5b90508281813d83116123ec575b6123d0818361270f565b810103126106705751908082168203610670579061231b6122eb565b503d6123c6565b84513d8a823e3d90fd5b508281813d831161242e575b612413818361270f565b8101031261067057518181168103610670576122ca9061229a565b503d612409565b508281813d8311612466575b61244b818361270f565b81010312610670575181811681036106705761227a9061224a565b503d612441565b61248d9150843d8611612493575b612485818361270f565b810190612859565b386121fe565b503d61247b565b6124b19150843d861161249357612485818361270f565b386121ac565b90508281813d83116124e5575b6124ce818361270f565b81010312610670576124df9061301f565b3861214c565b503d6124c4565b6124f89097919761267a565b953861212a565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106855760203660031901126106855781356001600160a01b03818116939184900361131057806000805160206132e88339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124992835492831694338614159081612619575b506126045750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b9050331415886125c8565b3461142c57600036600319011261142c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361142c57565b6001600160401b03811161268d57604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761268d57604052565b606081019081106001600160401b0382111761268d57604052565b608081019081106001600160401b0382111761268d57604052565b604081019081106001600160401b0382111761268d57604052565b90601f801991011681019081106001600160401b0382111761268d57604052565b6001600160401b03811161268d57601f01601f191660200190565b81601f8201121561142c5780359061276282612730565b92612770604051948561270f565b8284526020838301011161142c57816000926020809301838601378301015290565b91909160408184031261142c5760408051916001600160401b039183018281118482101761268d576040528294813560ff8116810361142c578452602082013592831161142c576020926127e6920161274b565b910152565b60243590811515820361142c57565b6001600160401b03811161268d5760051b60200190565b60005b8381106128245750506000910152565b8181015183820152602001612814565b9060209161284d81518092818552858086019101612811565b601f01601f1916010190565b9081602091031261142c57516001600160a01b038116810361142c5790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128e4576000916128c9575090565b6128e1915060203d811161249357612485818361270f565b90565b6040513d6000823e3d90fd5b604051906128fd826126d9565b6060808360008152600060208201528160408201520152565b60405190612923826126be565b606060408360008152600060208201520152565b9092919261294481612730565b91612952604051938461270f565b82948284528282011161142c57602061296c930190612811565b565b9080601f8301121561142c5781516128e192602001612937565b919060808382031261142c57604051906129a1826126d9565b819380518352602081015160208401526040810151916001600160401b039283811161142c57816129d391840161296e565b6040850152606082015192831161142c576060926127e6920161296e565b919060408382031261142c578251906001600160401b039182811161142c5781612a1c918601612988565b9360208101519083821161142c57019060608282031261142c5760405192612a43846126be565b8251845260208301516020850152604083015190811161142c57612a67920161296e565b604082015290565b6309945ff160e41b81526040602082018190526128e192910190612834565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b385750803b1561142c5761ffff60008094612b1e604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c4830190612834565b03925af180156128e457612b2f5750565b61296c9061267a565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612b64836126a3565b6000835282815115612bcc5750600181015160fe8116612bb05760ff16151583525160018103612b915750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612be0602080920151612b56565b51612f175761ffff8216906000908282526000805160206132c88339815191528152604093612c11858420546130a4565b80612ef0575b612ed857612c2490613051565b15612ceb5750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612ce1578193612cb0575b50505090565b9091809350813d8311612cda575b612cc8818361270f565b8101031261067e575051388080612caa565b503d612cbe565b51903d90823e3d90fd5b8282939492526000805160206132488339815191528152612d0e828420546130a4565b15612e7657815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612e69578495612e3a575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e3157508392612e03575b50508201809211612def575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e2a575b612e1a818361270f565b810103126106c457513880612de0565b503d612e10565b513d85823e3d90fd5b9094508181813d8311612e62575b612e52818361270f565b8101031261068157519381612d97565b503d612e48565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612ecd57508193612cb05750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132a88339815191528252612f11858420546130a4565b15612c17565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128e457600091612f6c575b50905090565b82813d8311612f91575b612f80818361270f565b8101031261067e5750518038612f66565b503d612f76565b51906001600160401b038216820361142c57565b9060ff612fcd60409295949560008552606060208601526060850190612834565b9416910152565b8060a01c612fe8576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361142c57565b519063ffffffff8216820361142c57565b5190811515820361142c57565b9060208282031261142c5781516001600160401b03811161142c576128e1920161296e565b61ffff16806000526000805160206132c88339815191526020526130796040600020546130a4565b9081613083575090565b90506000526000805160206132a88339815191526020526128e16040600020545b80156130d057600181146130ca576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b156130e057600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461311757565b604051633c64f99360e21b8152600490fd5b1561313057565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561317557565b604051631afcd79f60e31b8152600490fd5b6001600160a01b0381161561319f5761296c906131f1565b604051631e4fbdf760e01b815260006004820152602490fd5b6000805160206132e8833981519152546001600160a01b031633036131d957565b60405163118cdaa760e01b8152336004820152602490fd5b6000805160206132e883398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea264697066735822122059bdad9542fb301c5a401dc5ec7c26dca547abf82e0e0ca3cc87aced2c37698b64736f6c63430008130033",uqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Dl;let lqe=(Dl=class extends V1{constructor(...e){if(uqe(e))super(...e);else{const[n,r]=e;super(Y9,Dl.linkBytecode(n),r)}}static linkBytecode(e){let n=bK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Y9)}static connect(e,n){return new Js(e,Y9,n)}},ce(Dl,"bytecode",bK),ce(Dl,"abi",Y9),Dl);const Q9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceiverInfo",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct TransceiverRegistry.TransceiverInfo[]",components:[{name:"registered",type:"bool",internalType:"bool"},{name:"enabled",type:"bool",internalType:"bool"},{name:"index",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerSameChainId",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"StaticcallFailed",inputs:[]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedMsgValue",inputs:[]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],mK="0x61016034620005cb57601f620065b138819003918201601f19168301916001600160401b038311848410176200057e5780849260a094604052833981010312620005cb578051906001600160a01b0382168203620005cb576020810151916002831015620005cb5760408201519161ffff83168303620005cb576060810151906001600160401b03821690818303620005cb576080015180159182158203620005cb5715809281620005c2575b508215620005a6575b505062000594576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005d0565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003f157505060005b60ff8260081c1681106200035d5750604060ff6200016d92161115620005d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c166200034b576002600160401b03196001600160401b03821601620002ff575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615f6393846200064e85396080518481816114d401528181611b1401528181611fb1015281816129e20152818161342d015281816139b5015281816140310152818161554f0152818161566201528181615722015281816158410152615909015260a05184614f95015260c0518481816102900152818161051401528181610561015281816128ce0152818161382501528181613eaf0152818161476d01528181614bac0152614c5c015260e05184611c590152518381816104ab0152818161202a015281816121560152818161291c015281816138a701528181613f2c0152614b3401525182818161137c01528181611e500152818161298501526133b701525181818161044901528181613aa1015281816140f90152818161463e0152614ae60152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003db575b60ff8360081c1681106200038a57506200038490620005ee565b6200014c565b620003d590620003cf6200039e84620005fe565b9054620003ab84620005fe565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005d0565b620005ee565b6200036a565b634e487b7160e01b600052601160045260246000fd5b620003fc81620005fe565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200057e5760608401604052546200049e60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a01529262000561575b5050620005d0565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c1681106200050f575b5050508262000509959492620004ee620003cf95620004f79414620005d0565b151514620005d0565b60ff60408188169201511610620005d0565b62000139565b6200051a81620005fe565b9054600391821b1c6001600160a01b039081169184901b85901c16146200054c576200054690620005ee565b620004bf565b5060019350849150829050620004ee620004ce565b9091508162000574575b50388062000496565b905015386200056b565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b15915081620005b9575b503880620000b5565b905038620005b0565b925038620000ac565b600080fd5b15620005d857565b634e487b7160e01b600052600160045260246000fd5b6000198114620003db5760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006375760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612c5f578063036de8af14612bd45780630677df5414612bb55780630900f0101461274e578063186ce612146126f957806319017175146126c35780631f97c9a8146124d1578063203e4a9b146121ce57806323d75e311461219a578063295a521214612140578063396c16b7146121045780633b97e856146120e95780633f4ba83a146120755780634b4fd03b14612017578063689f90c314611fd557806374aa7bfc14611f915780637c91863414611e025780638129fc1c14611bcd5780638413bcba14611ab15780638456cb5914611a3457806386e11ffa14611a0f57806389c619dd146119af5780638da5cb5b146119795780638e3ba8c9146119425780638fd3ab80146118035780639057412d14611686578063961b94d01461162857806397c35146146113a05780639a8a0592146113615780639d782454146111265780639f86029c14610e105780639fd0506d14610dda578063b150fc5514610c2d578063b187bd2614610bff578063b293f97f14610b69578063b4d591bb14610aa8578063c0b07bde14610a62578063c128d170146109e6578063d788c1471461095b578063da4856a114610928578063e5a986031461087c578063e75235b81461084e578063f2fde38b14610709578063f5cfec18146106e6578063f7514fbc146102bf578063fc0c546a1461027a5763fd96063c1461022257600080fd5b346102775760203660031901126102775760606102406004356154ad565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b50346102775780600319360112610277576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610277576020366003190112610277576004356001600160401b03811681036106e2576102ec615cfd565b6002600080516020615dce83398151915254146106d0576001600160401b038116600052600080516020615eae83398151915260205260406000206040519061033482612d2f565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039b84613755565b80845293600181169081156106ae575060011461066a575b506103c092500382612db6565b60c08201526001600160401b03606082015116156106495760a08101516001600160a01b031633810361061c5750606061048c60407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615eae833981519152602052610442826000206137a6565b015161046d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b610475614c36565b906001600160401b0360ff82169160081c16615b6c565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156106065780610556575060405163a9059cbb60e01b602082015233602482015260448101919091526105419061051281606481015b03601f198101835282612db6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614438565b6001600080516020615ece8339815191525580f35b600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105e5576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105d9576105ca575b50610541565b6105d390612d1c565b386105c4565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b8183106106925750509060206103c092820101386103b3565b6020919350806001915483858801015201910190918392610679565b9050602092506103c094915060ff191682840152151560051b820101386103b3565b6040516309e3d0f360e11b8152600490fd5b5080fd5b50346102775780600319360112610277576020610701615496565b604051908152f35b5034610277576020366003190112610277576001600160a01b03600435818116908181036108195761074a9061073d615cc4565b610745615cc4565b615c50565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615e4e8339815191525416808203610830575050908391825b845481101561082c578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b1561082857848091602460405180948193632c7b84dd60e11b83528960048401525af190811561081d578591610805575b505061080090612ff6565b61078f565b61080e90612d1c565b6108195783386107f5565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b5034610277578060031936011261027757602060ff600080516020615d4e8339815191525416604051908152f35b50346102775760203660031901126102775760043560ff8116908181036105e5576108a5615cc4565b8115610916577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a99161091060ff92600080516020615d4e833981519152805493851985161790556108f4613275565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b50346102775761093736612e39565b906002600080516020615dce83398151915254146106d0576109589261333e565b80f35b50346102775760203660031901126102775761ffff610978612cb2565b610980614d41565b5016600052600080516020615e6e8339815191526020526109e26109a76040600020615071565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b50346102775760203660031901126102775761ffff90610a04612cb2565b906020604051610a1381612d65565b828152015216600052600080516020615d2e83398151915260205260408060002060ff8251610a4181612d65565b60208260018554958685520154169101908152835192835251166020820152f35b50346102775780600319360112610277576109e2604051610a8281612d65565b60058152640312e312e360dc1b6020820152604051918291602083526020830190612cf7565b50346102775780600319360112610277576040518091600080516020615e0e83398151915290815480845260208094019081938352600080516020615d6e83398151915290835b818110610b4c5750505084610b05910385612db6565b60405193838594850191818652518092526040850193925b828110610b2c57505050500390f35b83516001600160a01b031685528695509381019392810192600101610b1d565b82546001600160a01b031684529286019260019283019201610aef565b5060c036600319011261027757610b7e612cc3565b906084359182151583036106e25760a4356001600160401b03928382116102775750610bae903690600401612df2565b610bb6615cfd565b6002600080516020615dce83398151915254146106d057602093610be4926064359060443590600435613e93565b6001600080516020615ece8339815191525560405191168152f35b503461027757806003193601126102775760206002600080516020615dce8339815191525414604051908152f35b503461027757806003193601126102775760405180600080516020615e0e83398151915280548084526020809401918552600080516020615d6e83398151915290855b818110610dbd5750505081610c86910382612db6565b8051610c9181612eba565b91610c9f6040519384612db6565b818352601f19610cae83612eba565b01855b818110610da1575050845b828110610d1d575050506040519180830190808452825180925280604085019301945b828110610cec5784840385f35b85518051151585528083015115158584015260409081015160ff169085015294810194606090930192600101610cdf565b929492610d99906001600160a01b03610d368285613005565b5116600052600080516020615e8e8339815191528652604060002060405190610d5e82612d4a565b5460ff9081811615158352818160081c1615158984015260101c166040820152610d888289613005565b52610d938188613005565b50612ff6565b949294610cbc565b8590610dae979597614d41565b82828a01015201959395610cb1565b82546001600160a01b031684529285019260019283019201610c70565b5034610277578060031936011261027757600080516020615eee833981519152546040516001600160a01b039091168152602090f35b5034610277576020806003193601126106e2576001600160a01b0390600435828116919082810361082857610e43615cc4565b82156111145782600052600080516020615e8e83398151915280835260ff918260406000205416156110fb57846000528184528260406000205460081c16156110e25784600052818452604060002061ff001990818154169055600080516020615e4e833981519152928354858160081c169283156110ce5761ff0060001980950160081b169116178455600080516020615dee8339815191528054918860005287526001600160401b03600192610f1082858a60406000205460101c161b198316169282168310614d24565b6001600160401b0319161790558897600080516020615e0e8339815191528054938b5b858110610fc8575b505050505050918091610f836040969594610f767f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614d24565b610f7e614d60565b614e4b565b5460081c16600080516020615d4e8339815191529081548381168210610fba575b50505416908351928352820152a1610958613275565b60ff19161781553880610fa4565b838b610fd383613244565b929054600393841b1c1614610ff15750610fec90612ff6565b610f33565b9590918093959798999a9b9c5081019081116110ba57906110258461101861104494613244565b905490891b1c1691613244565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156110a657946040999794610f83948a9894610f76947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c99019261108c84613244565b81939154921b1b1916905555998496979899839650610f3b565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b50346102775761113536612e39565b9033600052600080516020615e8e83398151915260209080825260ff60406000205460081c161561134957600080516020615dce8339815191529160028354146106d05761ffff861680600052600080516020615d2e8339815191528252846040600020540361132b575060405163b3f07bbd60e01b8152918183806111bf898b60048401613314565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113205788936112f1575b503360005280825261120360ff60406000205460101c168461320e565b6112d85760606112b793927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615d8e833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a16131a1565b6112bf578480f35b546002146106d0576112d09261333e565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611319575b6113098183612db6565b810103126105e5575191386111e6565b503d6112ff565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b5034610277578060031936011261027757602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b506020366003190112610277576001600160401b0360043516908160043503610277576113cb615cfd565b6002600080516020615dce83398151915254146106d05781600052600080516020615eae8339815191526020526040600020916040519261140b84612d2f565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a08501526040518381949060048401549361147385613755565b808552946001811690811561160457506001146115bf575b505061149992500383612db6565b60c083019182526001600160401b03606084015116156115a7576114ca6001600160401b0360608501511642613194565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000161161157c579161155991602093600052600080516020615eae833981519152845261152260406000206137a6565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b0391015116935194600435614632565b6001600080516020615ece833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106115e857505090602061149992820101388061148b565b60209193508060019154838589010152019101909184926115ce565b9150506020925061149994915060ff191682840152151560051b820101388061148b565b5060603660031901126102775761163d612cc3565b604435611648615cfd565b6002600080516020615dce83398151915254146106d05760209181611559926040519261167484612d65565b60018452853681860137600435613808565b5034610277576040366003190112610277576116a0612cb2565b6024356001600160401b0381116117ff576116bf903690600401612df2565b91604051918290600080516020615e0e833981519152828154918287526020809701908652600080516020615d6e83398151915292865b888282106117e05750505061170d92500383612db6565b826117378351966040519788928392635b10743960e11b8452604060048501526044840190612cf7565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156117d55783949561177094926117b1575b50613039565b604051926040840160408552835180915285606086019401915b81811061179d5750505082938301520390f35b82518552938601939186019160010161178a565b6117ce9192503d8087833e6117c68183612db6565b810190612f24565b903861176a565b6040513d85823e3d90fd5b85546001600160a01b03168452600195860195889550930192016116f6565b8280fd5b503461027757806003193601126102775761181c614f92565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b0380821690600182019181831161192c5760ff8460401c1690811561191f575b5061190d57600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e5416156118fb577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926118db613275565b6118e3614d60565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611866565b634e487b7160e01b600052601160045260246000fd5b50346102775760403660031901126102775760243560ff811681036105e55761196f60209160043561320e565b6040519015158152f35b5034610277578060031936011261027757600080516020615dae833981519152546040516001600160a01b039091168152602090f35b503461027757602036600319011261027757611a046001600160401b036020926040600080516020615dee83398151915254916004358152600080516020615d8e8339815191528652205460081c1616615a8e565b60ff60405191168152f35b5034610277578060031936011261027757611a28614d41565b506109e26109a7615029565b5034610277578060031936011261027757600080516020615dae83398151915254611a67906001600160a01b0316614fd6565b600080516020615dce83398151915260028154146106d057600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461027757602036600319011261027757600435611ace615cfd565b6002600080516020615dce83398151915254146106d057611aee816154ad565b602081016001600160401b03908181511615611bb457611b118282511642613194565b827f00000000000000000000000000000000000000000000000000000000000000001611611b92578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b8602052604080862086815560010186905583015183518691610541916001600160481b0316906001600160a01b031687614adb565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b508060031936011261027757611be1614f92565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611dfa575b6001149081611df0575b159081611de7575b5061190d5767ffffffffffffffff198116600117835581611dc8575b50611c57615c0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611d9f575034611d8d57611c96615c0f565b611c9e615c0f565b611ca6615c0f565b6001600080516020615dce83398151915255600080516020615eee83398151915280546001600160a01b03191633179055611cdf615c0f565b611ce7615c0f565b611cf033615c50565b611cf8615c0f565b611d00615c0f565b6001600080516020615ece83398151915255611d37610100600160481b0360ff611d30611d2b614c36565b615b35565b16176150d1565b611d3f613275565b611d47614d60565b611d4f575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405163bd28e88960e01b8152600490fd5b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611c4e565b90501538611c32565b303b159150611c2a565b839150611c20565b503461027757608036600319011261027757611e1c612cb2565b60243560443560ff81168091036105e557611e35615cc4565b61ffff809316928315611f7f578215611f6d578115611f5b577f0000000000000000000000000000000000000000000000000000000000000000168314611f49577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615d2e833981519152918260205260ff604060002081600160405192611eca84612d65565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611f2c611f0b611f02614c36565b80606435615bc7565b89600052600080516020615e6e8339815191526020526040600020906152cf565b51935116604051938452602084015260408301526060820152a280f35b60405163101b8f9560e11b8152600490fd5b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461027757806003193601126102775760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610277578060031936011261027757602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b50346102775780600319360112610277577f00000000000000000000000000000000000000000000000000000000000000009060028210156120615760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b503461027757806003193601126102775761208e615cc4565b600080516020615dce83398151915260028154036120d757600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b50346102775780600319360112610277576020611a04614c36565b50346102775760203660031901126102775760ff60406020926004358152600080516020615d8e83398151915284522054166040519015158152f35b50346102775780600319360112610277576040517f0000000000000000000000000000000000000000000000000000000000000000600281101561218657602092508152f35b634e487b7160e01b83526021600452602483fd5b503461027757806003193601126102775760206001600160401b03600080516020615e2e8339815191525416604051908152f35b5034610277576020806003193601126106e2576004356001600160a01b03811691828203610819576121fe615cc4565b82156111145782600052600080516020615e8e8339815191529182825260ff9081604060002054166000146123a75784600052838352604060002061010061ff00198254161790555b600080516020615e0e83398151915290815491600160401b831015612391578261102591600161227995019055613244565b600080516020615e4e83398151915292835461ff0061229c848360081c16614d13565b60081b169061ff00191617809455600080516020615dee83398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b1682179182146123785767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612328614d60565b84600052825280600080516020615d4e833981519152805482811615612369575b5054169260405194855260081c16908301526040820152a1610958613275565b60ff1916600117815538612349565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615e4e8339815191528281541660408110156124bf57604051906123d082612d4a565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff19161717179055805483612428818316614d13565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b82101561239157600182018082558210156124a9576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b03191686179055612247565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b5034610277576020366003190112610277576004356001600160401b0381168091036106e257606060c060405161250781612d2f565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615eae83398151915260205260406000206040519061255082612d2f565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a0830152604051838194906004840154936125b885613755565b808552946001811690811561269f575060011461265a575b50506125de92500383612db6565b60c081019182526109e26040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612cf7565b60049193949250018252602082205b8183106126835750509060206125de9282010138806125d0565b6020919350806001915483858901015201910190918492612669565b915050602092506125de94915060ff191682840152151560051b82010138806125d0565b5034610277576020366003190112610277576126dd615cc4565b6109586126f46126eb614c36565b80600435615bc7565b6150d1565b503461027757604036600319011261027757610958612716612cc3565b61271e615cc4565b61ffff61272c6126eb614c36565b9116600052600080516020615e6e8339815191526020526040600020906152cf565b5034610277576020806003193601126106e2576001600160a01b03600435818116908181036108285761277f615cc4565b612787614f92565b3b15612b5a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9182549161281460ff841615614d24565b60ff199283166001178455303b156108285760405163011fa75760e71b8152858160048183305af18015612b0f57612b47575b5060405163689f90c360e01b81528281600481305afa908115612b0f578691612b1a575b50156128a3575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa908115612b0f578691612ad1575b50816128f6927f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b6040516314ad290960e11b81528181600481305afa90811561081d578591612a9b575b507f0000000000000000000000000000000000000000000000000000000000000000906002821015612a87576002811015612a87576129589114614d24565b604051634d4502c960e11b81528181600481305afa801561081d578590612a51575b6129ad915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b604051631d2a9eff60e21b8152908082600481305afa90811561081d578591612a11575b50612a0a91506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b3880612872565b905081813d8311612a4a575b612a278183612db6565b8101031261081957516001600160401b038116810361081957612a0a90386129d1565b503d612a1d565b508181813d8311612a80575b612a678183612db6565b8101031261082857612a7b6129ad9161332f565b61297a565b503d612a5d565b634e487b7160e01b86526021600452602486fd5b90508181813d8311612aca575b612ab28183612db6565b81010312610828575160028110156108285738612919565b503d612aa8565b90508281813d8311612b08575b612ae88183612db6565b81010312612b045751908082168203612b0457906128f66128c6565b8580fd5b503d612ade565b6040513d88823e3d90fd5b612b3a9150833d8511612b40575b612b328183612db6565b810190614420565b3861286b565b503d612b28565b612b5390959195612d1c565b9338612847565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461027757602036600319011261027757602061196f6004356131a1565b5034610277576020366003190112610277576004356001600160a01b03818116918290036117ff57612c1681600080516020615dae8339815191525416614fd6565b600080516020615eee83398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b50346102775760203660031901126102775761070161046d612cad604060209461ffff612c8a612cb2565b612c92614d41565b50168152600080516020615e6e833981519152865220615071565b615543565b6004359061ffff821682036105e557565b6024359061ffff821682036105e557565b60005b838110612ce75750506000910152565b8181015183820152602001612cd7565b90602091612d1081518092818552858086019101612cd4565b601f01601f1916010190565b6001600160401b03811161239157604052565b60e081019081106001600160401b0382111761239157604052565b606081019081106001600160401b0382111761239157604052565b604081019081106001600160401b0382111761239157604052565b608081019081106001600160401b0382111761239157604052565b60a081019081106001600160401b0382111761239157604052565b90601f801991011681019081106001600160401b0382111761239157604052565b6001600160401b03811161239157601f01601f191660200190565b81601f820112156105e557803590612e0982612dd7565b92612e176040519485612db6565b828452602083830101116105e557816000926020809301838601378301015290565b90600319906060828401126105e55760043561ffff811681036105e5579260243592604435916001600160401b03918284116105e55760609084830301126105e55760405192612e8884612d4a565b806004013584526024810135602085015260448101359283116105e557612eb29201600401612df2565b604082015290565b6001600160401b0381116123915760051b60200190565b519060ff821682036105e557565b81601f820112156105e5578051612ef581612dd7565b92612f036040519485612db6565b818452602082840101116105e557612f219160208085019101612cd4565b90565b9060209081838203126105e55782516001600160401b03938482116105e557019080601f830112156105e5578151612f5b81612eba565b94604090612f6b82519788612db6565b828752858088019360051b860101948486116105e557868101935b868510612f9857505050505050505090565b84518381116105e55782019084601f1983890301126105e557845190612fbd82612d65565b612fc88a8401612ed1565b825285830151918583116105e557612fe7898c80969581960101612edf565b83820152815201940193612f86565b600019811461192c5760010190565b80518210156124a95760209160051b010190565b9060406020612f219360ff81511684520151918160208201520190612cf7565b90929180519161304883612eba565b9260409161305883519586612db6565b818552601f1961306783612eba565b01602090368288013760009788955b84871061308857505050505050509190565b909192939495988685613101868d6130a760018060a01b039188613005565b511680600052600080516020615e8e83398151915282526130d260ff866000205460101c1689613005565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190613019565b03915afa90811561318957908d91600091613157575b5061312381928d613005565b5283018093116131445750506131399099612ff6565b959493929190613076565b601190634e487b7160e01b600052526000fd5b91508782813d8311613182575b61316e8183612db6565b810103126102775750518c90613123613117565b503d613164565b8a513d6000823e3d90fd5b9190820391821161192c57565b6001600160401b039060ff6131fa81600080516020615d4e8339815191525416938493600080516020615dee8339815191525490600052600080516020615d8e83398151915260205260406000205460081c1616615a8e565b1610159081613207575090565b9050151590565b906001600160401b0391600052600080516020615d8e833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615e0e83398151915280548210156124a957600052600080516020615d6e8339815191520190600090565b60ff600080516020615d4e833981519152541660405161329481612d65565b60ff600080516020615e4e83398151915254818116835260081c168060208301528083116132cf57505160ff166132c85750565b1561091657565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612f219380518452602081015160208501520151918160408201520190612cf7565b60409061ffff612f21949316815281602082015201906132ed565b519061ffff821682036105e557565b91908161334b9184613635565b9190916136305760408091015191815192635399ded560e11b8452608084806133806020948560048401526024830190612cf7565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415613625576000946135b0575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036135955750506133e8614c36565b816134118751928061340c816001600160401b03968760ff82169160081c16615b6c565b615bc7565b960151908160a01c61357e576001600160a01b039182169560007f0000000000000000000000000000000000000000000000000000000000000000831615613577575061345c614d41565b508816600052600080516020615e6e8339815191528452613482612cad84600020615071565b61348c8882615b00565b81808960081c169160081c16105b6134bf57505050506134af6134bd9484615836565b6134b883615716565b614adb565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f316297509561355b83959694976001939451926134fa84612d4a565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b0319855416178455511682615a25565b019151166001600160601b0360a01b82541617905551908152a1565b905061349a565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d821161361d575b816135cb60809383612db6565b810103126106e2578351916135df83612d80565b8151906001600160481b038216820361027757508252848101518583015283810151848301526136119060600161332f565b606082015292386133a8565b3d91506135be565b83513d6000823e3d90fd5b505050565b60405163b3f07bbd60e01b81529193926020918391829161365a919060048401613314565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d9576000916136eb575b5061368c816131a1565b156136d35761369a8161371c565b92836136a857509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d8211613714575b8161370460209383612db6565b8101031261027757505138613682565b3d91506136f7565b600052600080516020615d8e8339815191526020526040600020805460ff811661374e5760ff19166001179055600090565b5050600190565b90600182811c92168015613785575b602083101461376f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691613764565b81811061379a575050565b6000815560010161378f565b6004600091828155826001820155826002820155826003820155016137cb8154613755565b806137d557505050565b82601f82116001146137e657505055565b9091808252613804601f60208420940160051c84016001850161378f565b5555565b9194939290946000958315613e81578115613e6f578215613e5d577f000000000000000000000000000000000000000000000000000000000000000061384e3082614cb6565b9061389160018060a01b03821696604051906323b872dd60e01b602083015233602483015230604483015260648201526064815261388b81612d9b565b87614438565b6138a48261389f3084614cb6565b613194565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613e49579060018b9214613dc2575b5050505061ffff8116600052600080516020615d2e83398151915260205260ff600160406000200154168015611f5b5761391d613915614c36565b918287615bc7565b906001600160401b038260081c1661393a60ff8416928383615b6c565b808803613d9b575061395c61396191613954611d2b614c36565b938491615b6c565b6155ee565b98600080516020615e2e83398151915254966001600160401b0380891614613d875767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615e2e833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613d81576139e2614d41565b506139ee612cad615029565b613a0b8c610100600160481b0360ff87169160081b161782615b00565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613d5b578180613d53575b613a8757505082612f219899610100600160481b0360ff84613a6b82613a779716848660081b1617615656565b169160081b16176158fe565b6001600160401b03339516614632565b61ffff95979896919a506001600160481b03939250613ac57f0000000000000000000000000000000000000000000000000000000000000000615a4d565b613acd615496565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613b1a88612d2f565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615eae83398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613bb56001600160401b0360608701511682615a25565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d3f57613c168354613755565b601f8111613d04575b50602090601f8311600114613c9857906001600160401b03959683613c8d575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613c89346145db565b1690565b015190503880613c3f565b95601f19831684885260208820975b818110613cec5750916001600160401b03969791846001959410613cd3575b505050811b019055613c54565b015160001960f88460031b161c19169055388080613cc6565b83830151895560019098019760209384019301613ca7565b613d2f9084835260208320601f850160051c81019160208610613d35575b601f0160051c019061378f565b38613c1f565b9091508190613d22565b634e487b7160e01b81526041600452602490fd5b506000613a3e565b604490613d66615496565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613a33565b634e487b7160e01b82526011600452602482fd5b87613da860449282613194565b604051916338f831a560e11b835260048301526024820152fd5b803b156106e2578190602460405180948193630852cd8d60e31b83528c60048401525af18015613e3e57613e29575b50613dfd903090614cb6565b808203613e0b5788816138da565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613e37613dfd929a612d1c565b9890613df1565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613e81578215613e6f578315613e5d577f0000000000000000000000000000000000000000000000000000000000000000613ed83082614cb6565b90613f1b60018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613f1581612d9b565b8b614438565b613f298261389f3084614cb6565b997f0000000000000000000000000000000000000000000000000000000000000000600281101561440c576001146143a2575b50505061ffff8216600052600080516020615d2e83398151915260205260ff600160406000200154168015611f5b57613f9e613f96614c36565b91828b615bc7565b916001600160401b038360081c16613fbb60ff8516938483615b6c565b808c03614395575061395c613fdd91613fd5611d2b614c36565b948591615b6c565b99600080516020615e2e83398151915254976001600160401b03808a16146143815767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615e2e833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561437b5761405e614d41565b508b6001600160401b0380614074612cad615029565b9260081b610100600160481b031660ff8816176140918185615b00565b60081c169160081c16105b811580614374575b6143695781614361575b506140df57505082612f219899610100600160481b0360ff613a7794169160081b16176140da81615656565b6158fe565b61ffff95979896919a506001600160481b0393925061411d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b614125615496565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661417288612d2f565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615eae83398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b031982541617815561420d6001600160401b0360608701511682615a25565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d3f5761426e8354613755565b601f8111614331575b50602090601f83116001146142df57906001600160401b03959683613c8d5750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613c89346145db565b95601f19831684885260208820975b8181106143195750916001600160401b03969791846001959410613cd357505050811b019055613c54565b838301518955600190980197602093840193016142ee565b61435b9084835260208320601f850160051c81019160208610613d3557601f0160051c019061378f565b38614277565b9050386140ae565b604483613d66615496565b50806140a4565b8261409c565b634e487b7160e01b83526011600452602483fd5b8b613da860449282613194565b803b156108195783809160248d6040519485938492630852cd8d60e31b845260048401525af18015614401576143ec575b506143df903090614cb6565b808203613e0b5780613f5c565b926143fa6143df9294612d1c565b92906143d3565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105e5575180151581036105e55790565b604051614496916001600160a01b031661445182612d65565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614490614512565b91614542565b805190816144a357505050565b82806144b3938301019101614420565b156144bb5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d1561453d573d9061452382612dd7565b916145316040519384612db6565b82523d6000602084013e565b606090565b919290156145a45750815115614556575090565b3b1561455f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156145b75750805190602001fd5b60405162461bcd60e51b815260206004820152908190610645906024830190612cf7565b600080808084335af16145ec614512565b50156145f55750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105e55781516001600160401b0381116105e557612f219201612edf565b959492949391936146627f0000000000000000000000000000000000000000000000000000000000000000615a4d565b6040518081600080516020615e0e83398151915260208154938481520190600052600080516020615d6e8339815191529260005b818110614ab95750506146ab92500382612db6565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed9785491815115614aa7576146fe6000916040519485928392635b10743960e11b8452604060048501526044840190612cf7565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957600092614a8a575b50614738818388613039565b95863410614a6b5761474a8734613194565b80614a5c575b506040519061475e82612d80565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d95761485d926000928d928492614a40575b506001600160401b036040519361482685612d4a565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b83526020600484015260248301906132ed565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091614a1d575b5061ffff8816600052600080516020615d2e833981519152602052604060002054938351938515614a015760005b8581106149265750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff926148f760c096610475614c36565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b036149388284613005565b5116906149458187613005565b5182600052600080516020615e8e83398151915260205261497160ff60406000205460101c1686613005565b51833b156105e5576149b79361ffff8f936000948f8e906149c98d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190613019565b85810360031901604487015290612cf7565b916064840152608483015203925af19182156105d9576149ed926149f25750612ff6565b6148b3565b6149fb90612d1c565b38610d93565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b614a3a91503d806000833e614a328183612db6565b81019061460d565b38614885565b614a559192503d8086833e614a328183612db6565b9038614810565b614a65906145db565b38614750565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b614aa09192503d806000833e6117c68183612db6565b903861472c565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b0316835260019485019486945060209093019201614696565b9291614b0a9061046d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f00000000000000000000000000000000000000000000000000000000000000009360028510156120615784614b9f575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506134bd906105128160648101610504565b9193600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156117ff576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af1908115614c2a5750614c215750565b6134bd90612d1c565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b825260048152614c5881612d65565b51907f00000000000000000000000000000000000000000000000000000000000000005afa614c85614512565b9015614ca4576020818051810103126105e5576020612f219101612ed1565b604051631222cd8360e01b8152600490fd5b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614ced81612d4a565b51915afa614cf9614512565b9015614ca4576020818051810103126105e5576020015190565b60ff1660ff811461192c5760010190565b15614d2b57565b634e487b7160e01b600052600160045260246000fd5b60405190614d4e82612d4a565b60006040838281528260208201520152565b600080516020615e4e8339815191525460ff8160081c16614d91600080516020615e0e833981519152548214614d24565b60005b818110614e1f575060005b818110614db8575050604060ff6134bd92161115614d24565b6001810180821161192c575b828110614dda5750614dd590612ff6565b614d9f565b614e1a90614e15614dea84613244565b905490614df684613244565b92909160018060a01b03809354600395861b1c16931b1c161415614d24565b612ff6565b614dc4565b80614e15614e2f614e4693613244565b905460039190911b1c6001600160a01b0316614e4b565b614d94565b6001600160a01b039081166000818152600080516020615e8e8339815191526020526040908190209051929190614e8184612d4a565b5460ff91614ebd838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614f78575b5050614d24565b600080516020615dee83398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615e4e8339815191525497878960081c16935b848110614f3a575b5050505050816134bd96614f28869594614f309414614d24565b151514614d24565b5116911611614d24565b8282614f4583613244565b90549060031b1c1614614f6057614f5b90612ff6565b614f06565b50919850849250839150614f289050826134bd614f0e565b90915081614f89575b503880614eb6565b90501538614f81565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614fc457565b604051633c64f99360e21b8152600490fd5b600080516020615eee83398151915254336001600160a01b03918216141591908261501c575b505061500457565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880614ffc565b6040519061503682612d4a565b8160406001600160401b03600080516020615f0e833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b9060405161507e81612d4a565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615f0e8339815191529081546001600160481b03908181166001600160401b036008918184841c168015806152c4575b15615175575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b86615181612cad615029565b92600061518e8383615ade565b1561525a57506151ad92916151a291615b00565b8388861c1690615a75565b610100600160481b039290841b831660ff8616176151cb8184615ade565b1561524c578160ff92826151e26151ef9487615b00565b871c169084871c16615a75565b9116921b16175b6152008482615ade565b61522a57600160481b600160901b039060481b1690600160481b600160901b03191617835561513d565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff9150166151f6565b949395929061526c9061527693615b00565b8389841c16615a75565b9260ff881694838087610100600160481b038098871b16176152988185615b00565b851c1691841c16019283116152b057501b16176151f6565b634e487b7160e01b81526011600452602490fd5b5060ff851615615107565b919080546001600160481b03808216916001600160401b03926008908483831c1680158061548b575b1561535e5750505050846153106134bd9596856150ab565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b85908961536d612cad8a615071565b93600061537a8383615ade565b1561543557509161539261539d9260ff979894615b00565b838c881c1690615a75565b610100600160481b039490861b85169116176153b98184615ade565b156154275760ff91816153cf6153dc9386615b00565b861c168784871c16615a75565b9116921b16175b6153ed8682615ade565b61540557946154006134bd9596856150ab565b615310565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff9150166153e3565b949650615450935061544691615b00565b868a851c16615a75565b9160ff891693868086610100600160481b038097861b16176154728185615b00565b841c1691831c1601918683116152b057501b16176153e3565b5060ff8416156152f8565b61549e614d41565b50612f2161046d612cad615029565b6154b5614d41565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b86020526040600020604051906154ef82612d4a565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b811561552d570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156155d7576155c4828260ff936040610100600160481b03960151164203816155a8602085019889519383875160081c1602615523565b9160081c1601915160081c168082106000146155d057506155ee565b9251169160081b161790565b90506155ee565b506020015160ff16610100600160481b0317919050565b6001600160401b0390818111615602571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f000000000000000000000000000000000000000000000000000000000000000016156157125761568f614d41565b50600160481b600160901b036156a6612cad615029565b610100600160481b0360ff6156e1600080516020615f0e83398151915296808854976156d28188615b00565b60081c16908560081c16615a75565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f000000000000000000000000000000000000000000000000000000000000000016156157125761574f614d41565b5061575b612cad615029565b90600160481b600160901b03600080516020615f0e83398151915293845493816001600160401b0360901b4260901b16946157968184615b00565b60081c16828260081c16018281116000146158225750610100600160481b0360ff6157c0846155ee565b92169160081b1617906001600160481b038516906157de8284615b00565b80856001600160401b0360901b1988161760081c16908360081c161060001461581b57505b60481b1691600160481b600160d01b03191617179055565b9050615803565b60ff6157c0610100600160481b03926155ee565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561363057610100600160481b0360ff6158f061ffff6134bd96615883614d41565b50169384600052600080516020615e6e833981519152806020526158ad612cad6040600020615071565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b161781559581906156d28188615b00565b92169160081b1617906150ab565b6001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016156136305761ffff6134bd9361593d614d41565b5016600090808252600080516020615e6e83398151915280602052615967612cad60408520615071565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b161781559383906159a48184615b00565b60081c16838260081c1601838111600014615a115750610100600160481b0360ff6159ce856155ee565b92169160081b1617918084546001600160481b038116936159ef8587615b00565b5060081c16908360081c1610600014615a095750906150ab565b9050906150ab565b60ff6159ce610100600160481b03926155ee565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b468103615a575750565b604490604051906377d879fb60e01b82526004820152466024820152fd5b6001600160401b03918216908216039190821161192c57565b60009182915b6001600160401b03908181168015615ad65760001901918211615ac2571691615abc90614d13565b91615a94565b634e487b7160e01b85526011600452602485fd5b505050915090565b90615ae98183615b00565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615b12575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612f215750600890565b9060ff8091169116039060ff821161192c57565b60ff16604d811161192c57600a0a90565b919060ff821660ff8216818114615bc0571115615b9f57615b94612f219392615b9992615b47565b615b5b565b90615523565b615b9490615bac92615b47565b9081810291818304149015171561192c5790565b5050505090565b615bfa61395c60ff92610100600160481b039495615be487615b35565b908581168683161015615c055750958691615b6c565b92169160081b161790565b9050958691615b6c565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615615c3e57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b03908116908115615cab57600080516020615dae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615dae833981519152546001600160a01b03163303615ce557565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615ece8339815191526002815414615d1b5760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a2646970667358221220f05bfca11e4f4e6b5c38d73a662c13522a3f5f5988d02259aab20e583604ccb064736f6c63430008130033",dqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0],b4=class b4 extends V1{constructor(...e){if(dqe(e))super(...e);else{const[n,r]=e;super(Q9,b4.linkBytecode(n),r)}}static linkBytecode(e){let n=mK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Q9)}static connect(e,n){return new Js(e,Q9,n)}};ce(b4,"bytecode",mK),ce(b4,"abi",Q9);let VB=b4;const Z9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTransceiverType",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],yK="0x6101c06040818152346200031d5760c08262003742803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a094855251946133d096876200037288396080518761313b015260a051878181610e100152818161154d015281816118d00152818161205501528181612204015281816128e00152612ae4015260c051878181610e9b01528181611c93015281816122560152818161268d0152612d7c015260e05187610d1801525186818161076e01528181610f4d0152818161127401528181611bfe01528181611df1015261239b01525185818161020801528181610c1501528181610f7a015281816112a001528181611ba601528181611e1e015281816122a601528181612e0201528181612ee20152612f800152518481816107a70152818161163601528181611a4a015281816122f60152612cc5015251838181610a7501528181611c3c015281816123460152612db90152518261024c0152518181816106ac01528181611a150152612c9a0152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af146125ab575080630900f010146120845780630b4a1e89146113db57806324fb21db14612040578063320d0d8e14611ffd57806348b330d614611fb75780634b5b05051461183f5780634b795b211461179e578063529dca321461159457806358f709ba14611525578063657b3b2f1461148457806366152efc14611423578063689f90c3146113e0578063694977d7146113db5780637ab564031461118057806380eb3239146111445780638129fc1c14610c8957806381e8ec7f14610c4457806384acd1bb14610c005780638da5cb5b14610bca5780638fd3ab8014610aa457806390ea542814610a60578063935dec0714610a1e57806396dddc63146109695780639fd0506d14610921578063a0926b2a146108d5578063b187bd2614610894578063b5634c7314610847578063bc7f6d3714610804578063d8d28418146107d6578063da25b72514610792578063e8dfd50814610754578063f2fde38b1461071f578063f48066a8146106d3578063f68016b7146106945763f953cec7146101af57600080fd5b34610690576020908160031936011261068c578035906001600160401b0385818411610689576101e5610204943690850161279e565b86518095819263607ec5ef60e11b835288878401526024830190612887565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561067f5786938790889261047a575b501561045757507f000000000000000000000000000000000000000000000000000000000000000046810361043b57506060830161ffff91828251166000526000805160206132bb833981519152865286600020546080860190815180910361040a575061014086016102d281516000526000805160206132db83398151915260205260ff6040600020541690565b6103f157927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103336103849d9b516000526000805160206132db8339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a1511694015190610362612943565b5061036b612969565b508651630453806b60e11b815293849283928301612ac2565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103e7576103be9450859186946103c1575b50815191015191612ae1565b80f35b9093506103e091503d8087833e6103d88183612762565b810190612a44565b92386103b2565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b8152808401869052908190610437906024830190612887565b945050503d8087853e61048d8185612762565b8301606090818582031261067b5784518381116105ff578501610160928382840312610603578851938401848110868211176106665789526104ce82613053565b84526104db888301613061565b888501526104ea898301613061565b898501528082015161ffff8116810361066257818501526080808301518186015261051760a08401612feb565b60a086015261052860c08401613053565b60c086015260e083015186811161065e57846105459185016129c1565b60e0860152610100610558818501613061565b90860152610120908184015187811161065a57840185601f8201121561065a5780518c946105916105888361284d565b96519687612762565b8186528c8087019260071b84010192888411610656578d01915b83831061060757505050505084015261014080910151908301526105d0868601613072565b94878101519084821161060357019080601f830112156105ff5781516105f792880161298a565b909338610243565b8880fd5b8980fd5b84838a0312610656578d8f9182879351906106218261272c565b865182528387015184830152610638818801613053565b90820152610647858701613053565b858201528152019201916105ab565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106cf57816003193601126106cf57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106cf5760203660031901126106cf5760209061ffff6106f46126bc565b166000526000805160206132fb833981519152825261071681600020546130f7565b90519015158152f35b8382346106cf5760203660031901126106cf57356001600160a01b03811681036106cf576103be9061074f61320b565b6131da565b5050346106cf57816003193601126106cf576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106cf57816003193601126106cf576020906107f36128cb565b90516001600160a01b039091168152f35b5050346106cf5760203660031901126106cf5760209061ffff6108256126bc565b1660005260008051602061329b833981519152825261071681600020546130f7565b50346106905781600319360112610690576108606126bc565b92602435906001600160401b03821161068957509261088761088d926020953691016127e5565b90612c24565b9051908152f35b5050346106cf57816003193601126106cf5760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106cf57816003193601126106cf57805161091d916108f682612747565b6008825267776f726d686f6c6560c01b602083015251918291602083526020830190612887565b0390f35b5050346106cf57816003193601126106cf577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106cf57826003193601126106cf576109846126bc565b61098c61283e565b9161099561320b565b61ffff8216908115610a1057507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c9394610a0a916109d285613129565b906000526000805160206132fb8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106cf5760203660031901126106cf5760209061ffff610a3f6126bc565b166000526000805160206132bb833981519152825280600020549051908152f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610690578260031936011261069057610abe613138565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610bb75760ff84871c16908115610baa575b50610b9a57169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b8c575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610b06565b634e487b7160e01b885260118752602488fd5b5050346106cf57816003193601126106cf5760008051602061333b8339815191525490516001600160a01b039091168152602090f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106cf57816003193601126106cf57805161091d91610c6582612747565b60058252640312e312e360dc1b602083015251918291602083526020830190612887565b508260031936011261069057610c9d613138565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b03938481168015908161113c575b6001149081611132575b159081611129575b5061111a5767ffffffffffffffff1981166001178655826110fb575b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116338190036110df5750610d4a613199565b610d52613199565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610dfe610d816128cb565b610d89613199565b610d91613199565b610d99613199565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610df6613199565b61074f613199565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa9182156110d5578a9261109e575b508651631dcbf42b60e11b81529188838781855afa928315611094578b9361105d575b5087519360a0850190811185821017610666578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110535791610f74939187938a91611031575b5086518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af1801561102757610fef575b50610fb0578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311611020575b6110048183612762565b8101031261101c5761101590612feb565b5038610fa7565b8580fd5b503d610ffa565b83513d88823e3d90fd5b61104d91503d808c833e6110458183612762565b81019061307f565b38610f38565b85513d8a823e3d90fd5b9092508881813d831161108d575b6110758183612762565b810103126106625761108690613053565b9138610e69565b503d61106b565b88513d8d823e3d90fd5b9091508781813d83116110ce575b6110b68183612762565b81010312610603576110c790613053565b9038610e46565b503d6110ac565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610d0d565b50825163f92ee8a960e01b8152fd5b90501538610cf1565b303b159150610ce9565b849150610cdf565b5091346106895760203660031901126106895750610716602092356000526000805160206132db83398151915260205260ff6040600020541690565b5081600319360112610690576111946126bc565b602435916111a061320b565b61ffff8083169081156113cb5784156113bb57816000526000805160206132bb8339815191529160209280845287600020548061139257508160005283528587600020558651916111f083612711565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113885761129b938392899161136e575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b0381347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561067f57611312575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466908060408101610a0a565b81813d8311611367575b6113268183612762565b81010312611363577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669361135c610a0a92612feb565b50936112d5565b8480fd5b503d61131c565b61138291503d808b833e6110458183612762565b38611260565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b612677565b5050346106cf57816003193601126106cf5760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b5091346106895760203660031901126106895750805191611443836126f6565b35908115159182810361147f5761091d935280519160f81b60208301526001825261146d82612747565b51918291602083526020830190612887565b600080fd5b508290346106cf57826003193601126106cf5761149f6126bc565b6114a761283e565b916114b061320b565b61ffff8216908115610a1057507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c39394610a0a916114ed85613129565b9060005260008051602061331b8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610690576020366003190112610690578035916001600160a01b038084168403611363577f000000000000000000000000000000000000000000000000000000000000000016330361157d57836103be84613244565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610690576001600160401b038135818111611363576115bf903690840161279e565b60249283359383851161179a573660238601121561179a5784820135936115e58561284d565b946115f288519687612762565b808652602096838888019260051b8201019236841161066257848201925b8484106117745750505050506044356064359461ffff86169081870361147f57608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361176157826000526000805160206132bb8339815191528952838a600020540361173a57848b526000805160206132db833981519152895260ff8a8c20541661172657506116cf846000526000805160206132db8339815191526020526040600020600160ff19825416179055565b5161171657606061038495938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a1610362612943565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161065a578a9161178f839289369188010161279e565b815201930192611610565b8680fd5b508290346106cf57826003193601126106cf576117b96126bc565b6117c161283e565b916117ca61320b565b61ffff8216908115610a1057507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c9394610a0a9161180785613129565b9060005260008051602061329b8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a03682011261068c576118566126bc565b9060249283356001600160401b039081811161067b5761187990369088016127e5565b906044358181116105ff57611891903690890161279e565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611fa857600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f9257908b61194b819361195a8a519b61190d8d6126f6565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a4860190612887565b91848303016084850152612887565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f885782988395611f36575b50611992602080980151612ba9565b80511580611f27575b15611b7e575050928a92859283898997611a0d61ffff8f16968792836000526000805160206132bb8339815191528c526119e16119db8660002054613027565b9b613027565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e4870190612887565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b7457611b03575b5061ffff926060611ae884611afc9460008051602061337b8339815191528460019c60008051602061335b8339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c0860190612887565b910151838203603f190160a0850152612887565b0390a15580f35b9391928185813d8311611b6d575b611b1b8183612762565b8101031261067b576060611ae861ffff95611afc9460008051602061337b8339815191528460019c611b5b60008051602061335b8339815191529c612feb565b509c5050509450949650505092611a77565b503d611b11565b83513d8a823e3d90fd5b919394959250959697989a50511580611efb575b15611dd1578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611dc657908993929197611d93575b50869291611c26918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fff565b03925af1948515611d89578c95611d52575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611d3e5790818d9796959493923b1561067b578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611d3457611d1c575b5060008051602061335b833981519152936060611ae8856001999560008051602061337b83398151915284611afc9761ffff9a51908e8252848201523485820152a1611abb565b611d28909692966126cd565b61101c57938538611cd5565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d82575b611d6a8183612762565b8101031261065e57611d7b90612feb565b9338611c38565b503d611d60565b88513d8e823e3d90fd5b9196509181813d8111611dbf575b611dab8183612762565b8101031261147f5751948791611c26611be2565b503d611da1565b8a51903d90823e3d90fd5b9050611e189350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611ef157611e93575b5091611afc6001956060611ae88560008051602061335b8339815191529760008051602061337b833981519152848d61ffff9a519060028252848201523485820152a1611abb565b9181838195933d8311611eea575b611eab8183612762565b8101031261179a576001956060611ae8611afc9360008051602061335b83398151915297611edb61ffff98612feb565b50959750955050509550611e4b565b503d611ea1565b83513d89823e3d90fd5b5061ffff8a1660005260008051602061329b8339815191528652611f2287600020546130f7565b611b92565b50611f318b6130a4565b61199b565b985093503d80838a3e611f49818a612762565b88019787818a031261069057805185811161068c5789611f6a9183016129db565b98602082015186811161136357611f8192016129c1565b9338611983565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b509134610689576020366003190112610689578235906001600160401b0382116106895750611fee602093611ff39236910161279e565b612ba9565b9051905115158152f35b5050346106cf5760203660031901126106cf5760209061ffff61201e6126bc565b1660005260008051602061331b833981519152825261071681600020546130f7565b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610690576020918260031936011261068c576001600160a01b039181358381169081810361179a576120b761320b565b6120bf613138565b3b15612552577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9384549361214c60ff86161561317c565b60ff199485166001178655303b1561179a57825163011fa75760e71b81528781868183305af180156124465761253f575b50825163689f90c360e01b815282818681305afa90811561244657889161250a575b50156121d9575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa908115612446579061222b9189916124ed575b5082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b8251630b4a1e8960e01b815282818681305afa908115612446579061227d9189916124c0575b5082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b82516384acd1bb60e01b815282818681305afa8015612446578890612488575b6122cd915082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b825163da25b72560e01b815282818681305afa8015612446578890612450575b61231d915082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b825163121d4a8560e31b815282818681305afa90811561244657889161240c575b508161236e927f00000000000000000000000000000000000000000000000000000000000000001691161461317c565b8082518094631d1bfaa160e31b825281305afa918215612403575085916123cc575b506123c3915060ff807f00000000000000000000000000000000000000000000000000000000000000001691161461317c565b388080806121a6565b905081813d83116123fc575b6123e28183612762565b8101031261068c576123f66123c391613053565b38612390565b503d6123d8565b513d87823e3d90fd5b90508281813d831161243f575b6124238183612762565b8101031261067b575190808216820361067b579061236e61233e565b503d612419565b84513d8a823e3d90fd5b508281813d8311612481575b6124668183612762565b8101031261067b5751818116810361067b5761231d906122ed565b503d61245c565b508281813d83116124b9575b61249e8183612762565b8101031261067b5751818116810361067b576122cd9061229d565b503d612494565b6124e09150843d86116124e6575b6124d88183612762565b8101906128ac565b38612251565b503d6124ce565b6125049150843d86116124e6576124d88183612762565b386121ff565b90508281813d8311612538575b6125218183612762565b8101031261067b5761253290613072565b3861219f565b503d612517565b61254b909791976126cd565b953861217d565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106905760203660031901126106905781356001600160a01b038181169391849003611363578060008051602061333b8339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12499283549283169433861415908161266c575b506126575750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b90503314158861261b565b3461147f57600036600319011261147f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361147f57565b6001600160401b0381116126e057604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b038211176126e057604052565b606081019081106001600160401b038211176126e057604052565b608081019081106001600160401b038211176126e057604052565b604081019081106001600160401b038211176126e057604052565b90601f801991011681019081106001600160401b038211176126e057604052565b6001600160401b0381116126e057601f01601f191660200190565b81601f8201121561147f578035906127b582612783565b926127c36040519485612762565b8284526020838301011161147f57816000926020809301838601378301015290565b91909160408184031261147f5760408051916001600160401b03918301828111848210176126e0576040528294813560ff8116810361147f578452602082013592831161147f57602092612839920161279e565b910152565b60243590811515820361147f57565b6001600160401b0381116126e05760051b60200190565b60005b8381106128775750506000910152565b8181015183820152602001612867565b906020916128a081518092818552858086019101612864565b601f01601f1916010190565b9081602091031261147f57516001600160a01b038116810361147f5790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156129375760009161291c575090565b612934915060203d81116124e6576124d88183612762565b90565b6040513d6000823e3d90fd5b604051906129508261272c565b6060808360008152600060208201528160408201520152565b6040519061297682612711565b606060408360008152600060208201520152565b9092919261299781612783565b916129a56040519384612762565b82948284528282011161147f5760206129bf930190612864565b565b9080601f8301121561147f5781516129349260200161298a565b919060808382031261147f57604051906129f48261272c565b819380518352602081015160208401526040810151916001600160401b039283811161147f5781612a269184016129c1565b6040850152606082015192831161147f5760609261283992016129c1565b919060408382031261147f578251906001600160401b039182811161147f5781612a6f9186016129db565b9360208101519083821161147f57019060608282031261147f5760405192612a9684612711565b8251845260208301516020850152604083015190811161147f57612aba92016129c1565b604082015290565b6309945ff160e41b815260406020820181905261293492910190612887565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b8b5750803b1561147f5761ffff60008094612b71604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c4830190612887565b03925af1801561293757612b825750565b6129bf906126cd565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612bb7836126f6565b6000835282815115612c1f5750600181015160fe8116612c035760ff16151583525160018103612be45750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612c33602080920151612ba9565b51612f6a5761ffff82169060009082825260008051602061331b8339815191528152604093612c64858420546130f7565b80612f43575b612f2b57612c77906130a4565b15612d3e5750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612d34578193612d03575b50505090565b9091809350813d8311612d2d575b612d1b8183612762565b81010312610689575051388080612cfd565b503d612d11565b51903d90823e3d90fd5b82829394925260008051602061329b8339815191528152612d61828420546130f7565b15612ec957815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612ebc578495612e8d575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e8457508392612e56575b50508201809211612e42575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e7d575b612e6d8183612762565b810103126106cf57513880612e33565b503d612e63565b513d85823e3d90fd5b9094508181813d8311612eb5575b612ea58183612762565b8101031261068c57519381612dea565b503d612e9b565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612f2057508193612d035750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132fb8339815191528252612f64858420546130f7565b15612c6a565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561293757600091612fbf575b50905090565b82813d8311612fe4575b612fd38183612762565b810103126106895750518038612fb9565b503d612fc9565b51906001600160401b038216820361147f57565b9060ff61302060409295949560008552606060208601526060850190612887565b9416910152565b8060a01c61303b576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361147f57565b519063ffffffff8216820361147f57565b5190811515820361147f57565b9060208282031261147f5781516001600160401b03811161147f5761293492016129c1565b61ffff168060005260008051602061331b8339815191526020526130cc6040600020546130f7565b90816130d6575090565b90506000526000805160206132fb8339815191526020526129346040600020545b8015613123576001811461311d576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b1561313357600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461316a57565b604051633c64f99360e21b8152600490fd5b1561318357565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156131c857565b604051631afcd79f60e31b8152600490fd5b6001600160a01b038116156131f2576129bf90613244565b604051631e4fbdf760e01b815260006004820152602490fd5b60008051602061333b833981519152546001600160a01b0316330361322c57565b60405163118cdaa760e01b8152336004820152602490fd5b60008051602061333b83398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea26469706673582212207bc4f63809fac595a807d3db7f0b018f2f37e2fc46722017fb19171aab94e8f964736f6c63430008130033",hqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0],m4=class m4 extends V1{constructor(...e){if(hqe(e))super(...e);else{const[n,r]=e;super(Z9,m4.linkBytecode(n),r)}}static linkBytecode(e){let n=yK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Z9)}static connect(e,n){return new Js(e,Z9,n)}};ce(m4,"bytecode",yK),ce(m4,"abi",Z9);let YB=m4;const pqe={NttManager:{connect:sqe.connect},NttTransceiver:{connect:oqe.connect}},bqe={NttManager:{connect:fqe.connect},NttTransceiver:{connect:lqe.connect}},mqe={NttManager:{connect:VB.connect},NttTransceiver:{connect:YB.connect}},yqe=[["1.1.0",mqe],["1.0.0",bqe],["0.1.0",pqe]];function gqe(t){for(const[e,n]of yqe)if(Co.abiVersionMatches(t,e))return n;throw new Error(`Unknown ABI version: ${t}`)}class xqe{constructor(e,n,r){ce(this,"manager");ce(this,"address");ce(this,"transceiver");this.manager=e,this.address=n,this.transceiver=r.NttTransceiver.connect(n,e.provider)}getAddress(){return{chain:this.manager.chain,address:Uh(this.manager.chain,this.address)}}encodeFlags(e){return new Uint8Array([e.skipRelay?1:0])}async*setPeer(e){const n=await this.transceiver.setWormholePeer.populateTransaction(ai(e.chain),FL(e));yield this.manager.createUnsignedTx(n,"WormholeTransceiver.registerPeer")}async getPauser(){const e=await this.transceiver.pauser();return new L0(e)}async*setPauser(e){const n=Ui({chain:this.manager.chain,address:e}),r=await this.transceiver.transferPauserCapability.populateTransaction(n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setPauser")}async getPeer(e){const n=await this.transceiver.getWormholePeer(ai(e)),r=fw.decode(n),i=new Uint8Array(32);return sa.equals(i,r)?null:{chain:e,address:Uh(e,r)}}async isEvmChain(e){return await this.transceiver.isWormholeEvmChain(ai(e))}async*setIsEvmChain(e,n){const r=await this.transceiver.setIsWormholeEvmChain.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setIsEvmChain")}async*receive(e){const n=await this.transceiver.receiveMessage.populateTransaction(jv(e));yield this.manager.createUnsignedTx(n,"WormholeTransceiver.receiveMessage")}async isWormholeRelayingEnabled(e){return await this.transceiver.isWormholeRelayingEnabled(ai(e))}async*setIsWormholeRelayingEnabled(e,n){const r=await this.transceiver.setIsWormholeRelayingEnabled.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setWormholeRelayingEnabled")}async isSpecialRelayingEnabled(e){return await this.transceiver.isSpecialRelayingEnabled(ai(e))}async*setIsSpecialRelayingEnabled(e,n){const r=await this.transceiver.setIsSpecialRelayingEnabled.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setSpecialRelayingEnabled")}}class uw{constructor(e,n,r,i,s="1.0.0"){ce(this,"network");ce(this,"chain");ce(this,"provider");ce(this,"contracts");ce(this,"version");ce(this,"tokenAddress");ce(this,"chainId");ce(this,"manager");ce(this,"xcvrs");ce(this,"managerAddress");if(this.network=e,this.chain=n,this.provider=r,this.contracts=i,this.version=s,!i.ntt)throw new Error("No Ntt Contracts provided");this.chainId=HHe.get(e,n),this.tokenAddress=i.ntt.token,this.managerAddress=i.ntt.manager;const a=gqe(this.version);this.manager=a.NttManager.connect(i.ntt.manager,this.provider),i.ntt.transceiver.wormhole!=null?this.xcvrs=[new xqe(this,i.ntt.transceiver.wormhole,a)]:this.xcvrs=[]}async getTransceiver(e){return this.xcvrs[e]||null}async getMode(){return await this.manager.getMode()===0n?"locking":"burning"}async isPaused(){return await this.manager.isPaused()}async*pause(){const e=await this.manager.pause.populateTransaction();yield this.createUnsignedTx(e,"Ntt.pause")}async*unpause(){const e=await this.manager.unpause.populateTransaction();yield this.createUnsignedTx(e,"Ntt.unpause")}async getOwner(){return new L0(await this.manager.owner())}async getPauser(){return new L0(await this.manager.pauser())}async*setOwner(e){const n=new L0(e).toString(),r=await this.manager.transferOwnership.populateTransaction(n);yield this.createUnsignedTx(r,"Ntt.setOwner")}async*setPauser(e){const n=new L0(e).toString(),r=await this.manager.transferPauserCapability.populateTransaction(n);yield this.createUnsignedTx(r,"Ntt.setPauser")}async getThreshold(){return Number(await this.manager.getThreshold())}async isRelayingAvailable(e){return(await Promise.all(this.xcvrs.map(async r=>{const[i,s]=await Promise.all([r.isWormholeRelayingEnabled(e),r.isSpecialRelayingEnabled(e)]);return i||s}))).filter(r=>r).length>0}async getIsExecuted(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return await this.manager.isMessageExecuted(Co.messageDigest(e.emitterChain,n.nttManagerPayload))?!await this.getIsTransferInboundQueued(e):!1}async getIsTransferInboundQueued(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return await this.getInboundQueuedTransfer(e.emitterChain,n.nttManagerPayload)!==null}getIsApproved(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return this.manager.isMessageApproved(Co.messageDigest(e.emitterChain,n.nttManagerPayload))}async getTokenDecimals(){return await V2.getDecimals(this.chain,this.provider,this.tokenAddress)}async getPeer(e){const n=await this.manager.getPeer(ai(e)),r=fw.decode(n.peerAddress),i=new Uint8Array(32);return sa.equals(i,r)?null:{address:{chain:e,address:Uh(e,r)},tokenDecimals:Number(n.tokenDecimals),inboundLimit:await this.getInboundLimit(e)}}static async fromRpc(e,n){const[r,i]=await V2.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);const a=await uw.getVersion(e,s.contracts);return new uw(r,i,e,s.contracts,a)}encodeOptions(e){const n=[];return n.push({index:0,payload:this.xcvrs[0].encodeFlags({skipRelay:!e.automatic})}),n}static async getVersion(e,n){var i;const r=new Js(n.ntt.manager,["function NTT_MANAGER_VERSION() public view returns (string)"],e);try{const s=await r.getFunction("NTT_MANAGER_VERSION").staticCall();if(!s)throw new Error("NTT_MANAGER_VERSION not found");return s}catch(s){throw console.error(`Failed to get NTT_MANAGER_VERSION from contract ${(i=n.ntt)==null?void 0:i.manager}`),s}}async getCustodyAddress(){return this.managerAddress}async quoteDeliveryPrice(e,n){const[,r]=await this.manager.quoteDeliveryPrice(ai(e),Co.encodeTransceiverInstructions(this.encodeOptions(n)));return r}async*setPeer(e,n,r){const i=await this.manager.setPeer.populateTransaction(ai(e.chain),FL(e),n,r);yield this.createUnsignedTx(i,"Ntt.setPeer")}async*setWormholeTransceiverPeer(e){yield*this.xcvrs[0].setPeer(e)}async*transfer(e,n,r,i){const s=new L0(e).toString(),a=await this.quoteDeliveryPrice(r.chain,i),o=V2.getTokenImplementation(this.provider,this.tokenAddress);if(await o.allowance(s,this.managerAddress)<n){const m=await o.approve.populateTransaction(this.managerAddress,n);yield this.createUnsignedTx(Yv(m,s),"Ntt.Approve")}const u=FL(r),h=await this.manager.getFunction("transfer(uint256,uint16,bytes32,bytes32,bool,bytes)").populateTransaction(n,ai(r.chain),u,u,i.queue,Co.encodeTransceiverInstructions(this.encodeOptions(i)),{value:a});yield this.createUnsignedTx(Yv(h,s),"Ntt.transfer")}async*redeem(e){if(e.length!==this.xcvrs.length)throw new Error("Not enough attestations for the registered Transceivers");for(const n in this.xcvrs){const r=this.xcvrs[n],i=e[n];if((i==null?void 0:i.payloadName)!=="WormholeTransfer")throw new Error("Invalid attestation type for redeem");yield*r.receive(i)}}async getCurrentOutboundCapacity(){return await this.manager.getCurrentOutboundCapacity()}async getOutboundLimit(){const e=(await this.manager.getOutboundLimitParams()).limit,n=gK(e),r=await this.getTokenDecimals();return xK(n,r)}async*setOutboundLimit(e){const n=await this.manager.setOutboundLimit.populateTransaction(e);yield this.createUnsignedTx(n,"Ntt.setOutboundLimit")}async getCurrentInboundCapacity(e){return await this.manager.getCurrentInboundCapacity(ai(e))}async getInboundLimit(e){const n=(await this.manager.getInboundLimitParams(ai(e))).limit,r=gK(n),i=await this.getTokenDecimals();return xK(r,i)}async*setInboundLimit(e,n){const r=await this.manager.setInboundLimit.populateTransaction(n,ai(e));yield this.createUnsignedTx(r,"Ntt.setInboundLimit")}async getRateLimitDuration(){return await this.manager.rateLimitDuration()}async getInboundQueuedTransfer(e,n){const r=await this.manager.getInboundQueuedTransfer(Co.messageDigest(e,n));if(r.txTimestamp>0n){const{recipient:i,amount:s,txTimestamp:a}=r,o=await this.getRateLimitDuration();return{recipient:new L0(i),amount:s,rateLimitExpiryTimestamp:Number(a+o)}}return null}async*completeInboundQueuedTransfer(e,n,r){const i=await this.manager.completeInboundQueuedTransfer.populateTransaction(Co.messageDigest(e,n));yield this.createUnsignedTx(i,"Ntt.completeInboundQueuedTransfer")}async verifyAddresses(){var i;const e={manager:this.managerAddress,token:this.tokenAddress,transceiver:{wormhole:(i=this.xcvrs[0])==null?void 0:i.address}},n={manager:this.managerAddress,token:await this.manager.token(),transceiver:{wormhole:(await this.manager.getTransceivers())[0]}},r=(s,a)=>{for(const o in s)typeof s[o]=="object"?(r(s[o],a[o]),Object.keys(s[o]).length===0&&delete s[o]):s[o]===a[o]&&delete s[o]};return r(n,e),Object.keys(n).length>0?n:null}createUnsignedTx(e,n,r=!1){return new Jue(p1e(e,this.chainId),this.network,this.chain,n,r)}}function gK(t){const e=Number(t&0xffn);return{amount:t>>8n,decimals:e}}function xK(t,e){const{amount:n,decimals:r}=t;return vqe(n,r,e)}function vqe(t,e,n){return e==n?t:e>n?t/10n**BigInt(e-n):t*10n**BigInt(n-e)}uA(Ky,"Ntt",uw);class wqe extends nae{async getTokenAccount(e,n){const{getAssociatedTokenAddress:r}=await ss(async()=>{const{getAssociatedTokenAddress:o}=await import("./assets/index-3roRoeod.js");return{getAssociatedTokenAddress:o}},[]),i=new xr(n).unwrap(),s=new xr(e).unwrap(),a=await r(i,s);return{chain:this.chain,address:new xr(a.toString())}}}const Mqe=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),Aqe=new Fe("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"),Lft=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new Fe("So11111111111111111111111111111111111111112");new Fe("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const mf=class mf extends Jse{constructor(e,n){super(e,n??mO(e,mf._platform))}getRpc(e,n={commitment:"confirmed",disableRetryOnRateLimit:!0}){if(e in this.config)return new QE(this.config[e].rpc,n);throw new Error("No configuration available for chain: "+e)}getChain(e,n){if(e in this.config)return new wqe(e,this,n);throw new Error("No configuration available for chain: "+e)}static nativeTokenId(e,n){if(!mf.isSupportedChain(n))throw new Error(`invalid chain: ${n}`);return Nn.chainAddress(n,Y_e)}static isNativeTokenId(e,n,r){return!this.isSupportedChain(n)||r.chain!==n?!1:this.nativeTokenId(e,n)==r}static isSupportedChain(e){return bd(e)===mf._platform}static async getDecimals(e,n,r){if(ci(r))return V0e(mf._platform);let i=await n.getParsedAccountInfo(new xr(r).unwrap());if(!i||!i.value)throw new Error("could not fetch token details");const{decimals:s}=i.value.data.parsed.info;return s}static async getBalance(e,n,r,i){const s=new Fe(r);if(ci(i))return BigInt(await n.getBalance(s));const a=await n.getTokenAccountsByOwner(s,{mint:new xr(i).unwrap()}),o=a.value.length>0?a.value[0].pubkey:s,f=await n.getTokenAccountBalance(o);return BigInt(f.value.amount)}static async getBalances(e,n,r,i){let s;i.includes("native")&&(s=BigInt(await n.getBalance(new Fe(r))));const a=(await Promise.all([Mqe,Aqe].map(f=>new Fe(f)).map(f=>n.getParsedTokenAccountsByOwner(new Fe(r),{programId:f})))).reduce((f,u)=>f.concat(u.value),[]);return i.map(f=>{var m,y,x,w;if(ci(f))return{native:s};const u=new xr(f).toString(),h=(w=(x=(y=(m=a.find(E=>{var I,T;return((T=(I=E==null?void 0:E.account.data.parsed)==null?void 0:I.info)==null?void 0:T.mint)===f}))==null?void 0:m.account.data.parsed)==null?void 0:y.info)==null?void 0:x.tokenAmount)==null?void 0:w.amount;return h?{[u]:BigInt(h)}:{[u]:null}}).reduce((f,u)=>Object.assign(f,u),{})}static async sendWait(e,n,r,i){const s=await Promise.all(r.map(f=>this.sendTxWithRetry(n,f,i))),a=s.map(f=>f.signature),o=s.filter(f=>f.response.value.err).map(f=>f.response.value.err);if(o.length>0)throw new Error(`Failed to confirm transaction: ${o}`);return a}static async sendTxWithRetry(e,n,r={},i=5e3){const s=r.preflightCommitment??e.commitment,a=await e.sendRawTransaction(n,{...r,skipPreflight:!1,maxRetries:0,preflightCommitment:s}),{blockhash:o,lastValidBlockHeight:f}=await e.getLatestBlockhash(),u=e.confirmTransaction({signature:a,blockhash:o,lastValidBlockHeight:f},s);let h=null;for(;!h&&(h=await Promise.race([u,new Promise(m=>setTimeout(()=>{m(null)},i))]),!h);)await e.sendRawTransaction(n,{...r,skipPreflight:!0,maxRetries:0,preflightCommitment:s});return{signature:a,response:h}}static async latestBlock(e,n){return e.getLatestBlockhash(n??e.commitment)}static async getLatestBlock(e){return await e.getSlot()}static async getLatestFinalizedBlock(e){const{lastValidBlockHeight:n}=await this.latestBlock(e,"finalized");return n}static chainFromChainId(e){const n=Q0e(mf._platform,e);if(!n)throw new Error(`No matching genesis hash to determine network and chain: ${e}`);const[r,i]=n;return[r,i]}static async chainFromRpc(e){try{const n=await e.getGenesisHash();return mf.chainFromChainId(n)}catch(n){if(e.rpcEndpoint.includes("http://127")||e.rpcEndpoint.includes("http://localhost")||e.rpcEndpoint==="http://solana-devnet:8899")return["Devnet","Solana"];throw n}}};ce(mf,"_platform",ng);let Am=mf;class ele{constructor(e,n,r,i,s=!1){ce(this,"transaction");ce(this,"network");ce(this,"chain");ce(this,"description");ce(this,"parallelizable");this.transaction=e,this.network=n,this.chain=r,this.description=i,this.parallelizable=s}}function Bft(t){return t.signatures!==void 0&&t.message!==void 0}const vK=t=>typeof t=="string"?ze.Buffer.from(t):t;function Du(t,e){return Fe.findProgramAddressSync(Array.isArray(t)?t.map(vK):[vK(t)],new Fe(e))[0]}function jft(t,e){return{pubkey:new Fe(t),isWritable:!0,isSigner:e}}function Rft(t,e){return{pubkey:new Fe(t),isWritable:!1,isSigner:e}}function ag(t){if(t===null)throw Error("account info is null");return t.data}const tle=new Fe("BPFLoaderUpgradeab1e11111111111111111111111");function Eqe(t){return Du([new Fe(t).toBuffer()],tle)}function Sqe(t){if(t!==void 0)return{connection:t}}let Cqe=class extends Error{constructor(e){super(e),this.name="IdlError"}};var Xt={},Yt={};let Nr=class{constructor(e,n){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=n}makeDestinationObject(){return{}}decode(e,n){throw new Error("Layout is abstract")}encode(e,n,r){throw new Error("Layout is abstract")}getSpan(e,n){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const n=Object.create(this.constructor.prototype);return Object.assign(n,this),n.property=e,n}fromArray(e){}};Yt.Layout=Nr;function CP(t,e){return e.property?t+"["+e.property+"]":t}Yt.nameWithProperty=CP;function Tqe(t,e){if(typeof t!="function")throw new TypeError("Class must be constructor");if(t.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(e&&e instanceof Nr))throw new TypeError("layout must be a Layout");if(e.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");t.layout_=e,e.boundConstructor_=t,e.makeDestinationObject=()=>new t,Object.defineProperty(t.prototype,"encode",{value:function(n,r){return e.encode(this,n,r)},writable:!0}),Object.defineProperty(t,"decode",{value:function(n,r){return e.decode(n,r)},writable:!0})}Yt.bindConstructorLayout=Tqe;let Ys=class extends Nr{isCount(){throw new Error("ExternalLayout is abstract")}};class nle extends Ys{constructor(e,n){if(e===void 0&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,n),this.elementSpan=e}isCount(){return!0}decode(e,n){n===void 0&&(n=0);const r=e.length-n;return Math.floor(r/this.elementSpan)}encode(e,n,r){return 0}}let TP=class extends Ys{constructor(e,n,r){if(!(e instanceof Nr))throw new TypeError("layout must be a Layout");if(n===void 0)n=0;else if(!Number.isInteger(n))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=n}isCount(){return this.layout instanceof ef||this.layout instanceof ku}decode(e,n){return n===void 0&&(n=0),this.layout.decode(e,n+this.offset)}encode(e,n,r){return r===void 0&&(r=0),this.layout.encode(e,n,r+this.offset)}},ef=class extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntLE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntLE(e,r,this.span),this.span}},ku=class extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntBE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntBE(e,r,this.span),this.span}};class y5 extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readIntLE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeIntLE(e,r,this.span),this.span}}class g3 extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readIntBE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeIntBE(e,r,this.span),this.span}}const QB=Math.pow(2,32);function rS(t){const e=Math.floor(t/QB),n=t-e*QB;return{hi32:e,lo32:n}}function iS(t,e){return t*QB+e}let Iqe=class extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readUInt32LE(n+4);return iS(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32LE(i.lo32,r),n.writeUInt32LE(i.hi32,r+4),8}};class Dqe extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32BE(n),i=e.readUInt32BE(n+4);return iS(r,i)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32BE(i.hi32,r),n.writeUInt32BE(i.lo32,r+4),8}}let kqe=class extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readInt32LE(n+4);return iS(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32LE(i.lo32,r),n.writeInt32LE(i.hi32,r+4),8}};class Nqe extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readInt32BE(n),i=e.readUInt32BE(n+4);return iS(r,i)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeInt32BE(i.hi32,r),n.writeUInt32BE(i.lo32,r+4),8}}class rle extends Nr{constructor(e){super(4,e)}decode(e,n){return n===void 0&&(n=0),e.readFloatLE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeFloatLE(e,r),4}}class ile extends Nr{constructor(e){super(4,e)}decode(e,n){return n===void 0&&(n=0),e.readFloatBE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeFloatBE(e,r),4}}class sle extends Nr{constructor(e){super(8,e)}decode(e,n){return n===void 0&&(n=0),e.readDoubleLE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeDoubleLE(e,r),8}}class ale extends Nr{constructor(e){super(8,e)}decode(e,n){return n===void 0&&(n=0),e.readDoubleBE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeDoubleBE(e,r),8}}class ole extends Nr{constructor(e,n,r){if(!(e instanceof Nr))throw new TypeError("elementLayout must be a Layout");if(!(n instanceof Ys&&n.isCount()||Number.isInteger(n)&&0<=n))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(n instanceof Ys)&&0<e.span&&(i=n*e.span),super(i,r),this.elementLayout=e,this.count=n}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0,i=this.count;if(i instanceof Ys&&(i=i.decode(e,n)),0<this.elementLayout.span)r=i*this.elementLayout.span;else{let s=0;for(;s<i;)r+=this.elementLayout.getSpan(e,n+r),++s}return r}decode(e,n){n===void 0&&(n=0);const r=[];let i=0,s=this.count;for(s instanceof Ys&&(s=s.decode(e,n));i<s;)r.push(this.elementLayout.decode(e,n)),n+=this.elementLayout.getSpan(e,n),i+=1;return r}encode(e,n,r){r===void 0&&(r=0);const i=this.elementLayout,s=e.reduce((a,o)=>a+i.encode(o,n,r+a),0);return this.count instanceof Ys&&this.count.encode(e.length,n,r),s}}let cle=class extends Nr{constructor(e,n,r){if(!(Array.isArray(e)&&e.reduce((s,a)=>s&&a instanceof Nr,!0)))throw new TypeError("fields must be array of Layout instances");typeof n=="boolean"&&r===void 0&&(r=n,n=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,a)=>s+a.getSpan(),0)}catch{}super(i,n),this.fields=e,this.decodePrefixes=!!r}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;try{r=this.fields.reduce((i,s)=>{const a=s.getSpan(e,n);return n+=a,i+a},0)}catch{throw new RangeError("indeterminate span")}return r}decode(e,n){n===void 0&&(n=0);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(e,n)),n+=i.getSpan(e,n),this.decodePrefixes&&e.length===n)break;return r}encode(e,n,r){r===void 0&&(r=0);const i=r;let s=0,a=0;for(const o of this.fields){let f=o.span;if(a=0<f?f:0,o.property!==void 0){const u=e[o.property];u!==void 0&&(a=o.encode(u,n,r),0>f&&(f=o.getSpan(n,r)))}s=r,r+=f}return s+a-i}fromArray(e){const n=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<e.length&&(n[r.property]=e.shift());return n}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const n of this.fields)if(n.property===e)return n}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let n=0;for(const r of this.fields){if(r.property===e)return n;0>r.span?n=-1:0<=n&&(n+=r.span)}}},IP=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},lw=class extends IP{constructor(e,n){if(!(e instanceof Ys&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(n||e.property||"variant"),this.layout=e}decode(e,n){return this.layout.decode(e,n)}encode(e,n,r){return this.layout.encode(e,n,r)}},DP=class extends Nr{constructor(e,n,r){const i=e instanceof ef||e instanceof ku;if(i)e=new lw(new TP(e));else if(e instanceof Ys&&e.isCount())e=new lw(e);else if(!(e instanceof IP))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(n===void 0&&(n=null),!(n===null||n instanceof Nr))throw new TypeError("defaultLayout must be null or a Layout");if(n!==null){if(0>n.span)throw new Error("defaultLayout must have constant span");n.property===void 0&&(n=n.replicate("content"))}let s=-1;n&&(s=n.span,0<=s&&i&&(s+=e.layout.span)),super(s,r),this.discriminator=e,this.usesPrefixDiscriminator=i,this.defaultLayout=n,this.registry={};let a=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(o){return a(o)},this.configGetSourceVariant=function(o){a=o.bind(this)}}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);const r=this.getVariant(e,n);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,n)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const n=this.registry[e[this.discriminator.property]];if(n&&(!n.layout||e.hasOwnProperty(n.property)))return n}else for(const n in this.registry){const r=this.registry[n];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,n){n===void 0&&(n=0);let r;const i=this.discriminator,s=i.decode(e,n);let a=this.registry[s];if(a===void 0){let o=0;a=this.defaultLayout,this.usesPrefixDiscriminator&&(o=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[a.property]=this.defaultLayout.decode(e,n+o)}else r=a.decode(e,n);return r}encode(e,n,r){r===void 0&&(r=0);const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,a=this.defaultLayout;let o=0;return this.usesPrefixDiscriminator&&(o=s.layout.span),s.encode(e[s.property],n,r),o+a.encode(e[a.property],n,r+o)}return i.encode(e,n,r)}addVariant(e,n,r){const i=new fle(this,e,n,r);return this.registry[e]=i,i}getVariant(e,n){let r=e;return ze.Buffer.isBuffer(e)&&(n===void 0&&(n=0),r=this.discriminator.decode(e,n)),this.registry[r]}},fle=class extends Nr{constructor(e,n,r,i){if(!(e instanceof DP))throw new TypeError("union must be a Union");if(!Number.isInteger(n)||0>n)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof Nr))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=r?r.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=n,this.layout=r||null}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,n+r)}decode(e,n){const r=this.makeDestinationObject();if(n===void 0&&(n=0),this!==this.union.getVariant(e,n))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,n+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,n,r){r===void 0&&(r=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,n,r);let s=i;if(this.layout&&(this.layout.encode(e[this.property],n,r+i),s+=this.layout.getSpan(n,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};function V5(t){return 0>t&&(t+=4294967296),t}class kP extends Nr{constructor(e,n,r){if(!(e instanceof ef||e instanceof ku))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof n=="string"&&r===void 0&&(r=n,n=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!n,this.fields=[];let i=0;this._packedSetValue=function(s){return i=V5(s),this},this._packedGetValue=function(){return i}}decode(e,n){const r=this.makeDestinationObject();n===void 0&&(n=0);const i=this.word.decode(e,n);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(r[s.property]=s.decode(i));return r}encode(e,n,r){r===void 0&&(r=0);const i=this.word.decode(n,r);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const a=e[s.property];a!==void 0&&s.encode(a)}return this.word.encode(this._packedGetValue(),n,r)}addField(e,n){const r=new r4(this,e,n);return this.fields.push(r),r}addBoolean(e){const n=new ule(this,e);return this.fields.push(n),n}fieldFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const n of this.fields)if(n.property===e)return n}}class r4{constructor(e,n,r){if(!(e instanceof kP))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(n)||0>=n)throw new TypeError("bits must be positive integer");const i=8*e.span,s=e.fields.reduce((a,o)=>a+o.bits,0);if(n+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=e,this.bits=n,this.valueMask=(1<<n)-1,n===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-n),this.wordMask=V5(this.valueMask<<this.start),this.property=r}decode(){const e=this.container._packedGetValue();return V5(e&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==V5(e&this.valueMask))throw new TypeError(CP("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const n=this.container._packedGetValue(),r=V5(e<<this.start);this.container._packedSetValue(V5(n&~this.wordMask)|r)}}let ule=class extends r4{constructor(e,n){super(e,1,n)}decode(e,n){return!!r4.prototype.decode.call(this,e,n)}encode(e){return typeof e=="boolean"&&(e=+e),r4.prototype.encode.call(this,e)}},lle=class extends Nr{constructor(e,n){if(!(e instanceof Ys&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof Ys||(r=e),super(r,n),this.length=e}getSpan(e,n){let r=this.span;return 0>r&&(r=this.length.decode(e,n)),r}decode(e,n){n===void 0&&(n=0);let r=this.span;return 0>r&&(r=this.length.decode(e,n)),e.slice(n,n+r)}encode(e,n,r){let i=this.length;if(this.length instanceof Ys&&(i=e.length),!(ze.Buffer.isBuffer(e)&&i===e.length))throw new TypeError(CP("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(r+i>n.length)throw new RangeError("encoding overruns Buffer");return n.write(e.toString("hex"),r,i,"hex"),this.length instanceof Ys&&this.length.encode(i,n,r),i}};class dle extends Nr{constructor(e){super(-1,e)}getSpan(e,n){if(!ze.Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");n===void 0&&(n=0);let r=n;for(;r<e.length&&e[r]!==0;)r+=1;return 1+r-n}decode(e,n,r){n===void 0&&(n=0);let i=this.getSpan(e,n);return e.slice(n,n+i-1).toString("utf-8")}encode(e,n,r){r===void 0&&(r=0),typeof e!="string"&&(e=e.toString());const i=new ze.Buffer(e,"utf8"),s=i.length;if(r+s>n.length)throw new RangeError("encoding overruns Buffer");return i.copy(n,r),n[r+s]=0,s+1}}class hle extends Nr{constructor(e,n){if(typeof e=="string"&&n===void 0&&(n=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,n),this.maxSpan=e}getSpan(e,n){if(!ze.Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return n===void 0&&(n=0),e.length-n}decode(e,n,r){n===void 0&&(n=0);let i=this.getSpan(e,n);if(0<=this.maxSpan&&this.maxSpan<i)throw new RangeError("text length exceeds maxSpan");return e.slice(n,n+i).toString("utf-8")}encode(e,n,r){r===void 0&&(r=0),typeof e!="string"&&(e=e.toString());const i=new ze.Buffer(e,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(r+s>n.length)throw new RangeError("encoding overruns Buffer");return i.copy(n,r),s}}class ple extends Nr{constructor(e,n){super(0,n),this.value=e}decode(e,n,r){return this.value}encode(e,n,r){return 0}}Yt.ExternalLayout=Ys;Yt.GreedyCount=nle;Yt.OffsetLayout=TP;Yt.UInt=ef;Yt.UIntBE=ku;Yt.Int=y5;Yt.IntBE=g3;Yt.Float=rle;Yt.FloatBE=ile;Yt.Double=sle;Yt.DoubleBE=ale;Yt.Sequence=ole;Yt.Structure=cle;Yt.UnionDiscriminator=IP;Yt.UnionLayoutDiscriminator=lw;Yt.Union=DP;Yt.VariantLayout=fle;Yt.BitStructure=kP;Yt.BitField=r4;Yt.Boolean=ule;Yt.Blob=lle;Yt.CString=dle;Yt.UTF8=hle;Yt.Constant=ple;Yt.greedy=(t,e)=>new nle(t,e);Yt.offset=(t,e,n)=>new TP(t,e,n);Yt.u8=t=>new ef(1,t);Yt.u16=t=>new ef(2,t);Yt.u24=t=>new ef(3,t);Yt.u32=t=>new ef(4,t);Yt.u40=t=>new ef(5,t);Yt.u48=t=>new ef(6,t);Yt.nu64=t=>new Iqe(t);Yt.u16be=t=>new ku(2,t);Yt.u24be=t=>new ku(3,t);Yt.u32be=t=>new ku(4,t);Yt.u40be=t=>new ku(5,t);Yt.u48be=t=>new ku(6,t);Yt.nu64be=t=>new Dqe(t);Yt.s8=t=>new y5(1,t);Yt.s16=t=>new y5(2,t);Yt.s24=t=>new y5(3,t);Yt.s32=t=>new y5(4,t);Yt.s40=t=>new y5(5,t);Yt.s48=t=>new y5(6,t);Yt.ns64=t=>new kqe(t);Yt.s16be=t=>new g3(2,t);Yt.s24be=t=>new g3(3,t);Yt.s32be=t=>new g3(4,t);Yt.s40be=t=>new g3(5,t);Yt.s48be=t=>new g3(6,t);Yt.ns64be=t=>new Nqe(t);Yt.f32=t=>new rle(t);Yt.f32be=t=>new ile(t);Yt.f64=t=>new sle(t);Yt.f64be=t=>new ale(t);Yt.struct=(t,e,n)=>new cle(t,e,n);Yt.bits=(t,e,n)=>new kP(t,e,n);Yt.seq=(t,e,n)=>new ole(t,e,n);Yt.union=(t,e,n)=>new DP(t,e,n);Yt.unionLayoutDiscriminator=(t,e)=>new lw(t,e);Yt.blob=(t,e)=>new lle(t,e);Yt.cstr=t=>new dle(t);Yt.utf8=(t,e)=>new hle(t,e);Yt.const=(t,e)=>new ple(t,e);const Lqe=da(V_e);(function(t){var e=an&&an.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=Yt,r=Lqe,i=e(o3);var s=Yt;Object.defineProperty(t,"u8",{enumerable:!0,get:function(){return s.u8}}),Object.defineProperty(t,"i8",{enumerable:!0,get:function(){return s.s8}}),Object.defineProperty(t,"u16",{enumerable:!0,get:function(){return s.u16}}),Object.defineProperty(t,"i16",{enumerable:!0,get:function(){return s.s16}}),Object.defineProperty(t,"u32",{enumerable:!0,get:function(){return s.u32}}),Object.defineProperty(t,"i32",{enumerable:!0,get:function(){return s.s32}}),Object.defineProperty(t,"f32",{enumerable:!0,get:function(){return s.f32}}),Object.defineProperty(t,"f64",{enumerable:!0,get:function(){return s.f64}}),Object.defineProperty(t,"struct",{enumerable:!0,get:function(){return s.struct}});class a extends n.Layout{constructor(d,p,b){super(d,b),this.blob=(0,n.blob)(d),this.signed=p}decode(d,p=0){const b=new i.default(this.blob.decode(d,p),10,"le");return this.signed?b.fromTwos(this.span*8).clone():b}encode(d,p,b=0){return this.signed&&(d=d.toTwos(this.span*8)),this.blob.encode(d.toArrayLike(ze.Buffer,"le",this.span),p,b)}}function o(c){return new a(8,!1,c)}t.u64=o;function f(c){return new a(8,!0,c)}t.i64=f;function u(c){return new a(16,!1,c)}t.u128=u;function h(c){return new a(16,!0,c)}t.i128=h;function m(c){return new a(32,!1,c)}t.u256=m;function y(c){return new a(32,!0,c)}t.i256=y;class x extends n.Layout{constructor(d,p,b,g){super(d.span,g),this.layout=d,this.decoder=p,this.encoder=b}decode(d,p){return this.decoder(this.layout.decode(d,p))}encode(d,p,b){return this.layout.encode(this.encoder(d),p,b)}getSpan(d,p){return this.layout.getSpan(d,p)}}function w(c){return new x((0,n.blob)(32),d=>new r.PublicKey(d),d=>d.toBuffer(),c)}t.publicKey=w;class E extends n.Layout{constructor(d,p){super(-1,p),this.layout=d,this.discriminator=(0,n.u8)()}encode(d,p,b=0){return d==null?this.discriminator.encode(0,p,b):(this.discriminator.encode(1,p,b),this.layout.encode(d,p,b+1)+1)}decode(d,p=0){const b=this.discriminator.decode(d,p);if(b===0)return null;if(b===1)return this.layout.decode(d,p+1);throw new Error("Invalid option "+this.property)}getSpan(d,p=0){const b=this.discriminator.decode(d,p);if(b===0)return 1;if(b===1)return this.layout.getSpan(d,p+1)+1;throw new Error("Invalid option "+this.property)}}function I(c,d){return new E(c,d)}t.option=I;function T(c){return new x((0,n.u8)(),D,k,c)}t.bool=T;function D(c){if(c===0)return!1;if(c===1)return!0;throw new Error("Invalid bool: "+c)}function k(c){return c?1:0}function N(c,d){const p=(0,n.u32)("length"),b=(0,n.struct)([p,(0,n.seq)(c,(0,n.offset)(p,-p.span),"values")]);return new x(b,({values:g})=>g,g=>({values:g}),d)}t.vec=N;function R(c,d,p){const b=(0,n.struct)([o("tag"),d.replicate("data")]);function g({tag:M,data:S}){if(!M.eq(c))throw new Error("Invalid tag, expected: "+c.toString("hex")+", got: "+M.toString("hex"));return S}return new x(b,g,M=>({tag:c,data:M}),p)}t.tagged=R;function _(c){const d=(0,n.u32)("length"),p=(0,n.struct)([d,(0,n.blob)((0,n.offset)(d,-d.span),"data")]);return new x(p,({data:b})=>b,b=>({data:b}),c)}t.vecU8=_;function F(c){return new x(_(),d=>d.toString("utf-8"),d=>ze.Buffer.from(d,"utf-8"),c)}t.str=F;function L(c,d,p){const b=(0,n.union)(p??(0,n.u8)(),d);return c.forEach((g,M)=>b.addVariant(M,g,g.property)),b}t.rustEnum=L;function B(c,d,p){const b=(0,n.struct)([(0,n.seq)(c,d,"values")]);return new x(b,({values:g})=>g,g=>({values:g}),p)}t.array=B;class P extends n.Layout{constructor(d,p,b){super(d.span+p.span,b),this.keyLayout=d,this.valueLayout=p}decode(d,p){p=p||0;const b=this.keyLayout.decode(d,p),g=this.valueLayout.decode(d,p+this.keyLayout.getSpan(d,p));return[b,g]}encode(d,p,b){b=b||0;const g=this.keyLayout.encode(d[0],p,b),M=this.valueLayout.encode(d[1],p,b+g);return g+M}getSpan(d,p){return this.keyLayout.getSpan(d,p)+this.valueLayout.getSpan(d,p)}}function C(c,d,p){const b=(0,n.u32)("length"),g=(0,n.struct)([b,(0,n.seq)(new P(c,d),(0,n.offset)(b,-b.span),"values")]);return new x(g,({values:M})=>new Map(M),M=>({values:Array.from(M.entries())}),p)}t.map=C})(Xt);function ble(t,e){switch(e.type.kind){case"struct":return e.type.fields.map(n=>L6(t,n.type)).reduce((n,r)=>n+r,0);case"enum":{const n=e.type.variants.map(r=>r.fields?r.fields.map(i=>typeof i=="object"&&"name"in i?L6(t,i.type):L6(t,i)).reduce((i,s)=>i+s,0):0);return Math.max(...n)+1}case"alias":return L6(t,e.type.value)}}function L6(t,e){var n;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+L6(t,e.option);if("coption"in e)return 4+L6(t,e.coption);if("defined"in e){const r=((n=t.types)==null?void 0:n.filter(s=>s.name===e.defined))??[];if(r.length!==1)throw new Cqe(`Type not found: ${JSON.stringify(e)}`);let i=r[0];return ble(t,i)}if("array"in e){let r=e.array[0],i=e.array[1];return L6(t,r)*i}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function Lb(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,n){return n===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Bqe(t){return t.charAt(0).toUpperCase()+t.slice(1)}var NP={exports:{}};const jqe=/[\p{Lu}]/u,Rqe=/[\p{Ll}]/u,wK=/^[\p{Lu}](?![\p{Lu}])/gu,mle=/([\p{Alpha}\p{N}_]|$)/u,yle=/[_.\- ]+/,_qe=new RegExp("^"+yle.source),MK=new RegExp(yle.source+mle.source,"gu"),AK=new RegExp("\\d+"+mle.source,"gu"),Oqe=(t,e,n)=>{let r=!1,i=!1,s=!1;for(let a=0;a<t.length;a++){const o=t[a];r&&jqe.test(o)?(t=t.slice(0,a)+"-"+t.slice(a),r=!1,s=i,i=!0,a++):i&&s&&Rqe.test(o)?(t=t.slice(0,a-1)+"-"+t.slice(a-1),s=i,i=!1,r=!0):(r=e(o)===o&&n(o)!==o,s=i,i=n(o)===o&&e(o)!==o)}return t},Fqe=(t,e)=>(wK.lastIndex=0,t.replace(wK,n=>e(n))),Pqe=(t,e)=>(MK.lastIndex=0,AK.lastIndex=0,t.replace(MK,(n,r)=>e(r)).replace(AK,n=>e(n))),gle=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");if(e={pascalCase:!1,preserveConsecutiveUppercase:!1,...e},Array.isArray(t)?t=t.map(s=>s.trim()).filter(s=>s.length).join("-"):t=t.trim(),t.length===0)return"";const n=e.locale===!1?s=>s.toLowerCase():s=>s.toLocaleLowerCase(e.locale),r=e.locale===!1?s=>s.toUpperCase():s=>s.toLocaleUpperCase(e.locale);return t.length===1?e.pascalCase?r(t):n(t):(t!==n(t)&&(t=Oqe(t,n,r)),t=t.replace(_qe,""),e.preserveConsecutiveUppercase?t=Fqe(t,n):t=n(t),e.pascalCase&&(t=r(t.charAt(0))+t.slice(1)),Pqe(t,r))};NP.exports=gle;NP.exports.default=gle;var zqe=NP.exports;const ni=hs(zqe);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Uqe=4,EK=0,SK=1,Wqe=2;function x3(t){let e=t.length;for(;--e>=0;)t[e]=0}const Hqe=0,xle=1,qqe=2,Gqe=3,Vqe=258,LP=29,og=256,Em=og+1+LP,Y2=30,BP=19,vle=2*Em+1,B6=15,YD=16,Yqe=7,jP=256,wle=16,Mle=17,Ale=18,ZB=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Tx=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Qqe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ele=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zqe=512,wf=new Array((Em+2)*2);x3(wf);const i4=new Array(Y2*2);x3(i4);const Sm=new Array(Zqe);x3(Sm);const Cm=new Array(Vqe-Gqe+1);x3(Cm);const RP=new Array(LP);x3(RP);const dw=new Array(Y2);x3(dw);function QD(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let Sle,Cle,Tle;function ZD(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const Ile=t=>t<256?Sm[t]:Sm[256+(t>>>7)],Tm=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},Zs=(t,e,n)=>{t.bi_valid>YD-n?(t.bi_buf|=e<<t.bi_valid&65535,Tm(t,t.bi_buf),t.bi_buf=e>>YD-t.bi_valid,t.bi_valid+=n-YD):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},v1=(t,e,n)=>{Zs(t,n[e*2],n[e*2+1])},Dle=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},Kqe=t=>{t.bi_valid===16?(Tm(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},$qe=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,f=e.stat_desc.max_length;let u,h,m,y,x,w,E=0;for(y=0;y<=B6;y++)t.bl_count[y]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<vle;u++)h=t.heap[u],y=n[n[h*2+1]*2+1]+1,y>f&&(y=f,E++),n[h*2+1]=y,!(h>r)&&(t.bl_count[y]++,x=0,h>=o&&(x=a[h-o]),w=n[h*2],t.opt_len+=w*(y+x),s&&(t.static_len+=w*(i[h*2+1]+x)));if(E!==0){do{for(y=f-1;t.bl_count[y]===0;)y--;t.bl_count[y]--,t.bl_count[y+1]+=2,t.bl_count[f]--,E-=2}while(E>0);for(y=f;y!==0;y--)for(h=t.bl_count[y];h!==0;)m=t.heap[--u],!(m>r)&&(n[m*2+1]!==y&&(t.opt_len+=(y-n[m*2+1])*n[m*2],n[m*2+1]=y),h--)}},kle=(t,e,n)=>{const r=new Array(B6+1);let i=0,s,a;for(s=1;s<=B6;s++)i=i+n[s-1]<<1,r[s]=i;for(a=0;a<=e;a++){let o=t[a*2+1];o!==0&&(t[a*2]=Dle(r[o]++,o))}},Xqe=()=>{let t,e,n,r,i;const s=new Array(B6+1);for(n=0,r=0;r<LP-1;r++)for(RP[r]=n,t=0;t<1<<ZB[r];t++)Cm[n++]=r;for(Cm[n-1]=r,i=0,r=0;r<16;r++)for(dw[r]=i,t=0;t<1<<Tx[r];t++)Sm[i++]=r;for(i>>=7;r<Y2;r++)for(dw[r]=i<<7,t=0;t<1<<Tx[r]-7;t++)Sm[256+i++]=r;for(e=0;e<=B6;e++)s[e]=0;for(t=0;t<=143;)wf[t*2+1]=8,t++,s[8]++;for(;t<=255;)wf[t*2+1]=9,t++,s[9]++;for(;t<=279;)wf[t*2+1]=7,t++,s[7]++;for(;t<=287;)wf[t*2+1]=8,t++,s[8]++;for(kle(wf,Em+1,s),t=0;t<Y2;t++)i4[t*2+1]=5,i4[t*2]=Dle(t,5);Sle=new QD(wf,ZB,og+1,Em,B6),Cle=new QD(i4,Tx,0,Y2,B6),Tle=new QD(new Array(0),Qqe,0,BP,Yqe)},Nle=t=>{let e;for(e=0;e<Em;e++)t.dyn_ltree[e*2]=0;for(e=0;e<Y2;e++)t.dyn_dtree[e*2]=0;for(e=0;e<BP;e++)t.bl_tree[e*2]=0;t.dyn_ltree[jP*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Lle=t=>{t.bi_valid>8?Tm(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},CK=(t,e,n,r)=>{const i=e*2,s=n*2;return t[i]<t[s]||t[i]===t[s]&&r[e]<=r[n]},KD=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&CK(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!CK(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},TK=(t,e,n)=>{let r,i,s=0,a,o;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+s++]&255,r+=(t.pending_buf[t.sym_buf+s++]&255)<<8,i=t.pending_buf[t.sym_buf+s++],r===0?v1(t,i,e):(a=Cm[i],v1(t,a+og+1,e),o=ZB[a],o!==0&&(i-=RP[a],Zs(t,i,o)),r--,a=Ile(r),v1(t,a,n),o=Tx[a],o!==0&&(r-=dw[a],Zs(t,r,o)));while(s<t.sym_next);v1(t,jP,e)},KB=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,s=e.stat_desc.elems;let a,o,f=-1,u;for(t.heap_len=0,t.heap_max=vle,a=0;a<s;a++)n[a*2]!==0?(t.heap[++t.heap_len]=f=a,t.depth[a]=0):n[a*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,a=t.heap_len>>1;a>=1;a--)KD(t,n,a);u=s;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],KD(t,n,1),o=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=o,n[u*2]=n[a*2]+n[o*2],t.depth[u]=(t.depth[a]>=t.depth[o]?t.depth[a]:t.depth[o])+1,n[a*2+1]=n[o*2+1]=u,t.heap[1]=u++,KD(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],$qe(t,e),kle(n,f,t.bl_count)},IK=(t,e,n)=>{let r,i=-1,s,a=e[0*2+1],o=0,f=7,u=4;for(a===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)s=a,a=e[(r+1)*2+1],!(++o<f&&s===a)&&(o<u?t.bl_tree[s*2]+=o:s!==0?(s!==i&&t.bl_tree[s*2]++,t.bl_tree[wle*2]++):o<=10?t.bl_tree[Mle*2]++:t.bl_tree[Ale*2]++,o=0,i=s,a===0?(f=138,u=3):s===a?(f=6,u=3):(f=7,u=4))},DK=(t,e,n)=>{let r,i=-1,s,a=e[0*2+1],o=0,f=7,u=4;for(a===0&&(f=138,u=3),r=0;r<=n;r++)if(s=a,a=e[(r+1)*2+1],!(++o<f&&s===a)){if(o<u)do v1(t,s,t.bl_tree);while(--o!==0);else s!==0?(s!==i&&(v1(t,s,t.bl_tree),o--),v1(t,wle,t.bl_tree),Zs(t,o-3,2)):o<=10?(v1(t,Mle,t.bl_tree),Zs(t,o-3,3)):(v1(t,Ale,t.bl_tree),Zs(t,o-11,7));o=0,i=s,a===0?(f=138,u=3):s===a?(f=6,u=3):(f=7,u=4)}},Jqe=t=>{let e;for(IK(t,t.dyn_ltree,t.l_desc.max_code),IK(t,t.dyn_dtree,t.d_desc.max_code),KB(t,t.bl_desc),e=BP-1;e>=3&&t.bl_tree[Ele[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},eGe=(t,e,n,r)=>{let i;for(Zs(t,e-257,5),Zs(t,n-1,5),Zs(t,r-4,4),i=0;i<r;i++)Zs(t,t.bl_tree[Ele[i]*2+1],3);DK(t,t.dyn_ltree,e-1),DK(t,t.dyn_dtree,n-1)},tGe=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return EK;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return SK;for(n=32;n<og;n++)if(t.dyn_ltree[n*2]!==0)return SK;return EK};let kK=!1;const nGe=t=>{kK||(Xqe(),kK=!0),t.l_desc=new ZD(t.dyn_ltree,Sle),t.d_desc=new ZD(t.dyn_dtree,Cle),t.bl_desc=new ZD(t.bl_tree,Tle),t.bi_buf=0,t.bi_valid=0,Nle(t)},Ble=(t,e,n,r)=>{Zs(t,(Hqe<<1)+(r?1:0),3),Lle(t),Tm(t,n),Tm(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},rGe=t=>{Zs(t,xle<<1,3),v1(t,jP,wf),Kqe(t)},iGe=(t,e,n,r)=>{let i,s,a=0;t.level>0?(t.strm.data_type===Wqe&&(t.strm.data_type=tGe(t)),KB(t,t.l_desc),KB(t,t.d_desc),a=Jqe(t),i=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&e!==-1?Ble(t,e,n,r):t.strategy===Uqe||s===i?(Zs(t,(xle<<1)+(r?1:0),3),TK(t,wf,i4)):(Zs(t,(qqe<<1)+(r?1:0),3),eGe(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),TK(t,t.dyn_ltree,t.dyn_dtree)),Nle(t),r&&Lle(t)},sGe=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(Cm[n]+og+1)*2]++,t.dyn_dtree[Ile(e)*2]++),t.sym_next===t.sym_end);var aGe=nGe,oGe=Ble,cGe=iGe,fGe=sGe,uGe=rGe,lGe={_tr_init:aGe,_tr_stored_block:oGe,_tr_flush_block:cGe,_tr_tally:fGe,_tr_align:uGe};const dGe=(t,e,n,r)=>{let i=t&65535|0,s=t>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,s=s+i|0;while(--a);i%=65521,s%=65521}return i|s<<16|0};var Im=dGe;const hGe=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},pGe=new Uint32Array(hGe()),bGe=(t,e,n,r)=>{const i=pGe,s=r+n;t^=-1;for(let a=r;a<s;a++)t=t>>>8^i[(t^e[a])&255];return t^-1};var s0=bGe,t5={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},g5={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:mGe,_tr_stored_block:$B,_tr_flush_block:yGe,_tr_tally:sd,_tr_align:gGe}=lGe,{Z_NO_FLUSH:ad,Z_PARTIAL_FLUSH:xGe,Z_FULL_FLUSH:vGe,Z_FINISH:Io,Z_BLOCK:NK,Z_OK:T0,Z_STREAM_END:LK,Z_STREAM_ERROR:j1,Z_DATA_ERROR:wGe,Z_BUF_ERROR:$D,Z_DEFAULT_COMPRESSION:MGe,Z_FILTERED:AGe,Z_HUFFMAN_ONLY:K9,Z_RLE:EGe,Z_FIXED:SGe,Z_DEFAULT_STRATEGY:CGe,Z_UNKNOWN:TGe,Z_DEFLATED:sS}=g5,IGe=9,DGe=15,kGe=8,NGe=29,LGe=256,XB=LGe+1+NGe,BGe=30,jGe=19,RGe=2*XB+1,_Ge=15,Jn=3,Pl=258,R1=Pl+Jn+1,OGe=32,S8=42,_P=57,JB=69,ej=73,tj=91,nj=103,j6=113,Bb=666,Es=1,v3=2,n5=3,w3=4,FGe=3,R6=(t,e)=>(t.msg=t5[e],e),BK=t=>t*2-(t>4?9:0),il=t=>{let e=t.length;for(;--e>=0;)t[e]=0},PGe=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let zGe=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask,od=zGe;const wa=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},ja=(t,e)=>{yGe(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wa(t.strm)},br=(t,e)=>{t.pending_buf[t.pending++]=e},K3=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},rj=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=Im(t.adler,e,i,n):t.state.wrap===2&&(t.adler=s0(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},jle=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,s,a=t.prev_length,o=t.nice_match;const f=t.strstart>t.w_size-R1?t.strstart-(t.w_size-R1):0,u=t.window,h=t.w_mask,m=t.prev,y=t.strstart+Pl;let x=u[r+a-1],w=u[r+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(i=e,!(u[i+a]!==w||u[i+a-1]!==x||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<y);if(s=Pl-(y-r),r=y-Pl,s>a){if(t.match_start=e,a=s,s>=o)break;x=u[r+a-1],w=u[r+a]}}while((e=m[e&h])>f&&--n!==0);return a<=t.lookahead?a:t.lookahead},C8=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-R1)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),PGe(t),r+=e),t.strm.avail_in===0)break;if(n=rj(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=Jn)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=od(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=od(t,t.ins_h,t.window[i+Jn-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<Jn)););}while(t.lookahead<R1&&t.strm.avail_in!==0)},Rle=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,s,a=0,o=t.strm.avail_in;do{if(r=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s||(s=t.strm.avail_out-s,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>s&&(r=s),r<n&&(r===0&&e!==Io||e===ad||r!==i+t.strm.avail_in)))break;a=e===Io&&r===i+t.strm.avail_in?1:0,$B(t,0,0,a),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,wa(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(rj(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(a===0);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),a?w3:e!==ad&&e!==Io&&t.strm.avail_in===0&&t.strstart===t.block_start?v3:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(rj(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,n=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=n||(i||e===Io)&&e!==ad&&t.strm.avail_in===0&&i<=s)&&(r=i>s?s:i,a=e===Io&&t.strm.avail_in===0&&r===i?1:0,$B(t,t.block_start,r,a),t.block_start+=r,wa(t.strm)),a?n5:Es)},XD=(t,e)=>{let n,r;for(;;){if(t.lookahead<R1){if(C8(t),t.lookahead<R1&&e===ad)return Es;if(t.lookahead===0)break}if(n=0,t.lookahead>=Jn&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-R1&&(t.match_length=jle(t,n)),t.match_length>=Jn)if(r=sd(t,t.strstart-t.match_start,t.match_length-Jn),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Jn){t.match_length--;do t.strstart++,t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=od(t,t.ins_h,t.window[t.strstart+1]);else r=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=t.strstart<Jn-1?t.strstart:Jn-1,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},j5=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<R1){if(C8(t),t.lookahead<R1&&e===ad)return Es;if(t.lookahead===0)break}if(n=0,t.lookahead>=Jn&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=Jn-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-R1&&(t.match_length=jle(t,n),t.match_length<=5&&(t.strategy===AGe||t.match_length===Jn&&t.strstart-t.match_start>4096)&&(t.match_length=Jn-1)),t.prev_length>=Jn&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-Jn,r=sd(t,t.strstart-1-t.prev_match,t.prev_length-Jn),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=Jn-1,t.strstart++,r&&(ja(t,!1),t.strm.avail_out===0))return Es}else if(t.match_available){if(r=sd(t,0,t.window[t.strstart-1]),r&&ja(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Es}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=sd(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<Jn-1?t.strstart:Jn-1,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},UGe=(t,e)=>{let n,r,i,s;const a=t.window;for(;;){if(t.lookahead<=Pl){if(C8(t),t.lookahead<=Pl&&e===ad)return Es;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=Jn&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){s=t.strstart+Pl;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<s);t.match_length=Pl-(s-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Jn?(n=sd(t,1,t.match_length-Jn),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=0,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},WGe=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(C8(t),t.lookahead===0)){if(e===ad)return Es;break}if(t.match_length=0,n=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=0,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3};function zc(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const jb=[new zc(0,0,0,0,Rle),new zc(4,4,8,4,XD),new zc(4,5,16,8,XD),new zc(4,6,32,32,XD),new zc(4,4,16,16,j5),new zc(8,16,32,32,j5),new zc(8,16,128,128,j5),new zc(8,32,128,256,j5),new zc(32,128,258,1024,j5),new zc(32,258,258,4096,j5)],HGe=t=>{t.window_size=2*t.w_size,il(t.head),t.max_lazy_match=jb[t.level].max_lazy,t.good_match=jb[t.level].good_length,t.nice_match=jb[t.level].nice_length,t.max_chain_length=jb[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Jn-1,t.match_available=0,t.ins_h=0};function qGe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=sS,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(RGe*2),this.dyn_dtree=new Uint16Array((2*BGe+1)*2),this.bl_tree=new Uint16Array((2*jGe+1)*2),il(this.dyn_ltree),il(this.dyn_dtree),il(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_Ge+1),this.heap=new Uint16Array(2*XB+1),il(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*XB+1),il(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const cg=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==S8&&e.status!==_P&&e.status!==JB&&e.status!==ej&&e.status!==tj&&e.status!==nj&&e.status!==j6&&e.status!==Bb?1:0},_le=t=>{if(cg(t))return R6(t,j1);t.total_in=t.total_out=0,t.data_type=TGe;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?_P:e.wrap?S8:j6,t.adler=e.wrap===2?0:1,e.last_flush=-2,mGe(e),T0},Ole=t=>{const e=_le(t);return e===T0&&HGe(t.state),e},GGe=(t,e)=>cg(t)||t.state.wrap!==2?j1:(t.state.gzhead=e,T0),Fle=(t,e,n,r,i,s)=>{if(!t)return j1;let a=1;if(e===MGe&&(e=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>IGe||n!==sS||r<8||r>15||e<0||e>9||s<0||s>SGe||r===8&&a!==1)return R6(t,j1);r===8&&(r=9);const o=new qGe;return t.state=o,o.strm=t,o.status=S8,o.wrap=a,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+Jn-1)/Jn),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=e,o.strategy=s,o.method=n,Ole(t)},VGe=(t,e)=>Fle(t,e,sS,DGe,kGe,CGe),YGe=(t,e)=>{if(cg(t)||e>NK||e<0)return t?R6(t,j1):j1;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===Bb&&e!==Io)return R6(t,t.avail_out===0?$D:j1);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(wa(t),t.avail_out===0)return n.last_flush=-1,T0}else if(t.avail_in===0&&BK(e)<=BK(r)&&e!==Io)return R6(t,$D);if(n.status===Bb&&t.avail_in!==0)return R6(t,$D);if(n.status===S8&&n.wrap===0&&(n.status=j6),n.status===S8){let i=sS+(n.w_bits-8<<4)<<8,s=-1;if(n.strategy>=K9||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,i|=s<<6,n.strstart!==0&&(i|=OGe),i+=31-i%31,K3(n,i),n.strstart!==0&&(K3(n,t.adler>>>16),K3(n,t.adler&65535)),t.adler=1,n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(n.status===_P){if(t.adler=0,br(n,31),br(n,139),br(n,8),n.gzhead)br(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),br(n,n.gzhead.time&255),br(n,n.gzhead.time>>8&255),br(n,n.gzhead.time>>16&255),br(n,n.gzhead.time>>24&255),br(n,n.level===9?2:n.strategy>=K9||n.level<2?4:0),br(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(br(n,n.gzhead.extra.length&255),br(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=s0(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=JB;else if(br(n,0),br(n,0),br(n,0),br(n,0),br(n,0),br(n,n.level===9?2:n.strategy>=K9||n.level<2?4:0),br(n,FGe),n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(n.status===JB){if(n.gzhead.extra){let i=n.pending,s=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+s>n.pending_buf_size;){let o=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=o,wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0,s-=o}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending+=s,n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=ej}if(n.status===ej){if(n.gzhead.name){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0}n.gzindex<n.gzhead.name.length?s=n.gzhead.name.charCodeAt(n.gzindex++)&255:s=0,br(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=tj}if(n.status===tj){if(n.gzhead.comment){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0}n.gzindex<n.gzhead.comment.length?s=n.gzhead.comment.charCodeAt(n.gzindex++)&255:s=0,br(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i))}n.status=nj}if(n.status===nj){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(wa(t),n.pending!==0))return n.last_flush=-1,T0;br(n,t.adler&255),br(n,t.adler>>8&255),t.adler=0}if(n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(t.avail_in!==0||n.lookahead!==0||e!==ad&&n.status!==Bb){let i=n.level===0?Rle(n,e):n.strategy===K9?WGe(n,e):n.strategy===EGe?UGe(n,e):jb[n.level].func(n,e);if((i===n5||i===w3)&&(n.status=Bb),i===Es||i===n5)return t.avail_out===0&&(n.last_flush=-1),T0;if(i===v3&&(e===xGe?gGe(n):e!==NK&&($B(n,0,0,!1),e===vGe&&(il(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),wa(t),t.avail_out===0))return n.last_flush=-1,T0}return e!==Io?T0:n.wrap<=0?LK:(n.wrap===2?(br(n,t.adler&255),br(n,t.adler>>8&255),br(n,t.adler>>16&255),br(n,t.adler>>24&255),br(n,t.total_in&255),br(n,t.total_in>>8&255),br(n,t.total_in>>16&255),br(n,t.total_in>>24&255)):(K3(n,t.adler>>>16),K3(n,t.adler&65535)),wa(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?T0:LK)},QGe=t=>{if(cg(t))return j1;const e=t.state.status;return t.state=null,e===j6?R6(t,wGe):T0},ZGe=(t,e)=>{let n=e.length;if(cg(t))return j1;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==S8||r.lookahead)return j1;if(i===1&&(t.adler=Im(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(il(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(e.subarray(n-r.w_size,n),0),e=f,n=r.w_size}const s=t.avail_in,a=t.next_in,o=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,C8(r);r.lookahead>=Jn;){let f=r.strstart,u=r.lookahead-(Jn-1);do r.ins_h=od(r,r.ins_h,r.window[f+Jn-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--u);r.strstart=f,r.lookahead=Jn-1,C8(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Jn-1,r.match_available=0,t.next_in=a,t.input=o,t.avail_in=s,r.wrap=i,T0};var KGe=VGe,$Ge=Fle,XGe=Ole,JGe=_le,eVe=GGe,tVe=YGe,nVe=QGe,rVe=ZGe,iVe="pako deflate (from Nodeca project)",s4={deflateInit:KGe,deflateInit2:$Ge,deflateReset:XGe,deflateResetKeep:JGe,deflateSetHeader:eVe,deflate:tVe,deflateEnd:nVe,deflateSetDictionary:rVe,deflateInfo:iVe};const sVe=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var aVe=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)sVe(n,r)&&(t[r]=n[r])}}return t},oVe=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,s=t.length;r<s;r++){let a=t[r];n.set(a,i),i+=a.length}return n},aS={assign:aVe,flattenChunks:oVe};let Ple=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ple=!1}const Dm=new Uint8Array(256);for(let t=0;t<256;t++)Dm[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Dm[254]=Dm[254]=1;var cVe=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,s,a=t.length,o=0;for(i=0;i<a;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(o),s=0,i=0;s<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[s++]=n:n<2048?(e[s++]=192|n>>>6,e[s++]=128|n&63):n<65536?(e[s++]=224|n>>>12,e[s++]=128|n>>>6&63,e[s++]=128|n&63):(e[s++]=240|n>>>18,e[s++]=128|n>>>12&63,e[s++]=128|n>>>6&63,e[s++]=128|n&63);return e};const fVe=(t,e)=>{if(e<65534&&t.subarray&&Ple)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var uVe=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const s=new Array(n*2);for(i=0,r=0;r<n;){let a=t[r++];if(a<128){s[i++]=a;continue}let o=Dm[a];if(o>4){s[i++]=65533,r+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&r<n;)a=a<<6|t[r++]&63,o--;if(o>1){s[i++]=65533;continue}a<65536?s[i++]=a:(a-=65536,s[i++]=55296|a>>10&1023,s[i++]=56320|a&1023)}return fVe(s,i)},lVe=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+Dm[t[n]]>e?n:e},km={string2buf:cVe,buf2string:uVe,utf8border:lVe};function dVe(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zle=dVe;const Ule=Object.prototype.toString,{Z_NO_FLUSH:hVe,Z_SYNC_FLUSH:pVe,Z_FULL_FLUSH:bVe,Z_FINISH:mVe,Z_OK:hw,Z_STREAM_END:yVe,Z_DEFAULT_COMPRESSION:gVe,Z_DEFAULT_STRATEGY:xVe,Z_DEFLATED:vVe}=g5;function fg(t){this.options=aS.assign({level:gVe,method:vVe,chunkSize:16384,windowBits:15,memLevel:8,strategy:xVe},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zle,this.strm.avail_out=0;let n=s4.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==hw)throw new Error(t5[n]);if(e.header&&s4.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=km.string2buf(e.dictionary):Ule.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=s4.deflateSetDictionary(this.strm,r),n!==hw)throw new Error(t5[n]);this._dict_set=!0}}fg.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,s;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?mVe:hVe,typeof t=="string"?n.input=km.string2buf(t):Ule.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(s===pVe||s===bVe)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=s4.deflate(n,s),i===yVe)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=s4.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===hw;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};fg.prototype.onData=function(t){this.chunks.push(t)};fg.prototype.onEnd=function(t){t===hw&&(this.result=aS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function OP(t,e){const n=new fg(e);if(n.push(t,!0),n.err)throw n.msg||t5[n.err];return n.result}function wVe(t,e){return e=e||{},e.raw=!0,OP(t,e)}function MVe(t,e){return e=e||{},e.gzip=!0,OP(t,e)}var AVe=fg,EVe=OP,SVe=wVe,CVe=MVe,TVe=g5,IVe={Deflate:AVe,deflate:EVe,deflateRaw:SVe,gzip:CVe,constants:TVe};const $9=16209,DVe=16191;var kVe=function(e,n){let r,i,s,a,o,f,u,h,m,y,x,w,E,I,T,D,k,N,R,_,F,L,B,P;const C=e.state;r=e.next_in,B=e.input,i=r+(e.avail_in-5),s=e.next_out,P=e.output,a=s-(n-e.avail_out),o=s+(e.avail_out-257),f=C.dmax,u=C.wsize,h=C.whave,m=C.wnext,y=C.window,x=C.hold,w=C.bits,E=C.lencode,I=C.distcode,T=(1<<C.lenbits)-1,D=(1<<C.distbits)-1;e:do{w<15&&(x+=B[r++]<<w,w+=8,x+=B[r++]<<w,w+=8),k=E[x&T];t:for(;;){if(N=k>>>24,x>>>=N,w-=N,N=k>>>16&255,N===0)P[s++]=k&65535;else if(N&16){R=k&65535,N&=15,N&&(w<N&&(x+=B[r++]<<w,w+=8),R+=x&(1<<N)-1,x>>>=N,w-=N),w<15&&(x+=B[r++]<<w,w+=8,x+=B[r++]<<w,w+=8),k=I[x&D];n:for(;;){if(N=k>>>24,x>>>=N,w-=N,N=k>>>16&255,N&16){if(_=k&65535,N&=15,w<N&&(x+=B[r++]<<w,w+=8,w<N&&(x+=B[r++]<<w,w+=8)),_+=x&(1<<N)-1,_>f){e.msg="invalid distance too far back",C.mode=$9;break e}if(x>>>=N,w-=N,N=s-a,_>N){if(N=_-N,N>h&&C.sane){e.msg="invalid distance too far back",C.mode=$9;break e}if(F=0,L=y,m===0){if(F+=u-N,N<R){R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}}else if(m<N){if(F+=u+m-N,N-=m,N<R){R-=N;do P[s++]=y[F++];while(--N);if(F=0,m<R){N=m,R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}}}else if(F+=m-N,N<R){R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}for(;R>2;)P[s++]=L[F++],P[s++]=L[F++],P[s++]=L[F++],R-=3;R&&(P[s++]=L[F++],R>1&&(P[s++]=L[F++]))}else{F=s-_;do P[s++]=P[F++],P[s++]=P[F++],P[s++]=P[F++],R-=3;while(R>2);R&&(P[s++]=P[F++],R>1&&(P[s++]=P[F++]))}}else if(N&64){e.msg="invalid distance code",C.mode=$9;break e}else{k=I[(k&65535)+(x&(1<<N)-1)];continue n}break}}else if(N&64)if(N&32){C.mode=DVe;break e}else{e.msg="invalid literal/length code",C.mode=$9;break e}else{k=E[(k&65535)+(x&(1<<N)-1)];continue t}break}}while(r<i&&s<o);R=w>>3,r-=R,w-=R<<3,x&=(1<<w)-1,e.next_in=r,e.next_out=s,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=s<o?257+(o-s):257-(s-o),C.hold=x,C.bits=w};const R5=15,jK=852,RK=592,_K=0,JD=1,OK=2,NVe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),LVe=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),BVe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),jVe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),RVe=(t,e,n,r,i,s,a,o)=>{const f=o.bits;let u=0,h=0,m=0,y=0,x=0,w=0,E=0,I=0,T=0,D=0,k,N,R,_,F,L=null,B;const P=new Uint16Array(R5+1),C=new Uint16Array(R5+1);let c=null,d,p,b;for(u=0;u<=R5;u++)P[u]=0;for(h=0;h<r;h++)P[e[n+h]]++;for(x=f,y=R5;y>=1&&P[y]===0;y--);if(x>y&&(x=y),y===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,o.bits=1,0;for(m=1;m<y&&P[m]===0;m++);for(x<m&&(x=m),I=1,u=1;u<=R5;u++)if(I<<=1,I-=P[u],I<0)return-1;if(I>0&&(t===_K||y!==1))return-1;for(C[1]=0,u=1;u<R5;u++)C[u+1]=C[u]+P[u];for(h=0;h<r;h++)e[n+h]!==0&&(a[C[e[n+h]]++]=h);if(t===_K?(L=c=a,B=20):t===JD?(L=NVe,c=LVe,B=257):(L=BVe,c=jVe,B=0),D=0,h=0,u=m,F=s,w=x,E=0,R=-1,T=1<<x,_=T-1,t===JD&&T>jK||t===OK&&T>RK)return 1;for(;;){d=u-E,a[h]+1<B?(p=0,b=a[h]):a[h]>=B?(p=c[a[h]-B],b=L[a[h]-B]):(p=96,b=0),k=1<<u-E,N=1<<w,m=N;do N-=k,i[F+(D>>E)+N]=d<<24|p<<16|b|0;while(N!==0);for(k=1<<u-1;D&k;)k>>=1;if(k!==0?(D&=k-1,D+=k):D=0,h++,--P[u]===0){if(u===y)break;u=e[n+a[h]]}if(u>x&&(D&_)!==R){for(E===0&&(E=x),F+=m,w=u-E,I=1<<w;w+E<y&&(I-=P[w+E],!(I<=0));)w++,I<<=1;if(T+=1<<w,t===JD&&T>jK||t===OK&&T>RK)return 1;R=D&_,i[R]=x<<24|w<<16|F-s|0}}return D!==0&&(i[F+D]=u-E<<24|64<<16|0),o.bits=x,0};var a4=RVe;const _Ve=0,Wle=1,Hle=2,{Z_FINISH:FK,Z_BLOCK:OVe,Z_TREES:X9,Z_OK:r5,Z_STREAM_END:FVe,Z_NEED_DICT:PVe,Z_STREAM_ERROR:Go,Z_DATA_ERROR:qle,Z_MEM_ERROR:Gle,Z_BUF_ERROR:zVe,Z_DEFLATED:PK}=g5,oS=16180,zK=16181,UK=16182,WK=16183,HK=16184,qK=16185,GK=16186,VK=16187,YK=16188,QK=16189,pw=16190,ff=16191,ek=16192,ZK=16193,tk=16194,KK=16195,$K=16196,XK=16197,JK=16198,J9=16199,e7=16200,e$=16201,t$=16202,n$=16203,r$=16204,i$=16205,nk=16206,s$=16207,a$=16208,ti=16209,Vle=16210,Yle=16211,UVe=852,WVe=592,HVe=15,qVe=HVe,o$=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function GVe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const x5=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<oS||e.mode>Yle?1:0},Qle=t=>{if(x5(t))return Go;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=oS,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(UVe),e.distcode=e.distdyn=new Int32Array(WVe),e.sane=1,e.back=-1,r5},Zle=t=>{if(x5(t))return Go;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Qle(t)},Kle=(t,e)=>{let n;if(x5(t))return Go;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Go:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,Zle(t))},$le=(t,e)=>{if(!t)return Go;const n=new GVe;t.state=n,n.strm=t,n.window=null,n.mode=oS;const r=Kle(t,e);return r!==r5&&(t.state=null),r},VVe=t=>$le(t,qVe);let c$=!0,rk,ik;const YVe=t=>{if(c$){rk=new Int32Array(512),ik=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(a4(Wle,t.lens,0,288,rk,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;a4(Hle,t.lens,0,32,ik,0,t.work,{bits:5}),c$=!1}t.lencode=rk,t.lenbits=9,t.distcode=ik,t.distbits=5},Xle=(t,e,n,r)=>{let i;const s=t.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(e.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),s.window.set(e.subarray(n-r,n-r+i),s.wnext),r-=i,r?(s.window.set(e.subarray(n-r,n),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},QVe=(t,e)=>{let n,r,i,s,a,o,f,u,h,m,y,x,w,E,I=0,T,D,k,N,R,_,F,L;const B=new Uint8Array(4);let P,C;const c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(x5(t)||!t.output||!t.input&&t.avail_in!==0)return Go;n=t.state,n.mode===ff&&(n.mode=ek),a=t.next_out,i=t.output,f=t.avail_out,s=t.next_in,r=t.input,o=t.avail_in,u=n.hold,h=n.bits,m=o,y=f,L=r5;e:for(;;)switch(n.mode){case oS:if(n.wrap===0){n.mode=ek;break}for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0),u=0,h=0,n.mode=zK;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=ti;break}if((u&15)!==PK){t.msg="unknown compression method",n.mode=ti;break}if(u>>>=4,h-=4,F=(u&15)+8,n.wbits===0&&(n.wbits=F),F>15||F>n.wbits){t.msg="invalid window size",n.mode=ti;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?QK:ff,u=0,h=0;break;case zK:for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.flags=u,(n.flags&255)!==PK){t.msg="unknown compression method",n.mode=ti;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=ti;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0,n.mode=UK;case UK:for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,B[2]=u>>>16&255,B[3]=u>>>24&255,n.check=s0(n.check,B,4,0)),u=0,h=0,n.mode=WK;case WK:for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0,n.mode=HK;case HK:if(n.flags&1024){for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0}else n.head&&(n.head.extra=null);n.mode=qK;case qK:if(n.flags&1024&&(x=n.length,x>o&&(x=o),x&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(s,s+x),F)),n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,n.length-=x),n.length))break e;n.length=0,n.mode=GK;case GK:if(n.flags&2048){if(o===0)break e;x=0;do F=r[s+x++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F));while(F&&x<o);if(n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,F)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=VK;case VK:if(n.flags&4096){if(o===0)break e;x=0;do F=r[s+x++],n.head&&F&&n.length<65536&&(n.head.comment+=String.fromCharCode(F));while(F&&x<o);if(n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,F)break e}else n.head&&(n.head.comment=null);n.mode=YK;case YK:if(n.flags&512){for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=ti;break}u=0,h=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=ff;break;case QK:for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}t.adler=n.check=o$(u),u=0,h=0,n.mode=pw;case pw:if(n.havedict===0)return t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,PVe;t.adler=n.check=1,n.mode=ff;case ff:if(e===OVe||e===X9)break e;case ek:if(n.last){u>>>=h&7,h-=h&7,n.mode=nk;break}for(;h<3;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}switch(n.last=u&1,u>>>=1,h-=1,u&3){case 0:n.mode=ZK;break;case 1:if(YVe(n),n.mode=J9,e===X9){u>>>=2,h-=2;break e}break;case 2:n.mode=$K;break;case 3:t.msg="invalid block type",n.mode=ti}u>>>=2,h-=2;break;case ZK:for(u>>>=h&7,h-=h&7;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=ti;break}if(n.length=u&65535,u=0,h=0,n.mode=tk,e===X9)break e;case tk:n.mode=KK;case KK:if(x=n.length,x){if(x>o&&(x=o),x>f&&(x=f),x===0)break e;i.set(r.subarray(s,s+x),a),o-=x,s+=x,f-=x,a+=x,n.length-=x;break}n.mode=ff;break;case $K:for(;h<14;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.nlen=(u&31)+257,u>>>=5,h-=5,n.ndist=(u&31)+1,u>>>=5,h-=5,n.ncode=(u&15)+4,u>>>=4,h-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ti;break}n.have=0,n.mode=XK;case XK:for(;n.have<n.ncode;){for(;h<3;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.lens[c[n.have++]]=u&7,u>>>=3,h-=3}for(;n.have<19;)n.lens[c[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,P={bits:n.lenbits},L=a4(_Ve,n.lens,0,19,n.lencode,0,n.work,P),n.lenbits=P.bits,L){t.msg="invalid code lengths set",n.mode=ti;break}n.have=0,n.mode=JK;case JK:for(;n.have<n.nlen+n.ndist;){for(;I=n.lencode[u&(1<<n.lenbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(k<16)u>>>=T,h-=T,n.lens[n.have++]=k;else{if(k===16){for(C=T+2;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(u>>>=T,h-=T,n.have===0){t.msg="invalid bit length repeat",n.mode=ti;break}F=n.lens[n.have-1],x=3+(u&3),u>>>=2,h-=2}else if(k===17){for(C=T+3;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=T,h-=T,F=0,x=3+(u&7),u>>>=3,h-=3}else{for(C=T+7;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=T,h-=T,F=0,x=11+(u&127),u>>>=7,h-=7}if(n.have+x>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ti;break}for(;x--;)n.lens[n.have++]=F}}if(n.mode===ti)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=ti;break}if(n.lenbits=9,P={bits:n.lenbits},L=a4(Wle,n.lens,0,n.nlen,n.lencode,0,n.work,P),n.lenbits=P.bits,L){t.msg="invalid literal/lengths set",n.mode=ti;break}if(n.distbits=6,n.distcode=n.distdyn,P={bits:n.distbits},L=a4(Hle,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,P),n.distbits=P.bits,L){t.msg="invalid distances set",n.mode=ti;break}if(n.mode=J9,e===X9)break e;case J9:n.mode=e7;case e7:if(o>=6&&f>=258){t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,kVe(t,y),a=t.next_out,i=t.output,f=t.avail_out,s=t.next_in,r=t.input,o=t.avail_in,u=n.hold,h=n.bits,n.mode===ff&&(n.back=-1);break}for(n.back=0;I=n.lencode[u&(1<<n.lenbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(D&&!(D&240)){for(N=T,R=D,_=k;I=n.lencode[_+((u&(1<<N+R)-1)>>N)],T=I>>>24,D=I>>>16&255,k=I&65535,!(N+T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=N,h-=N,n.back+=N}if(u>>>=T,h-=T,n.back+=T,n.length=k,D===0){n.mode=i$;break}if(D&32){n.back=-1,n.mode=ff;break}if(D&64){t.msg="invalid literal/length code",n.mode=ti;break}n.extra=D&15,n.mode=e$;case e$:if(n.extra){for(C=n.extra;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,h-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=t$;case t$:for(;I=n.distcode[u&(1<<n.distbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(!(D&240)){for(N=T,R=D,_=k;I=n.distcode[_+((u&(1<<N+R)-1)>>N)],T=I>>>24,D=I>>>16&255,k=I&65535,!(N+T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=N,h-=N,n.back+=N}if(u>>>=T,h-=T,n.back+=T,D&64){t.msg="invalid distance code",n.mode=ti;break}n.offset=k,n.extra=D&15,n.mode=n$;case n$:if(n.extra){for(C=n.extra;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,h-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ti;break}n.mode=r$;case r$:if(f===0)break e;if(x=y-f,n.offset>x){if(x=n.offset-x,x>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ti;break}x>n.wnext?(x-=n.wnext,w=n.wsize-x):w=n.wnext-x,x>n.length&&(x=n.length),E=n.window}else E=i,w=a-n.offset,x=n.length;x>f&&(x=f),f-=x,n.length-=x;do i[a++]=E[w++];while(--x);n.length===0&&(n.mode=e7);break;case i$:if(f===0)break e;i[a++]=n.length,f--,n.mode=e7;break;case nk:if(n.wrap){for(;h<32;){if(o===0)break e;o--,u|=r[s++]<<h,h+=8}if(y-=f,t.total_out+=y,n.total+=y,n.wrap&4&&y&&(t.adler=n.check=n.flags?s0(n.check,i,y,a-y):Im(n.check,i,y,a-y)),y=f,n.wrap&4&&(n.flags?u:o$(u))!==n.check){t.msg="incorrect data check",n.mode=ti;break}u=0,h=0}n.mode=s$;case s$:if(n.wrap&&n.flags){for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=ti;break}u=0,h=0}n.mode=a$;case a$:L=FVe;break e;case ti:L=qle;break e;case Vle:return Gle;case Yle:default:return Go}return t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,(n.wsize||y!==t.avail_out&&n.mode<ti&&(n.mode<nk||e!==FK))&&Xle(t,t.output,t.next_out,y-t.avail_out),m-=t.avail_in,y-=t.avail_out,t.total_in+=m,t.total_out+=y,n.total+=y,n.wrap&4&&y&&(t.adler=n.check=n.flags?s0(n.check,i,y,t.next_out-y):Im(n.check,i,y,t.next_out-y)),t.data_type=n.bits+(n.last?64:0)+(n.mode===ff?128:0)+(n.mode===J9||n.mode===tk?256:0),(m===0&&y===0||e===FK)&&L===r5&&(L=zVe),L},ZVe=t=>{if(x5(t))return Go;let e=t.state;return e.window&&(e.window=null),t.state=null,r5},KVe=(t,e)=>{if(x5(t))return Go;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,r5):Go},$Ve=(t,e)=>{const n=e.length;let r,i,s;return x5(t)||(r=t.state,r.wrap!==0&&r.mode!==pw)?Go:r.mode===pw&&(i=1,i=Im(i,e,n,0),i!==r.check)?qle:(s=Xle(t,e,n,n),s?(r.mode=Vle,Gle):(r.havedict=1,r5))};var XVe=Zle,JVe=Kle,eYe=Qle,tYe=VVe,nYe=$le,rYe=QVe,iYe=ZVe,sYe=KVe,aYe=$Ve,oYe="pako inflate (from Nodeca project)",Mf={inflateReset:XVe,inflateReset2:JVe,inflateResetKeep:eYe,inflateInit:tYe,inflateInit2:nYe,inflate:rYe,inflateEnd:iYe,inflateGetHeader:sYe,inflateSetDictionary:aYe,inflateInfo:oYe};function cYe(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var fYe=cYe;const Jle=Object.prototype.toString,{Z_NO_FLUSH:uYe,Z_FINISH:lYe,Z_OK:Nm,Z_STREAM_END:sk,Z_NEED_DICT:ak,Z_STREAM_ERROR:dYe,Z_DATA_ERROR:f$,Z_MEM_ERROR:hYe}=g5;function ug(t){this.options=aS.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zle,this.strm.avail_out=0;let n=Mf.inflateInit2(this.strm,e.windowBits);if(n!==Nm)throw new Error(t5[n]);if(this.header=new fYe,Mf.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=km.string2buf(e.dictionary):Jle.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Mf.inflateSetDictionary(this.strm,e.dictionary),n!==Nm)))throw new Error(t5[n])}ug.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let s,a,o;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?lYe:uYe,Jle.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),s=Mf.inflate(n,a),s===ak&&i&&(s=Mf.inflateSetDictionary(n,i),s===Nm?s=Mf.inflate(n,a):s===f$&&(s=ak));n.avail_in>0&&s===sk&&n.state.wrap>0&&t[n.next_in]!==0;)Mf.inflateReset(n),s=Mf.inflate(n,a);switch(s){case dYe:case f$:case ak:case hYe:return this.onEnd(s),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(n.avail_out===0||s===sk))if(this.options.to==="string"){let f=km.utf8border(n.output,n.next_out),u=n.next_out-f,h=km.buf2string(n.output,f);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(f,f+u),0),this.onData(h)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===Nm&&o===0)){if(s===sk)return s=Mf.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};ug.prototype.onData=function(t){this.chunks.push(t)};ug.prototype.onEnd=function(t){t===Nm&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=aS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function FP(t,e){const n=new ug(e);if(n.push(t),n.err)throw n.msg||t5[n.err];return n.result}function pYe(t,e){return e=e||{},e.raw=!0,FP(t,e)}var bYe=ug,mYe=FP,yYe=pYe,gYe=FP,xYe=g5,vYe={Inflate:bYe,inflate:mYe,inflateRaw:yYe,ungzip:gYe,constants:xYe};const{Deflate:wYe,deflate:MYe,deflateRaw:AYe,gzip:EYe}=IVe,{Inflate:SYe,inflate:CYe,inflateRaw:TYe,ungzip:IYe}=vYe;var ede=wYe,tde=MYe,nde=AYe,rde=EYe,ide=SYe,PP=CYe,sde=TYe,ade=IYe,ode=g5,DYe={Deflate:ede,deflate:tde,deflateRaw:nde,gzip:rde,Inflate:ide,inflate:PP,inflateRaw:sde,ungzip:ade,constants:ode};const $ft=Object.freeze(Object.defineProperty({__proto__:null,Deflate:ede,Inflate:ide,constants:ode,default:DYe,deflate:tde,deflateRaw:nde,gzip:rde,inflate:PP,inflateRaw:sde,ungzip:ade},Symbol.toStringTag,{value:"Module"}));function kYe(t,e){return Array.apply(0,new Array(Math.ceil(t.length/e))).map((n,r)=>t.slice(r*e,(r+1)*e))}const $3=t=>"version"in t;function NYe(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"0x")}function LYe(t){t.indexOf("0x")===0&&(t=t.substr(2)),t.length%2===1&&(t="0"+t);let e=t.match(/.{2}/g);return e===null?ve.Buffer.from([]):ve.Buffer.from(e.map(n=>parseInt(n,16)))}var BYe=Object.freeze({__proto__:null,encode:NYe,decode:LYe});function cde(t){return new TextDecoder("utf-8").decode(t)}function fde(t){return new TextEncoder().encode(t)}var jYe=Object.freeze({__proto__:null,decode:cde,encode:fde});function ij(t){return pi.encode(t)}function RYe(t){return pi.decode(t)}var _Ye=Object.freeze({__proto__:null,encode:ij,decode:RYe});function sj(t){return t.toString("base64")}function zP(t){return ve.Buffer.from(t,"base64")}var OYe=Object.freeze({__proto__:null,encode:sj,decode:zP}),FYe=Object.freeze({__proto__:null,hex:BYe,utf8:jYe,bs58:_Ye,base64:OYe});function ude(t){const e=new Map;return t.errors&&t.errors.forEach(n=>{var r;let i=(r=n.msg)!==null&&r!==void 0?r:n.name;e.set(n.code,i)}),e}function PYe(t,...e){if(t.args.length!=e.length)throw new Error("Invalid argument length");const n={};let r=0;return t.args.forEach(i=>{n[i.name]=e[r],r+=1}),n}function lde(t,e={}){t.forEach(n=>{if("accounts"in n)lde(n.accounts,e[n.name]);else if(e[n.name]===void 0)throw new Error(`Invalid arguments: ${n.name} not provided.`)})}function Ra(t){return t instanceof Fe?t:new Fe(t)}class zYe extends TypeError{constructor(e,n){let r;const{message:i,...s}=e,{path:a}=e,o=a.length===0?i:"At path: "+a.join(".")+" -- "+i;super(o),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>{var f;return(f=r)!=null?f:r=[e,...n()]}}}function UYe(t){return Q2(t)&&typeof t[Symbol.iterator]=="function"}function Q2(t){return typeof t=="object"&&t!=null}function Ad(t){return typeof t=="string"?JSON.stringify(t):""+t}function WYe(t){const{done:e,value:n}=t.next();return e?void 0:n}function HYe(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t=="string"&&(t={message:t});const{path:i,branch:s}=e,{type:a}=n,{refinement:o,message:f="Expected a value of type `"+a+"`"+(o?" with refinement `"+o+"`":"")+", but received: `"+Ad(r)+"`"}=t;return{value:r,type:a,refinement:o,key:i[i.length-1],path:i,branch:s,...t,message:f}}function*u$(t,e,n,r){UYe(t)||(t=[t]);for(const i of t){const s=HYe(i,e,n,r);s&&(yield s)}}function*UP(t,e,n){n===void 0&&(n={});const{path:r=[],branch:i=[t],coerce:s=!1,mask:a=!1}=n,o={path:r,branch:i};if(s&&(t=e.coercer(t,o),a&&e.type!=="type"&&Q2(e.schema)&&Q2(t)&&!Array.isArray(t)))for(const u in t)e.schema[u]===void 0&&delete t[u];let f=!0;for(const u of e.validator(t,o))f=!1,yield[u,void 0];for(let[u,h,m]of e.entries(t,o)){const y=UP(h,m,{path:u===void 0?r:[...r,u],branch:u===void 0?i:[...i,h],coerce:s,mask:a});for(const x of y)x[0]?(f=!1,yield[x[0],void 0]):s&&(h=x[1],u===void 0?t=h:t instanceof Map?t.set(u,h):t instanceof Set?t.add(h):Q2(t)&&(t[u]=h))}if(f)for(const u of e.refiner(t,o))f=!1,yield[u,void 0];f&&(yield[void 0,t])}class Pd{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:n,schema:r,validator:i,refiner:s,coercer:a=f=>f,entries:o=function*(){}}=e;this.type=n,this.schema=r,this.entries=o,this.coercer=a,i?this.validator=(f,u)=>{const h=i(f,u);return u$(h,u,this,f)}:this.validator=()=>[],s?this.refiner=(f,u)=>{const h=s(f,u);return u$(h,u,this,f)}:this.refiner=()=>[]}assert(e){return qYe(e,this)}create(e){return WP(e,this)}is(e){return dde(e,this)}mask(e){return GYe(e,this)}validate(e,n){return n===void 0&&(n={}),lg(e,this,n)}}function qYe(t,e){const n=lg(t,e);if(n[0])throw n[0]}function WP(t,e){const n=lg(t,e,{coerce:!0});if(n[0])throw n[0];return n[1]}function GYe(t,e){const n=lg(t,e,{coerce:!0,mask:!0});if(n[0])throw n[0];return n[1]}function dde(t,e){return!lg(t,e)[0]}function lg(t,e,n){n===void 0&&(n={});const r=UP(t,e,n),i=WYe(r);return i[0]?[new zYe(i[0],function*(){for(const a of r)a[0]&&(yield a[0])}),void 0]:[void 0,i[1]]}function dg(t,e){return new Pd({type:t,schema:null,validator:e})}function VYe(){return dg("any",()=>!0)}function ok(t){return new Pd({type:"array",schema:t,*entries(e){if(t&&Array.isArray(e))for(const[n,r]of e.entries())yield[n,r,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+Ad(e)}})}function YYe(){return dg("boolean",t=>typeof t=="boolean")}function l$(t){const e=Ad(t);return new Pd({type:"literal",schema:t,validator(n){return n===t||"Expected the literal `"+e+"`, but received: "+Ad(n)}})}function t7(t){return new Pd({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}function Ix(){return dg("number",t=>typeof t=="number"&&!isNaN(t)||"Expected a number, but received: "+Ad(t))}function Dx(t){return new Pd({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function _6(){return dg("string",t=>typeof t=="string"||"Expected a string, but received: "+Ad(t))}function cd(t){const e=Object.keys(t);return new Pd({type:"type",schema:t,*entries(n){if(Q2(n))for(const r of e)yield[r,n[r],t[r]]},validator(n){return Q2(n)||"Expected an object, but received: "+Ad(n)}})}function hde(t){const e=t.map(n=>n.type).join(" | ");return new Pd({type:"union",schema:null,coercer(n,r){return(t.find(s=>{const[a]=s.validate(n,{coerce:!0});return!a})||HP()).coercer(n,r)},validator(n,r){const i=[];for(const s of t){const[...a]=UP(n,s,r),[o]=a;if(o[0])for(const[f]of a)f&&i.push(f);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+Ad(n),...i]}})}function HP(){return dg("unknown",()=>!0)}function QYe(t,e,n){return new Pd({...t,coercer:(r,i)=>dde(r,e)?t.coercer(n(r,i),i):t.coercer(r,i)})}async function ZYe(t,e,n,r){t=Ra(t),r||(r=bw());const i=new yn;if(i.add(new cr({programId:t,keys:e??[],data:n})),r.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");return await r.sendAndConfirm(i,[])}const d$=99;async function KYe(t,e,n){return(await qP(t,e,n)).map(i=>i?{publicKey:i.publicKey,account:i.account}:null)}async function qP(t,e,n){if(e.length<=d$)return await h$(t,e,n);{const r=kYe(e,d$);return(await Promise.all(r.map(s=>h$(t,s,n)))).flat()}}async function h$(t,e,n){const r=n??t.commitment,{value:i,context:s}=await t.getMultipleAccountsInfoAndContext(e,r);return i.map((o,f)=>o===null?null:{publicKey:e[f],account:o,context:s})}async function pde(t,e,n,r,i){var s;n&&n.length>0&&e.sign(...n);const a=e._compile(),o=a.serialize(),u=e._serialize(o).toString("base64"),h={encoding:"base64",commitment:r??t.commitment};if(i){const w=(Array.isArray(i)?i:a.nonProgramIds()).map(E=>E.toBase58());h.accounts={encoding:"base64",addresses:w}}n&&(h.sigVerify=!0);const m=[u,h],y=await t._rpcRequest("simulateTransaction",m),x=WP(y,eQe);if("error"in x){let w;if("data"in x.error&&(w=(s=x.error.data)===null||s===void 0?void 0:s.logs,w&&Array.isArray(w))){const E=`
115
+ Reponse Received: ${JSON.stringify(this.result,null,2)}`),t}},SUe=class extends Error{},CUe=et({jsonrpc:cn("2.0"),id:Le(),result:wu()}),fue=et({jsonrpc:cn("2.0"),id:Le(),error:et({code:wu(),message:Le(),data:Ot(wu())})}),TUe=class{constructor(t,e){this.rpcClient=new $1e(async(n,r)=>{const i={method:"POST",body:n,headers:{"Content-Type":"application/json","Client-Sdk-Type":"typescript","Client-Sdk-Version":MUe,"Client-Target-Api-Version":AUe,...e}};try{let s=await fetch(t,i);const a=await s.text();if(s.ok)r(null,a);else{const o=s.headers.get("content-type")==="text/html";r(new Error(`${s.status} ${s.statusText}${o?"":`: ${a}`}`))}}catch(s){r(s)}},{})}async requestWithType(t,e,n){const r={method:t,args:e},i=await this.request(t,e);if(R0(i,fue))throw new IB({req:r,code:i.error.code,data:i.error.data,cause:new Error(i.error.message)});if(R0(i,CUe)){const[s]=y3(i.result,n);return s&&console.warn(new EUe({req:r,result:i.result,cause:s})),i.result}throw new IB({req:r,data:i})}async request(t,e){return new Promise((n,r)=>{this.rpcClient.request(t,e,(i,s)=>{if(i){r(i);return}n(s)})})}},IUe=Er([cn("DynamicField"),cn("DynamicObject")]),DUe=et({type:Le(),value:wu()}),kUe=et({name:DUe,bcsName:Le(),type:IUe,objectType:Le(),objectId:wr,version:On(),digest:Le()}),NUe=et({data:Ct(kUe),nextCursor:Pr(wr),hasNextPage:zr()}),LUe=(t,e)=>{const n=new URL(t);return n.protocol=n.protocol.replace("http","ws"),n.toString()},BUe=t=>t&&"subscription"in t&&typeof t.subscription=="number"&&"result"in t&&typeof t.result=="object",uue={connectTimeout:15e3,callTimeout:3e4,reconnectInterval:3e3,maxReconnects:5},WZ="suix_subscribeEvent",jUe="suix_unsubscribeEvent",RUe=class{constructor(t,e=uue){this.endpoint=t,this.options=e,this.connectionState=0,this.connectionTimeout=null,this.isSetup=!1,this.connectionPromise=null,this.eventSubscriptions=new Map,this.endpoint.startsWith("http")&&(this.endpoint=LUe(this.endpoint)),this.rpcClient=new Pfe(this.endpoint,{reconnect_interval:this.options.reconnectInterval,max_reconnects:this.options.maxReconnects,autoconnect:!1})}setupSocket(){this.isSetup||(this.rpcClient.on("open",()=>{this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=null),this.connectionState=2,this.rpcClient.socket.on("message",this.onSocketMessage.bind(this))}),this.rpcClient.on("close",()=>{this.connectionState=0}),this.rpcClient.on("error",console.error),this.isSetup=!0)}onSocketMessage(t){const e=JSON.parse(t),n=e.params;if(e.method===WZ){if(BUe(n)){const r=this.eventSubscriptions.get(n.subscription);r&&r.onMessage(n.result)}else if(R0(n,gze)){const r=this.eventSubscriptions.get(n.subscription);r&&r.onMessage(n.result)}}}async connect(){return this.connectionPromise?this.connectionPromise:this.connectionState===2?Promise.resolve():(this.setupSocket(),this.rpcClient.connect(),this.connectionState=1,this.connectionPromise=new Promise((t,e)=>{this.connectionTimeout=setTimeout(()=>e(new Error("timeout")),this.options.connectTimeout),this.rpcClient.once("open",()=>{this.refreshSubscriptions(),this.connectionPromise=null,t()}),this.rpcClient.once("error",n=>{this.connectionPromise=null,e(n)})}),this.connectionPromise)}async refreshSubscriptions(){if(this.eventSubscriptions.size!==0)try{let t=new Map;(await Promise.all(Array.from(this.eventSubscriptions.values()).map(async n=>{const r=n.onMessage,i=n.filter;return!i||!r?Promise.resolve(null):{id:await this.subscribeEvent(i,r),onMessage:r,filter:i}}))).forEach(n=>{if(n===null)return;const r=n.filter,i=n.onMessage;t.set(n.id,{filter:r,onMessage:i})}),this.eventSubscriptions=t}catch(t){throw new Error(`error refreshing event subscriptions: ${t}`)}}async subscribeEvent(t,e){try{this.connectionState!==2&&await this.connect();let n=await this.rpcClient.call(WZ,[t],this.options.callTimeout);return this.eventSubscriptions.set(n,{filter:t,onMessage:e}),n}catch(n){throw new Error(`Error subscribing to event: ${JSON.stringify(n,null,2)}, filter: ${JSON.stringify(t)}`)}}async unsubscribeEvent(t){try{this.connectionState!==2&&await this.connect();let e=await this.rpcClient.call(jUe,[t],this.options.callTimeout);return this.eventSubscriptions.delete(t)||e}catch(e){throw new Error(`Error unsubscribing from event: ${e}, subscription: ${t}`)}}};async function _Ue(t,e,n){const r=await fetch(t,{method:"POST",body:JSON.stringify({FixedAmountRequest:{recipient:e}}),headers:{"Content-Type":"application/json",...n||{}}});if(r.status===429)throw new SUe("Too many requests from this client have been sent to the faucet. Please retry later");let i;try{i=await r.json()}catch(s){throw new Error(`Encountered error when parsing response from faucet, error: ${s}, status ${r.status}, response ${r}`)}if(i.error)throw new Error(`Faucet returns error: ${i.error}`);return i}var t6,yP=class{constructor(t){Cb(this,t6,void 0),Tb(this,t6,t)}get fullnode(){return Tr(this,t6).fullnode}get websocket(){return Tr(this,t6).websocket||Tr(this,t6).fullnode}get faucet(){return Tr(this,t6).faucet}};t6=new WeakMap;new yP({fullnode:"http://127.0.0.1:9000",faucet:"http://127.0.0.1:9123/gas"});var OUe=new yP({fullnode:"https://fullnode.devnet.sui.io:443/",faucet:"https://faucet.devnet.sui.io/gas"});new yP({fullnode:"https://fullnode.testnet.sui.io:443/",faucet:"https://faucet.testnet.sui.io/gas"});function Da(t,e){return jfe(t,e)}var iw=Symbol("transaction-argument-type"),FUe=t=>Er([et({None:cn(null)}),et({Some:t})]),vm=et({kind:cn("Input"),index:nu(),value:Ot(wu()),type:Ot(Er([cn("pure"),cn("object")]))}),gP=[vm,et({kind:cn("GasCoin")}),et({kind:cn("Result"),index:nu()}),et({kind:cn("NestedResult"),index:nu(),resultIndex:nu()})],PUe=Er([...gP]),Xh=Er([...gP]);Xh[iw]={kind:"object"};var lue=t=>{const e=Er([...gP]);return e[iw]={kind:"pure",type:t},e},due=et({kind:cn("MoveCall"),target:_c("target",Le().validator),typeArguments:Ct(Le()),arguments:Ct(PUe)}),hue=et({kind:cn("TransferObjects"),objects:Ct(Xh),address:lue(ln.ADDRESS)}),pue=et({kind:cn("SplitCoins"),coin:Xh,amounts:Ct(lue("u64"))}),bue=et({kind:cn("MergeCoins"),destination:Xh,sources:Ct(Xh)}),mue=et({kind:cn("MakeMoveVec"),type:Ot(FUe(Le())),objects:Ct(Xh)}),yue=et({kind:cn("Publish"),modules:Ct(Ct(nu())),dependencies:Ct(wr)}),gue=et({kind:cn("Upgrade"),modules:Ct(Ct(nu())),dependencies:Ct(wr),packageId:wr,ticket:Xh}),xue=[due,hue,pue,bue,yue,gue,mue],vue=Er([...xue]);function zUe(t){return rw(t,vue),xue.find(e=>R0(t,e))}var Vu={MoveCall(t){return Da({kind:"MoveCall",target:t.target,arguments:t.arguments??[],typeArguments:t.typeArguments??[]},due)},TransferObjects(t,e){return Da({kind:"TransferObjects",objects:t,address:e},hue)},SplitCoins(t,e){return Da({kind:"SplitCoins",coin:t,amounts:e},pue)},MergeCoins(t,e){return Da({kind:"MergeCoins",destination:t,sources:e},bue)},Publish({modules:t,dependencies:e}){return Da({kind:"Publish",modules:t.map(n=>typeof n=="string"?Array.from(Kh(n)):n),dependencies:e.map(n=>Qf(n))},yue)},Upgrade({modules:t,dependencies:e,packageId:n,ticket:r}){return Da({kind:"Upgrade",modules:t.map(i=>typeof i=="string"?Array.from(Kh(i)):i),dependencies:e.map(i=>Qf(i)),packageId:n,ticket:r},gue)},MakeMoveVec({type:t,objects:e}){return Da({kind:"MakeMoveVec",type:t?{Some:t}:{None:null},objects:e},mue)}},UUe=/^vector<(.+)>$/,WUe=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/,h6=class{static parseFromStr(t,e=!1){if(t==="address")return{address:null};if(t==="bool")return{bool:null};if(t==="u8")return{u8:null};if(t==="u16")return{u16:null};if(t==="u32")return{u32:null};if(t==="u64")return{u64:null};if(t==="u128")return{u128:null};if(t==="u256")return{u256:null};if(t==="signer")return{signer:null};const n=t.match(UUe);if(n)return{vector:h6.parseFromStr(n[1],e)};const r=t.match(WUe);if(r)return{struct:{address:e?xs(r[1]):r[1],module:r[2],name:r[3],typeParams:r[5]===void 0?[]:h6.parseStructTypeArgs(r[5],e)}};throw new Error(`Encountered unexpected token when parsing type args for ${t}`)}static parseStructTypeArgs(t,e=!1){const n=[];let r="",i=0;for(let s=0;s<t.length;s++){const a=t[s];if(a==="<"&&i++,a===">"&&i--,i===0&&a===","){n.push(r.trim()),r="";continue}r+=a}return n.push(r.trim()),n.map(s=>h6.parseFromStr(s,e))}static tagToString(t){if("bool"in t)return"bool";if("u8"in t)return"u8";if("u16"in t)return"u16";if("u32"in t)return"u32";if("u64"in t)return"u64";if("u128"in t)return"u128";if("u256"in t)return"u256";if("address"in t)return"address";if("signer"in t)return"signer";if("vector"in t)return`vector<${h6.tagToString(t.vector)}>`;if("struct"in t){const e=t.struct,n=e.typeParams.map(h6.tagToString).join(", ");return`${e.address}::${e.module}::${e.name}${n?`<${n}>`:""}`}throw new Error("Invalid TypeTag")}},wue="Argument",Rs="vector",HUe="Option",qUe="CallArg",HZ="TypeTag",GUe="ProgrammableTransaction",DB="ProgrammableMoveCall",Mue="Transaction",xP="EnumKind",VUe=[xP,Mue],cf=[xP,wue],Aue="SimpleProgrammableMoveCall",_l=new ln($fe).registerStructType(GUe,{inputs:[Rs,qUe],transactions:[Rs,VUe]}).registerEnumType(wue,{GasCoin:null,Input:{index:ln.U16},Result:{index:ln.U16},NestedResult:{index:ln.U16,resultIndex:ln.U16}}).registerStructType(DB,{package:ln.ADDRESS,module:ln.STRING,function:ln.STRING,type_arguments:[Rs,HZ],arguments:[Rs,cf]}).registerEnumType(Mue,{MoveCall:Aue,TransferObjects:{objects:[Rs,cf],address:cf},SplitCoins:{coin:cf,amounts:[Rs,cf]},MergeCoins:{destination:cf,sources:[Rs,cf]},Publish:{modules:[Rs,[Rs,ln.U8]],dependencies:[Rs,ln.ADDRESS]},MakeMoveVec:{type:[HUe,HZ],objects:[Rs,cf]},Upgrade:{modules:[Rs,[Rs,ln.U8]],dependencies:[Rs,ln.ADDRESS],packageId:ln.ADDRESS,ticket:cf}});_l.registerType([xP,"T"],function(e,n,r,i){const a={[n.kind]:n},[o]=r;return this.getTypeInterface(o)._encodeRaw.call(this,e,a,r,i)},function(e,n,r){const[i]=n,s=this.getTypeInterface(i)._decodeRaw.call(this,e,n,r),a=Object.keys(s)[0];return{kind:a,...s[a]}},t=>{if(typeof t!="object"&&!("kind"in t))throw new Error(`EnumKind: Missing property "kind" in the input ${JSON.stringify(t)}`);return!0});_l.registerType(Aue,function(e,n,r,i){const[s,a,o]=n.target.split("::"),f=n.typeArguments.map(u=>h6.parseFromStr(u,!0));return this.getTypeInterface(DB)._encodeRaw.call(this,e,{package:xs(s),module:a,function:o,type_arguments:f,arguments:n.arguments},r,i)},function(e,n,r){let i=_l.getTypeInterface(DB)._decodeRaw.call(this,e,n,r);return{target:[i.package,i.module,i.function].join("::"),arguments:i.arguments,typeArguments:i.type_arguments.map(h6.tagToString)}},t=>t.target.split("::").length===3);var YUe=Er([et({ImmOrOwned:A1}),et({Shared:et({objectId:Le(),initialSharedVersion:Er([nu(),Le()]),mutable:zr()})})]),kB=et({Pure:Ct(nu())}),QUe=et({Object:YUe}),e4=Er([kB,QUe]),Uf={Pure(t,e){return{Pure:Array.from(t instanceof Uint8Array?t:_l.ser(e,t).toBytes())}},ObjectRef({objectId:t,digest:e,version:n}){return{Object:{ImmOrOwned:{digest:e,version:n,objectId:xs(t)}}}},SharedObjectRef({objectId:t,mutable:e,initialSharedVersion:n}){return{Object:{Shared:{mutable:e,initialSharedVersion:n,objectId:xs(t)}}}}};function qZ(t){return typeof t=="string"?xs(t):"ImmOrOwned"in t.Object?xs(t.Object.ImmOrOwned.objectId):xs(t.Object.Shared.objectId)}function ZUe(t){return typeof t=="object"&&"Object"in t&&"Shared"in t.Object?t.Object.Shared:void 0}function KUe(t){var e;return((e=ZUe(t))==null?void 0:e.mutable)??!1}var $Ue="ascii",XUe="String",JUe="string",eWe="String",tWe="option",nWe="Option",rWe={address:Zfe,module:Vze,name:Yze},iWe={address:bP,module:$Ue,name:XUe},sWe={address:bP,module:JUe,name:eWe},aWe={address:bP,module:tWe,name:nWe},O9=(t,e)=>t.address===e.address&&t.module===e.module&&t.name===e.name;function oWe(t){var n;const e=(n=iue(t))==null?void 0:n.Struct;return(e==null?void 0:e.address)==="0x2"&&(e==null?void 0:e.module)==="tx_context"&&(e==null?void 0:e.name)==="TxContext"}function HD(t,e){if(!(typeof e>"u")&&typeof e!==t)throw new Error(`Expect ${e} to be ${t}, received ${typeof e}`)}var cWe=["Address","Bool","U8","U16","U32","U64","U128","U256"];function NB(t,e){if(typeof t=="string"&&cWe.includes(t)){if(t in["U8","U16","U32","U64","U128","U256"])HD("number",e);else if(t==="Bool")HD("boolean",e);else if(t==="Address"&&(HD("string",e),e&&!Ju(e)))throw new Error("Invalid Sui Address");return t.toLowerCase()}else if(typeof t=="string")throw new Error(`Unknown pure normalized type ${JSON.stringify(t,null,2)}`);if("Vector"in t){if((e===void 0||typeof e=="string")&&t.Vector==="U8")return"string";if(e!==void 0&&!Array.isArray(e))throw new Error(`Expect ${e} to be a array, received ${typeof e}`);const n=NB(t.Vector,e?e[0]:void 0);return n===void 0?void 0:`vector<${n}>`}if("Struct"in t){if(O9(t.Struct,iWe))return"string";if(O9(t.Struct,sWe))return"utf8string";if(O9(t.Struct,rWe))return"address";if(O9(t.Struct,aWe)){const n={Vector:t.Struct.typeArguments[0]};return NB(n,e)}}}function fWe(t,e){const n=Array.from(`${t}::`).map(i=>i.charCodeAt(0)),r=new Uint8Array(n.length+e.length);return r.set(n),r.set(e,n.length),EPe(r,{dkLen:32})}var uWe=Ot(Pr(Er([et({Epoch:nu()}),et({None:Er([cn(!0),cn(null)])})]))),Eue=Le(),GZ=_c("StringEncodedBigint",t=>{if(!["string","number","bigint"].includes(typeof t))return!1;try{return BigInt(t),!0}catch{return!1}}),lWe=et({budget:Ot(GZ),price:Ot(GZ),payment:Ot(Ct(A1)),owner:Ot(Eue)}),F9=et({version:cn(1),sender:Ot(Eue),expiration:uWe,gasConfig:lWe,inputs:Ct(vm),transactions:Ct(vue)});function VZ(t){return xs(t).replace("0x","")}var YZ=128*1024,Ol=class{constructor(t){this.version=1,this.sender=t==null?void 0:t.sender,this.expiration=t==null?void 0:t.expiration,this.gasConfig=(t==null?void 0:t.gasConfig)??{},this.inputs=(t==null?void 0:t.inputs)??[],this.transactions=(t==null?void 0:t.transactions)??[]}static fromKindBytes(t){const e=_l.de("TransactionKind",t),n=e==null?void 0:e.ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");const r=Da({version:1,gasConfig:{},inputs:n.inputs.map((i,s)=>Da({kind:"Input",value:i,index:s,type:R0(i,kB)?"pure":"object"},vm)),transactions:n.transactions},F9);return Ol.restore(r)}static fromBytes(t){var s;const e=_l.de("TransactionData",t),n=e==null?void 0:e.V1,r=(s=n==null?void 0:n.kind)==null?void 0:s.ProgrammableTransaction;if(!n||!r)throw new Error("Unable to deserialize from bytes.");const i=Da({version:1,sender:n.sender,expiration:n.expiration,gasConfig:n.gasData,inputs:r.inputs.map((a,o)=>Da({kind:"Input",value:a,index:o,type:R0(a,kB)?"pure":"object"},vm)),transactions:r.transactions},F9);return Ol.restore(i)}static restore(t){rw(t,F9);const e=new Ol;return Object.assign(e,t),e}static getDigestFromBytes(t){const e=fWe("TransactionData",t);return iP(e)}build({overrides:t,onlyTransactionKind:e}={}){const n=this.inputs.map(f=>(rw(f.value,e4),f.value)),r={ProgrammableTransaction:{inputs:n,transactions:this.transactions}};if(e)return _l.ser("TransactionKind",r,{maxSize:YZ}).toBytes();const i=(t==null?void 0:t.expiration)??this.expiration,s=(t==null?void 0:t.sender)??this.sender,a={...this.gasConfig,...t==null?void 0:t.gasConfig};if(!s)throw new Error("Missing transaction sender");if(!a.budget)throw new Error("Missing gas budget");if(!a.payment)throw new Error("Missing gas payment");if(!a.price)throw new Error("Missing gas price");const o={sender:VZ(s),expiration:i||{None:!0},gasData:{payment:a.payment,owner:VZ(this.gasConfig.owner??s),price:BigInt(a.price),budget:BigInt(a.budget)},kind:{ProgrammableTransaction:{inputs:n,transactions:this.transactions}}};return _l.ser("TransactionData",{V1:o},{maxSize:YZ}).toBytes()}getDigest(){const t=this.build({onlyTransactionKind:!1});return Ol.getDigestFromBytes(t)}snapshot(){return Da(this,F9)}};function dWe(t){const e={kind:"Result",index:t},n=[],r=i=>n[i]??(n[i]={kind:"NestedResult",index:t,resultIndex:i});return new Proxy(e,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,s){if(s in i)return Reflect.get(i,s);if(s===Symbol.iterator)return function*(){let o=0;for(;;)yield r(o),o++};if(typeof s=="symbol")return;const a=parseInt(s,10);if(!(Number.isNaN(a)||a<0))return r(a)}})}function Db(t){if(!t)throw new Error("No provider passed to Transaction#build, but transaction data was not sufficient to build offline.");return t}var QZ=Symbol.for("@mysten/transaction"),LB=256,hWe=5e10,pWe=1000n,gr,Mx,BB,vP,Sue,Ax,jB,RB=class{constructor(t){Cb(this,Mx),Cb(this,vP),Cb(this,Ax),Cb(this,gr,void 0),Tb(this,gr,new Ol(t?t.blockData:void 0))}static is(t){return!!t&&typeof t=="object"&&t[QZ]===!0}static fromKind(t){const e=new RB;return Tb(e,gr,Ol.fromKindBytes(typeof t=="string"?Kh(t):t)),e}static from(t){const e=new RB;return typeof t!="string"||!t.startsWith("{")?Tb(e,gr,Ol.fromBytes(typeof t=="string"?Kh(t):t)):Tb(e,gr,Ol.restore(JSON.parse(t))),e}static get Transactions(){return Vu}static get Inputs(){return Uf}setSender(t){Tr(this,gr).sender=t}setSenderIfNotSet(t){Tr(this,gr).sender||(Tr(this,gr).sender=t)}setExpiration(t){Tr(this,gr).expiration=t}setGasPrice(t){Tr(this,gr).gasConfig.price=String(t)}setGasBudget(t){Tr(this,gr).gasConfig.budget=String(t)}setGasOwner(t){Tr(this,gr).gasConfig.owner=t}setGasPayment(t){if(t.length>=LB)throw new Error(`Payment objects exceed maximum amount ${LB}`);Tr(this,gr).gasConfig.payment=t.map(e=>Rfe(e,A1))}get blockData(){return Tr(this,gr).snapshot()}get[QZ](){return!0}get gas(){return{kind:"GasCoin"}}object(t){const e=qZ(t);return Tr(this,gr).inputs.find(r=>r.type==="object"&&e===qZ(r.value))??Ib(this,Mx,BB).call(this,"object",t)}objectRef(...t){return this.object(Uf.ObjectRef(...t))}sharedObjectRef(...t){return this.object(Uf.SharedObjectRef(...t))}pure(t,e){return Ib(this,Mx,BB).call(this,"pure",t instanceof Uint8Array?Uf.Pure(t):e?Uf.Pure(t,e):t)}add(t){const e=Tr(this,gr).transactions.push(t);return dWe(e-1)}splitCoins(...t){return this.add(Vu.SplitCoins(...t))}mergeCoins(...t){return this.add(Vu.MergeCoins(...t))}publish(...t){return this.add(Vu.Publish(...t))}upgrade(...t){return this.add(Vu.Upgrade(...t))}moveCall(...t){return this.add(Vu.MoveCall(...t))}transferObjects(...t){return this.add(Vu.TransferObjects(...t))}makeMoveVec(...t){return this.add(Vu.MakeMoveVec(...t))}serialize(){return JSON.stringify(Tr(this,gr).snapshot())}async build({provider:t,onlyTransactionKind:e}={}){return await Ib(this,Ax,jB).call(this,{provider:t,onlyTransactionKind:e}),Tr(this,gr).build({onlyTransactionKind:e})}async getDigest({provider:t}={}){return await Ib(this,Ax,jB).call(this,{provider:t}),Tr(this,gr).getDigest()}},bWe=RB;gr=new WeakMap;Mx=new WeakSet;BB=function(t,e){const n=Tr(this,gr).inputs.length,r=Da({kind:"Input",value:typeof e=="bigint"?String(e):e,index:n,type:t},vm);return Tr(this,gr).inputs.push(r),r};vP=new WeakSet;Sue=async function(t){const e=Tr(this,gr).gasConfig.owner??Tr(this,gr).sender,r=(await Db(t).getCoins({owner:e,coinType:Kfe})).data.filter(i=>!Tr(this,gr).inputs.find(a=>R0(a.value,e4)&&"Object"in a.value&&"ImmOrOwned"in a.value.Object?i.coinObjectId===a.value.Object.ImmOrOwned.objectId:!1)).slice(0,LB-1).map(i=>({objectId:i.coinObjectId,digest:i.digest,version:i.version}));if(!r.length)throw new Error("No valid gas coins found for the transaction.");return r};Ax=new WeakSet;jB=async function({provider:t,onlyTransactionKind:e}){if(!e&&!Tr(this,gr).sender)throw new Error("Missing transaction sender");const{inputs:n,transactions:r}=Tr(this,gr),i=[],s=[];if(r.forEach(a=>{if(a.kind==="MoveCall"){a.arguments.some(u=>u.kind==="Input"&&!R0(n[u.index].value,e4))&&i.push(a);return}const o=zUe(a);o.schema&&Object.entries(a).forEach(([f,u])=>{if(f==="kind")return;const h=o.schema[f],m=h.type==="array",y=m?h.schema[iw]:h[iw];if(!y)return;const x=w=>{const E=n[w];if(!E)throw new Error(`Missing input ${u.index}`);if(!R0(E.value,e4))if(y.kind==="object"&&typeof E.value=="string")s.push({id:E.value,input:E});else if(y.kind==="pure")E.value=Uf.Pure(E.value,y.type);else throw new Error("Unexpected input format.")};if(m)u.forEach(w=>{w.kind==="Input"&&x(w.index)});else{if(u.kind!=="Input")return;x(u.index)}})}),i.length&&await Promise.all(i.map(async a=>{const[o,f,u]=a.target.split("::"),h=await Db(t).getNormalizedMoveFunction({package:Qf(o),module:f,function:u}),y=h.parameters.length>0&&oWe(h.parameters.at(-1))?h.parameters.slice(0,h.parameters.length-1):h.parameters;if(y.length!==a.arguments.length)throw new Error("Incorrect number of arguments.");y.forEach((x,w)=>{const E=a.arguments[w];if(E.kind!=="Input")return;const I=n[E.index];if(R0(I.value,e4))return;const T=I.value,D=NB(x,T);if(D){I.value=Uf.Pure(T,D);return}if(iue(x)!=null||typeof x=="object"&&"TypeParameter"in x){if(typeof T!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(T,null,2)}`);s.push({id:T,input:I,normalizedType:x});return}throw new Error(`Unknown call arg type ${JSON.stringify(x,null,2)} for value ${JSON.stringify(T,null,2)}`)})})),s.length){const a=[...new Set(s.map(({id:h})=>h))],o=await Db(t).multiGetObjects({ids:a,options:{showOwner:!0}});let f=new Map(a.map((h,m)=>[h,o[m]]));const u=Array.from(f).filter(([h,m])=>m.error).map(([h,m])=>h);if(u.length)throw new Error(`The following input objects are not invalid: ${u.join(", ")}`);s.forEach(({id:h,input:m,normalizedType:y})=>{const x=f.get(h),w=hze(x);if(w){const E=KUe(m.value)||y!=null&&rue(y)!=null;m.value=Uf.SharedObjectRef({objectId:h,initialSharedVersion:w,mutable:E})}else m.value=Uf.ObjectRef(lze(x))})}if(!e&&(Tr(this,gr).gasConfig.price||this.setGasPrice(await Db(t).getReferenceGasPrice()),Tr(this,gr).gasConfig.payment||(Tr(this,gr).gasConfig.payment=await Ib(this,vP,Sue).call(this,t)),!this.blockData.gasConfig.budget)){const a=await Db(t).dryRunTransactionBlock({transactionBlock:Tr(this,gr).build({overrides:{gasConfig:{budget:String(hWe),payment:[]}}})});if(a.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${a.effects.status.error}`,{cause:a});const o=pWe*BigInt(this.blockData.gasConfig.price||1n),f=BigInt(a.effects.gasUsed.computationCost)+o,u=f+BigInt(a.effects.gasUsed.storageCost)-BigInt(a.effects.gasUsed.storageRebate);this.setGasBudget(u>f?u:f)}};var mWe=et({currentTps:On(),tps30Days:On(),currentCheckpoint:Le(),currentEpoch:Le(),totalAddresses:Le(),totalObjects:Le(),totalPackages:Le()}),ZZ={socketOptions:uue,versionCacheTimeoutInSeconds:600},Mft=class{constructor(t=OUe,e=ZZ){this.options=e,this.connection=t;const n={...ZZ,...e};this.options=n,this.client=n.rpcClient??new TUe(this.connection.fullnode),this.wsClient=n.websocketClient??new RUe(this.connection.websocket,n.socketOptions)}async getRpcApiVersion(){if(this.rpcApiVersion&&this.cacheExpiry&&this.cacheExpiry<=Date.now())return this.rpcApiVersion;try{const t=await this.client.requestWithType("rpc.discover",[],wu());return this.rpcApiVersion=t.info.version,this.cacheExpiry=Date.now()+(this.options.versionCacheTimeoutInSeconds??0)*1e3,this.rpcApiVersion}catch(t){console.warn("Error fetching version number of the RPC API",t)}}async requestSuiFromFaucet(t,e){if(!this.connection.faucet)throw new Error("Faucet URL is not specified");return _Ue(this.connection.faucet,t,e)}async getCoins(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getCoins",[t.owner,t.coinType,t.cursor,t.limit],PZ)}async getAllCoins(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getAllCoins",[t.owner,t.cursor,t.limit],PZ)}async getBalance(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getBalance",[t.owner,t.coinType],zZ)}async getAllBalances(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getAllBalances",[t.owner],Ct(zZ))}async getCoinMetadata(t){return await this.client.requestWithType("suix_getCoinMetadata",[t.coinType],Qze)}async getTotalSupply(t){return await this.client.requestWithType("suix_getTotalSupply",[t.coinType],bUe)}async call(t,e){const n=await this.client.request(t,e);if(R0(n,fue))throw new IB({req:{method:t,args:e},code:n.error.code,data:n.error.data,cause:new Error(n.error.message)});return n.result}async getMoveFunctionArgTypes(t){return await this.client.requestWithType("sui_getMoveFunctionArgTypes",[t.package,t.module,t.function],Jze)}async getNormalizedMoveModulesByPackage(t){return await this.client.requestWithType("sui_getNormalizedMoveModulesByPackage",[t.package],sUe)}async getNormalizedMoveModule(t){return await this.client.requestWithType("sui_getNormalizedMoveModule",[t.package,t.module],nue)}async getNormalizedMoveFunction(t){return await this.client.requestWithType("sui_getNormalizedMoveFunction",[t.package,t.module,t.function],eue)}async getNormalizedMoveStruct(t){return await this.client.requestWithType("sui_getNormalizedMoveStruct",[t.package,t.module,t.struct],tue)}async getOwnedObjects(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getOwnedObjects",[t.owner,{filter:t.filter,options:t.options},t.cursor,t.limit],bze)}async getObject(t){if(!t.id||!R9(Qf(t.id)))throw new Error("Invalid Sui Object id");return await this.client.requestWithType("sui_getObject",[t.id,t.options],vx)}async multiGetObjects(t){if(t.ids.forEach(n=>{if(!n||!R9(Qf(n)))throw new Error(`Invalid Sui Object id ${n}`)}),t.ids.length!==new Set(t.ids).size)throw new Error(`Duplicate object ids in batch call ${t.ids}`);return await this.client.requestWithType("sui_multiGetObjects",[t.ids,t.options],Ct(vx))}async queryTransactionBlocks(t){return await this.client.requestWithType("suix_queryTransactionBlocks",[{filter:t.filter,options:t.options},t.cursor,t.limit,(t.order||"descending")==="descending"],qze)}async getTransactionBlock(t){if(!CB(t.digest))throw new Error("Invalid Transaction digest");return await this.client.requestWithType("sui_getTransactionBlock",[t.digest,t.options],wx)}async multiGetTransactionBlocks(t){if(t.digests.forEach(n=>{if(!CB(n))throw new Error(`Invalid Transaction digest ${n}`)}),t.digests.length!==new Set(t.digests).size)throw new Error(`Duplicate digests in batch call ${t.digests}`);return await this.client.requestWithType("sui_multiGetTransactionBlocks",[t.digests,t.options],Ct(wx))}async executeTransactionBlock(t){return await this.client.requestWithType("sui_executeTransactionBlock",[typeof t.transactionBlock=="string"?t.transactionBlock:N6(t.transactionBlock),Array.isArray(t.signature)?t.signature:[t.signature],t.options,t.requestType],wx)}async getTotalTransactionBlocks(){const t=await this.client.requestWithType("sui_getTotalTransactionBlocks",[],Le());return BigInt(t)}async getReferenceGasPrice(){const t=await this.client.requestWithType("suix_getReferenceGasPrice",[],Le());return BigInt(t)}async getStakes(t){if(!t.owner||!Ju(xs(t.owner)))throw new Error("Invalid Sui address");return await this.client.requestWithType("suix_getStakes",[t.owner],Ct(FZ))}async getStakesByIds(t){return t.stakedSuiIds.forEach(e=>{if(!e||!R9(Qf(e)))throw new Error(`Invalid Sui Stake id ${e}`)}),await this.client.requestWithType("suix_getStakesByIds",[t.stakedSuiIds],Ct(FZ))}async getLatestSuiSystemState(){return await this.client.requestWithType("suix_getLatestSuiSystemState",[],hUe)}async queryEvents(t){return await this.client.requestWithType("suix_queryEvents",[t.query,t.cursor,t.limit,(t.order||"descending")==="descending"],mze)}async subscribeEvent(t){return this.wsClient.subscribeEvent(t.filter,t.onMessage)}async unsubscribeEvent(t){return this.wsClient.unsubscribeEvent(t.id)}async devInspectTransactionBlock(t){let e;if(bWe.is(t.transactionBlock))t.transactionBlock.setSenderIfNotSet(t.sender),e=N6(await t.transactionBlock.build({provider:this,onlyTransactionKind:!0}));else if(typeof t.transactionBlock=="string")e=t.transactionBlock;else if(t.transactionBlock instanceof Uint8Array)e=N6(t.transactionBlock);else throw new Error("Unknown transaction block format.");return await this.client.requestWithType("sui_devInspectTransactionBlock",[t.sender,e,t.gasPrice,t.epoch],Rze)}async dryRunTransactionBlock(t){return await this.client.requestWithType("sui_dryRunTransactionBlock",[typeof t.transactionBlock=="string"?t.transactionBlock:N6(t.transactionBlock)],Gze)}async getDynamicFields(t){if(!t.parentId||!R9(Qf(t.parentId)))throw new Error("Invalid Sui Object id");return await this.client.requestWithType("suix_getDynamicFields",[t.parentId,t.cursor,t.limit],NUe)}async getDynamicFieldObject(t){return await this.client.requestWithType("suix_getDynamicFieldObject",[t.parentId,t.name],vx)}async getLatestCheckpointSequenceNumber(){const t=await this.client.requestWithType("sui_getLatestCheckpointSequenceNumber",[],Le());return String(t)}async getCheckpoint(t){return await this.client.requestWithType("sui_getCheckpoint",[t.id],cue)}async getCheckpoints(t){const e=await this.getRpcApiVersion();return await this.client.requestWithType("sui_getCheckpoints",[t.cursor,e&&_Z.lt(e,"0.32.0")?String(t==null?void 0:t.limit):t==null?void 0:t.limit,t.descendingOrder],wUe)}async getCommitteeInfo(t){return await this.client.requestWithType("suix_getCommitteeInfo",[t==null?void 0:t.epoch],dUe)}async getNetworkMetrics(){return await this.client.requestWithType("suix_getNetworkMetrics",[],mWe)}async getEpochs(t){const e=await this.getRpcApiVersion();return await this.client.requestWithType("suix_getEpochs",[t==null?void 0:t.cursor,e&&_Z.lt(e,"0.32.0")?String(t==null?void 0:t.limit):t==null?void 0:t.limit,t==null?void 0:t.descendingOrder],yUe)}async getCurrentEpoch(){return await this.client.requestWithType("suix_getCurrentEpoch",[],aue)}async waitForTransactionBlock({signal:t,timeout:e=60*1e3,pollInterval:n=2*1e3,...r}){const i=AbortSignal.timeout(e),s=new Promise((a,o)=>{i.addEventListener("abort",()=>o(i.reason))});for(;!i.aborted;){t==null||t.throwIfAborted();try{return await this.getTransactionBlock(r)}catch{await Promise.race([new Promise(o=>setTimeout(o,n)),s])}}throw i.throwIfAborted(),new Error("Unexpected error while waiting for transaction block.")}};Qf("0x5");function yWe(t){return t.length===22?t:`0x${t.slice(t.length-40,t.length)}`}function gWe(t){return t===Kfe||t==="0x1::aptos_coin::AptosCoin"}function q2(t,e=6){return gWe(t)?t:t.slice(0,e)+"..."+t.slice(t.length-4,t.length)}function Cue(t){const e=t.slice(0,6),n=t.slice(t.length-4,t.length);return`${e}...${n}`}function Tue(t,e){return t?t===un.ETH?q2(yWe(e)):t===un.SOLANA?q2(e,4):q2(e):""}function xWe(t){return Ne.chainsArr.filter(e=>t===e.chainId)[0]}function vWe(t){const e=Ne.chains[t];if(!e)throw new Error(`chain config for ${t} not found`);return e}function Jh(t){if(!t)throw new Error("token must be defined");if(t.tokenId)return t;if(!t.tokenId&&!t.wrappedAsset)throw new Error(`token details misconfigured for ${t.key}`);if(!t.tokenId&&t.wrappedAsset){const e=Ne.tokens[t.wrappedAsset];if(!e)throw new Error("wrapped token not found");return e}return t}function ig(t){return Jh(t).tokenId}function Iue(t){return Ne.tokensArr.find(e=>e.tokenId&&t.chain===e.tokenId.chain&&t.address.toLowerCase()===e.tokenId.address.toLowerCase())}function wP(t,e){const n=G2(t,e),r=t.displayName??t.symbol;if(!n)return r;const i=t.nativeChain==="Ethereum";return SWe(t)&&!i&&e==="Sui"?`Wormhole-wrapped ${t.nativeChain} ${r}`:`${`Wormhole-wrapped ${t4(t,e)?i?"":`${t.nativeChain} `:""}`}${r}`}function E8(t){const e=Ne.tokens[vWe(t).gasToken];if(!e)throw new Error(`gas token not found for ${t}`);return e}function sg(t,e="native"){if(!Ne.chains[t])throw new Error(`chain config for ${t} not found`);if(e==="native"){const{decimals:u}=E8(t);return u}const r=Iue(e);if(!r)throw new Error("token config not found");const{nativeChain:i,decimals:s}=r,a=bd(t),o=bd(i);return a===o?s:Math.min(s,a==="Evm"?18:8)}function KZ(t){const e=document.createElement("textarea");e.value=t,e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(e)}}function Due(t){return navigator.clipboard&&navigator.clipboard.writeText(t).then(function(){return!0},function(){return KZ(t)}),KZ(t)}function wWe(t){return t.startsWith("0x")?t:`0x${t}`}function MWe(t,e){return t==="Sui"?CB(e):t==="Sei"?Ur(wWe(e),32):e.startsWith("0x")&&e.length===66?!0:e.length>70&&e.length<100}function AWe(t){const e=$.useRef();return $.useEffect(()=>{e.current=t}),e.current}async function kue(t){return new Promise(e=>setTimeout(e,t))}const Nue=(t,e)=>{var n;if(t&&e)return(n=t[e.coinGeckoId])==null?void 0:n.usd},MP=t=>typeof t>"u"?"":t===0?"$0":"~"+Intl.NumberFormat("en-EN",{style:"currency",currency:"USD"}).format(t),b2=(t,e,n)=>{if(typeof t>"u"||t===""||!e||!n)return;const r=Nue(e||{},n)||0;if(r>0)return Number.parseFloat(`${t}`)*r},Fl=(t,e,n)=>MP(b2(t,e,n)),Lue=t=>{if(t==null)return!0;for(const e in t)if(t.hasOwnProperty.call(t,e))return!1;return!0},EWe=(t,e)=>{const n=Ne.chains[t];let r="";return t==="Sui"?r=`${n.explorerUrl}coin/${e}`:r=`${n.explorerUrl}address/${e}`,r},t4=(t,e)=>{const{nativeChain:n,symbol:r}=t;return r==="USDC"&&n==="Ethereum"&&e==="Fantom"?!0:G2(t,e)?I8(t.symbol,e)||t.symbol==="tBTC"?!0:t.symbol==="USDC"&&e==="Sui"?!1:!["Ethereum","Sepolia"].includes(n)&&["ETH","WETH","wstETH","USDT","USDC","USDC.e"].includes(r):!1},G2=(t,e)=>t.nativeChain!==e,$Z=(t,e)=>t.key==="USDCeth"&&e==="Sui",SWe=t=>["USDC","USDT","DAI"].includes(t.symbol),Bue=t=>t>6e4?`~${Math.ceil(t/6e4)} min`:`~${Math.ceil(t/1e3)} sec`,CWe=t=>{if(t>864e5){const i=Math.floor(t/864e5);return`~${i} ${i===1?"day":"days"} ago`}else if(t>36e5){const i=Math.floor(t/36e5);return`~${i} ${i===1?"hour":"hours"} ago`}else if(t>6e4){const i=Math.floor(t/6e4);return`~${i} ${i===1?"minute":"minutes"} ago`}else return"~1 minute ago"},TWe=t=>{if(t<60)return t===1?`${t} second`:`${t} seconds`;if(t<3600){const e=Math.floor(t/60);return e===1?`${e} minute`:`${e} minutes`}else{const e=Math.floor(t/3600);return e===1?`${e} hour`:`${e} hours`}};async function jue(t,e){const n=Ne.wrappedTokenAddressCache.get(t.key,e);if(n)return n;const s=await(await xc()).getChain(e).getTokenBridge();console.info(`Resolving foreign address for token ${t.key} on chain ${e}`);const a=Ne.sdkConverter.toTokenIdV2(t);try{const o=await s.getWrappedAsset(a);return o&&Ne.wrappedTokenAddressCache.set(t.key,e,o),o}catch{return null}}function e5(t,e){return Ne.wrappedTokenAddressCache.get(t.key,e)}function IWe(t,e){return(typeof t=="string"?t:t.constructor.meta.name).startsWith("MayanSwap")?{url:`https://explorer.mayan.finance/swap/${e}`,name:"Mayan Explorer",apiUrl:`${Ne.mayanApi}/v3/swap/trx/${e}`}:{url:`${kfe}tx/${e}${Ne.isMainnet?"":"?network=TESTNET"}`,name:"Wormholescan",apiUrl:`${Ne.wormholeApi}api/v1/operations?txHash=${e}`}}async function DWe(t,e){switch(t){case"ManualTokenBridge":return await kWe(e);case"ManualCCTP":return await NWe(e);case"ManualNtt":return XZ(e);case"AutomaticNtt":return XZ(e);default:throw new Error(`Unknown route type ${t}`)}}const kWe=async t=>{var r,i;const e={toChain:t.to,fromChain:t.from};if("originTxs"in t&&t.originTxs.length>0)e.sendTx=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");const{payload:n}=t.attestation.attestation;if(!n.token)throw new Error("Attestation is missing token.");if(n.token){const f=(await(await(await xc()).getChain(n.token.chain).getTokenBridge()).getTokenNativeAddress(n.token.chain,n.token.address)).toString(),u=Nn.tokenId(n.token.chain,f),h=Ne.sdkConverter.findTokenConfigV1(u,Ne.tokensArr);if(!h)throw new Error("Unknown token");const m=t.from,y=sg(m,ig(h));e.tokenDecimals=y,e.amount=ea({amount:n.token.amount.toString(),decimals:Math.min(8,y)}),e.tokenAddress=f,e.tokenKey=h.key,e.receivedTokenKey=h.key,e.receiveAmount=e.amount,(r=n.payload)!=null&&r.toNativeTokenAmount&&(e.receiveNativeAmount=Number(Tv(n.payload.toNativeTokenAmount,Math.min(8,y)))),(i=n.payload)!=null&&i.targetRelayerFee&&(e.relayerFee={fee:Number(Tv(n.payload.targetRelayerFee,Math.min(8,y))),tokenKey:h.key})}if(n.to)if(t.to==="Solana"){if(!Ne.rpcs.Solana)throw new Error("Missing Solana RPC");const s=n.to.address.toNative(t.to).toString(),a=new QE(Ne.rpcs.Solana);try{const o=await Lfe(a,new Fe(s));e.recipient=o.owner.toBase58()}catch(o){console.error(o),e.recipient=s}}else e.recipient=n.to.address.toNative(t.to).toString();return e},NWe=async t=>{const e={toChain:t.to,fromChain:t.from};if("originTxs"in t&&t.originTxs.length>0)e.sendTx=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");if(!t.attestation.attestation)throw new Error("Missing Circle attestation");const{payload:n}=t.attestation.attestation.message,r=Nn.tokenId(t.from,n.burnToken.toNative(t.from).toString()),i=Ne.sdkConverter.findTokenConfigV1(r,Ne.tokensArr);if(!i)throw new Error("Couldn't find USDC for source chain");e.tokenAddress=r.address.toString(),e.tokenKey=i.key;const s=sg(t.from,ig(i));if(e.tokenDecimals=s,e.amount=ea({amount:n.amount.toString(),decimals:s}),e.receiveAmount=e.amount,e.sender=n.messageSender.toNative(t.from).toString(),t.to==="Solana"){if(!Ne.rpcs.Solana)throw new Error("Missing Solana RPC");const o=n.mintRecipient.toNative(t.to).toString(),f=new QE(Ne.rpcs.Solana);try{const u=await Lfe(f,new Fe(o));e.recipient=u.owner.toBase58()}catch(u){console.error(u),e.recipient=o}}else e.recipient=n.mintRecipient.toNative(t.to).toString();const a=Ne.tokensArr.find(o=>o.symbol==="USDC"&&o.nativeChain===e.toChain);if(!a)throw new Error("Couldn't find USDC for destination chain");return e.receivedTokenKey=a.key,e},XZ=t=>{let e="";if("originTxs"in t&&t.originTxs.length>0)e=t.originTxs[t.originTxs.length-1].txid;else throw new Error("Can't find txid in receipt");const n=Nn.tokenId(t.from,t.params.normalizedParams.sourceContracts.token),r=Ne.sdkConverter.findTokenConfigV1(n,Ne.tokensArr);if(!r)throw new Error("Unknown src token");const i=Nn.tokenId(t.to,t.params.normalizedParams.destinationContracts.token),s=Ne.sdkConverter.findTokenConfigV1(i,Ne.tokensArr);if(!s)throw new Error("Unknown dst token");const{attestation:a}=t.attestation,{payload:o}=a.payloadName==="WormholeTransfer"?a:a.payload,{trimmedAmount:f}=o.nttManagerPayload.payload,u=ea({amount:f.amount.toString(),decimals:f.decimals});return{toChain:t.to,fromChain:t.from,sendTx:e,sender:o.nttManagerPayload.sender.toNative(t.from).toString(),recipient:o.nttManagerPayload.payload.recipientAddress.toNative(t.to).toString(),amount:u,tokenAddress:r.tokenId.address.toString(),tokenKey:r.key,tokenDecimals:f.decimals,receivedTokenKey:s.key,receiveAmount:u,relayerFee:void 0}},LWe=t=>typeof t=="object"&&typeof t.amount=="string"&&typeof t.decimals=="number",BWe=t=>{const e=t;return LWe(e==null?void 0:e.min)};class jWe{constructor(e){ce(this,"wh");this.wh=e}toTokenIdV1(e){if(e.address!=="native")return{chain:e.chain,address:e.address.toString()}}toTokenIdV2(e,n){if(this.isTokenConfigV1(e))if(n&&n!=e.nativeChain){const r=e5(e,n);if(r)return Nn.tokenId(n,r.toString());throw new Error("no foreign asset")}else{const r=this.getNativeTokenAddressV2(e);if(!r)throw new Error("no address");return Nn.tokenId(e.nativeChain,r)}else return Nn.tokenId(e.chain,e.address)}tokenIdV2(e,n){return Nn.tokenId(e,n)}isTokenConfigV1(e){return"key"in e}findTokenConfigV1(e,n){var s;const r=e.address==="native",i=e.chain;for(const a in n){const o=n[a];if(o.nativeChain===i){if(r&&o.key===E8(i).key)return o;if(((s=o.tokenId)==null?void 0:s.address.toLowerCase())===e.address.toString().toLowerCase())return o}else{const f=e5(o,i);if(f&&f.toString()===e.address.toString())return o}}}async getTokenIdV2ForKey(e,n,r){const i=r[e];if(i)if(i.nativeChain===n){const s=this.getNativeTokenAddressV2(i);return s?this.tokenIdV2(n,s):void 0}else{const s=await jue(r[e],n);return s?this.tokenIdV2(n,s.toString()):void 0}}getNativeTokenAddressV2(e){var r;return E8(e.nativeChain).key===e.key&&e.key!=="CELO"?"native":(r=e.tokenId)==null?void 0:r.address}}const RWe="modulepreload",_We=function(t){return"/"+t},JZ={},ss=function(e,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),o=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.allSettled(n.map(f=>{if(f=_We(f),f in JZ)return;JZ[f]=!0;const u=f.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${h}`))return;const m=document.createElement("link");if(m.rel=u?"stylesheet":RWe,u||(m.as="script"),m.crossOrigin="",m.href=f,o&&m.setAttribute("nonce",o),document.head.appendChild(m),u)return new Promise((y,x)=>{m.addEventListener("load",y),m.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${f}`)))})}))}function s(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return i.then(a=>{for(const o of a||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})},OWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/evm-C-buBtRY.js");return{default:t}},[])).default,FWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/solana-BmGIyTEt.js");return{default:t}},__vite__mapDeps([0,1]))).default,PWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/aptos-k14Q8oIC.js").then(e=>e.a);return{default:t}},[])).default,zWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/sui-CW05lm4n.js").then(e=>e.s);return{default:t}},__vite__mapDeps([2,3]))).default,UWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/cosmwasm-Bb55TeV-.js").then(e=>e.a3);return{default:t}},__vite__mapDeps([4,3,5,6,7]))).default,WWe=async()=>(await ss(async()=>{const{default:t}=await import("./assets/algorand-CyJRjYjt.js").then(e=>e.a);return{default:t}},[])).default;var Rue={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(f,u,h){this.fn=f,this.context=u,this.once=h||!1}function s(f,u,h,m,y){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||f,y),w=n?n+u:u;return f._events[w]?f._events[w].fn?f._events[w]=[f._events[w],x]:f._events[w].push(x):(f._events[w]=x,f._eventsCount++),f}function a(f,u){--f._eventsCount===0?f._events=new r:delete f._events[u]}function o(){this._events=new r,this._eventsCount=0}o.prototype.eventNames=function(){var u=[],h,m;if(this._eventsCount===0)return u;for(m in h=this._events)e.call(h,m)&&u.push(n?m.slice(1):m);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(h)):u},o.prototype.listeners=function(u){var h=n?n+u:u,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,x=m.length,w=new Array(x);y<x;y++)w[y]=m[y].fn;return w},o.prototype.listenerCount=function(u){var h=n?n+u:u,m=this._events[h];return m?m.fn?1:m.length:0},o.prototype.emit=function(u,h,m,y,x,w){var E=n?n+u:u;if(!this._events[E])return!1;var I=this._events[E],T=arguments.length,D,k;if(I.fn){switch(I.once&&this.removeListener(u,I.fn,void 0,!0),T){case 1:return I.fn.call(I.context),!0;case 2:return I.fn.call(I.context,h),!0;case 3:return I.fn.call(I.context,h,m),!0;case 4:return I.fn.call(I.context,h,m,y),!0;case 5:return I.fn.call(I.context,h,m,y,x),!0;case 6:return I.fn.call(I.context,h,m,y,x,w),!0}for(k=1,D=new Array(T-1);k<T;k++)D[k-1]=arguments[k];I.fn.apply(I.context,D)}else{var N=I.length,R;for(k=0;k<N;k++)switch(I[k].once&&this.removeListener(u,I[k].fn,void 0,!0),T){case 1:I[k].fn.call(I[k].context);break;case 2:I[k].fn.call(I[k].context,h);break;case 3:I[k].fn.call(I[k].context,h,m);break;case 4:I[k].fn.call(I[k].context,h,m,y);break;default:if(!D)for(R=1,D=new Array(T-1);R<T;R++)D[R-1]=arguments[R];I[k].fn.apply(I[k].context,D)}}return!0},o.prototype.on=function(u,h,m){return s(this,u,h,m,!1)},o.prototype.once=function(u,h,m){return s(this,u,h,m,!0)},o.prototype.removeListener=function(u,h,m,y){var x=n?n+u:u;if(!this._events[x])return this;if(!h)return a(this,x),this;var w=this._events[x];if(w.fn)w.fn===h&&(!y||w.once)&&(!m||w.context===m)&&a(this,x);else{for(var E=0,I=[],T=w.length;E<T;E++)(w[E].fn!==h||y&&!w[E].once||m&&w[E].context!==m)&&I.push(w[E]);I.length?this._events[x]=I.length===1?I[0]:I:a(this,x)}return this},o.prototype.removeAllListeners=function(u){var h;return u?(h=n?n+u:u,this._events[h]&&a(this,h)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,t.exports=o})(Rue);var HWe=Rue.exports;const qWe=hs(HWe);class GWe extends Error{constructor(){super("Not supported")}}class Aft extends Error{constructor(){super("Not connected")}}var eK;(function(t){t.SignTransaction="SignTransaction",t.SendTransaction="SendTransaction",t.SignAndSendTransaction="SignAndSendTransaction",t.SignMessage="SignMessage"})(eK||(eK={}));var wm;(function(t){t.Installed="Installed",t.NotDetected="NotDetected",t.Loadable="Loadable",t.Unsupported="Unsupported"})(wm||(wm={}));class Eft extends qWe{getWalletState(){return wm.Installed}supportsFeature(e){const n=this.getFeatures();return Array.isArray(e)?e.every(r=>n.includes(r)):n.includes(e)}}const Jr={unset:0,solana:1,ethereum:2,terra:3,bsc:4,polygon:5,avalanche:6,oasis:7,algorand:8,aurora:9,fantom:10,karura:11,acala:12,klaytn:13,celo:14,near:15,moonbeam:16,neon:17,terra2:18,injective:19,osmosis:20,sui:21,aptos:22,arbitrum:23,optimism:24,gnosis:25,pythnet:26,xpla:28,btc:29,base:30,sei:32,rootstock:33,scroll:34,mantle:35,blast:36,xlayer:37,linea:38,berachain:39,seievm:40,wormchain:3104,cosmoshub:4e3,evmos:4001,kujira:4002,neutron:4003,celestia:4004,stargaze:4005,seda:4006,dymension:4007,provenance:4008,sepolia:10002,arbitrum_sepolia:10003,base_sepolia:10004,optimism_sepolia:10005,holesky:10006,polygon_sepolia:10007};Object.entries(Jr).reduce((t,[e,n])=>(t[n]=e,t),{});const Sft=Jr.solana,VWe=Jr.ethereum,YWe=Jr.bsc,QWe=Jr.polygon,ZWe=Jr.avalanche,KWe=Jr.oasis,$We=Jr.aurora,XWe=Jr.fantom,JWe=Jr.karura,eHe=Jr.acala,tHe=Jr.klaytn,nHe=Jr.celo,rHe=Jr.moonbeam,iHe=Jr.neon,Cft=Jr.sui,Tft=Jr.aptos,sHe=Jr.arbitrum,aHe=Jr.optimism,oHe=Jr.gnosis,cHe=Jr.base,fHe=Jr.scroll,uHe=Jr.mantle,lHe=Jr.blast,dHe=Jr.xlayer;function Ift(t){return t===VWe||t===YWe||t===ZWe||t===QWe||t===KWe||t===$We||t===XWe||t===JWe||t===eHe||t===tHe||t===nHe||t===rHe||t===iHe||t===sHe||t===aHe||t===oHe||t===cHe||t===fHe||t===lHe||t===dHe||t===uHe}const sw={address:"",type:void 0,currentAddress:"",error:"",icon:void 0,name:""},qD={sending:sw,receiving:sw},_ue=H8({name:"wallet",initialState:qD,reducers:{connectWallet:(t,{payload:e})=>{t.sending.address=e.address,t.sending.currentAddress=e.address,t.sending.type=e.type,t.sending.name=e.name,t.sending.error="",t.sending.icon=e.icon},connectReceivingWallet:(t,{payload:e})=>{t.receiving.address=e.address,t.receiving.currentAddress=e.address,t.receiving.type=e.type,t.receiving.name=e.name,t.receiving.error="",t.receiving.icon=e.icon},clearWallet:(t,{payload:e})=>{t[e]=sw},disconnectWallet:(t,{payload:e})=>{GD(e),t[e]=sw},setWalletError:(t,{payload:e})=>{const{type:n,error:r}=e;t[n].error=r},setAddress:(t,{payload:e})=>{const{type:n,address:r}=e;t[n].address=r,t[n].currentAddress=r},clearWallets:t=>{Object.keys(t).forEach(e=>{t[e]=qD[e]})},disconnectWallets:t=>{GD(h0.SENDING),GD(h0.RECEIVING),Object.keys(t).forEach(e=>{t[e]=qD[e]})},swapWallets:t=>{const e=t.sending;t.sending=t.receiving,t.receiving=e,wHe()}}}),{connectWallet:hHe,connectReceivingWallet:pHe,clearWallet:Oue,setAddress:Dft,setWalletError:bHe,clearWallets:mHe,disconnectWallet:yHe,disconnectWallets:kft,swapWallets:gHe}=_ue.actions,xHe=_ue.reducer;var h0=(t=>(t.SENDING="sending",t.RECEIVING="receiving",t))(h0||{});const Zf={sending:void 0,receiving:void 0},Fue=t=>t?Ne.chainsArr.filter(e=>e.context===t).map(e=>e.key):Ne.chainsArr.map(e=>e.key),vHe=(t,e)=>{Zf[t]=e},Pue=async(t,e,n,r)=>{const{wallet:i,name:s}=n;vHe(t,i);const a=Ne.chains[e];if(!a)throw new Error(`Unable to find wallets for chain ${e}`);const{chainId:o,context:f}=a;await i.connect({chainId:o}),Ne.triggerEvent({type:"wallet.connect",details:{side:t,chain:e,wallet:n.name.toLowerCase()}});const u=i.getAddress(),h={address:u,type:n.type,icon:i.getIcon(),name:i.getName()};r(t==="sending"?hHe(h):pHe(h)),i.on("disconnect",()=>{i.removeAllListeners(),r(Oue(t)),localStorage.removeItem(`wormhole-connect:wallet:${f}`)}),i.on("accountsChanged",m=>{(m.length===0||m.length&&u&&m[0]!==u)&&i.disconnect()}),localStorage.setItem(`wormhole-connect:wallet:${f}`,s)},tK=async(t,e,n)=>{const r=Ne.chains[e],i=localStorage.getItem(`wormhole-connect:wallet:${r.context}`);if(i&&i!=="WalletConnect"){const a=(await Hue(r)).find(o=>o.name===i);a&&await Pue(t,e,a,n)}},zue=()=>{const t=Ri(),{toChain:e,fromChain:n}=Yn(r=>r.transferInput);$.useEffect(()=>{n&&tK("sending",n,t),e&&tK("receiving",e,t)},[n,e])},wHe=()=>{const t=Zf.sending;Zf.sending=Zf.receiving,Zf.receiving=t},Uue=async(t,e)=>{const n=Zf[e];if(!n)throw new Error("must connect wallet");const r=await n.getSigner();Ne.whLegacy.registerSigner(t,r)},Wue=async(t,e)=>{const n=Zf[e];if(!n)throw new Error("must connect wallet");const r=xWe(t);if(n.getNetworkInfo().chainId!==t){if(r.context===un.ETH)try{await(await ss(()=>import("./assets/evm-Ch2OAEjY.js").then(a=>a.j),__vite__mapDeps([8,9]))).switchChain(n,t)}catch(s){if(s instanceof GWe)return;throw s}return n.getAddress()}},GD=async t=>{const e=Zf[t];e&&await e.disconnect()},MHe=async(t,e,n,r={})=>{const i=Ne.chains[t],s=Zf[n];if(!s)throw new Error("wallet is undefined");if(i.context===un.ETH)return await(await ss(()=>import("./assets/evm-Ch2OAEjY.js").then(f=>f.j),__vite__mapDeps([8,9]))).signAndSendTransaction(e,s,t,r);if(i.context===un.SOLANA)return await(await ss(()=>import("./assets/solana-D5RkygmT.js"),__vite__mapDeps([10,11,1]))).signAndSendTransaction(e,s,r);if(i.context===un.SUI)return(await(await ss(()=>import("./assets/sui-DKCuV9MM.js"),__vite__mapDeps([12,11]))).signAndSendTransaction(e,s)).id;if(i.context===un.APTOS)return(await(await ss(()=>import("./assets/aptos-iv_Arec9.js"),__vite__mapDeps([13,6]))).signAndSendTransaction(e,s)).id;throw new Error("unimplemented")},AHe=t=>{const e=t.getWalletState();return e!==wm.Unsupported&&e!==wm.NotDetected},P9=(t,e,n=[])=>Object.values(t).filter((r,i,s)=>i===s.findIndex(a=>a.getName()===r.getName())).filter(r=>!n.includes(r.getName())).map(r=>({wallet:r,type:e,name:r.getName(),icon:r.getIcon(),isReady:AHe(r)})),Hue=async t=>{if(t===void 0)return[];if(t.context===un.ETH){const e=await ss(()=>import("./assets/evm-Ch2OAEjY.js").then(n=>n.j),__vite__mapDeps([8,9]));return Object.values(P9(e.wallets,un.ETH))}else if(t.context===un.SOLANA){const n=(await ss(()=>import("./assets/solana-D5RkygmT.js"),__vite__mapDeps([10,11,1]))).fetchOptions();return Object.values(P9(n,un.SOLANA))}else if(t.context===un.SUI){const n=await(await ss(()=>import("./assets/sui-DKCuV9MM.js"),__vite__mapDeps([12,11]))).fetchOptions();return Object.values(P9(n,un.SUI))}else if(t.context===un.APTOS){const n=(await ss(()=>import("./assets/aptos-iv_Arec9.js"),__vite__mapDeps([13,6]))).fetchOptions();return Object.values(P9(n,un.APTOS))}return[]};class XE{constructor(e,n,r,i,s){ce(this,"_chain");ce(this,"_chainContextV2");ce(this,"_address");ce(this,"_options");ce(this,"_walletType");this._chain=e,this._chainContextV2=n,this._address=r,this._options=i,this._walletType=s}static async fromChain(e,n,r,i){const a=(await xc()).getPlatform(bd(e)).getChain(e);return new XE(e,a,n,r,i)}async signAndSend(e){const n=[];for(const r of e){const i=await MHe(this._chain,r,this._walletType,this._options);n.push(i)}return n}chain(){return this._chainContextV2.chain}address(){return this._address}}class EHe{constructor(e){ce(this,"IS_TOKEN_BRIDGE_ROUTE",!1);this.rc=e,this.IS_TOKEN_BRIDGE_ROUTE=["ManualTokenBridge","AutomaticTokenBridge","CosmosGateway"].includes(e.meta.name)}get AUTOMATIC_DEPOSIT(){return this.rc.IS_AUTOMATIC}get NATIVE_GAS_DROPOFF_SUPPORTED(){return this.rc.NATIVE_GAS_DROPOFF_SUPPORTED}async getV2ChainContext(e){const r=(await xc()).getPlatform(bd(e)).getChain(e);return{chain:e,context:r}}async isRouteSupported(e,n,r,i,s){const a=await this.getV2ChainContext(i),o=await this.getV2ChainContext(s),f=this.rc.supportedChains(Ne.network),u=f.includes(a.chain),h=f.includes(o.chain),m=await Ne.sdkConverter.getTokenIdV2ForKey(e,i,Ne.tokens),y=await Ne.sdkConverter.getTokenIdV2ForKey(n,s,Ne.tokens);if(!m||!y)return!1;const x=!!(await this.rc.supportedSourceTokens(a.context)).find(T=>_v(T,m)),E=!!(await this.rc.supportedDestinationTokens(m,a.context,o.context)).find(T=>{let D=y;if(this.IS_TOKEN_BRIDGE_ROUTE&&ci(y.address)){const k=ig(E8(s));D=Ne.sdkConverter.tokenIdV2(s,k.address)}return _v(T,D)});return u&&h&&x&&E}isSupportedChain(e){return this.rc.supportedChains(Ne.network).includes(e)}async supportedSourceTokens(e,n,r,i){if(!r)return[];const s=await this.getV2ChainContext(r);return(await this.rc.supportedSourceTokens(s.context)).map(a=>Ne.sdkConverter.findTokenConfigV1(a,e)).filter(a=>a!=null)}async supportedDestTokens(e,n,r,i){if(!r||!i||!n)return[];if(this.IS_TOKEN_BRIDGE_ROUTE&&this.isIlliquidDestToken(n,i))return[];const s=await this.getV2ChainContext(r),a=await this.getV2ChainContext(i),o=Ne.sdkConverter.toTokenIdV2(n,r),f=await this.rc.supportedDestinationTokens(o,s.context,a.context);if(this.IS_TOKEN_BRIDGE_ROUTE&&f.length>0){const u=G2(n,i),h=e5(Jh(n),i);return u&&!h?[]:[Jh(n)]}return f.map(u=>Ne.sdkConverter.findTokenConfigV1(u,e)).filter(u=>u!=null)}async getQuote(e,n,r,i,s,a){const o=await this.createRequest(e,n,r,i,s),f=await xc(),u=new this.rc(f),h=await u.validate(o,{amount:e,options:a});if(!h.valid)throw h.error;const m=await u.quote(o,h.params);return[u,m,o]}async createRequest(e,n,r,i,s){const a=await Ne.sdkConverter.getTokenIdV2ForKey(n,i,Ne.tokens),o=await Ne.sdkConverter.getTokenIdV2ForKey(r,s,Ne.tokens);if(a===void 0)throw new Error(`Failed to find TokenId for ${n}`);if(o===void 0)throw new Error(`Failed to find TokenId for ${r}`);const f=(await this.getV2ChainContext(i)).context,u=(await this.getV2ChainContext(s)).context,h=await xc();return await xO.create(h,{source:a,destination:o},f,u)}async computeReceiveAmount(e,n,r,i,s,a){if(isNaN(e))return 0;if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");const[,o]=await this.getQuote(e.toString(),n,r,i,s,a);if(o.success)return N1(o.destinationToken.amount);throw o.error}async computeReceiveAmountWithFees(e,n,r,i,s,a){if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");return this.computeReceiveAmount(e,n,r,i,s,a)}async computeQuote(e,n,r,i,s,a){if(!i||!s)throw new Error("Need both chains to get a quote from SDKv2");const[,o]=await this.getQuote(e,n,r,i,s,a);if(!o.success)throw o.error;return o}async send(e,n,r,i,s,a,o,f){const[u,h,m]=await this.getQuote(n.toString(),e.key,o,r,s,f);if(!h.success)throw h.error;const y=await XE.fromChain(r,i,{},h0.SENDING);let x=await u.initiate(m,y,h,Nn.chainAddress(s,a));if(x.state===Jt.SourceInitiated||x.state===Jt.SourceFinalized)return[u,x];for await(x of u.track(x,120*1e3))if(x.state>=Jt.SourceInitiated)return[u,x];throw new Error("Never got a SourceInitiated state in receipt")}async resumeIfManual(e){const n=await xc(),r=new this.rc(n);return XL(r)||JL(r)?r.resume(e):null}isIlliquidDestToken(e,n){const{symbol:r,nativeChain:i}=e;return!!(t4(e,n)||["ETH","WETH"].includes(r)&&i==="Ethereum"&&["Scroll","Blast","Xlayer","Mantle"].includes(n))}}var nK;(function(t){t.ManualOptions={automatic:!1},t.AutomaticOptions={automatic:!0,gasDropoff:"0.0"};function e(f){return["Mainnet","Testnet"]}t.resolveSupportedNetworks=e;function n(f,u){return Object.values(f.tokens).flatMap(m=>m.map(y=>y.chain))}t.resolveSupportedChains=n;function r(f,u){return Object.entries(f.tokens).map(([,m])=>{const y=m.find(x=>x.chain===u.chain);return y?Nn.tokenId(u.chain,y.token):null}).filter(m=>!!m)}t.resolveSourceTokens=r;function i(f,u,h,m){return Object.entries(f.tokens).map(([,y])=>{if(!y.find(E=>E.chain===h.chain&&E.token.toLowerCase()===Ui(u).toLowerCase()))return;const w=y.find(E=>E.chain===m.chain);if(w)return Nn.tokenId(m.chain,w.token)}).filter(y=>!!y)}t.resolveDestinationTokens=i;function s(f,u){const h=Object.values(f.tokens),m=Ui(u);for(const y of h){const x=y.find(w=>w.token.toLowerCase()===m.toLowerCase()&&w.chain===u.chain);if(x)return{token:x.token,manager:x.manager,transceiver:{wormhole:x.transceiver.find(w=>w.type==="wormhole").address},quoter:x.quoter}}throw new Error("Cannot find Ntt contracts in config for: "+m)}t.resolveNttContracts=s;function a(f,u,h){const m=Object.values(f.tokens),y=Ui(u);for(const x of m)if(x.find(E=>E.manager.toLowerCase()===y.toLowerCase()&&E.chain===u.chain)){const E=x.find(I=>I.chain===h);if(!E)throw new Error(`Cannot find destination Ntt contracts in config for: ${y}`);return{token:E.token,manager:E.manager,transceiver:{wormhole:E.transceiver.find(I=>I.type==="wormhole").address},quoter:E.quoter}}throw new Error("Cannot find Ntt contracts in config for: "+y)}t.resolveDestinationNttContracts=a;function o(f,u){const h=u*95n/100n;return f>h}t.isCapacityThresholdExceeded=o})(nK||(nK={}));const _B=t=>[...Array(t).keys()],SHe=(t,e)=>t.map(n=>n[e]),kb=t=>_B(t[0].length).map(e=>_B(t.length).map(n=>t[n][e]));function CHe(t){return["string","number","symbol","bigint","boolean"].includes(typeof t)}const rK=t=>t.length===2&&!Array.isArray(t[0])&&Array.isArray(t[1]),OB=t=>t.length===0?[]:Array.isArray(t[0])?t.map(([e,n])=>Array.isArray(n)?(rK(n)?OB(n):n).map(r=>[e,r].flat()):[[e,n]]).flat():rK(t)?OB(t[1]).map(e=>[t[0],e]):t,THe=(t,e)=>{const n=OB(t);if(n.length===0)throw new Error("Invalid mapping: empty");const r=e===void 0?[_B(n[0].length-1),[n[0].length-1]]:e.map(y=>typeof y=="number"?[y]:y);let i=[],s=!0;const a=(y,x)=>{const w=Array.from(new Set(y[0]).values()),E=new Map(w.map(T=>[T,[]]));for(const[T,D]of y[0].entries())E.get(D).push(T);if(y.length===1){const T=Object.fromEntries(w.map(D=>[D,E.get(D).map(k=>x[k].length===1?x[k][0]:x[k])]));if(s){for(const D of E.values())if(D.length>1)return s=!1,T;i.push(T)}return T}const I=kb(y.slice(1));return Object.fromEntries(w.map(T=>{const D=E.get(T),k=kb(D.map(R=>I[R])),N=D.map(R=>x[R]);return[T,a(k,N)]}))},o=kb(n),f=y=>{const x=o[y];if(x===void 0)throw new Error(`Invalid shape: column ${y} does not exist`);return x},[u,h]=r.map(y=>y.map(x=>f(x)));if(u.length===0)throw new Error("Invalid shape: empty key set");if(h.length===0)throw new Error("Invalid shape: empty value set");for(const y of u)for(const x of y)if(!CHe(x))throw new Error(`Invalid key: ${x} in ${y}`);const m=a(u,kb(h));if(s)for(const y of i)for(const x of Object.keys(y))y[x]=y[x][0];return m};function Fd(t,e){const n=THe(t,e),r=(...i)=>i.reduce((s,a)=>s?s[a.toString()]??void 0:void 0,n);return Object.assign(r,{has:(...i)=>r(...i)!==void 0,get:(...i)=>r(...i),subMap:i=>n[i.toString()]})}const IHe=["int","uint","bytes","array","switch"],que="big",AP=6,aw=t=>typeof t=="number"||typeof t=="bigint",JE=t=>t instanceof Uint8Array,ow=t=>IHe.includes(t==null?void 0:t.binary),DHe=t=>ow(t)||Array.isArray(t)&&t.every(ow),eS=t=>JE(t==null?void 0:t.from),cw=(t,e)=>({...t,binary:"bytes",...e===void 0?{}:DHe(e)?{layout:e}:e instanceof Uint8Array||eS(e)||!Array.isArray(e)?{custom:e}:{layout:e[0],custom:e[1]}}),Gue=(t,e)=>{if(t!==e)throw new Error(`size mismatch: layout size: ${t}, data size: ${e}`);return e},Ex=(t,e)=>"size"in t&&t.size!==void 0?Gue(t.size,e):e,FB=(t,e)=>{if(t!=e)throw new Error(`value mismatch: (constant) layout value: ${t}, data value: ${e}`)},PB=(t,e,n)=>{const r=(u,h)=>h===void 0?[0,u.length]:Array.isArray(h)?h:[h,u.length],[i,s]=r(t,n==null?void 0:n.customSlice),[a,o]=r(e,n==null?void 0:n.dataSlize),f=s-i;Gue(f,o-a);for(let u=0;u<t.length;++u)if(t[u+i]!==e[u+a])throw new Error(`binary data mismatch: layout value: ${t}, offset: ${i}, data value: ${e}, offset: ${a}`)};function Vue(t,e){const n=e[t.idTag??"id"];return t.layouts.find(([r])=>(Array.isArray(r)?r[1]:r)==n)}function iK(t,e){switch(t.binary){case"int":case"uint":return t.size;case"bytes":{const n="lengthSize"in t?t.lengthSize|0:0;if("layout"in t){const{custom:i}=t,s=G5(t.layout,i===void 0?e:typeof i.from=="function"?i.from(e):i.from);return s===null?"size"in t?t.size??null:null:n+Ex(t,s)}const{custom:r}=t;return JE(r)?n+r.length:eS(r)?n+r.from.length:r===void 0?e?n+Ex(t,e.length):null:e!==void 0?n+Ex(t,r.from(e).length):null}case"array":{const n="length"in t?t.length:void 0;if(e===void 0){if(n!==void 0){const i=G5(t.layout);return i===null?null:n*i}return null}let r=0;if(n!==void 0&&n!==e.length)throw new Error(`array length mismatch: layout length: ${n}, data length: ${e.length}`);"lengthSize"in t&&t.lengthSize!==void 0&&(r+=t.lengthSize);for(let i=0;i<e.length;++i){const s=G5(t.layout,e[i]);if(s===null)return null;r+=s}return r}case"switch":{if(e!==void 0){const[r,i]=Vue(t,e),s=G5(i,e);return s!==null?t.idSize+s:null}let n=null;for(const[r,i]of t.layouts){const s=G5(i);if(n===null)n=s;else if(s!==n)return null}return t.idSize+n}}}function G5(t,e){if(ow(t))return iK(t,e);let n=0;for(const r of t){let i;if(e&&(!("omit"in r)||!r.omit)){if(!(r.name in e))throw new Error(`missing data for layout item: ${r.name}`);i=e[r.name]}const s=iK(r,i);if(s===null){if(e!==void 0)throw new Error(`coding error: couldn't calculate size for layout item: ${r.name}`);return null}n+=s}return n}function kHe(t,e){const n=G5(t,e);if(n===null)throw new Error(`coding error: couldn't calculate layout size for layout ${t} with data ${e}`);return n}const VD=(t,e)=>{t.bytes.set(e,t.offset),t.offset+=e.length};function zB(t,e,n,r=0){const i={bytes:n??new Uint8Array(kHe(t,e)),offset:r};if(Sx(t,e,i),!n&&i.offset!==i.bytes.length)throw new Error(`encoded data is shorter than expected: ${i.bytes.length} > ${i.offset}`);return n?i.offset:i.bytes}const sK=2**(AP*8);function z9(t,e,n,r=que,i=!1){if(!i&&t<0)throw new Error(`Value ${t} is negative but unsigned`);if(typeof t=="number"){if(!Number.isInteger(t))throw new Error(`Value ${t} is not an integer`);if(e>AP){if(t>=sK)throw new Error(`Value ${t} is too large to be safely converted into an integer`);if(i&&t<=-sK)throw new Error(`Value ${t} is too small to be safely converted into an integer`)}}const s=2n**BigInt(e*8);if(t>=s)throw new Error(`Value ${t} is too large for ${e} bytes`);if(i&&t<-s)throw new Error(`Value ${t} is too small for ${e} bytes`);for(let a=0;a<e;++a)n.bytes[n.offset+a]=Number(BigInt(t)>>BigInt(8*(r==="big"?e-a-1:a))&0xffn);n.offset+=e}function Sx(t,e,n){if(ow(t))aK(t,e,n);else for(const r of t)try{aK(r,e[r.name],n)}catch(i){throw i.message=`when serializing item '${r.name}': ${i.message}`,i}}function aK(t,e,n){switch(t.binary){case"int":case"uint":{const r=(()=>{var i;return aw(t.custom)?("omit"in t&&t.omit||FB(t.custom,e),t.custom):aw((i=t==null?void 0:t.custom)==null?void 0:i.from)?t.custom.from:t.custom!==void 0?t.custom.from(e):e})();z9(r,t.size,n,t.endianness,t.binary==="int");break}case"bytes":{const r=n.offset;if("lengthSize"in t&&t.lengthSize!==void 0&&(n.offset+=t.lengthSize),"layout"in t){const{custom:i}=t;let s;i===void 0?s=e:typeof i.from!="function"?s=i.from:s=i.from(e),Sx(t.layout,s,n)}else{const{custom:i}=t;JE(i)?("omit"in t&&t.omit||PB(i,e),VD(n,i)):eS(i)?VD(n,i.from):VD(n,i!==void 0?i.from(e):e)}if("lengthSize"in t&&t.lengthSize!==void 0){const i=n.offset-r-t.lengthSize,s=n.offset;n.offset=r,z9(i,t.lengthSize,n,t.lengthEndianness),n.offset=s}else Ex(t,n.offset-r);break}case"array":{if("length"in t&&t.length!==e.length)throw new Error(`array length mismatch: layout length: ${t.length}, data length: ${e.length}`);"lengthSize"in t&&t.lengthSize!==void 0&&z9(e.length,t.lengthSize,n,t.lengthEndianness);for(let r=0;r<e.length;++r)Sx(t.layout,e[r],n);break}case"switch":{const[r,i]=Vue(t,e),s=Array.isArray(r)?r[0]:r;z9(s,t.idSize,n,t.idEndianness),Sx(i,e,n);break}}}function NHe(t){const e=t.custom;if(!("cachedSerializedFrom"in e)&&(e.cachedSerializedFrom=zB(t.layout,e.from),"size"in t&&t.size!==void 0&&t.size!==e.cachedSerializedFrom.length))throw new Error("Layout specification error: custom.from does not serialize to specified size");return e.cachedSerializedFrom}function Yue(t,e,n){const r={bytes:e,offset:0,end:e.length},i=Nb(t,r);if(r.offset!==r.end)throw new Error(`encoded data is longer than expected: ${r.end} > ${r.offset}`);return i}function Cx(t,e){const n=t.offset+e;if(n>t.end)throw new Error(`chunk is shorter than expected: ${t.end} < ${n}`);t.offset=n}function Nb(t,e){if(!Array.isArray(t))return oK(t,e);let n={};for(const r of t)try{(r.omit?{}:n)[r.name]=oK(r,e)}catch(i){throw i.message=`when deserializing item '${r.name}': ${i.message}`,i}return n}function U9(t,e,n=que,r=!1){let i=0n;for(let s=0;s<e;++s)i|=BigInt(t.bytes[t.offset+s])<<BigInt(8*(n==="big"?e-s-1:s));return r&&t.bytes[t.offset+(n==="big"?0:e-1)]&128&&(i-=1n<<BigInt(8*e)),Cx(t,e),e>AP?i:Number(i)}function oK(t,e){switch(t.binary){case"int":case"uint":{const n=U9(e,t.size,t.endianness,t.binary==="int"),{custom:r}=t;return aw(r)?(FB(r,n),r):aw(r==null?void 0:r.from)?(FB(r.from,n),r.to):r!==void 0?r.to(n):n}case"bytes":{const n="lengthSize"in t&&t.lengthSize!==void 0?U9(e,t.lengthSize,t.lengthEndianness):t==null?void 0:t.size;if("layout"in t){const{custom:o}=t,f=e.offset;let u;if(n===void 0)u=Nb(t.layout,e);else{const h={...e,end:e.offset+n};if(Cx(e,n),u=Nb(t.layout,h),h.offset!==h.end)throw new Error(`read less data than expected: ${h.offset-e.offset} < ${n}`)}return o!==void 0?typeof o.from!="function"?(PB(NHe(t),e.bytes,{dataSlize:[f,e.offset]}),o.to):o.to(u):u}const{custom:r}=t;{let o,f;if(JE(r)?o=r:eS(r)&&(o=r.from,f=r.to),o!==void 0){const u=n??o.length,h=e.bytes.slice(e.offset,e.offset+u);return PB(o,h),Cx(e,u),f??o}}const i=e.offset,s=n!==void 0?e.offset+n:e.end;Cx(e,s-i);const a=e.bytes.slice(i,s);return r!==void 0?r.to(a):a}case"array":{let n=[];const{layout:r}=t,i=()=>{const a=Nb(r,e);n.push(a)};let s=null;if("length"in t&&t.length!==void 0?s=t.length:"lengthSize"in t&&t.lengthSize!==void 0&&(s=U9(e,t.lengthSize,t.lengthEndianness)),s!==null)for(let a=0;a<s;++a)i();else for(;e.offset<e.end;)i();return n}case"switch":{const n=U9(e,t.idSize,t.idEndianness),{layouts:r}=t;if(r.length===0)throw new Error("switch item has no layouts");const i=typeof r[0][0]=="number",s=r.find(([u])=>i?u===n:u[0]===n);if(s===void 0)throw new Error(`unknown id value: ${n}`);const[a,o]=s,f=Nb(o,e);return{[t.idTag??"id"]:i?n:a[1],...f}}}}function LHe(t,e){return{amount:t.toString(),decimals:e}}function Que(t,e){jHe(t);let n=t.amount.substring(0,t.amount.length-t.decimals).padStart(1,"0"),r=t.amount.substring(t.amount.length-t.decimals).padStart(t.decimals,"0");if(e!==void 0){for(;r.length>e&&r[r.length-1]==="0";)r=r.substring(0,r.length-1);r=r.padEnd(e,"0")}else r=r.replace(/0+$/,"");return r.length>0?`${n}.${r}`:n}function BHe(t){return Number(Que(t))}function jHe(t){if(!/^[0-9]*$/.test(t.amount))throw new Error("Amount: invalid input. Must only contain digits.");if(t.decimals<0)throw new Error("Amount: invalid input. Decimals must be >= 0");if(!isFinite(t.decimals))throw new Error("Amount: invalid input. Decimals must be a finite number.")}const RHe=(t,e)=>e.startsWith(t)?e.slice(t.length):e,_He=/^(?:0x)?[0-9a-fA-F]+$/,fw={valid:t=>_He.test(t),decode:t=>hd.decode(RHe("0x",t).toUpperCase()),encode:(t,e=!1)=>(t=typeof t=="string"?sa.encode(t):t,(e?"0x":"")+hd.encode(t).toLowerCase())},OHe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,FHe={valid:t=>OHe.test(t),decode:pd.decode,encode:t=>pd.encode(typeof t=="string"?sa.encode(t):t)};Ic.decode;const n4={decode:t=>(typeof t!="string"&&(t=fw.encode(t,!0)),t===""||t==="0x"?0n:BigInt(t)),encode:(t,e=!1)=>n4.toString(t,e),toString:(t,e=!1)=>{let n=t.toString(16);return n=n.length%2===1?n="0"+n:n,e?"0x"+n:n},toBytes:(t,e)=>{typeof t=="number"&&(t=n4.toBigInt(t));const n=fw.decode(n4.toString(t));if(!e)return n;if(e<n.length)throw new Error(`Can't fit ${t} into ${e} bytes.`);return sa.zpad(n,e)},toNumber:t=>{if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error(`Invalid cast: ${t} exceeds MAX_SAFE_INTEGER`);return Number(t)},toBigInt:t=>{if(t>Number.MAX_SAFE_INTEGER)throw new Error(`Invalid cast: ${t} exceeds MAX_SAFE_INTEGER`);return BigInt(t)}},sa={encode:t=>new TextEncoder().encode(t),decode:t=>new TextDecoder().decode(t),equals:(t,e)=>t.length===e.length&&t.every((n,r)=>n===e[r]),zpad:(t,e,n=!0)=>n?sa.concat(new Uint8Array(e-t.length),t):sa.concat(t,new Uint8Array(e-t.length)),concat:(...t)=>{const e=t.reduce((i,s)=>i+s.length,0),n=new Uint8Array(e);let r=0;return t.forEach(i=>{n.set(i,r),r+=i.length}),n}},EP=[[1,"Solana"],[2,"Ethereum"],[3,"Terra"],[4,"Bsc"],[5,"Polygon"],[6,"Avalanche"],[7,"Oasis"],[8,"Algorand"],[9,"Aurora"],[10,"Fantom"],[11,"Karura"],[12,"Acala"],[13,"Klaytn"],[14,"Celo"],[15,"Near"],[16,"Moonbeam"],[17,"Neon"],[18,"Terra2"],[19,"Injective"],[20,"Osmosis"],[21,"Sui"],[22,"Aptos"],[23,"Arbitrum"],[24,"Optimism"],[25,"Gnosis"],[26,"Pythnet"],[28,"Xpla"],[29,"Btc"],[30,"Base"],[32,"Sei"],[33,"Rootstock"],[34,"Scroll"],[35,"Mantle"],[36,"Blast"],[37,"Xlayer"],[38,"Linea"],[39,"Berachain"],[40,"Seievm"],[43,"Snaxchain"],[44,"Unichain"],[45,"Worldchain"],[3104,"Wormchain"],[4e3,"Cosmoshub"],[4001,"Evmos"],[4002,"Kujira"],[4003,"Neutron"],[4004,"Celestia"],[4005,"Stargaze"],[4006,"Seda"],[4007,"Dymension"],[4008,"Provenance"],[10002,"Sepolia"],[10003,"ArbitrumSepolia"],[10004,"BaseSepolia"],[10005,"OptimismSepolia"],[10006,"Holesky"],[10007,"PolygonSepolia"],[10008,"MonadDevnet"]];kb(EP);const Zue=Fd(EP,[1,0]),UB=Fd(EP),Kue=t=>Zue.has(t),WB=t=>UB.has(t),ai=t=>{switch(typeof t){case"string":if(Kue(t))return Zue(t);break;case"number":if(WB(t))return t;break}throw Error(`Cannot convert to ChainId: ${t}`)},cK=t=>{switch(typeof t){case"string":if(Kue(t))return t;break;case"number":if(WB(t))return UB(t);break;case"bigint":if(WB(Number(t)))return UB.get(Number(t));break}throw Error(`Cannot convert to Chain: ${t}`)},SP=[["Evm",["Acala","Arbitrum","Aurora","Avalanche","Base","Bsc","Celo","Ethereum","Fantom","Gnosis","Karura","Klaytn","Moonbeam","Neon","Oasis","Optimism","Polygon","Rootstock","Sepolia","ArbitrumSepolia","BaseSepolia","OptimismSepolia","Holesky","PolygonSepolia","Mantle","Scroll","Blast","Xlayer","Linea","Berachain","Seievm","Snaxchain","Unichain","Worldchain","MonadDevnet"]],["Solana",["Solana","Pythnet"]],["Cosmwasm",["Cosmoshub","Evmos","Injective","Kujira","Osmosis","Sei","Terra","Terra2","Wormchain","Xpla","Dymension","Neutron","Stargaze","Celestia","Seda","Provenance"]],["Btc",["Btc"]],["Algorand",["Algorand"]],["Sui",["Sui"]],["Aptos",["Aptos"]],["Near",["Near"]]];SHe(SP,0);Fd(SP);const $ue=Fd(SP,[1,0]),PHe=[["Evm","hex"],["Solana","base58"],["Cosmwasm","bech32"],["Btc","bech32"],["Algorand","algorandAppId"],["Sui","hex"],["Aptos","hex"],["Near","sha256"]];Fd(PHe);const zHe=[["Mainnet",[["Ethereum","https://rpc.ankr.com/eth"],["Solana","https://api.mainnet-beta.solana.com"],["Polygon","https://rpc.ankr.com/polygon"],["Bsc","https://bscrpc.com"],["Avalanche","https://rpc.ankr.com/avalanche"],["Fantom","https://rpc.ankr.com/fantom"],["Celo","https://rpc.ankr.com/celo"],["Moonbeam","https://rpc.ankr.com/moonbeam"],["Sui","https://rpc.mainnet.sui.io"],["Aptos","https://fullnode.mainnet.aptoslabs.com/v1"],["Arbitrum","https://arb1.arbitrum.io/rpc"],["Optimism","https://mainnet.optimism.io"],["Base","https://mainnet.base.org"],["Osmosis","https://osmosis-rpc.polkachu.com"],["Cosmoshub","https://cosmos-rpc.publicnode.com:443"],["Evmos","https://evmos-rpc.polkachu.com"],["Injective","https://sentry.tm.injective.network"],["Wormchain","https://wormchain-rpc.quickapi.com"],["Xpla","https://dimension-rpc.xpla.dev"],["Sei","https://sei-rpc.polkachu.com/"],["Algorand","https://mainnet-api.algonode.cloud"],["Terra","https://terra-classic-rpc.publicnode.com"],["Terra2","https://terra-rpc.polkachu.com"],["Karura","https://eth-rpc-karura.aca-api.network"],["Acala","https://eth-rpc-acala.aca-api.network"],["Oasis","https://emerald.oasis.dev"],["Dymension","https://dymension-rpc.polkachu.com/"],["Stargaze","https://stargaze-rpc.polkachu.com/"],["Celestia","https://celestia-rpc.polkachu.com/"],["Neutron","https://neutron-rpc.polkachu.com/"],["Blast","https://rpc.blast.io"],["Provenance","https://rpc.provenance.io/"],["Linea","https://rpc.linea.build"],["Scroll","https://rpc.ankr.com/scroll"],["Xlayer","https://xlayerrpc.okx.com/"],["Gnosis","https://rpc.ankr.com/gnosis"],["Rootstock","https://public-node.rsk.co"],["Mantle","https://rpc.mantle.xyz"],["Klaytn","https://rpc.ankr.com/klaytn"],["Snaxchain","https://mainnet.snaxchain.io"]]],["Testnet",[["Ethereum","https://eth-goerli.public.blastapi.io"],["Polygon","https://rpc-mumbai.polygon.technology"],["Bsc","https://data-seed-prebsc-1-s3.binance.org:8545"],["Avalanche","https://api.avax-test.network/ext/bc/C/rpc"],["Fantom","https://rpc.ankr.com/fantom_testnet"],["Celo","https://alfajores-forno.celo-testnet.org"],["Solana","https://api.devnet.solana.com"],["Oasis","https://testnet.emerald.oasis.io"],["Moonbeam","https://rpc.api.moonbase.moonbeam.network"],["Sui","https://fullnode.testnet.sui.io"],["Aptos","https://fullnode.testnet.aptoslabs.com/v1"],["Sei","https://sei-testnet-rpc.polkachu.com"],["Arbitrum","https://arbitrum-goerli.public.blastapi.io"],["Optimism","https://optimism-goerli.public.blastapi.io"],["Base","https://base-goerli.public.blastapi.io"],["Injective","https://testnet.sentry.tm.injective.network"],["Osmosis","https://rpc.testnet.osmosis.zone"],["Cosmoshub","https://rpc.sentry-02.theta-testnet.polypore.xyz"],["Evmos","https://evmos-testnet-rpc.polkachu.com"],["Wormchain","https://gateway.testnet.xlabs.xyz/"],["Xpla","https://cube-rpc.xpla.dev"],["Sepolia","https://ethereum-sepolia.publicnode.com"],["Algorand","https://testnet-api.algonode.cloud"],["Terra","https://bombay.stakesystems.io"],["Terra2","https://terra-testnet-rpc.polkachu.com"],["ArbitrumSepolia","https://sepolia-rollup.arbitrum.io/rpc"],["OptimismSepolia","https://sepolia.optimism.io"],["BaseSepolia","https://sepolia.base.org"],["PolygonSepolia","https://rpc-amoy.polygon.technology/"],["Mantle","https://mantle-sepolia.drpc.org"],["Karura","https://eth-rpc-karura-testnet.aca-staging.network"],["Acala","https://eth-rpc-acala-testnet.aca-staging.network"],["Blast","https://sepolia.blast.io"],["Berachain","https://artio.rpc.berachain.com"],["Linea","https://rpc.sepolia.linea.build"],["Xlayer","https://testrpc.xlayer.tech/"],["Scroll","https://rpc.ankr.com/scroll_sepolia_testnet"],["Rootstock","https://public-node.testnet.rsk.co"],["Gnosis","https://rpc.chiadochain.net"],["Klaytn","https://rpc.ankr.com/klaytn_testnet"],["Snaxchain","https://testnet.snaxchain.io"],["Unichain","https://sepolia.unichain.org"],["Worldchain","https://worldchain-sepolia.g.alchemy.com/public"],["MonadDevnet",""]]],["Devnet",[["Ethereum","http://eth-devnet:8545"],["Bsc","http://eth-devnet2:8545"],["Solana","http://solana-devnet:8899"]]]],UHe=Fd(zHe),WHe=(t,e)=>UHe.get(t,e)??"",Xue=[["Mainnet",[["Aptos",1n],["Algorand","mainnet-v1.0"],["Near","mainnet"],["Cosmoshub","cosmoshub-4"],["Evmos","evmos_9001-2"],["Injective","injective-1"],["Osmosis","osmosis-1"],["Sei","pacific-1"],["Terra","columbus-5"],["Terra2","phoenix-1"],["Wormchain","wormchain"],["Xpla","dimension_37-1"],["Kujira","kaiyo-1"],["Solana","5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d"],["Sui","35834a8a"],["Acala",787n],["Arbitrum",42161n],["Aurora",1313161554n],["Avalanche",43114n],["Base",8453n],["Bsc",56n],["Celo",42220n],["Ethereum",1n],["Fantom",250n],["Gnosis",100n],["Karura",686n],["Klaytn",8217n],["Moonbeam",1284n],["Neon",245022934n],["Oasis",42262n],["Optimism",10n],["Polygon",137n],["Rootstock",30n],["Neutron","neutron-1"],["Stargaze","stargaze-1"],["Celestia","celestia"],["Dymension","dymension_1100-1"],["Provenance","pio-mainnet-1"],["Xlayer",196n],["Mantle",5000n],["Scroll",534352n],["Blast",81457n],["Linea",59144n],["Snaxchain",2192n]]],["Testnet",[["Aptos",2n],["Algorand","testnet-v1.0"],["Near","testnet"],["Cosmoshub","theta-testnet-001"],["Evmos","evmos_9000-4"],["Injective","injective-888"],["Osmosis","osmo-test-5"],["Sei","atlantic-2"],["Terra","bombay-12"],["Terra2","pisco-1"],["Wormchain","wormchain-testnet-0"],["Xpla","cube_47-5"],["Kujira","harpoon-4"],["Solana","EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG"],["Sui","4c78adac"],["Acala",597n],["Arbitrum",421613n],["Aurora",1313161555n],["Avalanche",43113n],["Base",84531n],["Bsc",97n],["Celo",44787n],["Ethereum",5n],["Fantom",4002n],["Gnosis",10200n],["Karura",596n],["Klaytn",1001n],["Moonbeam",1287n],["Neon",245022940n],["Oasis",42261n],["Optimism",420n],["Polygon",80001n],["Rootstock",31n],["Sepolia",11155111n],["ArbitrumSepolia",421614n],["BaseSepolia",84532n],["OptimismSepolia",11155420n],["PolygonSepolia",80002n],["Holesky",17000n],["Neutron","pion-1"],["Celestia","mocha-4"],["Seda","seda-1-testnet"],["Blast",168587773n],["Mantle",5003n],["Scroll",534351n],["Berachain",80084n],["Snaxchain",13001n],["Unichain",1301n],["Worldchain",4801n],["Xlayer",195n],["Linea",59141n],["MonadDevnet",41454n]]],["Devnet",[["Aptos",0n],["Algorand","sandnet-v1.0"],["Bsc",1397n],["Ethereum",1337n],["Injective","injective_devnet_fake"],["Solana","8wF6jKV3cKwyaVkWcoV9KpDqmkjvEYno9hKZrKx8TbZn"]]]],HHe=Fd(Xue);Fd(Xue,[2,[0,1]]);const HB=t=>[{name:"id",binary:"bytes",size:32},{name:"sender",...Tn},cw({name:"payload",lengthSize:2},t)],tS=t=>({name:"prefix",binary:"bytes",custom:Uint8Array.from(t),omit:!0}),qHe=(t,e,n)=>[tS(t),{name:"sourceNttManager",...Tn},{name:"recipientNttManager",...Tn},cw({name:"nttManagerPayload",lengthSize:2},e),cw({name:"transceiverPayload",lengthSize:2},n)],GHe=[tS([156,35,189,59]),{name:"managerAddress",...Tn},{name:"mode",binary:"uint",size:1},{name:"token",...Tn},{name:"decimals",binary:"uint",size:1}],VHe=[tS([24,252,103,194]),{name:"chain",...cs()},{name:"transceiver",...Tn}],YHe=[{name:"decimals",binary:"uint",size:1},{name:"amount",binary:"uint",size:8}],QHe={binary:"bytes",layout:YHe};function ZHe(t,e){let n=0n;for(let r=0;r<e;++r)n|=BigInt(t[r])<<BigInt(8*(e-r-1));return Number(n)}function KHe(t,e){const n=2n**BigInt(e*8);if(t>=n)throw new Error(`Value ${t} is too large for ${e} bytes`);const r=new Uint8Array(e);for(let i=0;i<e;++i)r[i]=Number(BigInt(t)>>BigInt(8*(e-i-1))&0xffn);return r}const $He={binary:"bytes",custom:{to:t=>{if(t.byteLength>=2){const e=ZHe(t,2);return t.slice(2,2+e)}return new Uint8Array},from:t=>t.byteLength>0?new Uint8Array([...KHe(t.byteLength,2),...t]):new Uint8Array}},qB=[tS([153,78,84,84]),{name:"trimmedAmount",...QHe},{name:"sourceToken",...Tn},{name:"recipientAddress",...Tn},{name:"recipientChain",...cs()},{name:"additionalPayload",...$He}],fK=t=>qHe([153,69,255,16],t,new Uint8Array(0)),XHe=t=>[{name:"index",binary:"uint",size:1},cw({name:"payload",lengthSize:1},t)],JHe=[["WormholeTransfer",fK(HB(qB))],["WormholeTransferStandardRelayer",cae(fK(HB(qB)))],["TransceiverInfo",GHe],["TransceiverRegistration",VHe]];var Co;(function(t){function e(i){if(i.length>255)throw new Error(`Too many instructions (${i.length})`);return sa.concat(new Uint8Array([i.length]),...i.map(s=>zB(XHe(),s)))}t.encodeTransceiverInstructions=e;function n(i,s){return gd(sa.concat(n4.toBytes(ai(i),2),zB(HB(qB),s)))}t.messageDigest=n;function r(i,s){const a=m=>{const y=/^(\d+)\.(\d+)\.(.*)$/,x=m.match(y);if(!x)throw new Error(`Invalid version format: ${m}`);const[,w,E,I]=x;return{major:Number(w),minor:Number(E),patchAndTag:I}},{major:o,minor:f}=a(i),{major:u,minor:h}=a(s);return o===u&&f>=h}t.abiVersionMatches=r})(Co||(Co={}));y0("Ntt",JHe);class Jue{constructor(e,n,r,i,s=!1){ce(this,"transaction");ce(this,"network");ce(this,"chain");ce(this,"description");ce(this,"parallelizable");this.transaction=e,this.network=n,this.chain=r,this.description=i,this.parallelizable=s}}const W9=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"},{internalType:"address",name:"spender_",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"subtractedValue_",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"domainFields",type:"bytes1"},{internalType:"string",name:"domainName",type:"string"},{internalType:"string",name:"domainVersion",type:"string"},{internalType:"uint256",name:"domainChainId",type:"uint256"},{internalType:"address",name:"domainVerifyingContract",type:"address"},{internalType:"bytes32",name:"domainSalt",type:"bytes32"},{internalType:"uint256[]",name:"domainExtensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"addedValue_",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"},{internalType:"uint64",name:"sequence_",type:"uint64"},{internalType:"address",name:"owner_",type:"address"},{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bytes32",name:"nativeContract_",type:"bytes32"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"},{internalType:"address",name:"spender_",type:"address"},{internalType:"uint256",name:"value_",type:"uint256"},{internalType:"uint256",name:"deadline_",type:"uint256"},{internalType:"uint8",name:"v_",type:"uint8"},{internalType:"bytes32",name:"r_",type:"bytes32"},{internalType:"bytes32",name:"s_",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender_",type:"address"},{internalType:"address",name:"recipient_",type:"address"},{internalType:"uint256",name:"amount_",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint64",name:"sequence_",type:"uint64"}],name:"updateDetails",outputs:[],stateMutability:"nonpayable",type:"function"}],uK="0x6080806040523461001657611af2908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816306fdde0314611136578163095ea7b31461110c57816318160ddd146110ed57816323b872dd14611026578163313ce567146110055781633644e51514610fe15781633950935114610f985781633d6c043b14610f7957816340c10f1914610ea157816370a0823114610e695781637ecebe0014610e3157816384b0196e14610d575781638da5cb5b14610d2e57816395d89b4114610c595781639a8a059214610c335781639dc29fac14610af1578163a18cd7c6146107bf578163a457c2d71461070f578163a9059cbb146106de578163c71f461514610335578163d505accf14610160575063dd62ed3e1461011557600080fd5b3461015c578060031936011261015c57806020926101316111af565b6101396111ca565b6001600160a01b0391821683526006865283832091168252845220549051908152f35b5080fd5b8391503461015c5760e036600319011261015c5761017c6111af565b6101846111ca565b906044359260643560843560ff81168103610331576101a16112e1565b8142116102ee5760018060a01b039081851692838952600e602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815261021e81611212565b519020610229611798565b918a5191602083019361190160f01b855260228401526042830152604282526080820182811067ffffffffffffffff8211176102db5791610283939161027b938d5260c4359260a435925190206119c7565b919091611855565b160361029857506102959394506115e0565b80f35b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b634e487b7160e01b8b526041875260248bfd5b875162461bcd60e51b8152602081850152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b8680fd5b9050346106da5760e03660031901126106da5767ffffffffffffffff81358181116106d6576103679036908401611250565b916024358281116106d25761037f9036908301611250565b6044359060ff821680920361033157606435938085168095036106ce576084356001600160a01b03811696908790036106ca5760a4359761ffff891689036106c6576007549060ff8260a01c1661068e575060ff60a01b1916600160a01b17600755805182811161067b57806103f58b546112a7565b92601f93848111610622575b506020908483116001146105b3578c926105a8575b50508160011b916000199060031b1c19161789555b825191821161059557819060019361044385546112a7565b828111610538575b5060209183116001146104cd578a926104c2575b5050600019600383901b1c191690821b1790555b60ff1982541617905567ffffffffffffffff1960025416176002556007549161ffff60a81b9060a81b16916bffffffffffffffffff0000ff60a01b16171760075560c4356008556102956112e1565b01519050388061045f565b848b52849350600080516020611a9d8339815191529190601f1984168c5b81811061052057508411610507575b505050811b019055610473565b015160001960f88460031b161c191690553880806104fa565b828401518555879690940193602093840193016104eb565b90919250848b52600080516020611a9d8339815191528380860160051c8201926020871061058c575b91869588929594930160051c01915b82811061057e57505061044b565b8d8155869550879101610570565b92508192610561565b634e487b7160e01b895260418552602489fd5b015190503880610416565b8c8052600080516020611a7d8339815191529250601f1984168d5b81811061060a57509084600195949392106105f1575b505050811b01895561042b565b015160001960f88460031b161c191690553880806105e4565b929360206001819287860151815501950193016105ce565b9091508b8052600080516020611a7d8339815191528480850160051c82019260208610610672575b9085949392910160051c01905b8181106106645750610401565b8d8155849350600101610657565b9250819261064a565b634e487b7160e01b8a526041865260248afd5b5162461bcd60e51b81526020818801526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b8980fd5b8880fd5b8780fd5b8580fd5b8480fd5b8280fd5b50503461015c578060031936011261015c576020906107086106fe6111af565b6024359033611416565b5160018152f35b905082346107bc57826003193601126107bc5761072a6111af565b918360243592338152600660205281812060018060a01b038616825260205220549082821061076b576020856107088661076487876113e6565b90336115e0565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b83833461015c57606036600319011261015c5767ffffffffffffffff928035848111610aed576107f29036908301611250565b936024358181116106d65761080a9036908401611250565b91604435938285168095036106d25761082e60018060a01b03600754163314611594565b8483600254161015610aaa57508551828111610a97578061084f87546112a7565b97601f98898111610a3e575b506020908983116001146109cf5788926109c4575b50508160011b916000199060031b1c19161785555b82519182116109b1575060019161089c83546112a7565b868111610961575b5060209582116001146108f75794849582939495926108ec575b5050600019600383901b1c191690821b1790555b67ffffffffffffffff1960025416176002556102956112e1565b0151905085806108be565b828552601f19821695600080516020611a9d83398151915291865b88811061094b5750838596979810610932575b505050811b0190556108d2565b015160001960f88460031b161c19169055858080610925565b8183015184559285019260209283019201610912565b838652600080516020611a9d8339815191528780850160051c820192602086106109a8575b0160051c019084905b82811061099d5750506108a4565b87815501849061098f565b92508192610986565b634e487b7160e01b855260419052602484fd5b015190508880610870565b888052600080516020611a7d8339815191529250601f198416895b818110610a265750908460019594939210610a0d575b505050811b018555610885565b015160001960f88460031b161c19169055888080610a00565b929360206001819287860151815501950193016109ea565b909150878052600080516020611a7d8339815191528980850160051c82019260208610610a8e575b9085949392910160051c01905b818110610a80575061085b565b898155849350600101610a73565b92508192610a66565b634e487b7160e01b865260418252602486fd5b906020606492519162461bcd60e51b8352820152601e60248201527f63757272656e74206d6574616461746120697320757020746f206461746500006044820152fd5b8380fd5b8391503461015c578260031936011261015c57610b0c6111af565b600754602435916001600160a01b0391610b299083163314611594565b16918215610be65782845260056020528484205490828210610b985750818495610b767fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef946020946113e6565b8587526005845281872055610b8d826003546113e6565b60035551908152a380f35b608490602087519162461bcd60e51b8352820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152fd5b608490602086519162461bcd60e51b8352820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152fd5b50503461015c578160031936011261015c5760209061ffff60075460a81c169051908152f35b50503461015c578160031936011261015c57805190826001805491610c7d836112a7565b80865292828116908115610d065750600114610cbc575b505050610ca682610cb894038361122e565b5191829160208352602083019061118a565b0390f35b9450808552600080516020611a9d8339815191525b828610610cee57505050610ca6826020610cb89582010194610c94565b80546020878701810191909152909501948101610cd1565b610cb8975086935060209250610ca694915060ff191682840152151560051b82010194610c94565b50503461015c578160031936011261015c5760075490516001600160a01b039091168152602090f35b9050346106da57826003193601126106da57610d7161133d565b918051610d7d816111e0565b600194858252602091603160f81b83820152610d97611810565b938051918483019683881067ffffffffffffffff8911176109b1575093879592610dee838b978a859652878452610de182519a601f60f81b8c5260e0878d015260e08c019061118a565b918a8303908b015261118a565b9346606089015230608089015260a088015286840360c088015251928381520195925b828110610e1e5785870386f35b8351875295810195928101928401610e11565b50503461015c57602036600319011261015c5760209181906001600160a01b03610e596111af565b168152600e845220549051908152f35b50503461015c57602036600319011261015c5760209181906001600160a01b03610e916111af565b1681526005845220549051908152f35b919050346106da57806003193601126106da57610ebc6111af565b60075460243592916001600160a01b0391610eda9083163314611594565b16928315610f3757506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92610f158795600354611409565b60035585855260058352808520610f2d838254611409565b905551908152a380f35b6020606492519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b50503461015c578160031936011261015c576020906008549051908152f35b50503461015c578060031936011261015c57610708602092610764610fbb6111af565b338352600686528483206001600160a01b03821684528652918490205460243590611409565b50503461015c578160031936011261015c57602090610ffe611798565b9051908152f35b8284346107bc57806003193601126107bc575060ff60209254169051908152f35b905082346107bc5760603660031901126107bc576110426111af565b918361104c6111ca565b9261105b604435809587611416565b6001600160a01b0385168152600660209081528282203383529052205490828210611099576020856107088661109187876113e6565b9033906115e0565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b50503461015c578160031936011261015c576020906003549051908152f35b50503461015c578060031936011261015c5760209061070861112c6111af565b60243590336115e0565b50503461015c578160031936011261015c57610cb89061115461133d565b905191829160208352602083019061118a565b60005b83811061117a5750506000910152565b818101518382015260200161116a565b906020916111a381518092818552858086019101611167565b601f01601f1916010190565b600435906001600160a01b03821682036111c557565b600080fd5b602435906001600160a01b03821682036111c557565b6040810190811067ffffffffffffffff8211176111fc57604052565b634e487b7160e01b600052604160045260246000fd5b60e0810190811067ffffffffffffffff8211176111fc57604052565b90601f8019910116810190811067ffffffffffffffff8211176111fc57604052565b81601f820112156111c55780359067ffffffffffffffff82116111fc5760405192611285601f8401601f19166020018561122e565b828452602083830101116111c557816000926020809301838601378301015290565b90600182811c921680156112d7575b60208310146112c157565b634e487b7160e01b600052602260045260246000fd5b91607f16916112b6565b6112e96117de565b6112f1611810565b81600d5414801590611331575b611306575050565b46600a55600b80546001600160a01b0319163017905561132681836116e2565b600955600c55600d55565b5080600c5414156112fe565b60405190600082815491611350836112a7565b808352926001908181169081156113c45750600114611379575b506113779250038361122e565b565b60008080529150600080516020611a7d8339815191525b8483106113a9575061137793505081016020013861136a565b81935090816020925483858a01015201910190918592611390565b90506020925061137794915060ff191682840152151560051b8201013861136a565b919082039182116113f357565b634e487b7160e01b600052601160045260246000fd5b919082018092116113f357565b6001600160a01b0390811691821561154157169182156114f0576000828152600560205260408120549180831061149c576040602092611477837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef966113e6565b868252600585528282205586815220611491828254611409565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b1561159b57565b60405162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606490fd5b6001600160a01b0390811691821561169157169182156116415760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260068252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90604051906116f0826111e0565b600191828152602092603160f81b84830152604051918460005b83811061178457505050600060218301528152611726816111e0565b828151910120604051928301937fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564728552604084015260608301524660808301523060a083015260c082015260c0815261177e81611212565b51902090565b81818401015182828701015201859061170a565b600b546001600160a01b03163014806117d3575b156117b75760095490565b6117d06117c26117de565b6117ca611810565b906116e2565b90565b50600a5446146117ac565b6117e661133d565b60405161177e602082816118038183019687815193849201611167565b810103808452018261122e565b60075460085460405190602082019261ffff60f01b9060481b1683526022820152602281526060810181811067ffffffffffffffff8211176111fc5760405251902090565b60058110156119b157806118665750565b600181036118b35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036119005760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b600381036119585760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b60041461196157565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611a705760ff16601b81141580611a65575b611a59579160809493916020936040519384528484015260408301526060820152600093849182805260015afa15611a4c5781516001600160a01b03811615611a46579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600490565b50601c8114156119ff565b5050505060009060039056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212209c2a6ab851b98b79f450a0f6c6580132088da5913ef53a145eab9f7b320248f664736f6c63430008130033",eqe=t=>t.length>1;class GB extends V1{constructor(...e){eqe(e)?super(...e):super(W9,uK,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(W9)}static connect(e,n){return new Js(e,W9,n)}}ce(GB,"bytecode",uK),ce(GB,"abi",W9);class tqe extends nae{}const uo=class uo extends Jse{constructor(e,n){super(e,n??mO(e,uo._platform))}getRpc(e){if(e in this.config&&this.config[e].rpc)return new l0e(this.config[e].rpc);throw new Error("No configuration available for chain: "+e)}getChain(e,n){if(e in this.config)return new tqe(e,this,n);throw new Error("No configuration available for chain: "+e)}static nativeTokenId(e,n){if(!uo.isSupportedChain(n))throw new Error(`invalid chain for EVM: ${n}`);return Nn.tokenId(n,dZ)}static isNativeTokenId(e,n,r){return!uo.isSupportedChain(n)||r.chain!==n?!1:r.address.toString()===dZ}static isSupportedChain(e){return bd(e)===uo._platform}static async getDecimals(e,n,r){if(ci(r))return V0e(uo._platform);const i=uo.getTokenImplementation(n,new L0(r).toString());return Number(await i.decimals())}static async getBalance(e,n,r,i){return ci(i)?n.getBalance(r):uo.getTokenImplementation(n,new L0(i).toString()).balanceOf(r)}static async getBalances(e,n,r,i){return(await Promise.all(i.map(async a=>{const o=await this.getBalance(e,n,r,a);return{[ci(a)?"native":new L0(a).toString()]:o}}))).reduce((a,o)=>Object.assign(a,o),{})}static async sendWait(e,n,r){const i=[];for(const s of r){const a=await n.broadcastTransaction(s);if(i.push(a.hash),e==="Celo"){console.error("TODO: override celo block fetching");continue}if(await a.wait()===null)throw new Error("Received null TxReceipt")}return i}static async getLatestBlock(e){return await e.getBlockNumber()}static async getLatestFinalizedBlock(e){const n=await e.getBlock("finalized");if(!n)throw new Error("Could not get finalized block");return n==null?void 0:n.number}static chainFromChainId(e){const n=Q0e(uo._platform,BigInt(e));if(n===void 0)throw new Error(`Unknown EVM chainId ${e}`);const[r,i]=n;return[r,i]}static async chainFromRpc(e){const{chainId:n}=await e.getNetwork();return uo.chainFromChainId(ed.encode(n,!0))}static getTokenImplementation(e,n){const r=GB.connect(n,e);if(!r)throw new Error(`No token implementation available for: ${n}`);return r}};ce(uo,"_platform",Ky);let V2=uo;class nS{constructor(e,n,r,i){ce(this,"network");ce(this,"chain");ce(this,"provider");ce(this,"contracts");ce(this,"chainId");ce(this,"coreAddress");ce(this,"core");ce(this,"coreIface");this.network=e,this.chain=n,this.provider=r,this.contracts=i,this.chainId=Pwe.get(e,n),this.coreIface=Mm.createInterface();const s=this.contracts.coreBridge;if(!s)throw new Error("Core bridge address not found");this.coreAddress=s,this.core=Mm.connect(s,r)}async getMessageFee(){return await this.core.messageFee.staticCall()}async getGuardianSetIndex(){return Number(await this.core.getCurrentGuardianSetIndex.staticCall())}async getGuardianSet(e){const n=await this.core.getGuardianSet(e);return{index:e,keys:n[0],expiry:n[1]}}static async fromRpc(e,n){const[r,i]=await V2.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);return new nS(r,i,e,s.contracts)}async*publishMessage(e,n,r,i){const s=new L0(e).toString(),a=await this.core.publishMessage.populateTransaction(r,n,i);yield this.createUnsignedTx(Yv(a,s),"WormholeCore.publishMessage")}async*verifyMessage(e,n){const r=new L0(e).toString(),i=await this.core.parseAndVerifyVM.populateTransaction(jv(n));yield this.createUnsignedTx(Yv(i,r),"WormholeCore.verifyMessage")}async parseTransaction(e){const n=await this.provider.getTransactionReceipt(e);return n===null?[]:n.logs.filter(r=>r.address===this.coreAddress).map(r=>{const{topics:i,data:s}=r,a=this.coreIface.parseLog({topics:i.slice(),data:s});if(a===null)return;const o=new L0(a.args.sender);return{chain:this.chain,emitter:o.toUniversalAddress(),sequence:a.args.sequence}}).filter(gh)}async parseMessages(e){const n=await this.provider.getTransactionReceipt(e);if(n===null)throw new Error("Could not get transaction receipt");const r=await this.getGuardianSetIndex();return n.logs.filter(i=>i.address===this.coreAddress).map(i=>{const{topics:s,data:a}=i,o=this.coreIface.parseLog({topics:s.slice(),data:a});if(o===null)return null;const f=new L0(o.args.sender);return Xse("Uint8Array",{guardianSet:r,timestamp:0,emitterChain:this.chain,emitterAddress:f.toUniversalAddress(),consistencyLevel:Number(o.args.consistencyLevel),sequence:BigInt(o.args.sequence),nonce:Number(o.args.nonce),signatures:[],payload:Ji.decode(o.args.payload)})}).filter(i=>!!i)}createUnsignedTx(e,n,r=!1){return new Jue(p1e(e,this.chainId),this.network,this.chain,n,r)}}const H9=[{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:"address",name:"oldContract",type:"address"},{indexed:!0,internalType:"address",name:"newContract",type:"address"}],name:"ContractUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"index",type:"uint32"}],name:"GuardianSetAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"},{indexed:!1,internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"LogMessagePublished",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"evmChainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentGuardianSetIndex",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"index",type:"uint32"}],name:"getGuardianSet",outputs:[{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardianSetExpiry",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"governanceActionIsConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"governanceContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFork",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"impl",type:"address"}],name:"isInitialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"emitter",type:"address"}],name:"nextSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseAndVerifyVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"},{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseContractUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"address",name:"newContract",type:"address"}],internalType:"struct GovernanceStructs.ContractUpgrade",name:"cu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedUpgrade",type:"bytes"}],name:"parseGuardianSetUpgrade",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"newGuardianSet",type:"tuple"},{internalType:"uint32",name:"newGuardianSetIndex",type:"uint32"}],internalType:"struct GovernanceStructs.GuardianSetUpgrade",name:"gsu",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedRecoverChainId",type:"bytes"}],name:"parseRecoverChainId",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint16",name:"newChainId",type:"uint16"}],internalType:"struct GovernanceStructs.RecoverChainId",name:"rci",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedSetMessageFee",type:"bytes"}],name:"parseSetMessageFee",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"messageFee",type:"uint256"}],internalType:"struct GovernanceStructs.SetMessageFee",name:"smf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedTransferFees",type:"bytes"}],name:"parseTransferFees",outputs:[{components:[{internalType:"bytes32",name:"module",type:"bytes32"},{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint16",name:"chain",type:"uint16"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct GovernanceStructs.TransferFees",name:"tf",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVM",type:"bytes"}],name:"parseVM",outputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"}],name:"publishMessage",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"numGuardians",type:"uint256"}],name:"quorum",outputs:[{internalType:"uint256",name:"numSignaturesRequiredForQuorum",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitContractUpgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitNewGuardianSet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitRecoverChainId",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitSetMessageFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_vm",type:"bytes"}],name:"submitTransferFees",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{components:[{internalType:"address[]",name:"keys",type:"address[]"},{internalType:"uint32",name:"expirationTime",type:"uint32"}],internalType:"struct Structs.GuardianSet",name:"guardianSet",type:"tuple"}],name:"verifySignatures",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"version",type:"uint8"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint32",name:"nonce",type:"uint32"},{internalType:"uint16",name:"emitterChainId",type:"uint16"},{internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint8",name:"consistencyLevel",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"uint32",name:"guardianSetIndex",type:"uint32"},{components:[{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"uint8",name:"guardianIndex",type:"uint8"}],internalType:"struct Structs.Signature[]",name:"signatures",type:"tuple[]"},{internalType:"bytes32",name:"hash",type:"bytes32"}],internalType:"struct Structs.VM",name:"vm",type:"tuple"}],name:"verifyVM",outputs:[{internalType:"bool",name:"valid",type:"bool"},{internalType:"string",name:"reason",type:"string"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],lK="0x60808060405234610016576130a2908161001c8239f35b600080fdfe60806040526004361015610018575b366120d257612105565b60003560e01c80630319e59c146101e857806304ca84cf146101e3578063178149e7146101de5780631a90a219146101d95780631cfe7951146101d45780632c3c02a4146101cf5780634cf842b5146101ca5780634fdc60fa146101c5578063515f3247146101c05780635cb8cae2146101bb57806364d42b17146101b65780636606b4e0146101b15780638129fc1c146101ac578063875be02a146101a757806393df337e146101a25780639a8a05921461019d578063a0cce1b314610198578063a9e1189314610193578063b172b2221461018e578063b19a437e14610189578063c0fd8bde14610184578063cb4cfea81461017f578063d60b347f1461017a578063e039f22414610175578063eb8d3f1214610170578063f42bc6411461016b578063f8ce560a14610166578063f951975a146101615763fbe3c2cd0361000e576112d5565b61129d565b611277565b611203565b6111dd565b6111bc565b61117d565b611137565b6110d2565b610f96565b610f78565b610f50565b610d51565b610d2f565b610c78565b610b50565b610913565b6107c5565b6107a7565b6106d4565b61068e565b61063f565b6105fc565b61059b565b610577565b610559565b610476565b610409565b610363565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761021e57604052565b6101ed565b604081019081106001600160401b0382111761021e57604052565b60a081019081106001600160401b0382111761021e57604052565b606081019081106001600160401b0382111761021e57604052565b90601f801991011681019081106001600160401b0382111761021e57604052565b6040519061016082018281106001600160401b0382111761021e57604052565b604051906102c282610223565b565b6001600160401b03811161021e57601f01601f191660200190565b9291926102eb826102c4565b916102f96040519384610274565b829481845281830111610316578281602093846000960137010152565b600080fd5b9080601f8301121561031657816020610336933591016102df565b90565b602060031982011261031657600435906001600160401b038211610316576103369160040161031b565b346103165760a061037b61037636610339565b611dc4565b6080604051918051835260ff602082015116602084015261ffff60408201511660408401526060810151606084015201516080820152f35b906040810191805190604083528151809452606083019360208093019060005b8181106103ec5750505081015163ffffffff1691015290565b82516001600160a01b0316875295840195918401916001016103d3565b346103165761041f61041a36610339565b611b9f565b6040518091602082528051602083015260ff602082015116604083015261ffff604082015116606083015263ffffffff6080610469606084015160a08387015260c08601906103b3565b9201511660a08301520390f35b346103165761048436610339565b600854461461052757610513606061049e6105259361287e565b6104b06104aa8261185b565b906113b0565b61050a6104c060e0830151611e9d565b916104d163436f7265845114611459565b61050461014060408501926104e8468551146115ab565b015160005260056020526040600020600160ff19825416179055565b51612ca6565b015161ffff1690565b61ffff1661ffff196000541617600055565b005b60405162461bcd60e51b815260206004820152600a6024820152696e6f74206120666f726b60b01b6044820152606490fd5b34610316576000366003190112610316576020600754604051908152f35b3461031657600036600319011261031657602063ffffffff60035416604051908152f35b346103165760203660031901126103165760206105c8600435600052600560205260ff6040600020541690565b6040519015158152f35b600435906001600160a01b038216820361031657565b35906001600160a01b038216820361031657565b34610316576020366003190112610316576001600160a01b0361061d6105d2565b16600052600460205260206001600160401b0360406000205416604051908152f35b3461031657608061065761065236610339565b611a0c565b604051908051825260ff602082015116602083015261ffff6040820151166040830152606060018060a01b03910151166060820152f35b346103165760806106a66106a136610339565b611ce1565b6060604051918051835260ff602082015116602084015261ffff604082015116604084015201516060820152f35b34610316576106e236610339565b60085446036107735761076e60606106fc6105259361287e565b6107086104aa8261185b565b61076061014061071b60e0840151611a0c565b9261072c63436f72658551146113e0565b6104e861073e604086015161ffff1690565b61ffff61075861075160005461ffff1690565b61ffff1690565b91161461141d565b01516001600160a01b031690565b61163e565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c696420666f726b60a01b6044820152606490fd5b34610316576000366003190112610316576020600854604051908152f35b34610316576105256108d96107e16107dc36610339565b61287e565b6107ed6104aa8261185b565b6108cf6107fd60e0830151611b9f565b61080d63436f7265825114611459565b61084b61081f604083015161ffff1690565b61ffff61083261075160005461ffff1690565b911690811490816108f8575b81156108ef575b50611496565b6108a9610140608060608401936108668551515115156114d2565b01946104e8610879875163ffffffff1690565b63ffffffff6108a161089861089360035463ffffffff1690565b611534565b63ffffffff1690565b911614611549565b6108c06108bb60035463ffffffff1690565b612b24565b51825163ffffffff1690612c1b565b5163ffffffff1690565b63ffffffff1663ffffffff196003541617600355565b90501538610845565b905061090d61090960085446141590565b1590565b9061083e565b34610316576000806003193601126109cc577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03168082526006602052604082205460ff16610991576001600160a01b03166000908152600660205260409020805460ff1916600117905561098e611f42565b80f35b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b80fd5b6044359060ff8216820361031657565b359060ff8216820361031657565b6004359063ffffffff8216820361031657565b359063ffffffff8216820361031657565b359061ffff8216820361031657565b35906001600160401b038216820361031657565b6001600160401b03811161021e5760051b60200190565b81601f8201121561031657803590610a6282610a34565b92604092610a7284519586610274565b808552602091828087019260071b85010193818511610316578301915b848310610a9f5750505050505090565b60808383031261031657836080918751610ab881610203565b853581528286013583820152610acf8987016109df565b898201526060610ae08188016109df565b90820152815201920191610a8f565b60005b838110610b025750506000910152565b8181015183820152602001610af2565b90602091610b2b81518092818552858086019101610aef565b601f01601f1916010190565b6040906103369392151581528160208201520190610b12565b346103165760031960203682011261031657600435906001600160401b03908183116103165761016090833603011261031657610b8b610295565b90610b98836004016109df565b8252610ba660248401610a00565b6020830152610bb760448401610a00565b6040830152610bc860648401610a11565b606083015260848301356080830152610be360a48401610a20565b60a0830152610bf460c484016109df565b60c083015260e483013581811161031657610c15906004369186010161031b565b60e0830152610c276101048401610a00565b61010083015261012483013590811161031657610c6492610c516101449260043691840101610a4b565b61012084015201356101408201526123f9565b90610c7460405192839283610b37565b0390f35b3461031657610ce2610140610c8f6107dc36610339565b610c9b6104aa8261185b565b6104e8610cab60e0830151611dc4565b610cbb63436f7265825114611459565b604081015161ffff1690600095869586958695869561ffff610832610751895461ffff1690565b6080810151606090610d0c90610d009081906001600160a01b031681565b6001600160a01b031690565b91015190828215610d26575bf115610d215780f35b61159f565b506108fc610d18565b3461031657600036600319011261031657602061ffff60005416604051908152f35b3461031657600319606036820112610316576001600160401b0360243581811161031657610d83903690600401610a4b565b604435928284116103165760409084360301126103165760405191610da783610223565b8360040135908111610316578301923660238501121561031657600484013593610dd085610a34565b90610dde6040519283610274565b85825260209560248784019160051b8301019136831161031657602401905b828210610e26575050506024610c649592610e1a92865201610a00565b9083015260043561268d565b878091610e32846105e8565b815201910190610dfd565b90815180825260208080930193019160005b828110610e5d575050505090565b835180518652808301518684015260408082015160ff90811691880191909152606091820151169086015260809094019392810192600101610e4f565b805160ff1682529060208281015163ffffffff169082015260408281015163ffffffff169082015260608281015161ffff169082015260808201516080820152610ef460a083015160a08301906001600160401b03169052565b60c08281015160ff1690820152610f42610f1d60e08401516101608060e0860152840190610b12565b6101008481015163ffffffff1690840152610120808501519084830390850152610e3d565b916101408091015191015290565b3461031657610c74610f646107dc36610339565b604051918291602083526020830190610e9a565b34610316576000366003190112610316576020600154604051908152f35b606036600319011261031657610faa6109ed565b6001600160401b0360243581811161031657610fca90369060040161031b565b91610fd36109cf565b91600754340361107457336000526004602052806040600020541692600184019482861161106f57610c74957f6eb224fb001ed210e379b335e35efe88672a8ce935d981a6896b27ffdf52a3b293336000526004602052604060002091166001600160401b031982541617905561105260405192839233968885611f06565b0390a26040516001600160401b0390911681529081906020820190565b61151e565b60405162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b6044820152606490fd5b6110bd6103369492606083526060830190610e9a565b92151560208201526040818403910152610b12565b34610316576020366003190112610316576001600160401b03600435818111610316573660238201121561031657806004013591821161031657366024838301011161031657610c7491602461112892016121c5565b604093919351938493846110a7565b3461031657608061114f61114a36610339565b611e9d565b61ffff6060604051928051845260ff6020820151166020850152604081015160408501520151166060820152f35b34610316576020366003190112610316576001600160a01b0361119e6105d2565b166000526006602052602060ff604060002054166040519015158152f35b34610316576000366003190112610316576020600854604051904614158152f35b3461031657600036600319011261031657602060035463ffffffff60405191831c168152f35b346103165760606112166107dc36610339565b6112226104aa8261185b565b61126561014061123560e0840151611ce1565b9261124663436f72658551146113e0565b61ffff806040860151169060005416148061126c575b6104e89061141d565b0151600755005b50600854461461125c565b34610316576020366003190112610316576020611295600435612ac1565b604051908152f35b3461031657602036600319011261031657610c746112c16112bc6109ed565b611314565b6040519182916020835260208301906103b3565b3461031657600036600319011261031657602061ffff60005460101c16604051908152f35b6040519061130782610223565b6000602083606081520152565b63ffffffff906113226112fa565b50166000526020600281526040600020906040519161134083610223565b6040518083835491828152019083600052846000209060005b8181106113935750505061033693928261137a611387946001940382610274565b8652015463ffffffff1690565b63ffffffff1690830152565b82546001600160a01b031684529286019260019283019201611359565b156113b85750565b60405162461bcd60e51b8152602060048201529081906113dc906024830190610b12565b0390fd5b156113e757565b60405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964204d6f64756c6560901b6044820152606490fd5b1561142457565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21021b430b4b760991b6044820152606490fd5b1561146057565b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964204d6f64756c6560901b6044820152606490fd5b1561149d57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21021b430b4b760991b6044820152606490fd5b156114d957565b60405162461bcd60e51b815260206004820152601960248201527f6e657720677561726469616e2073657420697320656d707479000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b90600163ffffffff8093160191821161106f57565b1561155057565b60405162461bcd60e51b815260206004820152602160248201527f696e646578206d75737420696e63726561736520696e207374657073206f66206044820152603160f81b6064820152608490fd5b6040513d6000823e3d90fd5b156115b257565b60405162461bcd60e51b815260206004820152601160248201527034b73b30b634b21022ab269021b430b4b760791b6044820152606490fd5b60405190602082018281106001600160401b0382111761021e5760405260008252565b3d15611639573d9061161f826102c4565b9161162d6040519384610274565b82523d6000602084013e565b606090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908154813b1561170d577f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a499060018060a01b039081841694856bffffffffffffffffffffffff60a01b8316179055611707604051600080968192897fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a263204a7f0760e21b6020820190815260048252906116fb81610223565b51915af46104aa61160e565b169180a3565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6040519061177582610259565b6022825261195d60f21b6040837f6e6f74207369676e65642062792063757272656e7420677561726469616e207360208201520152565b604051906117b982610223565b60168252753bb937b7339033b7bb32b93730b731b29031b430b4b760511b6020830152565b604051906117eb82610223565b601982527f77726f6e6720676f7665726e616e636520636f6e7472616374000000000000006020830152565b6040519061182482610259565b6022825261195960f21b6040837f676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d60208201520152565b611864816123f9565b9015611924575061010081015163ffffffff1663ffffffff61188e61089860035463ffffffff1690565b91160361191857606081015161ffff1661ffff6118b561075160005461ffff9060101c1690565b91160361190c57608081015160015403611900576101406118e6910151600052600560205260ff6040600020541690565b6118f5576001906103366115eb565b600090610336611817565b506000906103366117de565b506000906103366117ac565b50600090610336611768565b600092909150565b6040519061193982610203565b60006060838281528260208201528260408201520152565b906020820180921161106f57565b906001820180921161106f57565b906002820180921161106f57565b906004820180921161106f57565b906014820180921161106f57565b906008820180921161106f57565b90601f820180921161106f57565b9190820180921161106f57565b156119c757565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c696420436f6e7472616374557067726164650000000000000000006044820152606490fd5b90611a1561192c565b91611a1f81613030565b8352611a3e600160ff611a3184612e51565b16806020870152146119c0565b61ffff611a4a82612ee8565b1660408401526043815110611a79576043818101516001600160a01b0316606085015290516102c291146119c0565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b60405190611ac38261023e565b6000608083828152826020820152826040820152611adf6112fa565b60608201520152565b15611aef57565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c696420477561726469616e536574557067726164650000000000006044820152606490fd5b90611b3e82610a34565b611b4b6040519182610274565b8281528092611b5c601f1991610a34565b0190602036910137565b600019811461106f5760010190565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90611ba8611ab6565b91611bb281613030565b8352611bdb600260ff611bd4611bc785612e51565b60ff166020880181905290565b1614611ae8565b611bf2611be782612ee8565b61ffff166040850152565b611c0b611bfe82612fac565b63ffffffff166080850152565b611c1481612ebc565b60ff6028911691611c2483611b34565b92611c2d6102b5565b93845260006020850152606086019384526000935b818510611c575750506102c292505114611ae8565b909192611c8e81611c89611c6e611c949488612df5565b611c7a89875151611b75565b6001600160a01b039091169052565b611989565b94611b66565b93929190611c42565b15611ca457565b60405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205365744d65737361676546656560581b6044820152606490fd5b90611cea61192c565b91611cf481613030565b8352611d13600360ff611d0684612e51565b1680602087015214611c9d565b61ffff611d1f82612ee8565b1660408401526043815110611d4457604381816102c293015160608601525114611c9d565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b15611d8857565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964205472616e736665724665657360601b6044820152606490fd5b9060405191611dd28361023e565b60008352602083019060008252604084019060008252606085019160008352611e20600460808801956000875288611e0986613030565b905260ff611e1686612e51565b1680915214611d81565b61ffff611e2c83612ee8565b1690526043815110611d44576102c29260639260438301519052611e4f82613040565b90525114611d81565b15611e5f57565b60405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a5908149958dbdd995c90da185a5b925960521b6044820152606490fd5b90611ea661192c565b91611eb081613030565b8352611ecf600560ff611ec284612e51565b1680602087015214611e58565b6041815110611d445760438160416102c29301516040860152611eff611ef482612f34565b61ffff166060870152565b5114611e58565b92611f3b9063ffffffff6060946001600160401b0360ff95999899168752166020860152608060408601526080850190610b12565b9416910152565b60085415611f4c57565b61ffff611f5c60005461ffff1690565b1660028103611f7057506102c26001612ca6565b60048103611f8357506102c26038612ca6565b60058103611f9657506102c26089612ca6565b60068103611faa57506102c261a86a612ca6565b60078103611fbe57506102c261a516612ca6565b60098103611fd457506102c2634e454152612ca6565b600a8103611fe757506102c260fa612ca6565b600b8103611ffb57506102c26102ae612ca6565b600c810361200f57506102c2610313612ca6565b600d810361202357506102c2612019612ca6565b600e810361203757506102c261a4ec612ca6565b6010810361204b57506102c2610504612ca6565b6011810361206157506102c2630e9ac0d6612ca6565b6017810361207557506102c261a4b1612ca6565b6018810361208857506102c2600a612ca6565b601903612099576102c26064612ca6565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71031b430b4b71034b21760791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f74686520576f726d686f6c6520636f6e747261637420646f6573206e6f74206160448201526b63636570742061737365747360a01b6064820152608490fd5b6040519061016082018281106001600160401b0382111761021e57604052816101406000918281528260208201528260408201528260608201528260808201528260a08201528260c0820152606060e08201528261010082015260606101208201520152565b6107dc906121dd926121d561215f565b5036916102df565b906121e782612325565b9091565b94929060339796949263ffffffff60e01b809260e01b16875260e01b16600486015261ffff60f01b9060f01b166008850152600a8401526001600160401b0360c01b9060c01b16602a83015260ff60f81b9060f81b1660328201526122598251809360208685019101610aef565b010190565b6040519061226b82610223565b601a82527f766d2e6861736820646f65736e2774206d6174636820626f64790000000000006020830152565b604051906122a482610223565b60148252731a5b9d985b1a590819dd585c991a585b881cd95d60621b6020830152565b604051906122d482610223565b601882527f677561726469616e2073657420686173206578706972656400000000000000006020830152565b6040519061230d82610223565b60098252686e6f2071756f72756d60b81b6020830152565b610100810161233b6112bc825163ffffffff1690565b90815151156123eb575163ffffffff1661235d61089860035463ffffffff1690565b63ffffffff809216141590816123ce575b506123c1576101208201805151612386835151612ac1565b116123b35761014061239c93015190519061268d565b90156123ae57506001906103366115eb565b600091565b505050600090610336612300565b50506000906103366122c7565b90506123e1602083015163ffffffff1690565b429116103861236e565b505050600090610336612297565b6101008101906124106112bc835163ffffffff1690565b90612422602082015163ffffffff1690565b604082015163ffffffff169061243d606084015161ffff1690565b9161247a608085015161245a60a08701516001600160401b031690565b60c087015160ff169060e0880151926040519788966020880198896121eb565b039161248e601f1993848101835282610274565b519020906124b860405191826124ac60208201958660209181520190565b03908101835282610274565b5190209261014082019384510361255e578251511561254f575163ffffffff166124ea61089860035463ffffffff1690565b63ffffffff80921614159081612532575b506125245761012001805151612512835151612ac1565b116123b35761239c925190519061268d565b5050506000906103366122c7565b9050612545602084015163ffffffff1690565b42911610386124fb565b50505050600090610336612297565b5050505060009061033661225e565b1561257457565b60405162461bcd60e51b815260206004820152601f60248201527f65637265636f766572206661696c65642077697468207369676e6174757265006044820152606490fd5b156125c057565b60405162461bcd60e51b815260206004820152602360248201527f7369676e617475726520696e6469636573206d75737420626520617363656e64604482015262696e6760e81b6064820152608490fd5b1561261857565b60405162461bcd60e51b815260206004820152601c60248201527f677561726469616e20696e646578206f7574206f6620626f756e6473000000006044820152606490fd5b6040519061266a82610223565b60148252731593481cda59db985d1d5c99481a5b9d985b1a5960621b6020830152565b825151919260009291835b85518110156127b2576126ab8187611b75565b51604060006126bd8284015160ff1690565b8351602080860151945188815260ff93909316838201526040830191909152606082019390935281805260809060015afa15610d215760005160609190612723906001600160a01b03169761271389151561256d565b8415908115612795575b506125b9565b0194612771610d00612764612739895160ff1690565b986127488960ff8c1610612611565b61275e6127588951925160ff1690565b60ff1690565b90611b75565b516001600160a01b031690565b036127845761277f90611b66565b612698565b50505050505060009061033661265d565b90506127a48484015160ff1690565b60ff9182169116113861271d565b5050505050506001906103366115eb565b156127ca57565b60405162461bcd60e51b815260206004820152601760248201527f564d2076657273696f6e20696e636f6d70617469626c650000000000000000006044820152606490fd5b9061281982610a34565b6128266040519182610274565b8281528092612837601f1991610a34565b019060005b82811061284857505050565b60209061285361192c565b8282850101520161283c565b60ff601b9116019060ff821161106f57565b9190820391821161106f57565b9061288761215f565b9161289b61289482612e9c565b60ff168452565b6128b4600160ff6128ad865160ff1690565b16146127c3565b6128ce6128c082612f60565b63ffffffff16610100850152565b6128da61275882612eac565b6006906128e68161280f565b9061012086019182526000915b818310612a205750505090612a086129ec6129ca6129b661299961297f87612929612922612a199a8a51612871565b828a612d69565b602081519101206040516129578161294960208201948560209181520190565b03601f198101835282610274565b5190206101408c015261297a61296d828a612fbc565b63ffffffff1660208d0152565b61197b565b61297a61298c8289612fbc565b63ffffffff1660408c0152565b6129b16129a68288612f44565b61ffff1660608b0152565b61196d565b6129c08186613050565b6080890152611951565b6129e76129d78286612fd8565b6001600160401b031660a0890152565b611997565b612a036129f98285612ecc565b60ff1660c0880152565b61195f565b612a13818351612871565b91612d69565b60e0830152565b909192612ab4612a92612a73612a5784612a03612a40612aba978c612ecc565b6060612a4d8c8b51611b75565b51019060ff169052565b612a61818a613050565b612a6c898851611b75565b5152611951565b612a7d8189613050565b6020612a8a898851611b75565b510152611951565b612a03612aa7612aa2838a612ecc565b61285f565b6040612a4d898851611b75565b93611b66565b91906128f3565b610100811015612aea578060011b908082046002149015171561106f576003610336910461195f565b60405162461bcd60e51b8152602060048201526012602482015271746f6f206d616e7920677561726469616e7360701b6044820152606490fd5b63ffffffff62015180814216019080821161106f576102c29216600052600260205260016040600020019063ffffffff1663ffffffff19825416179055565b9080519081516001600160401b03811161021e5768010000000000000000811161021e578354818555808210612bf2575b506020809301612ba985600052602060002090565b60005b838110612bd7575050505001516001909101805463ffffffff191663ffffffff909216919091179055565b82516001600160a01b03168282015591850191600101612bac565b6000858152826020822092830192015b828110612c10575050612b94565b818155600101612c02565b9081515160005b818110612c485750509063ffffffff6102c2921660005260026020526040600020612b63565b83516001600160a01b0390612c5e908390611b75565b511615612c7357612c6e90611b66565b612c22565b60405162461bcd60e51b815260206004820152600b60248201526a496e76616c6964206b657960a81b6044820152606490fd5b468103612cb257600855565b60405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a5908195d9b50da185a5b925960721b6044820152606490fd5b15612cf357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15612d3057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b91612d7e81612d77816119a5565b1015612cec565b612d948351612d8d83856119b3565b1115612d29565b80612dad57505050604051600081526020810160405290565b60405192601f821692831560051b80858701019484860193010101905b808410612de25750508252601f01601f191660405290565b9092835181526020809101930190612dca565b908151601482019081831161106f5710612e1457016020015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6021815110612e61576021015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6001815110612e61576001015190565b6006815110612e61576006015190565b6028815110612e61576028015190565b908151600182019081831161106f5710612e6157016001015190565b6023815110612ef8576023015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606490fd5b6043815110612ef8576043015190565b908151600282019081831161106f5710612ef857016002015190565b6005815110612f70576005015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606490fd5b6027815110612f70576027015190565b908151600482019081831161106f5710612f7057016004015190565b908151600882019081831161106f5710612ff457016008015190565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b6020815110611a79576020015190565b6063815110611a79576063015190565b908151602082019081831161106f5710611a795701602001519056fea2646970667358221220e01f3fc19a7b6f650a08aafb55409b8aa16f0ebf4a5804ec4ce7df76358d349364736f6c63430008130033",nqe=t=>t.length>1;class Mm extends V1{constructor(...e){nqe(e)?super(...e):super(H9,lK,e[0])}getDeployTransaction(e){return super.getDeployTransaction(e||{})}deploy(e){return super.deploy(e||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(H9)}static connect(e,n){return new Js(e,H9,n)}}ce(Mm,"bytecode",lK),ce(Mm,"abi",H9);const rqe=Object.freeze(Object.defineProperty({__proto__:null,Implementation__factory:Mm},Symbol.toStringTag,{value:"Module"}));uA(Ky,"WormholeCore",nS);const Nft=Object.freeze(Object.defineProperty({__proto__:null,EvmWormholeCore:nS,ethers_contracts:rqe},Symbol.toStringTag,{value:"Module"})),q9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],dK="0x61016034620005a857601f620062e138819003918201601f19168301916001600160401b038311848410176200055b5780849260a094604052833981010312620005a8578051906001600160a01b0382168203620005a8576020810151916002831015620005a85760408201519161ffff83168303620005a8576060810151906001600160401b03821690818303620005a8576080015180159182158203620005a857158092816200059f575b50821562000583575b505062000571576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005ad565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003ce57505060005b60ff8260081c1681106200033a5750604060ff6200016d92161115620005ad565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1662000328576002600160401b03196001600160401b03821601620002dc575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615cb693846200062b85396080518481816112ee0152818161192e01528181611d7f015281816127c501528181613241015281816137e701528181613e3a015281816152ca015281816153dd0152818161549d015281816155bc0152615684015260a05184614cf1015260c051848181610285015281816104e00152818161052d015281816126b10152818161365701528181613cb8015281816145240152818161494301526149f3015260e05184611a7801525183818161047701528181611df801528181611f3e015281816126ff015281816136d901528181613d3501526148cb0152518281816111960152818161276801526131cb0152518161312d0152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003b8575b60ff8360081c1681106200036757506200036190620005cb565b6200014c565b620003b290620003ac6200037b84620005db565b90546200038884620005db565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005ad565b620005cb565b62000347565b634e487b7160e01b600052601160045260246000fd5b620003d981620005db565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200055b5760608401604052546200047b60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a0152926200053e575b5050620005ad565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c168110620004ec575b50505082620004e6959492620004cb620003ac95620004d49414620005ad565b151514620005ad565b60ff60408188169201511610620005ad565b62000139565b620004f781620005db565b9054600391821b1c6001600160a01b039081169184901b85901c161462000529576200052390620005cb565b6200049c565b5060019350849150829050620004cb620004ab565b9091508162000551575b50388062000473565b9050153862000548565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b1591508162000596575b503880620000b5565b9050386200058d565b925038620000ac565b600080fd5b15620005b557565b634e487b7160e01b600052600160045260246000fd5b6000198114620003b85760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006145760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612a42578063036de8af146129b75780630677df54146129985780630900f01014612531578063186ce612146124dc57806319017175146124a65780631f97c9a8146122b4578063203e4a9b14611fb657806323d75e3114611f82578063295a521214611f28578063396c16b714611eec5780633b97e85614611ed15780633f4ba83a14611e435780634b4fd03b14611de5578063689f90c314611da357806374aa7bfc14611d5f5780637c91863414611c0a5780638129fc1c146119e75780638413bcba146118cb5780638456cb591461184e57806386e11ffa1461182957806389c619dd146117c95780638da5cb5b146117935780638e3ba8c91461175c5780638fd3ab801461161d5780639057412d146114a0578063961b94d01461144257806397c35146146111ba5780639a8a05921461117b5780639d78245414610f405780639f86029c14610c2f5780639fd0506d14610bf9578063b187bd2614610bcb578063b293f97f14610b35578063b4d591bb14610a74578063c0b07bde14610a2e578063c128d170146109b2578063d788c14714610927578063da4856a1146108f4578063e5a9860314610848578063e75235b81461081a578063f2fde38b146106d5578063f5cfec18146106b2578063f7514fbc146102b4578063fc0c546a1461026f5763fd96063c1461021757600080fd5b3461026c57602036600319011261026c576060610235600435615228565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b503461026c578060031936011261026c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461026c57602036600319011261026c576004356001600160401b03811681036106ae576102e1615a50565b6002600080516020615b21833981519152541461069c576001600160401b038116600052600080516020615c0183398151915260205260406000206040519061032982612b1a565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039084613587565b808452936001811690811561067a5750600114610636575b506103b592500382612ba1565b60c08201526001600160401b03606082015116156106155760a08101516001600160a01b03163381036105e85750606061045860407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615c01833981519152602052610437826000206135d8565b01516104416149cd565b906001600160401b0360ff82169160081c166158bf565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156105d25780610522575060405163a9059cbb60e01b6020820152336024820152604481019190915261050d906104de81606481015b03601f198101835282612ba1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614218565b6001600080516020615c218339815191525580f35b600181036105b657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105b1576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105a557610596575b5061050d565b61059f90612b07565b38610590565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b81831061065e5750509060206103b592820101386103a8565b6020919350806001915483858801015201910190918392610645565b9050602092506103b594915060ff191682840152151560051b820101386103a8565b6040516309e3d0f360e11b8152600490fd5b5080fd5b503461026c578060031936011261026c5760206106cd615211565b604051908152f35b503461026c57602036600319011261026c576001600160a01b03600435818116908181036107e55761071690610709615a17565b610711615a17565b6159a3565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615ba183398151915254168082036107fc575050908391825b84548110156107f8578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b156107f457848091602460405180948193632c7b84dd60e11b83528960048401525af19081156107e95785916107d1575b50506107cc90612de1565b61075b565b6107da90612b07565b6107e55783386107c1565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b503461026c578060031936011261026c57602060ff600080516020615aa18339815191525416604051908152f35b503461026c57602036600319011261026c5760043560ff8116908181036105b157610871615a17565b81156108e2577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a9916108dc60ff92600080516020615aa1833981519152805493851985161790556108c0613060565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b503461026c5761090336612c24565b906002600080516020615b21833981519152541461069c5761092492613129565b80f35b503461026c57602036600319011261026c5761ffff610944612a9d565b61094c6151f2565b5016600052600080516020615bc18339815191526020526109ae6109736040600020614dcd565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b503461026c57602036600319011261026c5761ffff906109d0612a9d565b9060206040516109df81612b50565b828152015216600052600080516020615a8183398151915260205260408060002060ff8251610a0d81612b50565b60208260018554958685520154169101908152835192835251166020820152f35b503461026c578060031936011261026c576109ae604051610a4e81612b50565b60058152640302e312e360dc1b6020820152604051918291602083526020830190612ae2565b503461026c578060031936011261026c576040518091600080516020615b6183398151915290815480845260208094019081938352600080516020615ac183398151915290835b818110610b185750505084610ad1910385612ba1565b60405193838594850191818652518092526040850193925b828110610af857505050500390f35b83516001600160a01b031685528695509381019392810192600101610ae9565b82546001600160a01b031684529286019260019283019201610abb565b5060c036600319011261026c57610b4a612aae565b906084359182151583036106ae5760a4356001600160401b039283821161026c5750610b7a903690600401612bdd565b610b82615a50565b6002600080516020615b21833981519152541461069c57602093610bb0926064359060443590600435613c9c565b6001600080516020615c218339815191525560405191168152f35b503461026c578060031936011261026c5760206002600080516020615b218339815191525414604051908152f35b503461026c578060031936011261026c57600080516020615c41833981519152546040516001600160a01b039091168152602090f35b503461026c576020806003193601126106ae576001600160a01b039060043582811691908281036107f457610c62615a17565b8215610f2e5782600052600080516020615be183398151915280835260ff91826040600020541615610f1557846000528184528260406000205460081c1615610efc5784600052818452604060002061ff001990818154169055600080516020615ba1833981519152928354858160081c16928315610ee85761ff0060001980950160081b169116178455600080516020615b418339815191528054918860005287526001600160401b03600192610d2f82858a60406000205460101c161b198316169282168310614a9f565b6001600160401b0319161790558897600080516020615b618339815191528054938b5b858110610de2575b505050505050918091610da26040969594610d957f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614a9f565b610d9d614abc565b614ba7565b5460081c16600080516020615aa18339815191529081548381168210610dd4575b50505416908351928352820152a180f35b60ff19161781553880610dc3565b838b610ded8361302f565b929054600393841b1c1614610e0b5750610e0690612de1565b610d52565b9590918093959798999a9b9c508101908111610ed45790610e3f84610e32610e5e9461302f565b905490891b1c169161302f565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015610ec057946040999794610da2948a9894610d95947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c990192610ea68461302f565b81939154921b1b1916905555998496979899839650610d5a565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b503461026c57610f4f36612c24565b9033600052600080516020615be183398151915260209080825260ff60406000205460081c161561116357600080516020615b2183398151915291600283541461069c5761ffff861680600052600080516020615a8183398151915282528460406000205403611145575060405163b3f07bbd60e01b815291818380610fd9898b600484016130ff565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561113a57889361110b575b503360005280825261101d60ff60406000205460101c1684612ff9565b6110f25760606110d193927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615ae1833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a1612f8c565b6110d9578480f35b5460021461069c576110ea92613129565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611133575b6111238183612ba1565b810103126105b157519138611000565b503d611119565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b503461026c578060031936011261026c57602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50602036600319011261026c576001600160401b036004351690816004350361026c576111e5615a50565b6002600080516020615b21833981519152541461069c5781600052600080516020615c018339815191526020526040600020916040519261122584612b1a565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a08501526040518381949060048401549361128d85613587565b808552946001811690811561141e57506001146113d9575b50506112b392500383612ba1565b60c083019182526001600160401b03606084015116156113c1576112e46001600160401b0360608501511642612f7f565b6001600160401b037f00000000000000000000000000000000000000000000000000000000000000001611611396579161137391602093600052600080516020615c01833981519152845261133c60406000206135d8565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b0391015116935194600435614412565b6001600080516020615c21833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106114025750509060206112b39282010138806112a5565b60209193508060019154838589010152019101909184926113e8565b915050602092506112b394915060ff191682840152151560051b82010138806112a5565b50606036600319011261026c57611457612aae565b604435611462615a50565b6002600080516020615b21833981519152541461069c5760209181611373926040519261148e84612b50565b6001845285368186013760043561363a565b503461026c57604036600319011261026c576114ba612a9d565b6024356001600160401b038111611619576114d9903690600401612bdd565b91604051918290600080516020615b61833981519152828154918287526020809701908652600080516020615ac183398151915292865b888282106115fa5750505061152792500383612ba1565b826115518351966040519788928392635b10743960e11b8452604060048501526044840190612ae2565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156115ef5783949561158a94926115cb575b50612e24565b604051926040840160408552835180915285606086019401915b8181106115b75750505082938301520390f35b8251855293860193918601916001016115a4565b6115e89192503d8087833e6115e08183612ba1565b810190612d0f565b9038611584565b6040513d85823e3d90fd5b85546001600160a01b0316845260019586019588955093019201611510565b8280fd5b503461026c578060031936011261026c57611636614cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082169060018201918183116117465760ff8460401c16908115611739575b5061172757600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615611715577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926116f5613060565b6116fd614abc565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611680565b634e487b7160e01b600052601160045260246000fd5b503461026c57604036600319011261026c5760243560ff811681036105b157611789602091600435612ff9565b6040519015158152f35b503461026c578060031936011261026c57600080516020615b01833981519152546040516001600160a01b039091168152602090f35b503461026c57602036600319011261026c5761181e6001600160401b036020926040600080516020615b4183398151915254916004358152600080516020615ae18339815191528652205460081c16166157e1565b60ff60405191168152f35b503461026c578060031936011261026c576118426151f2565b506109ae610973614d85565b503461026c578060031936011261026c57600080516020615b0183398151915254611881906001600160a01b0316614d32565b600080516020615b21833981519152600281541461069c57600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461026c57602036600319011261026c576004356118e8615a50565b6002600080516020615b21833981519152541461069c5761190881615228565b602081016001600160401b039081815116156119ce5761192b8282511642612f7f565b827f000000000000000000000000000000000000000000000000000000000000000016116119ac578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260408086208681556001018690558301518351869161050d916001600160481b0316906001600160a01b031687614893565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b503461026c578060031936011261026c57611a00614cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611c02575b6001149081611bf8575b159081611bef575b506117275767ffffffffffffffff198116600117835581611bd0575b50611a76615962565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611ba75750611ab0615962565b611ab8615962565b611ac0615962565b6001600080516020615b2183398151915255600080516020615c4183398151915280546001600160a01b03191633179055611af9615962565b611b01615962565b611b0a336159a3565b611b12615962565b611b1a615962565b6001600080516020615c2183398151915255611b51610100600160481b0360ff611b4a611b456149cd565b615888565b1617614e2d565b611b59613060565b611b61614abc565b611b69575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611a6d565b90501538611a51565b303b159150611a49565b839150611a3f565b503461026c57608036600319011261026c57611c24612a9d565b6024356044359160ff83168093036105b15761ffff90611c42615a17565b16918215611d4d578115611d3b578015611d29577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615a81833981519152918260205260ff604060002081600160405192611caa84612b50565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611d0c611ceb611ce26149cd565b8060643561591a565b89600052600080516020615bc183398151915260205260406000209061502b565b51935116604051938452602084015260408301526060820152a280f35b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461026c578060031936011261026c5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461026c578060031936011261026c57602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b503461026c578060031936011261026c577f0000000000000000000000000000000000000000000000000000000000000000906002821015611e2f5760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b503461026c578060031936011261026c57600080516020615b0183398151915254611e76906001600160a01b0316614d32565b600080516020615b218339815191526002815403611ebf57600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b503461026c578060031936011261026c57602061181e6149cd565b503461026c57602036600319011261026c5760ff60406020926004358152600080516020615ae183398151915284522054166040519015158152f35b503461026c578060031936011261026c576040517f00000000000000000000000000000000000000000000000000000000000000006002811015611f6e57602092508152f35b634e487b7160e01b83526021600452602483fd5b503461026c578060031936011261026c5760206001600160401b03600080516020615b818339815191525416604051908152f35b503461026c576020806003193601126106ae576004356001600160a01b038116918282036107e557611fe6615a17565b8215610f2e5782600052600080516020615be18339815191529182825260ff90816040600020541660001461218a5784600052838352604060002061010061ff00198254161790555b600080516020615b6183398151915290815491600160401b8310156121745782610e3f9160016120619501905561302f565b600080516020615ba183398151915292835461ff00612084848360081c16614a8e565b60081b169061ff00191617809455600080516020615b4183398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b16821791821461215b5767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612110614abc565b84600052825280600080516020615aa183398151915280548281161561214c575b5054169260405194855260081c16908301526040820152a180f35b60ff1916600117815538612131565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615ba18339815191528281541660408110156122a257604051906121b382612b35565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff1916171717905580548361220b818316614a8e565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b821015612174576001820180825582101561228c576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b0319168617905561202f565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b503461026c57602036600319011261026c576004356001600160401b0381168091036106ae57606060c06040516122ea81612b1a565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615c0183398151915260205260406000206040519061233382612b1a565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a08301526040518381949060048401549361239b85613587565b8085529460018116908115612482575060011461243d575b50506123c192500383612ba1565b60c081019182526109ae6040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612ae2565b60049193949250018252602082205b8183106124665750509060206123c19282010138806123b3565b602091935080600191548385890101520191019091849261244c565b915050602092506123c194915060ff191682840152151560051b82010138806123b3565b503461026c57602036600319011261026c576124c0615a17565b6109246124d76124ce6149cd565b8060043561591a565b614e2d565b503461026c57604036600319011261026c576109246124f9612aae565b612501615a17565b61ffff61250f6124ce6149cd565b9116600052600080516020615bc183398151915260205260406000209061502b565b503461026c576020806003193601126106ae576001600160a01b03600435818116908181036107f457612562615a17565b61256a614cee565b3b1561293d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e918254916125f760ff841615614a9f565b60ff199283166001178455303b156107f45760405163011fa75760e71b8152858160048183305af180156128f25761292a575b5060405163689f90c360e01b81528281600481305afa9081156128f25786916128fd575b5015612686575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa9081156128f25786916128b4575b50816126d9927f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b6040516314ad290960e11b81528181600481305afa9081156107e957859161287e575b507f000000000000000000000000000000000000000000000000000000000000000090600282101561286a57600281101561286a5761273b9114614a9f565b604051634d4502c960e11b81528181600481305afa80156107e9578590612834575b612790915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b604051631d2a9eff60e21b8152908082600481305afa9081156107e95785916127f4575b506127ed91506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614a9f565b3880612655565b905081813d831161282d575b61280a8183612ba1565b810103126107e557516001600160401b03811681036107e5576127ed90386127b4565b503d612800565b508181813d8311612863575b61284a8183612ba1565b810103126107f45761285e6127909161311a565b61275d565b503d612840565b634e487b7160e01b86526021600452602486fd5b90508181813d83116128ad575b6128958183612ba1565b810103126107f4575160028110156107f457386126fc565b503d61288b565b90508281813d83116128eb575b6128cb8183612ba1565b810103126128e757519080821682036128e757906126d96126a9565b8580fd5b503d6128c1565b6040513d88823e3d90fd5b61291d9150833d8511612923575b6129158183612ba1565b810190614200565b3861264e565b503d61290b565b61293690959195612b07565b933861262a565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461026c57602036600319011261026c576020611789600435612f8c565b503461026c57602036600319011261026c576004356001600160a01b0381811691829003611619576129f981600080516020615b018339815191525416614d32565b600080516020615c4183398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b503461026c57602036600319011261026c576106cd612a95612a90604060209461ffff612a6d612a9d565b612a756151f2565b50168152600080516020615bc1833981519152865220614dcd565b6152be565b6104416149cd565b6004359061ffff821682036105b157565b6024359061ffff821682036105b157565b60005b838110612ad25750506000910152565b8181015183820152602001612ac2565b90602091612afb81518092818552858086019101612abf565b601f01601f1916010190565b6001600160401b03811161217457604052565b60e081019081106001600160401b0382111761217457604052565b606081019081106001600160401b0382111761217457604052565b604081019081106001600160401b0382111761217457604052565b608081019081106001600160401b0382111761217457604052565b60a081019081106001600160401b0382111761217457604052565b90601f801991011681019081106001600160401b0382111761217457604052565b6001600160401b03811161217457601f01601f191660200190565b81601f820112156105b157803590612bf482612bc2565b92612c026040519485612ba1565b828452602083830101116105b157816000926020809301838601378301015290565b90600319906060828401126105b15760043561ffff811681036105b1579260243592604435916001600160401b03918284116105b15760609084830301126105b15760405192612c7384612b35565b806004013584526024810135602085015260448101359283116105b157612c9d9201600401612bdd565b604082015290565b6001600160401b0381116121745760051b60200190565b519060ff821682036105b157565b81601f820112156105b1578051612ce081612bc2565b92612cee6040519485612ba1565b818452602082840101116105b157612d0c9160208085019101612abf565b90565b9060209081838203126105b15782516001600160401b03938482116105b157019080601f830112156105b1578151612d4681612ca5565b94604090612d5682519788612ba1565b828752858088019360051b860101948486116105b157868101935b868510612d8357505050505050505090565b84518381116105b15782019084601f1983890301126105b157845190612da882612b50565b612db38a8401612cbc565b825285830151918583116105b157612dd2898c80969581960101612cca565b83820152815201940193612d71565b60001981146117465760010190565b805182101561228c5760209160051b010190565b9060406020612d0c9360ff81511684520151918160208201520190612ae2565b909291805191612e3383612ca5565b92604091612e4383519586612ba1565b818552601f19612e5283612ca5565b01602090368288013760009788955b848710612e7357505050505050509190565b909192939495988685612eec868d612e9260018060a01b039188612df0565b511680600052600080516020615be18339815191528252612ebd60ff866000205460101c1689612df0565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190612e04565b03915afa908115612f7457908d91600091612f42575b50612f0e81928d612df0565b528301809311612f2f575050612f249099612de1565b959493929190612e61565b601190634e487b7160e01b600052526000fd5b91508782813d8311612f6d575b612f598183612ba1565b8101031261026c5750518c90612f0e612f02565b503d612f4f565b8a513d6000823e3d90fd5b9190820391821161174657565b6001600160401b039060ff612fe581600080516020615aa18339815191525416938493600080516020615b418339815191525490600052600080516020615ae183398151915260205260406000205460081c16166157e1565b1610159081612ff2575090565b9050151590565b906001600160401b0391600052600080516020615ae1833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615b61833981519152805482101561228c57600052600080516020615ac18339815191520190600090565b60ff600080516020615aa1833981519152541660405161307f81612b50565b60ff600080516020615ba183398151915254818116835260081c168060208301528083116130ba57505160ff166130b35750565b156108e257565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612d0c9380518452602081015160208501520151918160408201520190612ae2565b60409061ffff612d0c949316815281602082015201906130d8565b519061ffff821682036105b157565b91907f000000000000000000000000000000000000000000000000000000000000000046810361344957508161315f9184613467565b9190916134445760408091015191815192635399ded560e11b8452608084806131946020948560048401526024830190612ae2565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415613439576000946133c4575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036133a95750506131fc6149cd565b8161322587519280613220816001600160401b03968760ff82169160081c166158bf565b61591a565b960151908160a01c613392576001600160a01b039182169560007f000000000000000000000000000000000000000000000000000000000000000083161561338b57506132706151f2565b508816600052600080516020615bc18339815191528452613296612a9084600020614dcd565b6132a08882615853565b81808960081c169160081c16105b6132d357505050506132c36132d194846155b1565b6132cc83615491565b614893565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f316297509561336f839596949760019394519261330e84612b35565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b03198554161784555116826157a0565b019151166001600160601b0360a01b82541617905551908152a1565b90506132ae565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d8211613431575b816133df60809383612ba1565b810103126106ae578351916133f383612b6b565b8151906001600160481b038216820361026c57508252848101518583015283810151848301526134259060600161311a565b606082015292386131bc565b3d91506133d2565b83513d6000823e3d90fd5b505050565b604490604051906377d879fb60e01b82526004820152466024820152fd5b60405163b3f07bbd60e01b81529193926020918391829161348c9190600484016130ff565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105a55760009161351d575b506134be81612f8c565b15613505576134cc8161354e565b92836134da57509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d8211613546575b8161353660209383612ba1565b8101031261026c575051386134b4565b3d9150613529565b600052600080516020615ae18339815191526020526040600020805460ff81166135805760ff19166001179055600090565b5050600190565b90600182811c921680156135b7575b60208310146135a157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613596565b8181106135cc575050565b600081556001016135c1565b6004600091828155826001820155826002820155826003820155016135fd8154613587565b8061360757505050565b82601f821160011461361857505055565b9091808252613636601f60208420940160051c8401600185016135c1565b5555565b9194939290946000958315613c8a578115613c78578215613c66577f00000000000000000000000000000000000000000000000000000000000000006136803082614a36565b906136c360018060a01b03821696604051906323b872dd60e01b60208301523360248301523060448301526064820152606481526136bd81612b86565b87614218565b6136d6826136d13084614a36565b612f7f565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613c52579060018b9214613bcb575b5050505061ffff8116600052600080516020615a8183398151915260205260ff600160406000200154168015611d295761374f6137476149cd565b91828761591a565b906001600160401b038260081c1661376c60ff84169283836158bf565b808803613ba4575061378e61379391613786611b456149cd565b9384916158bf565b615369565b98600080516020615b8183398151915254966001600160401b0380891614613b905767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615b81833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613b8a576138146151f2565b50613820612a90614d85565b61383d8c610100600160481b0360ff87169160081b161782615853565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613b64578180613b5c575b6138b957505082612d0c9899610100600160481b0360ff8461389d826138a99716848660081b16176153d1565b169160081b1617615679565b6001600160401b03339516614412565b61ffff95979896919a506001600160481b039392506138d6615211565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661392388612b1a565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615c0183398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b03198254161781556139be6001600160401b03606087015116826157a0565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613b4857613a1f8354613587565b601f8111613b0d575b50602090601f8311600114613aa157906001600160401b03959683613a96575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613a92346143bb565b1690565b015190503880613a48565b95601f19831684885260208820975b818110613af55750916001600160401b03969791846001959410613adc575b505050811b019055613a5d565b015160001960f88460031b161c19169055388080613acf565b83830151895560019098019760209384019301613ab0565b613b389084835260208320601f850160051c81019160208610613b3e575b601f0160051c01906135c1565b38613a28565b9091508190613b2b565b634e487b7160e01b81526041600452602490fd5b506000613870565b604490613b6f615211565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613865565b634e487b7160e01b82526011600452602482fd5b87613bb160449282612f7f565b604051916338f831a560e11b835260048301526024820152fd5b803b156106ae578190602460405180948193630852cd8d60e31b83528c60048401525af18015613c4757613c32575b50613c06903090614a36565b808203613c1457888161370c565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613c40613c06929a612b07565b9890613bfa565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613c8a578215613c78578315613c66577f0000000000000000000000000000000000000000000000000000000000000000613ce13082614a36565b90613d2460018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613d1e81612b86565b8b614218565b613d32826136d13084614a36565b997f000000000000000000000000000000000000000000000000000000000000000060028110156141ec57600114614182575b50505061ffff8216600052600080516020615a8183398151915260205260ff600160406000200154168015611d2957613da7613d9f6149cd565b91828b61591a565b916001600160401b038360081c16613dc460ff85169384836158bf565b808c03614175575061378e613de691613dde611b456149cd565b9485916158bf565b99600080516020615b8183398151915254976001600160401b03808a16146141615767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615b81833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561415b57613e676151f2565b508b6001600160401b0380613e7d612a90614d85565b9260081b610100600160481b031660ff881617613e9a8185615853565b60081c169160081c16105b811580614154575b6141495781614141575b50613ee857505082612d0c9899610100600160481b0360ff6138a994169160081b1617613ee3816153d1565b615679565b61ffff95979896919a506001600160481b03939250613f05615211565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613f5288612b1a565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615c0183398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613fed6001600160401b03606087015116826157a0565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613b485761404e8354613587565b601f8111614111575b50602090601f83116001146140bf57906001600160401b03959683613a965750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613a92346143bb565b95601f19831684885260208820975b8181106140f95750916001600160401b03969791846001959410613adc57505050811b019055613a5d565b838301518955600190980197602093840193016140ce565b61413b9084835260208320601f850160051c81019160208610613b3e57601f0160051c01906135c1565b38614057565b905038613eb7565b604483613b6f615211565b5080613ead565b82613ea5565b634e487b7160e01b83526011600452602483fd5b8b613bb160449282612f7f565b803b156107e55783809160248d6040519485938492630852cd8d60e31b845260048401525af180156141e1576141cc575b506141bf903090614a36565b808203613c145780613d65565b926141da6141bf9294612b07565b92906141b3565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105b1575180151581036105b15790565b604051614276916001600160a01b031661423182612b50565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16142706142f2565b91614322565b8051908161428357505050565b8280614293938301019101614200565b1561429b5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d1561431d573d9061430382612bc2565b916143116040519384612ba1565b82523d6000602084013e565b606090565b919290156143845750815115614336575090565b3b1561433f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156143975750805190602001fd5b60405162461bcd60e51b815260206004820152908190610611906024830190612ae2565b600080808084335af16143cc6142f2565b50156143d55750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105b15781516001600160401b0381116105b157612d0c9201612cca565b959492949391936040518081600080516020615b6183398151915260208154938481520190600052600080516020615ac18339815191529260005b81811061487157505061446292500382612ba1565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978549181511561485f576144b56000916040519485928392635b10743960e11b8452604060048501526044840190612ae2565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105a557600092614842575b506144ef818388612e24565b95863410614823576145018734612f7f565b80614814575b506040519061451582612b6b565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105a557614614926000928d9284926147f8575b506001600160401b03604051936145dd85612b35565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b83526020600484015260248301906130d8565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105a5576000916147d5575b5061ffff8816600052600080516020615a818339815191526020526040600020549383519385156147b95760005b8581106146dd5750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff926146ae60c0966104416149cd565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b036146ef8284612df0565b5116906146fc8187612df0565b5182600052600080516020615be183398151915260205261472860ff60406000205460101c1686612df0565b51833b156105b15761476e9361ffff8f936000948f8e906147808d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190612e04565b85810360031901604487015290612ae2565b916064840152608483015203925af19182156105a5576147a5926147aa575b50612de1565b61466a565b6147b390612b07565b3861479f565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b6147f291503d806000833e6147ea8183612ba1565b8101906143ed565b3861463c565b61480d9192503d8086833e6147ea8183612ba1565b90386145c7565b61481d906143bb565b38614507565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b6148589192503d806000833e6115e08183612ba1565b90386144e3565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b031683526001948501948694506020909301920161444d565b92916148a1906104416149cd565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f0000000000000000000000000000000000000000000000000000000000000000936002851015611e2f5784614936575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506132d1906104de81606481016104d0565b9193600181036105b657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15611619576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af19081156149c157506149b85750565b6132d190612b07565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b8252600481526149ef81612b50565b51907f00000000000000000000000000000000000000000000000000000000000000005afa50614a1d6142f2565b6020818051810103126105b1576020612d0c9101612cbc565b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614a6d81612b35565b51915afa50614a7a6142f2565b6020818051810103126105b1576020015190565b60ff1660ff81146117465760010190565b15614aa657565b634e487b7160e01b600052600160045260246000fd5b600080516020615ba18339815191525460ff8160081c16614aed600080516020615b61833981519152548214614a9f565b60005b818110614b7b575060005b818110614b14575050604060ff6132d192161115614a9f565b60018101808211611746575b828110614b365750614b3190612de1565b614afb565b614b7690614b71614b468461302f565b905490614b528461302f565b92909160018060a01b03809354600395861b1c16931b1c161415614a9f565b612de1565b614b20565b80614b71614b8b614ba29361302f565b905460039190911b1c6001600160a01b0316614ba7565b614af0565b6001600160a01b039081166000818152600080516020615be18339815191526020526040908190209051929190614bdd84612b35565b5460ff91614c19838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614cd4575b5050614a9f565b600080516020615b4183398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615ba18339815191525497878960081c16935b848110614c96575b5050505050816132d196614c84869594614c8c9414614a9f565b151514614a9f565b5116911611614a9f565b8282614ca18361302f565b90549060031b1c1614614cbc57614cb790612de1565b614c62565b50919850849250839150614c849050826132d1614c6a565b90915081614ce5575b503880614c12565b90501538614cdd565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614d2057565b604051633c64f99360e21b8152600490fd5b600080516020615c4183398151915254336001600160a01b039182161415919082614d78575b5050614d6057565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880614d58565b60405190614d9282612b35565b8160406001600160401b03600080516020615c61833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b90604051614dda81612b35565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615c618339815191529081546001600160481b03908181166001600160401b036008918184841c16801580615020575b15614ed1575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b86614edd612a90614d85565b926000614eea8383615831565b15614fb65750614f099291614efe91615853565b8388861c16906157c8565b610100600160481b039290841b831660ff861617614f278184615831565b15614fa8578160ff9282614f3e614f4b9487615853565b871c169084871c166157c8565b9116921b16175b614f5c8482615831565b614f8657600160481b600160901b039060481b1690600160481b600160901b031916178355614e99565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff915016614f52565b9493959290614fc890614fd293615853565b8389841c166157c8565b9260ff881694838087610100600160481b038098871b1617614ff48185615853565b851c1691841c160192831161500c57501b1617614f52565b634e487b7160e01b81526011600452602490fd5b5060ff851615614e63565b919080546001600160481b03808216916001600160401b03926008908483831c168015806151e7575b156150ba57505050508461506c6132d1959685614e07565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b8590896150c9612a908a614dcd565b9360006150d68383615831565b156151915750916150ee6150f99260ff979894615853565b838c881c16906157c8565b610100600160481b039490861b85169116176151158184615831565b156151835760ff918161512b6151389386615853565b861c168784871c166157c8565b9116921b16175b6151498682615831565b615161579461515c6132d1959685614e07565b61506c565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff91501661513f565b9496506151ac93506151a291615853565b868a851c166157c8565b9160ff891693868086610100600160481b038097861b16176151ce8185615853565b841c1691831c16019186831161500c57501b161761513f565b5060ff841615615054565b604051906151ff82612b35565b60006040838281528260208201520152565b6152196151f2565b50612d0c612a95612a90614d85565b6152306151f2565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260406000206040519061526a82612b35565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b81156152a8570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156153525761533f828260ff936040610100600160481b0396015116420381615323602085019889519383875160081c160261529e565b9160081c1601915160081c1680821060001461534b5750615369565b9251169160081b161790565b9050615369565b506020015160ff16610100600160481b0317919050565b6001600160401b039081811161537d571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561548d5761540a6151f2565b50600160481b600160901b03615421612a90614d85565b610100600160481b0360ff61545c600080516020615c61833981519152968088549761544d8188615853565b60081c16908560081c166157c8565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561548d576154ca6151f2565b506154d6612a90614d85565b90600160481b600160901b03600080516020615c6183398151915293845493816001600160401b0360901b4260901b16946155118184615853565b60081c16828260081c160182811160001461559d5750610100600160481b0360ff61553b84615369565b92169160081b1617906001600160481b038516906155598284615853565b80856001600160401b0360901b1988161760081c16908360081c161060001461559657505b60481b1691600160481b600160d01b03191617179055565b905061557e565b60ff61553b610100600160481b0392615369565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561344457610100600160481b0360ff61566b61ffff6132d1966155fe6151f2565b50169384600052600080516020615bc183398151915280602052615628612a906040600020614dcd565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b1617815595819061544d8188615853565b92169160081b161790614e07565b6001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016156134445761ffff6132d1936156b86151f2565b5016600090808252600080516020615bc1833981519152806020526156e2612a9060408520614dcd565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b1617815593839061571f8184615853565b60081c16838260081c160183811160001461578c5750610100600160481b0360ff61574985615369565b92169160081b1617918084546001600160481b0381169361576a8587615853565b5060081c16908360081c1610600014615784575090614e07565b905090614e07565b60ff615749610100600160481b0392615369565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b6001600160401b03918216908216039190821161174657565b60009182915b6001600160401b03908181168015615829576000190191821161581557169161580f90614a8e565b916157e7565b634e487b7160e01b85526011600452602485fd5b505050915090565b9061583c8183615853565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615865575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612d0c5750600890565b9060ff8091169116039060ff821161174657565b60ff16604d811161174657600a0a90565b919060ff821660ff82168181146159135711156158f2576158e7612d0c93926158ec9261589a565b6158ae565b9061529e565b6158e7906158ff9261589a565b908181029181830414901517156117465790565b5050505090565b61594d61378e60ff92610100600160481b03949561593787615888565b90858116868316101561595857509586916158bf565b92169160081b161790565b90509586916158bf565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561599157565b604051631afcd79f60e31b8152600490fd5b6001600160a01b039081169081156159fe57600080516020615b0183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615b01833981519152546001600160a01b03163303615a3857565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615c218339815191526002815414615a6e5760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a2646970667358221220ff24bb6218d11a60fad2e17b2c54e55dfe3f8155f61d7f10dfd1f2886b23efbc64736f6c63430008130033",iqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Cl;let sqe=(Cl=class extends V1{constructor(...e){if(iqe(e))super(...e);else{const[n,r]=e;super(q9,Cl.linkBytecode(n),r)}}static linkBytecode(e){let n=dK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(q9)}static connect(e,n){return new Js(e,q9,n)}},ce(Cl,"bytecode",dK),ce(Cl,"abi",q9),Cl);const G9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],hK="0x6101c06040818152346200031d5760c082620036f8803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a094855251946133869687620003728839608051876130f1015260a051878181610dc201528181611503015281816118860152818161200b015281816121ba015281816128960152612a9a015260c051878181610e4d01528181611c490152818161220c015281816126430152612d32015260e05187610cca01525186818161076301528181610f000152818161122a01528181611bb401528181611da701526123510152518581816101fd01528181610bbe01528181610f2b0152818161125601528181611b5c01528181611dd40152818161225c01528181612db801528181612e980152612f3601525184818161079c015281816115ec01528181611a00015281816122ac0152612c7b015251838181610a1e01528181611bf2015281816122fc0152612d6f015251826102410152518181816106a1015281816119cb0152612c500152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af14612561575080630900f0101461203a5780630b4a1e891461139157806324fb21db14611ff6578063320d0d8e14611fb357806348b330d614611f6d5780634b5b0505146117f55780634b795b2114611754578063529dca321461154a57806358f709ba146114db578063657b3b2f1461143a57806366152efc146113d9578063689f90c314611396578063694977d7146113915780637ab564031461113157806380eb3239146110f55780638129fc1c14610c3657806381e8ec7f14610bed57806384acd1bb14610ba95780638da5cb5b14610b735780638fd3ab8014610a4d57806390ea542814610a09578063935dec07146109c757806396dddc63146109125780639fd0506d146108ca578063b187bd2614610889578063b5634c731461083c578063bc7f6d37146107f9578063d8d28418146107cb578063da25b72514610787578063e8dfd50814610749578063f2fde38b14610714578063f48066a8146106c8578063f68016b7146106895763f953cec7146101a457600080fd5b346106855760209081600319360112610681578035906001600160401b038581841161067e576101da6101f99436908501612754565b86518095819263607ec5ef60e11b83528887840152602483019061283d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156106745786938790889261046f575b501561044c57507f000000000000000000000000000000000000000000000000000000000000000046810361043057506060830161ffff918282511660005260008051602061327183398151915286528660002054608086019081518091036103ff575061014086016102c7815160005260008051602061329183398151915260205260ff6040600020541690565b6103e657927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103286103799d9b516000526000805160206132918339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a15116940151906103576128f9565b5061036061291f565b508651630453806b60e11b815293849283928301612a78565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103dc576103b39450859186946103b6575b50815191015191612a97565b80f35b9093506103d591503d8087833e6103cd8183612718565b8101906129fa565b92386103a7565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b815280840186905290819061042c90602483019061283d565b945050503d8087853e6104828185612718565b830160609081858203126106705784518381116105f45785016101609283828403126105f85788519384018481108682111761065b5789526104c382613009565b84526104d0888301613017565b888501526104df898301613017565b898501528082015161ffff8116810361065757818501526080808301518186015261050c60a08401612fa1565b60a086015261051d60c08401613009565b60c086015260e0830151868111610653578461053a918501612977565b60e086015261010061054d818501613017565b90860152610120908184015187811161064f57840185601f8201121561064f5780518c9461058661057d83612803565b96519687612718565b8186528c8087019260071b8401019288841161064b578d01915b8383106105fc57505050505084015261014080910151908301526105c5868601613028565b9487810151908482116105f857019080601f830112156105f45781516105ec928801612940565b909338610238565b8880fd5b8980fd5b84838a031261064b578d8f918287935190610616826126e2565b86518252838701518483015261062d818801613009565b9082015261063c858701613009565b858201528152019201916105a0565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106c457816003193601126106c457602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106c45760203660031901126106c45760209061ffff6106e9612672565b166000526000805160206132b1833981519152825261070b81600020546130ad565b90519015158152f35b8382346106c45760203660031901126106c457356001600160a01b03811681036106c4576103b3906107446131c1565b613190565b5050346106c457816003193601126106c4576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4576020906107e8612881565b90516001600160a01b039091168152f35b5050346106c45760203660031901126106c45760209061ffff61081a612672565b16600052600080516020613251833981519152825261070b81600020546130ad565b5034610685578160031936011261068557610855612672565b92602435906001600160401b03821161067e57509261087c6108829260209536910161279b565b90612bda565b9051908152f35b5050346106c457816003193601126106c45760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106c457816003193601126106c4577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106c457826003193601126106c45761092d612672565b6109356127f4565b9161093e6131c1565b61ffff82169081156109b957507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c93946109b39161097b856130df565b906000526000805160206132b18339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106c45760203660031901126106c45760209061ffff6109e8612672565b16600052600080516020613271833981519152825280600020549051908152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610685578260031936011261068557610a676130ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610b605760ff84871c16908115610b53575b50610b4357169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b35575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610aaf565b634e487b7160e01b885260118752602488fd5b5050346106c457816003193601126106c4576000805160206132f18339815191525490516001600160a01b039091168152602090f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4578051610c3291610c0e826126fd565b60058252640302e312e360dc1b60208301525191829160208352602083019061283d565b0390f35b5034610685578260031936011261068557610c4f6130ee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b0393848116801590816110ed575b60011490816110e3575b1590816110da575b506110cb5767ffffffffffffffff1981166001178655826110ac575b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116338190036110905750610cfc61314f565b610d0461314f565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610db0610d33612881565b610d3b61314f565b610d4361314f565b610d4b61314f565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610da861314f565b61074461314f565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa918215611086578a9261104f575b508651631dcbf42b60e11b81529188838781855afa928315611045578b9361100e575b5087519360a085019081118582101761065b578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110045791610f27939187938a91610fe2575b508987518096819582946358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b03927f0000000000000000000000000000000000000000000000000000000000000000165af18015610fd857610fa0575b50610f61578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311610fd1575b610fb58183612718565b81010312610fcd57610fc690612fa1565b5038610f58565b8580fd5b503d610fab565b83513d88823e3d90fd5b610ffe91503d808c833e610ff68183612718565b810190613035565b38610eea565b85513d8a823e3d90fd5b9092508881813d831161103e575b6110268183612718565b810103126106575761103790613009565b9138610e1b565b503d61101c565b88513d8d823e3d90fd5b9091508781813d831161107f575b6110678183612718565b810103126105f85761107890613009565b9038610df8565b503d61105d565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610cbf565b50825163f92ee8a960e01b8152fd5b90501538610ca3565b303b159150610c9b565b849150610c91565b50913461067e57602036600319011261067e575061070b6020923560005260008051602061329183398151915260205260ff6040600020541690565b503461068557816003193601126106855761114a612672565b602435916111566131c1565b61ffff80831690811561138157841561137157816000526000805160206132718339815191529160209280845287600020548061134857508160005283528587600020558651916111a6836126c7565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561133e576112519383928991611324575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b0381897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610674576112c8575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669080604081016109b3565b81813d831161131d575b6112dc8183612718565b81010312611319577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466936113126109b392612fa1565b509361128b565b8480fd5b503d6112d2565b61133891503d808b833e610ff68183612718565b38611216565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b61262d565b5050346106c457816003193601126106c45760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b50913461067e57602036600319011261067e57508051916113f9836126ac565b35908115159182810361143557610c32935280519160f81b602083015260018252611423826126fd565b5191829160208352602083019061283d565b600080fd5b508290346106c457826003193601126106c457611455612672565b61145d6127f4565b916114666131c1565b61ffff82169081156109b957507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c393946109b3916114a3856130df565b906000526000805160206132d18339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610685576020366003190112610685578035916001600160a01b038084168403611319577f000000000000000000000000000000000000000000000000000000000000000016330361153357836103b3846131fa565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610685576001600160401b038135818111611319576115759036908401612754565b602492833593838511611750573660238601121561175057848201359361159b85612803565b946115a888519687612718565b808652602096838888019260051b8201019236841161065757848201925b84841061172a5750505050506044356064359461ffff86169081870361143557608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361171757826000526000805160206132718339815191528952838a60002054036116f057848b52600080516020613291833981519152895260ff8a8c2054166116dc5750611685846000526000805160206132918339815191526020526040600020600160ff19825416179055565b516116cc57606061037995938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a16103576128f9565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161064f578a916117458392893691880101612754565b8152019301926115c6565b8680fd5b508290346106c457826003193601126106c45761176f612672565b6117776127f4565b916117806131c1565b61ffff82169081156109b957507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c93946109b3916117bd856130df565b906000526000805160206132518339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a0368201126106815761180c612672565b9060249283356001600160401b03908181116106705761182f903690880161279b565b906044358181116105f4576118479036908901612754565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611f5e57600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f4857908b61190181936119108a519b6118c38d6126ac565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a486019061283d565b9184830301608485015261283d565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f3e5782988395611eec575b50611948602080980151612b5f565b80511580611edd575b15611b34575050928a928592838989976119c361ffff8f16968792836000526000805160206132718339815191528c526119976119918660002054612fdd565b9b612fdd565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e487019061283d565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b2a57611ab9575b5061ffff926060611a9e84611ab2946000805160206133318339815191528460019c6000805160206133118339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c086019061283d565b910151838203603f190160a085015261283d565b0390a15580f35b9391928185813d8311611b23575b611ad18183612718565b81010312610670576060611a9e61ffff95611ab2946000805160206133318339815191528460019c611b116000805160206133118339815191529c612fa1565b509c5050509450949650505092611a2d565b503d611ac7565b83513d8a823e3d90fd5b919394959250959697989a50511580611eb1575b15611d87578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611d7c57908993929197611d49575b50869291611bdc918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fb5565b03925af1948515611d3f578c95611d08575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611cf45790818d9796959493923b15610670578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611cea57611cd2575b50600080516020613311833981519152936060611a9e856001999560008051602061333183398151915284611ab29761ffff9a51908e8252848201523485820152a1611a71565b611cde90969296612683565b610fcd57938538611c8b565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d38575b611d208183612718565b8101031261065357611d3190612fa1565b9338611bee565b503d611d16565b88513d8e823e3d90fd5b9196509181813d8111611d75575b611d618183612718565b810103126114355751948791611bdc611b98565b503d611d57565b8a51903d90823e3d90fd5b9050611dce9350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fb5565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611ea757611e49575b5091611ab26001956060611a9e8560008051602061331183398151915297600080516020613331833981519152848d61ffff9a519060028252848201523485820152a1611a71565b9181838195933d8311611ea0575b611e618183612718565b81010312611750576001956060611a9e611ab29360008051602061331183398151915297611e9161ffff98612fa1565b50959750955050509550611e01565b503d611e57565b83513d89823e3d90fd5b5061ffff8a166000526000805160206132518339815191528652611ed887600020546130ad565b611b48565b50611ee78b61305a565b611951565b985093503d80838a3e611eff818a612718565b88019787818a03126106855780518581116106815789611f20918301612991565b98602082015186811161131957611f379201612977565b9338611939565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b50913461067e57602036600319011261067e578235906001600160401b03821161067e5750611fa4602093611fa992369101612754565b612b5f565b9051905115158152f35b5050346106c45760203660031901126106c45760209061ffff611fd4612672565b166000526000805160206132d1833981519152825261070b81600020546130ad565b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5090346106855760209182600319360112610681576001600160a01b03918135838116908181036117505761206d6131c1565b6120756130ee565b3b15612508577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9384549361210260ff861615613132565b60ff199485166001178655303b1561175057825163011fa75760e71b81528781868183305af180156123fc576124f5575b50825163689f90c360e01b815282818681305afa9081156123fc5788916124c0575b501561218f575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa9081156123fc57906121e19189916124a3575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b8251630b4a1e8960e01b815282818681305afa9081156123fc5790612233918991612476575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b82516384acd1bb60e01b815282818681305afa80156123fc57889061243e575b612283915082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b825163da25b72560e01b815282818681305afa80156123fc578890612406575b6122d3915082167f0000000000000000000000000000000000000000000000000000000000000000831614613132565b825163121d4a8560e31b815282818681305afa9081156123fc5788916123c2575b5081612324927f000000000000000000000000000000000000000000000000000000000000000016911614613132565b8082518094631d1bfaa160e31b825281305afa9182156123b957508591612382575b50612379915060ff807f000000000000000000000000000000000000000000000000000000000000000016911614613132565b3880808061215c565b905081813d83116123b2575b6123988183612718565b81010312610681576123ac61237991613009565b38612346565b503d61238e565b513d87823e3d90fd5b90508281813d83116123f5575b6123d98183612718565b81010312610670575190808216820361067057906123246122f4565b503d6123cf565b84513d8a823e3d90fd5b508281813d8311612437575b61241c8183612718565b8101031261067057518181168103610670576122d3906122a3565b503d612412565b508281813d831161246f575b6124548183612718565b81010312610670575181811681036106705761228390612253565b503d61244a565b6124969150843d861161249c575b61248e8183612718565b810190612862565b38612207565b503d612484565b6124ba9150843d861161249c5761248e8183612718565b386121b5565b90508281813d83116124ee575b6124d78183612718565b81010312610670576124e890613028565b38612155565b503d6124cd565b61250190979197612683565b9538612133565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106855760203660031901126106855781356001600160a01b03818116939184900361131957806000805160206132f18339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124992835492831694338614159081612622575b5061260d5750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b9050331415886125d1565b34611435576000366003190112611435576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361143557565b6001600160401b03811161269657604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761269657604052565b606081019081106001600160401b0382111761269657604052565b608081019081106001600160401b0382111761269657604052565b604081019081106001600160401b0382111761269657604052565b90601f801991011681019081106001600160401b0382111761269657604052565b6001600160401b03811161269657601f01601f191660200190565b81601f820112156114355780359061276b82612739565b926127796040519485612718565b8284526020838301011161143557816000926020809301838601378301015290565b9190916040818403126114355760408051916001600160401b0391830182811184821017612696576040528294813560ff811681036114355784526020820135928311611435576020926127ef9201612754565b910152565b60243590811515820361143557565b6001600160401b0381116126965760051b60200190565b60005b83811061282d5750506000910152565b818101518382015260200161281d565b906020916128568151809281855285808601910161281a565b601f01601f1916010190565b9081602091031261143557516001600160a01b03811681036114355790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128ed576000916128d2575090565b6128ea915060203d811161249c5761248e8183612718565b90565b6040513d6000823e3d90fd5b60405190612906826126e2565b6060808360008152600060208201528160408201520152565b6040519061292c826126c7565b606060408360008152600060208201520152565b9092919261294d81612739565b9161295b6040519384612718565b82948284528282011161143557602061297593019061281a565b565b9080601f830112156114355781516128ea92602001612940565b919060808382031261143557604051906129aa826126e2565b819380518352602081015160208401526040810151916001600160401b039283811161143557816129dc918401612977565b60408501526060820151928311611435576060926127ef9201612977565b9190604083820312611435578251906001600160401b03918281116114355781612a25918601612991565b936020810151908382116114355701906060828203126114355760405192612a4c846126c7565b8251845260208301516020850152604083015190811161143557612a709201612977565b604082015290565b6309945ff160e41b81526040602082018190526128ea9291019061283d565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b415750803b156114355761ffff60008094612b27604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c483019061283d565b03925af180156128ed57612b385750565b61297590612683565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612b6d836126ac565b6000835282815115612bd55750600181015160fe8116612bb95760ff16151583525160018103612b9a5750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612be9602080920151612b5f565b51612f205761ffff8216906000908282526000805160206132d18339815191528152604093612c1a858420546130ad565b80612ef9575b612ee157612c2d9061305a565b15612cf45750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612cea578193612cb9575b50505090565b9091809350813d8311612ce3575b612cd18183612718565b8101031261067e575051388080612cb3565b503d612cc7565b51903d90823e3d90fd5b8282939492526000805160206132518339815191528152612d17828420546130ad565b15612e7f57815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612e72578495612e43575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e3a57508392612e0c575b50508201809211612df8575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e33575b612e238183612718565b810103126106c457513880612de9565b503d612e19565b513d85823e3d90fd5b9094508181813d8311612e6b575b612e5b8183612718565b8101031261068157519381612da0565b503d612e51565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612ed657508193612cb95750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132b18339815191528252612f1a858420546130ad565b15612c20565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128ed57600091612f75575b50905090565b82813d8311612f9a575b612f898183612718565b8101031261067e5750518038612f6f565b503d612f7f565b51906001600160401b038216820361143557565b9060ff612fd66040929594956000855260606020860152606085019061283d565b9416910152565b8060a01c612ff1576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361143557565b519063ffffffff8216820361143557565b5190811515820361143557565b906020828203126114355781516001600160401b038111611435576128ea9201612977565b61ffff16806000526000805160206132d18339815191526020526130826040600020546130ad565b908161308c575090565b90506000526000805160206132b18339815191526020526128ea6040600020545b80156130d957600181146130d3576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b156130e957600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461312057565b604051633c64f99360e21b8152600490fd5b1561313957565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561317e57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b038116156131a857612975906131fa565b604051631e4fbdf760e01b815260006004820152602490fd5b6000805160206132f1833981519152546001600160a01b031633036131e257565b60405163118cdaa760e01b8152336004820152602490fd5b6000805160206132f183398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea264697066735822122034563781985a1b9124e36fffc44a6c32ed3932670b1c579b553016e6928c9abb64736f6c63430008130033",aqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Tl;let oqe=(Tl=class extends V1{constructor(...e){if(aqe(e))super(...e);else{const[n,r]=e;super(G9,Tl.linkBytecode(n),r)}}static linkBytecode(e){let n=hK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(G9)}static connect(e,n){return new Js(e,G9,n)}},ce(Tl,"bytecode",hK),ce(Tl,"abi",G9),Tl);const V9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceiverInfo",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct TransceiverRegistry.TransceiverInfo[]",components:[{name:"registered",type:"bool",internalType:"bool"},{name:"enabled",type:"bool",internalType:"bool"},{name:"index",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerSameChainId",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"StaticcallFailed",inputs:[]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedMsgValue",inputs:[]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],pK="0x61016034620005cb57601f620065cb38819003918201601f19168301916001600160401b038311848410176200057e5780849260a094604052833981010312620005cb578051906001600160a01b0382168203620005cb576020810151916002831015620005cb5760408201519161ffff83168303620005cb576060810151906001600160401b03821690818303620005cb576080015180159182158203620005cb5715809281620005c2575b508215620005a6575b505062000594576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005d0565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003f157505060005b60ff8260081c1681106200035d5750604060ff6200016d92161115620005d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c166200034b576002600160401b03196001600160401b03821601620002ff575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615f7d93846200064e85396080518481816114d401528181611b1401528181611fb1015281816129fc01528181613447015281816139cf0152818161404b015281816155690152818161567c0152818161573c0152818161585b0152615923015260a05184614faf015260c0518481816102900152818161051401528181610561015281816128e80152818161383f01528181613ec90152818161478701528181614bc60152614c76015260e05184611c590152518381816104ab0152818161202a0152818161217001528181612936015281816138c101528181613f460152614b4e01525182818161137c01528181611e500152818161299f01526133d101525181818161044901528181613abb01528181614113015281816146580152614b000152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003db575b60ff8360081c1681106200038a57506200038490620005ee565b6200014c565b620003d590620003cf6200039e84620005fe565b9054620003ab84620005fe565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005d0565b620005ee565b6200036a565b634e487b7160e01b600052601160045260246000fd5b620003fc81620005fe565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200057e5760608401604052546200049e60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a01529262000561575b5050620005d0565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c1681106200050f575b5050508262000509959492620004ee620003cf95620004f79414620005d0565b151514620005d0565b60ff60408188169201511610620005d0565b62000139565b6200051a81620005fe565b9054600391821b1c6001600160a01b039081169184901b85901c16146200054c576200054690620005ee565b620004bf565b5060019350849150829050620004ee620004ce565b9091508162000574575b50388062000496565b905015386200056b565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b15915081620005b9575b503880620000b5565b905038620005b0565b925038620000ac565b600080fd5b15620005d857565b634e487b7160e01b600052600160045260246000fd5b6000198114620003db5760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006375760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612c79578063036de8af14612bee5780630677df5414612bcf5780630900f01014612768578063186ce6121461271357806319017175146126dd5780631f97c9a8146124eb578063203e4a9b146121e857806323d75e31146121b4578063295a52121461215a578063396c16b71461211e5780633b97e856146121035780633f4ba83a146120755780634b4fd03b14612017578063689f90c314611fd557806374aa7bfc14611f915780637c91863414611e025780638129fc1c14611bcd5780638413bcba14611ab15780638456cb5914611a3457806386e11ffa14611a0f57806389c619dd146119af5780638da5cb5b146119795780638e3ba8c9146119425780638fd3ab80146118035780639057412d14611686578063961b94d01461162857806397c35146146113a05780639a8a0592146113615780639d782454146111265780639f86029c14610e105780639fd0506d14610dda578063b150fc5514610c2d578063b187bd2614610bff578063b293f97f14610b69578063b4d591bb14610aa8578063c0b07bde14610a62578063c128d170146109e6578063d788c1471461095b578063da4856a114610928578063e5a986031461087c578063e75235b81461084e578063f2fde38b14610709578063f5cfec18146106e6578063f7514fbc146102bf578063fc0c546a1461027a5763fd96063c1461022257600080fd5b346102775760203660031901126102775760606102406004356154c7565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b50346102775780600319360112610277576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610277576020366003190112610277576004356001600160401b03811681036106e2576102ec615d17565b6002600080516020615de883398151915254146106d0576001600160401b038116600052600080516020615ec883398151915260205260406000206040519061033482612d49565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039b8461376f565b80845293600181169081156106ae575060011461066a575b506103c092500382612dd0565b60c08201526001600160401b03606082015116156106495760a08101516001600160a01b031633810361061c5750606061048c60407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615ec8833981519152602052610442826000206137c0565b015161046d7f0000000000000000000000000000000000000000000000000000000000000000615a67565b610475614c50565b906001600160401b0360ff82169160081c16615b86565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156106065780610556575060405163a9059cbb60e01b602082015233602482015260448101919091526105419061051281606481015b03601f198101835282612dd0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614452565b6001600080516020615ee88339815191525580f35b600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105e5576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105d9576105ca575b50610541565b6105d390612d36565b386105c4565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b8183106106925750509060206103c092820101386103b3565b6020919350806001915483858801015201910190918392610679565b9050602092506103c094915060ff191682840152151560051b820101386103b3565b6040516309e3d0f360e11b8152600490fd5b5080fd5b503461027757806003193601126102775760206107016154b0565b604051908152f35b5034610277576020366003190112610277576001600160a01b03600435818116908181036108195761074a9061073d615cde565b610745615cde565b615c6a565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615e688339815191525416808203610830575050908391825b845481101561082c578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b1561082857848091602460405180948193632c7b84dd60e11b83528960048401525af190811561081d578591610805575b505061080090613010565b61078f565b61080e90612d36565b6108195783386107f5565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b5034610277578060031936011261027757602060ff600080516020615d688339815191525416604051908152f35b50346102775760203660031901126102775760043560ff8116908181036105e5576108a5615cde565b8115610916577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a99161091060ff92600080516020615d68833981519152805493851985161790556108f461328f565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b50346102775761093736612e53565b906002600080516020615de883398151915254146106d05761095892613358565b80f35b50346102775760203660031901126102775761ffff610978612ccc565b610980614d5b565b5016600052600080516020615e888339815191526020526109e26109a7604060002061508b565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b50346102775760203660031901126102775761ffff90610a04612ccc565b906020604051610a1381612d7f565b828152015216600052600080516020615d4883398151915260205260408060002060ff8251610a4181612d7f565b60208260018554958685520154169101908152835192835251166020820152f35b50346102775780600319360112610277576109e2604051610a8281612d7f565b60058152640312e302e360dc1b6020820152604051918291602083526020830190612d11565b50346102775780600319360112610277576040518091600080516020615e2883398151915290815480845260208094019081938352600080516020615d8883398151915290835b818110610b4c5750505084610b05910385612dd0565b60405193838594850191818652518092526040850193925b828110610b2c57505050500390f35b83516001600160a01b031685528695509381019392810192600101610b1d565b82546001600160a01b031684529286019260019283019201610aef565b5060c036600319011261027757610b7e612cdd565b906084359182151583036106e25760a4356001600160401b03928382116102775750610bae903690600401612e0c565b610bb6615d17565b6002600080516020615de883398151915254146106d057602093610be4926064359060443590600435613ead565b6001600080516020615ee88339815191525560405191168152f35b503461027757806003193601126102775760206002600080516020615de88339815191525414604051908152f35b503461027757806003193601126102775760405180600080516020615e2883398151915280548084526020809401918552600080516020615d8883398151915290855b818110610dbd5750505081610c86910382612dd0565b8051610c9181612ed4565b91610c9f6040519384612dd0565b818352601f19610cae83612ed4565b01855b818110610da1575050845b828110610d1d575050506040519180830190808452825180925280604085019301945b828110610cec5784840385f35b85518051151585528083015115158584015260409081015160ff169085015294810194606090930192600101610cdf565b929492610d99906001600160a01b03610d36828561301f565b5116600052600080516020615ea88339815191528652604060002060405190610d5e82612d64565b5460ff9081811615158352818160081c1615158984015260101c166040820152610d88828961301f565b52610d93818861301f565b50613010565b949294610cbc565b8590610dae979597614d5b565b82828a01015201959395610cb1565b82546001600160a01b031684529285019260019283019201610c70565b5034610277578060031936011261027757600080516020615f08833981519152546040516001600160a01b039091168152602090f35b5034610277576020806003193601126106e2576001600160a01b0390600435828116919082810361082857610e43615cde565b82156111145782600052600080516020615ea883398151915280835260ff918260406000205416156110fb57846000528184528260406000205460081c16156110e25784600052818452604060002061ff001990818154169055600080516020615e68833981519152928354858160081c169283156110ce5761ff0060001980950160081b169116178455600080516020615e088339815191528054918860005287526001600160401b03600192610f1082858a60406000205460101c161b198316169282168310614d3e565b6001600160401b0319161790558897600080516020615e288339815191528054938b5b858110610fc8575b505050505050918091610f836040969594610f767f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614d3e565b610f7e614d7a565b614e65565b5460081c16600080516020615d688339815191529081548381168210610fba575b50505416908351928352820152a161095861328f565b60ff19161781553880610fa4565b838b610fd38361325e565b929054600393841b1c1614610ff15750610fec90613010565b610f33565b9590918093959798999a9b9c5081019081116110ba5790611025846110186110449461325e565b905490891b1c169161325e565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156110a657946040999794610f83948a9894610f76947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c99019261108c8461325e565b81939154921b1b1916905555998496979899839650610f3b565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b50346102775761113536612e53565b9033600052600080516020615ea883398151915260209080825260ff60406000205460081c161561134957600080516020615de88339815191529160028354146106d05761ffff861680600052600080516020615d488339815191528252846040600020540361132b575060405163b3f07bbd60e01b8152918183806111bf898b6004840161332e565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113205788936112f1575b503360005280825261120360ff60406000205460101c1684613228565b6112d85760606112b793927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615da8833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a16131bb565b6112bf578480f35b546002146106d0576112d092613358565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611319575b6113098183612dd0565b810103126105e5575191386111e6565b503d6112ff565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b5034610277578060031936011261027757602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b506020366003190112610277576001600160401b0360043516908160043503610277576113cb615d17565b6002600080516020615de883398151915254146106d05781600052600080516020615ec88339815191526020526040600020916040519261140b84612d49565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a0850152604051838194906004840154936114738561376f565b808552946001811690811561160457506001146115bf575b505061149992500383612dd0565b60c083019182526001600160401b03606084015116156115a7576114ca6001600160401b03606085015116426131ae565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000161161157c579161155991602093600052600080516020615ec8833981519152845261152260406000206137c0565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b039101511693519460043561464c565b6001600080516020615ee8833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106115e857505090602061149992820101388061148b565b60209193508060019154838589010152019101909184926115ce565b9150506020925061149994915060ff191682840152151560051b820101388061148b565b5060603660031901126102775761163d612cdd565b604435611648615d17565b6002600080516020615de883398151915254146106d05760209181611559926040519261167484612d7f565b60018452853681860137600435613822565b5034610277576040366003190112610277576116a0612ccc565b6024356001600160401b0381116117ff576116bf903690600401612e0c565b91604051918290600080516020615e28833981519152828154918287526020809701908652600080516020615d8883398151915292865b888282106117e05750505061170d92500383612dd0565b826117378351966040519788928392635b10743960e11b8452604060048501526044840190612d11565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156117d55783949561177094926117b1575b50613053565b604051926040840160408552835180915285606086019401915b81811061179d5750505082938301520390f35b82518552938601939186019160010161178a565b6117ce9192503d8087833e6117c68183612dd0565b810190612f3e565b903861176a565b6040513d85823e3d90fd5b85546001600160a01b03168452600195860195889550930192016116f6565b8280fd5b503461027757806003193601126102775761181c614fac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b0380821690600182019181831161192c5760ff8460401c1690811561191f575b5061190d57600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e5416156118fb577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926118db61328f565b6118e3614d7a565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611866565b634e487b7160e01b600052601160045260246000fd5b50346102775760403660031901126102775760243560ff811681036105e55761196f602091600435613228565b6040519015158152f35b5034610277578060031936011261027757600080516020615dc8833981519152546040516001600160a01b039091168152602090f35b503461027757602036600319011261027757611a046001600160401b036020926040600080516020615e0883398151915254916004358152600080516020615da88339815191528652205460081c1616615aa8565b60ff60405191168152f35b5034610277578060031936011261027757611a28614d5b565b506109e26109a7615043565b5034610277578060031936011261027757600080516020615dc883398151915254611a67906001600160a01b0316614ff0565b600080516020615de883398151915260028154146106d057600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461027757602036600319011261027757600435611ace615d17565b6002600080516020615de883398151915254146106d057611aee816154c7565b602081016001600160401b03908181511615611bb457611b1182825116426131ae565b827f00000000000000000000000000000000000000000000000000000000000000001611611b92578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b8602052604080862086815560010186905583015183518691610541916001600160481b0316906001600160a01b031687614af5565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b508060031936011261027757611be1614fac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611dfa575b6001149081611df0575b159081611de7575b5061190d5767ffffffffffffffff198116600117835581611dc8575b50611c57615c29565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611d9f575034611d8d57611c96615c29565b611c9e615c29565b611ca6615c29565b6001600080516020615de883398151915255600080516020615f0883398151915280546001600160a01b03191633179055611cdf615c29565b611ce7615c29565b611cf033615c6a565b611cf8615c29565b611d00615c29565b6001600080516020615ee883398151915255611d37610100600160481b0360ff611d30611d2b614c50565b615b4f565b16176150eb565b611d3f61328f565b611d47614d7a565b611d4f575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405163bd28e88960e01b8152600490fd5b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611c4e565b90501538611c32565b303b159150611c2a565b839150611c20565b503461027757608036600319011261027757611e1c612ccc565b60243560443560ff81168091036105e557611e35615cde565b61ffff809316928315611f7f578215611f6d578115611f5b577f0000000000000000000000000000000000000000000000000000000000000000168314611f49577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615d48833981519152918260205260ff604060002081600160405192611eca84612d7f565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611f2c611f0b611f02614c50565b80606435615be1565b89600052600080516020615e888339815191526020526040600020906152e9565b51935116604051938452602084015260408301526060820152a280f35b60405163101b8f9560e11b8152600490fd5b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461027757806003193601126102775760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610277578060031936011261027757602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b50346102775780600319360112610277577f00000000000000000000000000000000000000000000000000000000000000009060028210156120615760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b5034610277578060031936011261027757600080516020615dc8833981519152546120a8906001600160a01b0316614ff0565b600080516020615de883398151915260028154036120f157600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b50346102775780600319360112610277576020611a04614c50565b50346102775760203660031901126102775760ff60406020926004358152600080516020615da883398151915284522054166040519015158152f35b50346102775780600319360112610277576040517f000000000000000000000000000000000000000000000000000000000000000060028110156121a057602092508152f35b634e487b7160e01b83526021600452602483fd5b503461027757806003193601126102775760206001600160401b03600080516020615e488339815191525416604051908152f35b5034610277576020806003193601126106e2576004356001600160a01b0381169182820361081957612218615cde565b82156111145782600052600080516020615ea88339815191529182825260ff9081604060002054166000146123c15784600052838352604060002061010061ff00198254161790555b600080516020615e2883398151915290815491600160401b8310156123ab57826110259160016122939501905561325e565b600080516020615e6883398151915292835461ff006122b6848360081c16614d2d565b60081b169061ff00191617809455600080516020615e0883398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b1682179182146123925767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612342614d7a565b84600052825280600080516020615d68833981519152805482811615612383575b5054169260405194855260081c16908301526040820152a161095861328f565b60ff1916600117815538612363565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615e688339815191528281541660408110156124d957604051906123ea82612d64565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff19161717179055805483612442818316614d2d565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b8210156123ab57600182018082558210156124c3576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b03191686179055612261565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b5034610277576020366003190112610277576004356001600160401b0381168091036106e257606060c060405161252181612d49565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615ec883398151915260205260406000206040519061256a82612d49565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a0830152604051838194906004840154936125d28561376f565b80855294600181169081156126b95750600114612674575b50506125f892500383612dd0565b60c081019182526109e26040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612d11565b60049193949250018252602082205b81831061269d5750509060206125f89282010138806125ea565b6020919350806001915483858901015201910190918492612683565b915050602092506125f894915060ff191682840152151560051b82010138806125ea565b5034610277576020366003190112610277576126f7615cde565b61095861270e612705614c50565b80600435615be1565b6150eb565b503461027757604036600319011261027757610958612730612cdd565b612738615cde565b61ffff612746612705614c50565b9116600052600080516020615e888339815191526020526040600020906152e9565b5034610277576020806003193601126106e2576001600160a01b036004358181169081810361082857612799615cde565b6127a1614fac565b3b15612b74577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9182549161282e60ff841615614d3e565b60ff199283166001178455303b156108285760405163011fa75760e71b8152858160048183305af18015612b2957612b61575b5060405163689f90c360e01b81528281600481305afa908115612b29578691612b34575b50156128bd575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa908115612b29578691612aeb575b5081612910927f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b6040516314ad290960e11b81528181600481305afa90811561081d578591612ab5575b507f0000000000000000000000000000000000000000000000000000000000000000906002821015612aa1576002811015612aa1576129729114614d3e565b604051634d4502c960e11b81528181600481305afa801561081d578590612a6b575b6129c7915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b604051631d2a9eff60e21b8152908082600481305afa90811561081d578591612a2b575b50612a2491506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614d3e565b388061288c565b905081813d8311612a64575b612a418183612dd0565b8101031261081957516001600160401b038116810361081957612a2490386129eb565b503d612a37565b508181813d8311612a9a575b612a818183612dd0565b8101031261082857612a956129c791613349565b612994565b503d612a77565b634e487b7160e01b86526021600452602486fd5b90508181813d8311612ae4575b612acc8183612dd0565b81010312610828575160028110156108285738612933565b503d612ac2565b90508281813d8311612b22575b612b028183612dd0565b81010312612b1e5751908082168203612b1e57906129106128e0565b8580fd5b503d612af8565b6040513d88823e3d90fd5b612b549150833d8511612b5a575b612b4c8183612dd0565b81019061443a565b38612885565b503d612b42565b612b6d90959195612d36565b9338612861565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461027757602036600319011261027757602061196f6004356131bb565b5034610277576020366003190112610277576004356001600160a01b03818116918290036117ff57612c3081600080516020615dc88339815191525416614ff0565b600080516020615f0883398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b50346102775760203660031901126102775761070161046d612cc7604060209461ffff612ca4612ccc565b612cac614d5b565b50168152600080516020615e8883398151915286522061508b565b61555d565b6004359061ffff821682036105e557565b6024359061ffff821682036105e557565b60005b838110612d015750506000910152565b8181015183820152602001612cf1565b90602091612d2a81518092818552858086019101612cee565b601f01601f1916010190565b6001600160401b0381116123ab57604052565b60e081019081106001600160401b038211176123ab57604052565b606081019081106001600160401b038211176123ab57604052565b604081019081106001600160401b038211176123ab57604052565b608081019081106001600160401b038211176123ab57604052565b60a081019081106001600160401b038211176123ab57604052565b90601f801991011681019081106001600160401b038211176123ab57604052565b6001600160401b0381116123ab57601f01601f191660200190565b81601f820112156105e557803590612e2382612df1565b92612e316040519485612dd0565b828452602083830101116105e557816000926020809301838601378301015290565b90600319906060828401126105e55760043561ffff811681036105e5579260243592604435916001600160401b03918284116105e55760609084830301126105e55760405192612ea284612d64565b806004013584526024810135602085015260448101359283116105e557612ecc9201600401612e0c565b604082015290565b6001600160401b0381116123ab5760051b60200190565b519060ff821682036105e557565b81601f820112156105e5578051612f0f81612df1565b92612f1d6040519485612dd0565b818452602082840101116105e557612f3b9160208085019101612cee565b90565b9060209081838203126105e55782516001600160401b03938482116105e557019080601f830112156105e5578151612f7581612ed4565b94604090612f8582519788612dd0565b828752858088019360051b860101948486116105e557868101935b868510612fb257505050505050505090565b84518381116105e55782019084601f1983890301126105e557845190612fd782612d7f565b612fe28a8401612eeb565b825285830151918583116105e557613001898c80969581960101612ef9565b83820152815201940193612fa0565b600019811461192c5760010190565b80518210156124c35760209160051b010190565b9060406020612f3b9360ff81511684520151918160208201520190612d11565b90929180519161306283612ed4565b9260409161307283519586612dd0565b818552601f1961308183612ed4565b01602090368288013760009788955b8487106130a257505050505050509190565b90919293949598868561311b868d6130c160018060a01b03918861301f565b511680600052600080516020615ea883398151915282526130ec60ff866000205460101c168961301f565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190613033565b03915afa9081156131a357908d91600091613171575b5061313d81928d61301f565b52830180931161315e5750506131539099613010565b959493929190613090565b601190634e487b7160e01b600052526000fd5b91508782813d831161319c575b6131888183612dd0565b810103126102775750518c9061313d613131565b503d61317e565b8a513d6000823e3d90fd5b9190820391821161192c57565b6001600160401b039060ff61321481600080516020615d688339815191525416938493600080516020615e088339815191525490600052600080516020615da883398151915260205260406000205460081c1616615aa8565b1610159081613221575090565b9050151590565b906001600160401b0391600052600080516020615da8833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615e2883398151915280548210156124c357600052600080516020615d888339815191520190600090565b60ff600080516020615d6883398151915254166040516132ae81612d7f565b60ff600080516020615e6883398151915254818116835260081c168060208301528083116132e957505160ff166132e25750565b1561091657565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612f3b9380518452602081015160208501520151918160408201520190612d11565b60409061ffff612f3b94931681528160208201520190613307565b519061ffff821682036105e557565b919081613365918461364f565b91909161364a5760408091015191815192635399ded560e11b84526080848061339a6020948560048401526024830190612d11565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af493841561363f576000946135ca575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036135af575050613402614c50565b8161342b87519280613426816001600160401b03968760ff82169160081c16615b86565b615be1565b960151908160a01c613598576001600160a01b039182169560007f00000000000000000000000000000000000000000000000000000000000000008316156135915750613476614d5b565b508816600052600080516020615e88833981519152845261349c612cc78460002061508b565b6134a68882615b1a565b81808960081c169160081c16105b6134d957505050506134c96134d79484615850565b6134d283615730565b614af5565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f3162975095613575839596949760019394519261351484612d64565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b0319855416178455511682615a3f565b019151166001600160601b0360a01b82541617905551908152a1565b90506134b4565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d8211613637575b816135e560809383612dd0565b810103126106e2578351916135f983612d9a565b8151906001600160481b0382168203610277575082528481015185830152838101518483015261362b90606001613349565b606082015292386133c2565b3d91506135d8565b83513d6000823e3d90fd5b505050565b60405163b3f07bbd60e01b81529193926020918391829161367491906004840161332e565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091613705575b506136a6816131bb565b156136ed576136b481613736565b92836136c257509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d821161372e575b8161371e60209383612dd0565b810103126102775750513861369c565b3d9150613711565b600052600080516020615da88339815191526020526040600020805460ff81166137685760ff19166001179055600090565b5050600190565b90600182811c9216801561379f575b602083101461378957565b634e487b7160e01b600052602260045260246000fd5b91607f169161377e565b8181106137b4575050565b600081556001016137a9565b6004600091828155826001820155826002820155826003820155016137e5815461376f565b806137ef57505050565b82601f821160011461380057505055565b909180825261381e601f60208420940160051c8401600185016137a9565b5555565b9194939290946000958315613e9b578115613e89578215613e77577f00000000000000000000000000000000000000000000000000000000000000006138683082614cd0565b906138ab60018060a01b03821696604051906323b872dd60e01b60208301523360248301523060448301526064820152606481526138a581612db5565b87614452565b6138be826138b93084614cd0565b6131ae565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613e63579060018b9214613ddc575b5050505061ffff8116600052600080516020615d4883398151915260205260ff600160406000200154168015611f5b5761393761392f614c50565b918287615be1565b906001600160401b038260081c1661395460ff8416928383615b86565b808803613db5575061397661397b9161396e611d2b614c50565b938491615b86565b615608565b98600080516020615e4883398151915254966001600160401b0380891614613da15767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615e48833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613d9b576139fc614d5b565b50613a08612cc7615043565b613a258c610100600160481b0360ff87169160081b161782615b1a565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613d75578180613d6d575b613aa157505082612f3b9899610100600160481b0360ff84613a8582613a919716848660081b1617615670565b169160081b1617615918565b6001600160401b0333951661464c565b61ffff95979896919a506001600160481b03939250613adf7f0000000000000000000000000000000000000000000000000000000000000000615a67565b613ae76154b0565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613b3488612d49565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615ec883398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613bcf6001600160401b0360608701511682615a3f565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d5957613c30835461376f565b601f8111613d1e575b50602090601f8311600114613cb257906001600160401b03959683613ca7575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613ca3346145f5565b1690565b015190503880613c59565b95601f19831684885260208820975b818110613d065750916001600160401b03969791846001959410613ced575b505050811b019055613c6e565b015160001960f88460031b161c19169055388080613ce0565b83830151895560019098019760209384019301613cc1565b613d499084835260208320601f850160051c81019160208610613d4f575b601f0160051c01906137a9565b38613c39565b9091508190613d3c565b634e487b7160e01b81526041600452602490fd5b506000613a58565b604490613d806154b0565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613a4d565b634e487b7160e01b82526011600452602482fd5b87613dc2604492826131ae565b604051916338f831a560e11b835260048301526024820152fd5b803b156106e2578190602460405180948193630852cd8d60e31b83528c60048401525af18015613e5857613e43575b50613e17903090614cd0565b808203613e255788816138f4565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613e51613e17929a612d36565b9890613e0b565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613e9b578215613e89578315613e77577f0000000000000000000000000000000000000000000000000000000000000000613ef23082614cd0565b90613f3560018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613f2f81612db5565b8b614452565b613f43826138b93084614cd0565b997f00000000000000000000000000000000000000000000000000000000000000006002811015614426576001146143bc575b50505061ffff8216600052600080516020615d4883398151915260205260ff600160406000200154168015611f5b57613fb8613fb0614c50565b91828b615be1565b916001600160401b038360081c16613fd560ff8516938483615b86565b808c036143af5750613976613ff791613fef611d2b614c50565b948591615b86565b99600080516020615e4883398151915254976001600160401b03808a161461439b5767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615e48833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561439557614078614d5b565b508b6001600160401b038061408e612cc7615043565b9260081b610100600160481b031660ff8816176140ab8185615b1a565b60081c169160081c16105b81158061438e575b614383578161437b575b506140f957505082612f3b9899610100600160481b0360ff613a9194169160081b16176140f481615670565b615918565b61ffff95979896919a506001600160481b039392506141377f0000000000000000000000000000000000000000000000000000000000000000615a67565b61413f6154b0565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661418c88612d49565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615ec883398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b03198254161781556142276001600160401b0360608701511682615a3f565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d5957614288835461376f565b601f811161434b575b50602090601f83116001146142f957906001600160401b03959683613ca75750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613ca3346145f5565b95601f19831684885260208820975b8181106143335750916001600160401b03969791846001959410613ced57505050811b019055613c6e565b83830151895560019098019760209384019301614308565b6143759084835260208320601f850160051c81019160208610613d4f57601f0160051c01906137a9565b38614291565b9050386140c8565b604483613d806154b0565b50806140be565b826140b6565b634e487b7160e01b83526011600452602483fd5b8b613dc2604492826131ae565b803b156108195783809160248d6040519485938492630852cd8d60e31b845260048401525af1801561441b57614406575b506143f9903090614cd0565b808203613e255780613f76565b926144146143f99294612d36565b92906143ed565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105e5575180151581036105e55790565b6040516144b0916001600160a01b031661446b82612d7f565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16144aa61452c565b9161455c565b805190816144bd57505050565b82806144cd93830101910161443a565b156144d55750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d15614557573d9061453d82612df1565b9161454b6040519384612dd0565b82523d6000602084013e565b606090565b919290156145be5750815115614570575090565b3b156145795790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156145d15750805190602001fd5b60405162461bcd60e51b815260206004820152908190610645906024830190612d11565b600080808084335af161460661452c565b501561460f5750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105e55781516001600160401b0381116105e557612f3b9201612ef9565b9594929493919361467c7f0000000000000000000000000000000000000000000000000000000000000000615a67565b6040518081600080516020615e2883398151915260208154938481520190600052600080516020615d888339815191529260005b818110614ad35750506146c592500382612dd0565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed9785491815115614ac1576147186000916040519485928392635b10743960e11b8452604060048501526044840190612d11565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957600092614aa4575b50614752818388613053565b95863410614a855761476487346131ae565b80614a76575b506040519061477882612d9a565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957614877926000928d928492614a5a575b506001600160401b036040519361484085612d64565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b8352602060048401526024830190613307565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091614a37575b5061ffff8816600052600080516020615d48833981519152602052604060002054938351938515614a1b5760005b8581106149405750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff9261491160c096610475614c50565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b03614952828461301f565b51169061495f818761301f565b5182600052600080516020615ea883398151915260205261498b60ff60406000205460101c168661301f565b51833b156105e5576149d19361ffff8f936000948f8e906149e38d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190613033565b85810360031901604487015290612d11565b916064840152608483015203925af19182156105d957614a0792614a0c5750613010565b6148cd565b614a1590612d36565b38610d93565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b614a5491503d806000833e614a4c8183612dd0565b810190614627565b3861489f565b614a6f9192503d8086833e614a4c8183612dd0565b903861482a565b614a7f906145f5565b3861476a565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b614aba9192503d806000833e6117c68183612dd0565b9038614746565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b03168352600194850194869450602090930192016146b0565b9291614b249061046d7f0000000000000000000000000000000000000000000000000000000000000000615a67565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f00000000000000000000000000000000000000000000000000000000000000009360028510156120615784614bb9575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506134d7906105128160648101610504565b9193600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156117ff576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af1908115614c445750614c3b5750565b6134d790612d36565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b825260048152614c7281612d7f565b51907f00000000000000000000000000000000000000000000000000000000000000005afa614c9f61452c565b9015614cbe576020818051810103126105e5576020612f3b9101612eeb565b604051631222cd8360e01b8152600490fd5b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614d0781612d64565b51915afa614d1361452c565b9015614cbe576020818051810103126105e5576020015190565b60ff1660ff811461192c5760010190565b15614d4557565b634e487b7160e01b600052600160045260246000fd5b60405190614d6882612d64565b60006040838281528260208201520152565b600080516020615e688339815191525460ff8160081c16614dab600080516020615e28833981519152548214614d3e565b60005b818110614e39575060005b818110614dd2575050604060ff6134d792161115614d3e565b6001810180821161192c575b828110614df45750614def90613010565b614db9565b614e3490614e2f614e048461325e565b905490614e108461325e565b92909160018060a01b03809354600395861b1c16931b1c161415614d3e565b613010565b614dde565b80614e2f614e49614e609361325e565b905460039190911b1c6001600160a01b0316614e65565b614dae565b6001600160a01b039081166000818152600080516020615ea88339815191526020526040908190209051929190614e9b84612d64565b5460ff91614ed7838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614f92575b5050614d3e565b600080516020615e0883398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615e688339815191525497878960081c16935b848110614f54575b5050505050816134d796614f42869594614f4a9414614d3e565b151514614d3e565b5116911611614d3e565b8282614f5f8361325e565b90549060031b1c1614614f7a57614f7590613010565b614f20565b50919850849250839150614f429050826134d7614f28565b90915081614fa3575b503880614ed0565b90501538614f9b565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614fde57565b604051633c64f99360e21b8152600490fd5b600080516020615f0883398151915254336001600160a01b039182161415919082615036575b505061501e57565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880615016565b6040519061505082612d64565b8160406001600160401b03600080516020615f28833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b9060405161509881612d64565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615f288339815191529081546001600160481b03908181166001600160401b036008918184841c168015806152de575b1561518f575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b8661519b612cc7615043565b9260006151a88383615af8565b1561527457506151c792916151bc91615b1a565b8388861c1690615a8f565b610100600160481b039290841b831660ff8616176151e58184615af8565b15615266578160ff92826151fc6152099487615b1a565b871c169084871c16615a8f565b9116921b16175b61521a8482615af8565b61524457600160481b600160901b039060481b1690600160481b600160901b031916178355615157565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff915016615210565b94939592906152869061529093615b1a565b8389841c16615a8f565b9260ff881694838087610100600160481b038098871b16176152b28185615b1a565b851c1691841c16019283116152ca57501b1617615210565b634e487b7160e01b81526011600452602490fd5b5060ff851615615121565b919080546001600160481b03808216916001600160401b03926008908483831c168015806154a5575b1561537857505050508461532a6134d79596856150c5565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b859089615387612cc78a61508b565b9360006153948383615af8565b1561544f5750916153ac6153b79260ff979894615b1a565b838c881c1690615a8f565b610100600160481b039490861b85169116176153d38184615af8565b156154415760ff91816153e96153f69386615b1a565b861c168784871c16615a8f565b9116921b16175b6154078682615af8565b61541f579461541a6134d79596856150c5565b61532a565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff9150166153fd565b94965061546a935061546091615b1a565b868a851c16615a8f565b9160ff891693868086610100600160481b038097861b161761548c8185615b1a565b841c1691831c1601918683116152ca57501b16176153fd565b5060ff841615615312565b6154b8614d5b565b50612f3b61046d612cc7615043565b6154cf614d5b565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b860205260406000206040519061550982612d64565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b8115615547570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156155f1576155de828260ff936040610100600160481b03960151164203816155c2602085019889519383875160081c160261553d565b9160081c1601915160081c168082106000146155ea5750615608565b9251169160081b161790565b9050615608565b506020015160ff16610100600160481b0317919050565b6001600160401b039081811161561c571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561572c576156a9614d5b565b50600160481b600160901b036156c0612cc7615043565b610100600160481b0360ff6156fb600080516020615f2883398151915296808854976156ec8188615b1a565b60081c16908560081c16615a8f565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000161561572c57615769614d5b565b50615775612cc7615043565b90600160481b600160901b03600080516020615f2883398151915293845493816001600160401b0360901b4260901b16946157b08184615b1a565b60081c16828260081c160182811160001461583c5750610100600160481b0360ff6157da84615608565b92169160081b1617906001600160481b038516906157f88284615b1a565b80856001600160401b0360901b1988161760081c16908360081c161060001461583557505b60481b1691600160481b600160d01b03191617179055565b905061581d565b60ff6157da610100600160481b0392615608565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561364a57610100600160481b0360ff61590a61ffff6134d79661589d614d5b565b50169384600052600080516020615e88833981519152806020526158c7612cc7604060002061508b565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b161781559581906156ec8188615b1a565b92169160081b1617906150c5565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561364a5761ffff6134d793615957614d5b565b5016600090808252600080516020615e8883398151915280602052615981612cc76040852061508b565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b161781559383906159be8184615b1a565b60081c16838260081c1601838111600014615a2b5750610100600160481b0360ff6159e885615608565b92169160081b1617918084546001600160481b03811693615a098587615b1a565b5060081c16908360081c1610600014615a235750906150c5565b9050906150c5565b60ff6159e8610100600160481b0392615608565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b468103615a715750565b604490604051906377d879fb60e01b82526004820152466024820152fd5b6001600160401b03918216908216039190821161192c57565b60009182915b6001600160401b03908181168015615af05760001901918211615adc571691615ad690614d2d565b91615aae565b634e487b7160e01b85526011600452602485fd5b505050915090565b90615b038183615b1a565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615b2c575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612f3b5750600890565b9060ff8091169116039060ff821161192c57565b60ff16604d811161192c57600a0a90565b919060ff821660ff8216818114615bda571115615bb957615bae612f3b9392615bb392615b61565b615b75565b9061553d565b615bae90615bc692615b61565b9081810291818304149015171561192c5790565b5050505090565b615c1461397660ff92610100600160481b039495615bfe87615b4f565b908581168683161015615c1f5750958691615b86565b92169160081b161790565b9050958691615b86565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615615c5857565b604051631afcd79f60e31b8152600490fd5b6001600160a01b03908116908115615cc557600080516020615dc883398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615dc8833981519152546001600160a01b03163303615cff57565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615ee88339815191526002815414615d355760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a26469706673582212207ed5e889b9f55b8e46c735a86c62e208aeae9aa95f45c30245d74d8a7fdad80c64736f6c63430008130033",cqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Il;let fqe=(Il=class extends V1{constructor(...e){if(cqe(e))super(...e);else{const[n,r]=e;super(V9,Il.linkBytecode(n),r)}}static linkBytecode(e){let n=pK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(V9)}static connect(e,n){return new Js(e,V9,n)}},ce(Il,"bytecode",pK),ce(Il,"abi",V9),Il);const Y9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],bK="0x6101c06040818152346200031d5760c082620036ef803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a0948552519461337d9687620003728839608051876130e8015260a051878181610dbd015281816114fa0152818161187d01528181612002015281816121b10152818161288d0152612a91015260c051878181610e4801528181611c40015281816122030152818161263a0152612d29015260e05187610cc501525186818161076301528181610efa0152818161122101528181611bab01528181611d9e01526123480152518581816101fd01528181610bbe01528181610f270152818161124d01528181611b5301528181611dcb0152818161225301528181612daf01528181612e8f0152612f2d01525184818161079c015281816115e3015281816119f7015281816122a30152612c72015251838181610a1e01528181611be9015281816122f30152612d66015251826102410152518181816106a1015281816119c20152612c470152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af14612558575080630900f010146120315780630b4a1e891461138857806324fb21db14611fed578063320d0d8e14611faa57806348b330d614611f645780634b5b0505146117ec5780634b795b211461174b578063529dca321461154157806358f709ba146114d2578063657b3b2f1461143157806366152efc146113d0578063689f90c31461138d578063694977d7146113885780637ab564031461112d57806380eb3239146110f15780638129fc1c14610c3657806381e8ec7f14610bed57806384acd1bb14610ba95780638da5cb5b14610b735780638fd3ab8014610a4d57806390ea542814610a09578063935dec07146109c757806396dddc63146109125780639fd0506d146108ca578063b187bd2614610889578063b5634c731461083c578063bc7f6d37146107f9578063d8d28418146107cb578063da25b72514610787578063e8dfd50814610749578063f2fde38b14610714578063f48066a8146106c8578063f68016b7146106895763f953cec7146101a457600080fd5b346106855760209081600319360112610681578035906001600160401b038581841161067e576101da6101f9943690850161274b565b86518095819263607ec5ef60e11b835288878401526024830190612834565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156106745786938790889261046f575b501561044c57507f000000000000000000000000000000000000000000000000000000000000000046810361043057506060830161ffff918282511660005260008051602061326883398151915286528660002054608086019081518091036103ff575061014086016102c7815160005260008051602061328883398151915260205260ff6040600020541690565b6103e657927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103286103799d9b516000526000805160206132888339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a15116940151906103576128f0565b50610360612916565b508651630453806b60e11b815293849283928301612a6f565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103dc576103b39450859186946103b6575b50815191015191612a8e565b80f35b9093506103d591503d8087833e6103cd818361270f565b8101906129f1565b92386103a7565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b815280840186905290819061042c906024830190612834565b945050503d8087853e610482818561270f565b830160609081858203126106705784518381116105f45785016101609283828403126105f85788519384018481108682111761065b5789526104c382613000565b84526104d088830161300e565b888501526104df89830161300e565b898501528082015161ffff8116810361065757818501526080808301518186015261050c60a08401612f98565b60a086015261051d60c08401613000565b60c086015260e0830151868111610653578461053a91850161296e565b60e086015261010061054d81850161300e565b90860152610120908184015187811161064f57840185601f8201121561064f5780518c9461058661057d836127fa565b9651968761270f565b8186528c8087019260071b8401019288841161064b578d01915b8383106105fc57505050505084015261014080910151908301526105c586860161301f565b9487810151908482116105f857019080601f830112156105f45781516105ec928801612937565b909338610238565b8880fd5b8980fd5b84838a031261064b578d8f918287935190610616826126d9565b86518252838701518483015261062d818801613000565b9082015261063c858701613000565b858201528152019201916105a0565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106c457816003193601126106c457602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106c45760203660031901126106c45760209061ffff6106e9612669565b166000526000805160206132a8833981519152825261070b81600020546130a4565b90519015158152f35b8382346106c45760203660031901126106c457356001600160a01b03811681036106c4576103b3906107446131b8565b613187565b5050346106c457816003193601126106c4576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4576020906107e8612878565b90516001600160a01b039091168152f35b5050346106c45760203660031901126106c45760209061ffff61081a612669565b16600052600080516020613248833981519152825261070b81600020546130a4565b5034610685578160031936011261068557610855612669565b92602435906001600160401b03821161067e57509261087c61088292602095369101612792565b90612bd1565b9051908152f35b5050346106c457816003193601126106c45760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106c457816003193601126106c4577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106c457826003193601126106c45761092d612669565b6109356127eb565b9161093e6131b8565b61ffff82169081156109b957507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c93946109b39161097b856130d6565b906000526000805160206132a88339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106c45760203660031901126106c45760209061ffff6109e8612669565b16600052600080516020613268833981519152825280600020549051908152f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610685578260031936011261068557610a676130e5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610b605760ff84871c16908115610b53575b50610b4357169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b35575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610aaf565b634e487b7160e01b885260118752602488fd5b5050346106c457816003193601126106c4576000805160206132e88339815191525490516001600160a01b039091168152602090f35b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106c457816003193601126106c4578051610c3291610c0e826126f4565b60058252640312e302e360dc1b602083015251918291602083526020830190612834565b0390f35b508260031936011261068557610c4a6130e5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b0393848116801590816110e9575b60011490816110df575b1590816110d6575b506110c75767ffffffffffffffff1981166001178655826110a8575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163381900361108c5750610cf7613146565b610cff613146565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610dab610d2e612878565b610d36613146565b610d3e613146565b610d46613146565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610da3613146565b610744613146565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa918215611082578a9261104b575b508651631dcbf42b60e11b81529188838781855afa928315611041578b9361100a575b5087519360a085019081118582101761065b578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110005791610f21939187938a91610fde575b5086518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015610fd457610f9c575b50610f5d578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311610fcd575b610fb1818361270f565b81010312610fc957610fc290612f98565b5038610f54565b8580fd5b503d610fa7565b83513d88823e3d90fd5b610ffa91503d808c833e610ff2818361270f565b81019061302c565b38610ee5565b85513d8a823e3d90fd5b9092508881813d831161103a575b611022818361270f565b810103126106575761103390613000565b9138610e16565b503d611018565b88513d8d823e3d90fd5b9091508781813d831161107b575b611063818361270f565b810103126105f85761107490613000565b9038610df3565b503d611059565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610cba565b50825163f92ee8a960e01b8152fd5b90501538610c9e565b303b159150610c96565b849150610c8c565b50913461067e57602036600319011261067e575061070b6020923560005260008051602061328883398151915260205260ff6040600020541690565b508160031936011261068557611141612669565b6024359161114d6131b8565b61ffff80831690811561137857841561136857816000526000805160206132688339815191529160209280845287600020548061133f575081600052835285876000205586519161119d836126be565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af492831561133557611248938392899161131b575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b0381347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610674576112bf575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669080604081016109b3565b81813d8311611314575b6112d3818361270f565b81010312611310577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466936113096109b392612f98565b5093611282565b8480fd5b503d6112c9565b61132f91503d808b833e610ff2818361270f565b3861120d565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b612624565b5050346106c457816003193601126106c45760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b50913461067e57602036600319011261067e57508051916113f0836126a3565b35908115159182810361142c57610c32935280519160f81b60208301526001825261141a826126f4565b51918291602083526020830190612834565b600080fd5b508290346106c457826003193601126106c45761144c612669565b6114546127eb565b9161145d6131b8565b61ffff82169081156109b957507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c393946109b39161149a856130d6565b906000526000805160206132c88339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610685576020366003190112610685578035916001600160a01b038084168403611310577f000000000000000000000000000000000000000000000000000000000000000016330361152a57836103b3846131f1565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610685576001600160401b0381358181116113105761156c903690840161274b565b6024928335938385116117475736602386011215611747578482013593611592856127fa565b9461159f8851968761270f565b808652602096838888019260051b8201019236841161065757848201925b8484106117215750505050506044356064359461ffff86169081870361142c57608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361170e57826000526000805160206132688339815191528952838a60002054036116e757848b52600080516020613288833981519152895260ff8a8c2054166116d3575061167c846000526000805160206132888339815191526020526040600020600160ff19825416179055565b516116c357606061037995938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a16103576128f0565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161064f578a9161173c839289369188010161274b565b8152019301926115bd565b8680fd5b508290346106c457826003193601126106c457611766612669565b61176e6127eb565b916117776131b8565b61ffff82169081156109b957507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c93946109b3916117b4856130d6565b906000526000805160206132488339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a03682011261068157611803612669565b9060249283356001600160401b0390818111610670576118269036908801612792565b906044358181116105f45761183e903690890161274b565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611f5557600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f3f57908b6118f881936119078a519b6118ba8d6126a3565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a4860190612834565b91848303016084850152612834565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f355782988395611ee3575b5061193f602080980151612b56565b80511580611ed4575b15611b2b575050928a928592838989976119ba61ffff8f16968792836000526000805160206132688339815191528c5261198e6119888660002054612fd4565b9b612fd4565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e4870190612834565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b2157611ab0575b5061ffff926060611a9584611aa9946000805160206133288339815191528460019c6000805160206133088339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c0860190612834565b910151838203603f190160a0850152612834565b0390a15580f35b9391928185813d8311611b1a575b611ac8818361270f565b81010312610670576060611a9561ffff95611aa9946000805160206133288339815191528460019c611b086000805160206133088339815191529c612f98565b509c5050509450949650505092611a24565b503d611abe565b83513d8a823e3d90fd5b919394959250959697989a50511580611ea8575b15611d7e578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611d7357908993929197611d40575b50869291611bd3918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fac565b03925af1948515611d36578c95611cff575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611ceb5790818d9796959493923b15610670578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611ce157611cc9575b50600080516020613308833981519152936060611a95856001999560008051602061332883398151915284611aa99761ffff9a51908e8252848201523485820152a1611a68565b611cd59096929661267a565b610fc957938538611c82565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d2f575b611d17818361270f565b8101031261065357611d2890612f98565b9338611be5565b503d611d0d565b88513d8e823e3d90fd5b9196509181813d8111611d6c575b611d58818361270f565b8101031261142c5751948791611bd3611b8f565b503d611d4e565b8a51903d90823e3d90fd5b9050611dc59350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fac565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611e9e57611e40575b5091611aa96001956060611a958560008051602061330883398151915297600080516020613328833981519152848d61ffff9a519060028252848201523485820152a1611a68565b9181838195933d8311611e97575b611e58818361270f565b81010312611747576001956060611a95611aa99360008051602061330883398151915297611e8861ffff98612f98565b50959750955050509550611df8565b503d611e4e565b83513d89823e3d90fd5b5061ffff8a166000526000805160206132488339815191528652611ecf87600020546130a4565b611b3f565b50611ede8b613051565b611948565b985093503d80838a3e611ef6818a61270f565b88019787818a03126106855780518581116106815789611f17918301612988565b98602082015186811161131057611f2e920161296e565b9338611930565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b50913461067e57602036600319011261067e578235906001600160401b03821161067e5750611f9b602093611fa09236910161274b565b612b56565b9051905115158152f35b5050346106c45760203660031901126106c45760209061ffff611fcb612669565b166000526000805160206132c8833981519152825261070b81600020546130a4565b5050346106c457816003193601126106c457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5090346106855760209182600319360112610681576001600160a01b0391813583811690818103611747576120646131b8565b61206c6130e5565b3b156124ff577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e938454936120f960ff861615613129565b60ff199485166001178655303b1561174757825163011fa75760e71b81528781868183305af180156123f3576124ec575b50825163689f90c360e01b815282818681305afa9081156123f35788916124b7575b5015612186575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa9081156123f357906121d891899161249a575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b8251630b4a1e8960e01b815282818681305afa9081156123f3579061222a91899161246d575b5082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b82516384acd1bb60e01b815282818681305afa80156123f3578890612435575b61227a915082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b825163da25b72560e01b815282818681305afa80156123f35788906123fd575b6122ca915082167f0000000000000000000000000000000000000000000000000000000000000000831614613129565b825163121d4a8560e31b815282818681305afa9081156123f35788916123b9575b508161231b927f000000000000000000000000000000000000000000000000000000000000000016911614613129565b8082518094631d1bfaa160e31b825281305afa9182156123b057508591612379575b50612370915060ff807f000000000000000000000000000000000000000000000000000000000000000016911614613129565b38808080612153565b905081813d83116123a9575b61238f818361270f565b81010312610681576123a361237091613000565b3861233d565b503d612385565b513d87823e3d90fd5b90508281813d83116123ec575b6123d0818361270f565b810103126106705751908082168203610670579061231b6122eb565b503d6123c6565b84513d8a823e3d90fd5b508281813d831161242e575b612413818361270f565b8101031261067057518181168103610670576122ca9061229a565b503d612409565b508281813d8311612466575b61244b818361270f565b81010312610670575181811681036106705761227a9061224a565b503d612441565b61248d9150843d8611612493575b612485818361270f565b810190612859565b386121fe565b503d61247b565b6124b19150843d861161249357612485818361270f565b386121ac565b90508281813d83116124e5575b6124ce818361270f565b81010312610670576124df9061301f565b3861214c565b503d6124c4565b6124f89097919761267a565b953861212a565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106855760203660031901126106855781356001600160a01b03818116939184900361131057806000805160206132e88339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124992835492831694338614159081612619575b506126045750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b9050331415886125c8565b3461142c57600036600319011261142c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361142c57565b6001600160401b03811161268d57604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761268d57604052565b606081019081106001600160401b0382111761268d57604052565b608081019081106001600160401b0382111761268d57604052565b604081019081106001600160401b0382111761268d57604052565b90601f801991011681019081106001600160401b0382111761268d57604052565b6001600160401b03811161268d57601f01601f191660200190565b81601f8201121561142c5780359061276282612730565b92612770604051948561270f565b8284526020838301011161142c57816000926020809301838601378301015290565b91909160408184031261142c5760408051916001600160401b039183018281118482101761268d576040528294813560ff8116810361142c578452602082013592831161142c576020926127e6920161274b565b910152565b60243590811515820361142c57565b6001600160401b03811161268d5760051b60200190565b60005b8381106128245750506000910152565b8181015183820152602001612814565b9060209161284d81518092818552858086019101612811565b601f01601f1916010190565b9081602091031261142c57516001600160a01b038116810361142c5790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128e4576000916128c9575090565b6128e1915060203d811161249357612485818361270f565b90565b6040513d6000823e3d90fd5b604051906128fd826126d9565b6060808360008152600060208201528160408201520152565b60405190612923826126be565b606060408360008152600060208201520152565b9092919261294481612730565b91612952604051938461270f565b82948284528282011161142c57602061296c930190612811565b565b9080601f8301121561142c5781516128e192602001612937565b919060808382031261142c57604051906129a1826126d9565b819380518352602081015160208401526040810151916001600160401b039283811161142c57816129d391840161296e565b6040850152606082015192831161142c576060926127e6920161296e565b919060408382031261142c578251906001600160401b039182811161142c5781612a1c918601612988565b9360208101519083821161142c57019060608282031261142c5760405192612a43846126be565b8251845260208301516020850152604083015190811161142c57612a67920161296e565b604082015290565b6309945ff160e41b81526040602082018190526128e192910190612834565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b385750803b1561142c5761ffff60008094612b1e604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c4830190612834565b03925af180156128e457612b2f5750565b61296c9061267a565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612b64836126a3565b6000835282815115612bcc5750600181015160fe8116612bb05760ff16151583525160018103612b915750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612be0602080920151612b56565b51612f175761ffff8216906000908282526000805160206132c88339815191528152604093612c11858420546130a4565b80612ef0575b612ed857612c2490613051565b15612ceb5750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612ce1578193612cb0575b50505090565b9091809350813d8311612cda575b612cc8818361270f565b8101031261067e575051388080612caa565b503d612cbe565b51903d90823e3d90fd5b8282939492526000805160206132488339815191528152612d0e828420546130a4565b15612e7657815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612e69578495612e3a575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e3157508392612e03575b50508201809211612def575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e2a575b612e1a818361270f565b810103126106c457513880612de0565b503d612e10565b513d85823e3d90fd5b9094508181813d8311612e62575b612e52818361270f565b8101031261068157519381612d97565b503d612e48565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612ecd57508193612cb05750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132a88339815191528252612f11858420546130a4565b15612c17565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156128e457600091612f6c575b50905090565b82813d8311612f91575b612f80818361270f565b8101031261067e5750518038612f66565b503d612f76565b51906001600160401b038216820361142c57565b9060ff612fcd60409295949560008552606060208601526060850190612834565b9416910152565b8060a01c612fe8576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361142c57565b519063ffffffff8216820361142c57565b5190811515820361142c57565b9060208282031261142c5781516001600160401b03811161142c576128e1920161296e565b61ffff16806000526000805160206132c88339815191526020526130796040600020546130a4565b9081613083575090565b90506000526000805160206132a88339815191526020526128e16040600020545b80156130d057600181146130ca576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b156130e057600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461311757565b604051633c64f99360e21b8152600490fd5b1561313057565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561317557565b604051631afcd79f60e31b8152600490fd5b6001600160a01b0381161561319f5761296c906131f1565b604051631e4fbdf760e01b815260006004820152602490fd5b6000805160206132e8833981519152546001600160a01b031633036131d957565b60405163118cdaa760e01b8152336004820152602490fd5b6000805160206132e883398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea264697066735822122059bdad9542fb301c5a401dc5ec7c26dca547abf82e0e0ca3cc87aced2c37698b64736f6c63430008130033",uqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0];var Dl;let lqe=(Dl=class extends V1{constructor(...e){if(uqe(e))super(...e);else{const[n,r]=e;super(Y9,Dl.linkBytecode(n),r)}}static linkBytecode(e){let n=bK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Y9)}static connect(e,n){return new Js(e,Y9,n)}},ce(Dl,"bytecode",bK),ce(Dl,"abi",Y9),Dl);const Q9=[{type:"constructor",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_mode",type:"uint8",internalType:"enum IManagerBase.Mode"},{name:"_chainId",type:"uint16",internalType:"uint16"},{name:"_rateLimitDuration",type:"uint64",internalType:"uint64"},{name:"_skipRateLimiting",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"NTT_MANAGER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"attestationReceived",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"chainId",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"completeInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOutboundQueuedTransfer",inputs:[{name:"messageSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"executeMsg",inputs:[{name:"sourceChainId",type:"uint16",internalType:"uint16"},{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"message",type:"tuple",internalType:"struct TransceiverStructs.NttManagerMessage",components:[{name:"id",type:"bytes32",internalType:"bytes32"},{name:"sender",type:"bytes32",internalType:"bytes32"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getCurrentInboundCapacity",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentOutboundCapacity",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getInboundLimitParams",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"view"},{type:"function",name:"getInboundQueuedTransfer",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.InboundQueuedTransfer",components:[{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipient",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getOutboundLimitParams",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.RateLimitParams",components:[{name:"limit",type:"uint72",internalType:"TrimmedAmount"},{name:"currentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"lastTxTimestamp",type:"uint64",internalType:"uint64"}]}],stateMutability:"pure"},{type:"function",name:"getOutboundQueuedTransfer",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}],outputs:[{name:"",type:"tuple",internalType:"struct IRateLimiter.OutboundQueuedTransfer",components:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint72",internalType:"TrimmedAmount"},{name:"txTimestamp",type:"uint64",internalType:"uint64"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"sender",type:"address",internalType:"address"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"getPeer",inputs:[{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"tuple",internalType:"struct INttManager.NttManagerPeer",components:[{name:"peerAddress",type:"bytes32",internalType:"bytes32"},{name:"tokenDecimals",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"getTransceiverInfo",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct TransceiverRegistry.TransceiverInfo[]",components:[{name:"registered",type:"bool",internalType:"bool"},{name:"enabled",type:"bool",internalType:"bool"},{name:"index",type:"uint8",internalType:"uint8"}]}],stateMutability:"view"},{type:"function",name:"getTransceivers",inputs:[],outputs:[{name:"result",type:"address[]",internalType:"address[]"}],stateMutability:"pure"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isMessageApproved",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isMessageExecuted",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"messageAttestations",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mode",inputs:[],outputs:[{name:"",type:"uint8",internalType:"enum IManagerBase.Mode"}],stateMutability:"view"},{type:"function",name:"nextMessageSequence",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rateLimitDuration",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"removeTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"chainId_",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setOutboundLimit",inputs:[{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"},{name:"decimals",type:"uint8",internalType:"uint8"},{name:"inboundLimit",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setThreshold",inputs:[{name:"threshold",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"tokenDecimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"transceiverAttestedToMessage",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"index",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transfer",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"},{name:"shouldQueue",type:"bool",internalType:"bool"},{name:"transceiverInstructions",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"InboundTransferQueued",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MessageAlreadyExecuted",inputs:[{name:"sourceNttManager",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"msgHash",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"MessageAttestedTo",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"index",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OutboundTransferCancelled",inputs:[{name:"sequence",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipient",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OutboundTransferQueued",inputs:[{name:"queueSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OutboundTransferRateLimited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"currentCapacity",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PeerUpdated",inputs:[{name:"chainId_",type:"uint16",indexed:!0,internalType:"uint16"},{name:"oldPeerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"oldPeerDecimals",type:"uint8",indexed:!1,internalType:"uint8"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"peerDecimals",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"ThresholdChanged",inputs:[{name:"oldThreshold",type:"uint8",indexed:!1,internalType:"uint8"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverAdded",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"transceiversNum",type:"uint256",indexed:!1,internalType:"uint256"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransceiverRemoved",inputs:[{name:"transceiver",type:"address",indexed:!1,internalType:"address"},{name:"threshold",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"TransferRedeemed",inputs:[{name:"digest",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"TransferSent",inputs:[{name:"recipient",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"fee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"msgSequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BurnAmountDifferentThanBalanceDiff",inputs:[{name:"burnAmount",type:"uint256",internalType:"uint256"},{name:"balanceDiff",type:"uint256",internalType:"uint256"}]},{type:"error",name:"CallerNotTransceiver",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CancellerNotSender",inputs:[{name:"canceller",type:"address",internalType:"address"},{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"CapacityCannotExceedLimit",inputs:[{name:"newCurrentCapacity",type:"uint72",internalType:"TrimmedAmount"},{name:"newLimit",type:"uint72",internalType:"TrimmedAmount"}]},{type:"error",name:"DeliveryPaymentTooLow",inputs:[{name:"requiredPayment",type:"uint256",internalType:"uint256"},{name:"providedPayment",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DisabledTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"InboundQueuedTransferNotFound",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InboundQueuedTransferStillQueued",inputs:[{name:"digest",type:"bytes32",internalType:"bytes32"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidMode",inputs:[{name:"mode",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidPeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidPeerChainIdZero",inputs:[]},{type:"error",name:"InvalidPeerDecimals",inputs:[]},{type:"error",name:"InvalidPeerSameChainId",inputs:[]},{type:"error",name:"InvalidPeerZeroAddress",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRefundAddress",inputs:[]},{type:"error",name:"InvalidTargetChain",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"thisChain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidTransceiverZeroAddress",inputs:[]},{type:"error",name:"MessageNotApproved",inputs:[{name:"msgHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NoEnabledTransceivers",inputs:[]},{type:"error",name:"NonRegisteredTransceiver",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotEnoughCapacity",inputs:[{name:"currentCapacity",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"NumberOfDecimalsNotEqual",inputs:[{name:"decimals",type:"uint8",internalType:"uint8"},{name:"decimalsOther",type:"uint8",internalType:"uint8"}]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OutboundQueuedTransferNotFound",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"}]},{type:"error",name:"OutboundQueuedTransferStillQueued",inputs:[{name:"queueSequence",type:"uint64",internalType:"uint64"},{name:"transferTimestamp",type:"uint256",internalType:"uint256"}]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerNotRegistered",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RefundFailed",inputs:[{name:"refundAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"RetrievedIncorrectRegisteredTransceivers",inputs:[{name:"retrieved",type:"uint256",internalType:"uint256"},{name:"registered",type:"uint256",internalType:"uint256"}]},{type:"error",name:"StaticcallFailed",inputs:[]},{type:"error",name:"ThresholdTooHigh",inputs:[{name:"threshold",type:"uint256",internalType:"uint256"},{name:"transceivers",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TooManyTransceivers",inputs:[]},{type:"error",name:"TransceiverAlreadyAttestedToMessage",inputs:[{name:"nttManagerMessageHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"TransceiverAlreadyEnabled",inputs:[{name:"transceiver",type:"address",internalType:"address"}]},{type:"error",name:"TransferAmountHasDust",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"dust",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UndefinedRateLimiting",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"expectedOwner",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedMsgValue",inputs:[]},{type:"error",name:"ZeroAmount",inputs:[]},{type:"error",name:"ZeroThreshold",inputs:[]}],mK="0x61016034620005cb57601f620065b138819003918201601f19168301916001600160401b038311848410176200057e5780849260a094604052833981010312620005cb578051906001600160a01b0382168203620005cb576020810151916002831015620005cb5760408201519161ffff83168303620005cb576060810151906001600160401b03821690818303620005cb576080015180159182158203620005cb5715809281620005c2575b508215620005a6575b505062000594576080527f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8954620001147e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e15460ff8360081c1614620005d0565b7ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f5460005b60ff8360081c168110620003f157505060005b60ff8260081c1681106200035d5750604060ff6200016d92161115620005d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c166200034b576002600160401b03196001600160401b03821601620002ff575b50503060a05260c0526101009182526101209081526101404681523360e05260405191615f6393846200064e85396080518481816114d401528181611b1401528181611fb1015281816129e20152818161342d015281816139b5015281816140310152818161554f0152818161566201528181615722015281816158410152615909015260a05184614f95015260c0518481816102900152818161051401528181610561015281816128ce0152818161382501528181613eaf0152818161476d01528181614bac0152614c5c015260e05184611c590152518381816104ab0152818161202a015281816121560152818161291c015281816138a701528181613f2c0152614b3401525182818161137c01528181611e500152818161298501526133b701525181818161044901528181613aa1015281816140f90152818161463e0152614ae60152f35b6001600160401b0319166001600160401b039081179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880620001b6565b60405163f92ee8a960e01b8152600490fd5b60018101808211620003db575b60ff8360081c1681106200038a57506200038490620005ee565b6200014c565b620003d590620003cf6200039e84620005fe565b9054620003ab84620005fe565b9054600391821b1c6001600160a01b039081169390911b9190911c161415620005d0565b620005ee565b6200036a565b634e487b7160e01b600052601160045260246000fd5b620003fc81620005fe565b9054600382901b81901c6001600160a01b031660009081527f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f602052604090819020905192906001600160401b0360608501908111908511176200057e5760608401604052546200049e60ff821615801592838752602087019360ff808360081c1615928315875260101c16908160408a01529262000561575b5050620005d0565b60018060401b03600160ff6040870151161b87161615159051151592600092835b60ff8a60081c1681106200050f575b5050508262000509959492620004ee620003cf95620004f79414620005d0565b151514620005d0565b60ff60408188169201511610620005d0565b62000139565b6200051a81620005fe565b9054600391821b1c6001600160a01b039081169184901b85901c16146200054c576200054690620005ee565b620004bf565b5060019350849150829050620004ee620004ce565b9091508162000574575b50388062000496565b905015386200056b565b634e487b7160e01b600052604160045260246000fd5b60405163e543ef0560e01b8152600490fd5b15915081620005b9575b503880620000b5565b905038620005b0565b925038620000ac565b600080fd5b15620005d857565b634e487b7160e01b600052600160045260246000fd5b6000198114620003db5760010190565b7e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e18054821015620006375760005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80630271725014612c5f578063036de8af14612bd45780630677df5414612bb55780630900f0101461274e578063186ce612146126f957806319017175146126c35780631f97c9a8146124d1578063203e4a9b146121ce57806323d75e311461219a578063295a521214612140578063396c16b7146121045780633b97e856146120e95780633f4ba83a146120755780634b4fd03b14612017578063689f90c314611fd557806374aa7bfc14611f915780637c91863414611e025780638129fc1c14611bcd5780638413bcba14611ab15780638456cb5914611a3457806386e11ffa14611a0f57806389c619dd146119af5780638da5cb5b146119795780638e3ba8c9146119425780638fd3ab80146118035780639057412d14611686578063961b94d01461162857806397c35146146113a05780639a8a0592146113615780639d782454146111265780639f86029c14610e105780639fd0506d14610dda578063b150fc5514610c2d578063b187bd2614610bff578063b293f97f14610b69578063b4d591bb14610aa8578063c0b07bde14610a62578063c128d170146109e6578063d788c1471461095b578063da4856a114610928578063e5a986031461087c578063e75235b81461084e578063f2fde38b14610709578063f5cfec18146106e6578063f7514fbc146102bf578063fc0c546a1461027a5763fd96063c1461022257600080fd5b346102775760203660031901126102775760606102406004356154ad565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b031690820152f35b80fd5b50346102775780600319360112610277576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610277576020366003190112610277576004356001600160401b03811681036106e2576102ec615cfd565b6002600080516020615dce83398151915254146106d0576001600160401b038116600052600080516020615eae83398151915260205260406000206040519061033482612d2f565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a083015260405190818560048301549261039b84613755565b80845293600181169081156106ae575060011461066a575b506103c092500382612db6565b60c08201526001600160401b03606082015116156106495760a08101516001600160a01b031633810361061c5750606061048c60407ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd07936001600160401b038616600052600080516020615eae833981519152602052610442826000206137a6565b015161046d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b610475614c36565b906001600160401b0360ff82169160081c16615b6c565b926001600160401b0360405191168152336020820152836040820152a17f000000000000000000000000000000000000000000000000000000000000000060028110156106065780610556575060405163a9059cbb60e01b602082015233602482015260448101919091526105419061051281606481015b03601f198101835282612db6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316614438565b6001600080516020615ece8339815191525580f35b600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105e5576040516340c10f1960e01b815233600482015260248101929092526000908290604490829084905af180156105d9576105ca575b50610541565b6105d390612d1c565b386105c4565b6040513d6000823e3d90fd5b600080fd5b6040516366001a8960e01b815260ff9091166004820152602490fd5b634e487b7160e01b600052602160045260246000fd5b60405163ceb40a8560e01b81523360048201526001600160a01b03919091166024820152604490fd5b0390fd5b604051635feafa3160e11b81526001600160401b0383166004820152602490fd5b60040187525060208620909186915b8183106106925750509060206103c092820101386103b3565b6020919350806001915483858801015201910190918392610679565b9050602092506103c094915060ff191682840152151560051b820101386103b3565b6040516309e3d0f360e11b8152600490fd5b5080fd5b50346102775780600319360112610277576020610701615496565b604051908152f35b5034610277576020366003190112610277576001600160a01b03600435818116908181036108195761074a9061073d615cc4565b610745615cc4565b615c50565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed97891825460ff600080516020615e4e8339815191525416808203610830575050908391825b845481101561082c578460005281817f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd1015416803b1561082857848091602460405180948193632c7b84dd60e11b83528960048401525af190811561081d578591610805575b505061080090612ff6565b61078f565b61080e90612d1c565b6108195783386107f5565b8380fd5b6040513d87823e3d90fd5b8480fd5b8380f35b604492506040519163d2a13a2960e01b835260048301526024820152fd5b5034610277578060031936011261027757602060ff600080516020615d4e8339815191525416604051908152f35b50346102775760203660031901126102775760043560ff8116908181036105e5576108a5615cc4565b8115610916577f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a99161091060ff92600080516020615d4e833981519152805493851985161790556108f4613275565b6040805160ff9490951684168552921660208401528291820190565b0390a180f35b60405163831761d760e01b8152600490fd5b50346102775761093736612e39565b906002600080516020615dce83398151915254146106d0576109589261333e565b80f35b50346102775760203660031901126102775761ffff610978612cb2565b610980614d41565b5016600052600080516020615e6e8339815191526020526109e26109a76040600020615071565b6040519182918291909160406001600160401b038160608401956001600160481b038082511686526020820151166020860152015116910152565b0390f35b50346102775760203660031901126102775761ffff90610a04612cb2565b906020604051610a1381612d65565b828152015216600052600080516020615d2e83398151915260205260408060002060ff8251610a4181612d65565b60208260018554958685520154169101908152835192835251166020820152f35b50346102775780600319360112610277576109e2604051610a8281612d65565b60058152640312e312e360dc1b6020820152604051918291602083526020830190612cf7565b50346102775780600319360112610277576040518091600080516020615e0e83398151915290815480845260208094019081938352600080516020615d6e83398151915290835b818110610b4c5750505084610b05910385612db6565b60405193838594850191818652518092526040850193925b828110610b2c57505050500390f35b83516001600160a01b031685528695509381019392810192600101610b1d565b82546001600160a01b031684529286019260019283019201610aef565b5060c036600319011261027757610b7e612cc3565b906084359182151583036106e25760a4356001600160401b03928382116102775750610bae903690600401612df2565b610bb6615cfd565b6002600080516020615dce83398151915254146106d057602093610be4926064359060443590600435613e93565b6001600080516020615ece8339815191525560405191168152f35b503461027757806003193601126102775760206002600080516020615dce8339815191525414604051908152f35b503461027757806003193601126102775760405180600080516020615e0e83398151915280548084526020809401918552600080516020615d6e83398151915290855b818110610dbd5750505081610c86910382612db6565b8051610c9181612eba565b91610c9f6040519384612db6565b818352601f19610cae83612eba565b01855b818110610da1575050845b828110610d1d575050506040519180830190808452825180925280604085019301945b828110610cec5784840385f35b85518051151585528083015115158584015260409081015160ff169085015294810194606090930192600101610cdf565b929492610d99906001600160a01b03610d368285613005565b5116600052600080516020615e8e8339815191528652604060002060405190610d5e82612d4a565b5460ff9081811615158352818160081c1615158984015260101c166040820152610d888289613005565b52610d938188613005565b50612ff6565b949294610cbc565b8590610dae979597614d41565b82828a01015201959395610cb1565b82546001600160a01b031684529285019260019283019201610c70565b5034610277578060031936011261027757600080516020615eee833981519152546040516001600160a01b039091168152602090f35b5034610277576020806003193601126106e2576001600160a01b0390600435828116919082810361082857610e43615cc4565b82156111145782600052600080516020615e8e83398151915280835260ff918260406000205416156110fb57846000528184528260406000205460081c16156110e25784600052818452604060002061ff001990818154169055600080516020615e4e833981519152928354858160081c169283156110ce5761ff0060001980950160081b169116178455600080516020615dee8339815191528054918860005287526001600160401b03600192610f1082858a60406000205460101c161b198316169282168310614d24565b6001600160401b0319161790558897600080516020615e0e8339815191528054938b5b858110610fc8575b505050505050918091610f836040969594610f767f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f99614d24565b610f7e614d60565b614e4b565b5460081c16600080516020615d4e8339815191529081548381168210610fba575b50505416908351928352820152a1610958613275565b60ff19161781553880610fa4565b838b610fd383613244565b929054600393841b1c1614610ff15750610fec90612ff6565b610f33565b9590918093959798999a9b9c5081019081116110ba57906110258461101861104494613244565b905490891b1c1691613244565b90919082549060031b9160018060a01b03809116831b921b1916179055565b825480156110a657946040999794610f83948a9894610f76947f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f9e9c99019261108c84613244565b81939154921b1b1916905555998496979899839650610f3b565b634e487b7160e01b8c52603160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b634e487b7160e01b8b52601160045260248bfd5b6040516307d86e9160e21b815260048101869052602490fd5b604051630d583f4760e41b815260048101869052602490fd5b604051632f44bd7760e01b8152600490fd5b50346102775761113536612e39565b9033600052600080516020615e8e83398151915260209080825260ff60406000205460081c161561134957600080516020615dce8339815191529160028354146106d05761ffff861680600052600080516020615d2e8339815191528252846040600020540361132b575060405163b3f07bbd60e01b8152918183806111bf898b60048401613314565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113205788936112f1575b503360005280825261120360ff60406000205460101c168461320e565b6112d85760606112b793927f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e592336000528082528a6001600160401b03610100600160481b03604082600160ff836000205460101c161b1693898152600080516020615d8e833981519152875220928354928360081c161760081b1690610100600160481b03191617905533600052815260ff60406000205460101c166040519185835233908301526040820152a16131a1565b6112bf578480f35b546002146106d0576112d09261333e565b388080808480f35b604051631089c4a160e11b815260048101849052602490fd5b9092508181813d8311611319575b6113098183612db6565b810103126105e5575191386111e6565b503d6112ff565b6040513d8a823e3d90fd5b6044908560405191635788c0fd60e11b835260048301526024820152fd5b60405163a0ae911d60e01b8152336004820152602490fd5b5034610277578060031936011261027757602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b506020366003190112610277576001600160401b0360043516908160043503610277576113cb615cfd565b6002600080516020615dce83398151915254146106d05781600052600080516020615eae8339815191526020526040600020916040519261140b84612d2f565b805484526001810154602085015261ffff60028201546001600160481b03811660408701526001600160401b038160481c16606087015260881c16608085015260018060a01b0360038201541660a08501526040518381949060048401549361147385613755565b808552946001811690811561160457506001146115bf575b505061149992500383612db6565b60c083019182526001600160401b03606084015116156115a7576114ca6001600160401b0360608501511642613194565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000161161157c579161155991602093600052600080516020615eae833981519152845261152260406000206137a6565b6001600160481b036040830151169161ffff608082015116815190868301519260a0600180821b0391015116935194600435614632565b6001600080516020615ece833981519152556001600160401b0360405191168152f35b6044906001600160401b036060850151166040519163c06cf05f60e01b835260048301526024820152fd5b60249060405190635feafa3160e11b82526004820152fd5b60049193949250018252602082205b8183106115e857505090602061149992820101388061148b565b60209193508060019154838589010152019101909184926115ce565b9150506020925061149994915060ff191682840152151560051b820101388061148b565b5060603660031901126102775761163d612cc3565b604435611648615cfd565b6002600080516020615dce83398151915254146106d05760209181611559926040519261167484612d65565b60018452853681860137600435613808565b5034610277576040366003190112610277576116a0612cb2565b6024356001600160401b0381116117ff576116bf903690600401612df2565b91604051918290600080516020615e0e833981519152828154918287526020809701908652600080516020615d6e83398151915292865b888282106117e05750505061170d92500383612db6565b826117378351966040519788928392635b10743960e11b8452604060048501526044840190612cf7565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156117d55783949561177094926117b1575b50613039565b604051926040840160408552835180915285606086019401915b81811061179d5750505082938301520390f35b82518552938601939186019160010161178a565b6117ce9192503d8087833e6117c68183612db6565b810190612f24565b903861176a565b6040513d85823e3d90fd5b85546001600160a01b03168452600195860195889550930192016116f6565b8280fd5b503461027757806003193601126102775761181c614f92565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b0380821690600182019181831161192c5760ff8460401c1690811561191f575b5061190d57600160401b911680926001600160481b03191617179081835560ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e5416156118fb577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2926020926118db613275565b6118e3614d60565b68ff000000000000000019169055604051908152a180f35b604051632866815360e11b8152600490fd5b60405163f92ee8a960e01b8152600490fd5b9050818316111538611866565b634e487b7160e01b600052601160045260246000fd5b50346102775760403660031901126102775760243560ff811681036105e55761196f60209160043561320e565b6040519015158152f35b5034610277578060031936011261027757600080516020615dae833981519152546040516001600160a01b039091168152602090f35b503461027757602036600319011261027757611a046001600160401b036020926040600080516020615dee83398151915254916004358152600080516020615d8e8339815191528652205460081c1616615a8e565b60ff60405191168152f35b5034610277578060031936011261027757611a28614d41565b506109e26109a7615029565b5034610277578060031936011261027757600080516020615dae83398151915254611a67906001600160a01b0316614fd6565b600080516020615dce83398151915260028154146106d057600290557f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2602060405160018152a180f35b503461027757602036600319011261027757600435611ace615cfd565b6002600080516020615dce83398151915254146106d057611aee816154ad565b602081016001600160401b03908181511615611bb457611b118282511642613194565b827f00000000000000000000000000000000000000000000000000000000000000001611611b92578385527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b8602052604080862086815560010186905583015183518691610541916001600160481b0316906001600160a01b031687614adb565b516040516301cb739d60e71b8152600481019490945216602483015250604490fd5b604051630301bcaf60e61b815260048101859052602490fd5b508060031936011261027757611be1614f92565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8160401c1615906001600160401b03811680159081611dfa575b6001149081611df0575b159081611de7575b5061190d5767ffffffffffffffff198116600117835581611dc8575b50611c57615c0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611d9f575034611d8d57611c96615c0f565b611c9e615c0f565b611ca6615c0f565b6001600080516020615dce83398151915255600080516020615eee83398151915280546001600160a01b03191633179055611cdf615c0f565b611ce7615c0f565b611cf033615c50565b611cf8615c0f565b611d00615c0f565b6001600080516020615ece83398151915255611d37610100600160481b0360ff611d30611d2b614c36565b615b35565b16176150d1565b611d3f613275565b611d47614d60565b611d4f575080f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405163bd28e88960e01b8152600490fd5b604051636345072160e11b81526001600160a01b03919091166004820152336024820152604490fd5b68ffffffffffffffffff19166801000000000000000117825538611c4e565b90501538611c32565b303b159150611c2a565b839150611c20565b503461027757608036600319011261027757611e1c612cb2565b60243560443560ff81168091036105e557611e35615cc4565b61ffff809316928315611f7f578215611f6d578115611f5b577f0000000000000000000000000000000000000000000000000000000000000000168314611f49577f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9160809184600052600080516020615d2e833981519152918260205260ff604060002081600160405192611eca84612d65565b805484520154169460208201958652886000526020526001604060002084815501848319825416179055611f2c611f0b611f02614c36565b80606435615bc7565b89600052600080516020615e6e8339815191526020526040600020906152cf565b51935116604051938452602084015260408301526060820152a280f35b60405163101b8f9560e11b8152600490fd5b60405163ade64f0b60e01b8152600490fd5b60405163f839a0cb60e01b8152600490fd5b60405163100b0f2760e11b8152600490fd5b503461027757806003193601126102775760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610277578060031936011261027757602060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb54166040519015158152f35b50346102775780600319360112610277577f00000000000000000000000000000000000000000000000000000000000000009060028210156120615760208260ff60405191168152f35b634e487b7160e01b81526021600452602490fd5b503461027757806003193601126102775761208e615cc4565b600080516020615dce83398151915260028154036120d757600190557fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b06020604051838152a180f35b604051637e38d1d360e11b8152600490fd5b50346102775780600319360112610277576020611a04614c36565b50346102775760203660031901126102775760ff60406020926004358152600080516020615d8e83398151915284522054166040519015158152f35b50346102775780600319360112610277576040517f0000000000000000000000000000000000000000000000000000000000000000600281101561218657602092508152f35b634e487b7160e01b83526021600452602483fd5b503461027757806003193601126102775760206001600160401b03600080516020615e2e8339815191525416604051908152f35b5034610277576020806003193601126106e2576004356001600160a01b03811691828203610819576121fe615cc4565b82156111145782600052600080516020615e8e8339815191529182825260ff9081604060002054166000146123a75784600052838352604060002061010061ff00198254161790555b600080516020615e0e83398151915290815491600160401b831015612391578261102591600161227995019055613244565b600080516020615e4e83398151915292835461ff0061229c848360081c16614d13565b60081b169061ff00191617809455600080516020615dee83398151915280546001600160401b0390818116918860005284875260018660406000205460101c161b1682179182146123785767ffffffffffffffff19161790557ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda594606094909390929091612328614d60565b84600052825280600080516020615d4e833981519152805482811615612369575b5054169260405194855260081c16908301526040820152a1610958613275565b60ff1916600117815538612349565b604051638d68f84d60e01b815260048101899052602490fd5b634e487b7160e01b600052604160045260246000fd5b600080516020615e4e8339815191528281541660408110156124bf57604051906123d082612d4a565b6001825285820190600182526040830190815288600052878752604060002092511515918662ff000061ff0086549351151560081b16935160101b1693169062ffffff19161717179055805483612428818316614d13565b169060ff19161790557f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed978805490600160401b82101561239157600182018082558210156124a9576000527f357eda4c1707ce60b55a439f3dc12fcacea5ca0fd863e2fc179a916cf05fccd10180546001600160a01b03191686179055612247565b634e487b7160e01b600052603260045260246000fd5b60405163891684c360e01b8152600490fd5b5034610277576020366003190112610277576004356001600160401b0381168091036106e257606060c060405161250781612d2f565b84815284602082015284604082015284838201528460808201528460a08201520152600052600080516020615eae83398151915260205260406000206040519061255082612d2f565b805482526001810154602083015261ffff60028201546001600160481b03811660408501526001600160401b038160481c16606085015260881c16608083015260018060a01b0360038201541660a0830152604051838194906004840154936125b885613755565b808552946001811690811561269f575060011461265a575b50506125de92500383612db6565b60c081019182526109e26040519283926020845280516020850152602081015160408501526001600160481b0360408201511660608501526001600160401b03606082015116608085015261ffff60808201511660a085015260a0600180821b039101511660c08401525160e080840152610100830190612cf7565b60049193949250018252602082205b8183106126835750509060206125de9282010138806125d0565b6020919350806001915483858901015201910190918492612669565b915050602092506125de94915060ff191682840152151560051b82010138806125d0565b5034610277576020366003190112610277576126dd615cc4565b6109586126f46126eb614c36565b80600435615bc7565b6150d1565b503461027757604036600319011261027757610958612716612cc3565b61271e615cc4565b61ffff61272c6126eb614c36565b9116600052600080516020615e6e8339815191526020526040600020906152cf565b5034610277576020806003193601126106e2576001600160a01b03600435818116908181036108285761277f615cc4565b612787614f92565b3b15612b5a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9182549161281460ff841615614d24565b60ff199283166001178455303b156108285760405163011fa75760e71b8152858160048183305af18015612b0f57612b47575b5060405163689f90c360e01b81528281600481305afa908115612b0f578691612b1a575b50156128a3575b50507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b604051637e062a3560e11b81528281600481305afa908115612b0f578691612ad1575b50816128f6927f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b6040516314ad290960e11b81528181600481305afa90811561081d578591612a9b575b507f0000000000000000000000000000000000000000000000000000000000000000906002821015612a87576002811015612a87576129589114614d24565b604051634d4502c960e11b81528181600481305afa801561081d578590612a51575b6129ad915061ffff807f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b604051631d2a9eff60e21b8152908082600481305afa90811561081d578591612a11575b50612a0a91506001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016911614614d24565b3880612872565b905081813d8311612a4a575b612a278183612db6565b8101031261081957516001600160401b038116810361081957612a0a90386129d1565b503d612a1d565b508181813d8311612a80575b612a678183612db6565b8101031261082857612a7b6129ad9161332f565b61297a565b503d612a5d565b634e487b7160e01b86526021600452602486fd5b90508181813d8311612aca575b612ab28183612db6565b81010312610828575160028110156108285738612919565b503d612aa8565b90508281813d8311612b08575b612ae88183612db6565b81010312612b045751908082168203612b0457906128f66128c6565b8580fd5b503d612ade565b6040513d88823e3d90fd5b612b3a9150833d8511612b40575b612b328183612db6565b810190614420565b3861286b565b503d612b28565b612b5390959195612d1c565b9338612847565b60405162461bcd60e51b815260048101849052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b503461027757602036600319011261027757602061196f6004356131a1565b5034610277576020366003190112610277576004356001600160a01b03818116918290036117ff57612c1681600080516020615dae8339815191525416614fd6565b600080516020615eee83398151915280546001600160a01b031981168417909155167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b50346102775760203660031901126102775761070161046d612cad604060209461ffff612c8a612cb2565b612c92614d41565b50168152600080516020615e6e833981519152865220615071565b615543565b6004359061ffff821682036105e557565b6024359061ffff821682036105e557565b60005b838110612ce75750506000910152565b8181015183820152602001612cd7565b90602091612d1081518092818552858086019101612cd4565b601f01601f1916010190565b6001600160401b03811161239157604052565b60e081019081106001600160401b0382111761239157604052565b606081019081106001600160401b0382111761239157604052565b604081019081106001600160401b0382111761239157604052565b608081019081106001600160401b0382111761239157604052565b60a081019081106001600160401b0382111761239157604052565b90601f801991011681019081106001600160401b0382111761239157604052565b6001600160401b03811161239157601f01601f191660200190565b81601f820112156105e557803590612e0982612dd7565b92612e176040519485612db6565b828452602083830101116105e557816000926020809301838601378301015290565b90600319906060828401126105e55760043561ffff811681036105e5579260243592604435916001600160401b03918284116105e55760609084830301126105e55760405192612e8884612d4a565b806004013584526024810135602085015260448101359283116105e557612eb29201600401612df2565b604082015290565b6001600160401b0381116123915760051b60200190565b519060ff821682036105e557565b81601f820112156105e5578051612ef581612dd7565b92612f036040519485612db6565b818452602082840101116105e557612f219160208085019101612cd4565b90565b9060209081838203126105e55782516001600160401b03938482116105e557019080601f830112156105e5578151612f5b81612eba565b94604090612f6b82519788612db6565b828752858088019360051b860101948486116105e557868101935b868510612f9857505050505050505090565b84518381116105e55782019084601f1983890301126105e557845190612fbd82612d65565b612fc88a8401612ed1565b825285830151918583116105e557612fe7898c80969581960101612edf565b83820152815201940193612f86565b600019811461192c5760010190565b80518210156124a95760209160051b010190565b9060406020612f219360ff81511684520151918160208201520190612cf7565b90929180519161304883612eba565b9260409161305883519586612db6565b818552601f1961306783612eba565b01602090368288013760009788955b84871061308857505050505050509190565b909192939495988685613101868d6130a760018060a01b039188613005565b511680600052600080516020615e8e83398151915282526130d260ff866000205460101c1689613005565b51908551808095819463b5634c7360e01b835261ffff60049916898401526024998a8401526044830190613019565b03915afa90811561318957908d91600091613157575b5061312381928d613005565b5283018093116131445750506131399099612ff6565b959493929190613076565b601190634e487b7160e01b600052526000fd5b91508782813d8311613182575b61316e8183612db6565b810103126102775750518c90613123613117565b503d613164565b8a513d6000823e3d90fd5b9190820391821161192c57565b6001600160401b039060ff6131fa81600080516020615d4e8339815191525416938493600080516020615dee8339815191525490600052600080516020615d8e83398151915260205260406000205460081c1616615a8e565b1610159081613207575090565b9050151590565b906001600160401b0391600052600080516020615d8e833981519152602052600160ff60406000205460081c92161b1616151590565b600080516020615e0e83398151915280548210156124a957600052600080516020615d6e8339815191520190600090565b60ff600080516020615d4e833981519152541660405161329481612d65565b60ff600080516020615e4e83398151915254818116835260081c168060208301528083116132cf57505160ff166132c85750565b1561091657565b82604491604051916313c3d1b160e01b835260048301526024820152fd5b9060606040612f219380518452602081015160208501520151918160408201520190612cf7565b60409061ffff612f21949316815281602082015201906132ed565b519061ffff821682036105e557565b91908161334b9184613635565b9190916136305760408091015191815192635399ded560e11b8452608084806133806020948560048401526024830190612cf7565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415613625576000946135b0575b5061ffff9283606086015116847f0000000000000000000000000000000000000000000000000000000000000000168082036135955750506133e8614c36565b816134118751928061340c816001600160401b03968760ff82169160081c16615b6c565b615bc7565b960151908160a01c61357e576001600160a01b039182169560007f0000000000000000000000000000000000000000000000000000000000000000831615613577575061345c614d41565b508816600052600080516020615e6e8339815191528452613482612cad84600020615071565b61348c8882615b00565b81808960081c169160081c16105b6134bf57505050506134af6134bd9484615836565b6134b883615716565b614adb565b565b7f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f316297509561355b83959694976001939451926134fa84612d4a565b6001600160481b038091168452898401908242168252888501978852896000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b88b52886000209451166001600160481b0319855416178455511682615a25565b019151166001600160601b0360a01b82541617905551908152a1565b905061349a565b50602491519063033b960d60e41b82526004820152fd5b6044925191631ee5902560e11b835260048301526024820152fd5b6080949194813d821161361d575b816135cb60809383612db6565b810103126106e2578351916135df83612d80565b8151906001600160481b038216820361027757508252848101518583015283810151848301526136119060600161332f565b606082015292386133a8565b3d91506135be565b83513d6000823e3d90fd5b505050565b60405163b3f07bbd60e01b81529193926020918391829161365a919060048401613314565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d9576000916136eb575b5061368c816131a1565b156136d35761369a8161371c565b92836136a857509150600090565b7f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef2600080a360009190565b60249060405190630451c4fb60e41b82526004820152fd5b906020823d8211613714575b8161370460209383612db6565b8101031261027757505138613682565b3d91506136f7565b600052600080516020615d8e8339815191526020526040600020805460ff811661374e5760ff19166001179055600090565b5050600190565b90600182811c92168015613785575b602083101461376f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691613764565b81811061379a575050565b6000815560010161378f565b6004600091828155826001820155826002820155826003820155016137cb8154613755565b806137d557505050565b82601f82116001146137e657505055565b9091808252613804601f60208420940160051c84016001850161378f565b5555565b9194939290946000958315613e81578115613e6f578215613e5d577f000000000000000000000000000000000000000000000000000000000000000061384e3082614cb6565b9061389160018060a01b03821696604051906323b872dd60e01b602083015233602483015230604483015260648201526064815261388b81612d9b565b87614438565b6138a48261389f3084614cb6565b613194565b957f00000000000000000000000000000000000000000000000000000000000000006002811015613e49579060018b9214613dc2575b5050505061ffff8116600052600080516020615d2e83398151915260205260ff600160406000200154168015611f5b5761391d613915614c36565b918287615bc7565b906001600160401b038260081c1661393a60ff8416928383615b6c565b808803613d9b575061395c61396191613954611d2b614c36565b938491615b6c565b6155ee565b98600080516020615e2e83398151915254966001600160401b0380891614613d875767ffffffffffffffff1988166001600160401b03898116600101811691909117600080516020615e2e833981519152557f00000000000000000000000000000000000000000000000000000000000000001615613d81576139e2614d41565b506139ee612cad615029565b613a0b8c610100600160481b0360ff87169160081b161782615b00565b6001600160401b03808d610100600160481b0360ff88169160081b161760081c169160081c16105b613d5b578180613d53575b613a8757505082612f219899610100600160481b0360ff84613a6b82613a779716848660081b1617615656565b169160081b16176158fe565b6001600160401b03339516614632565b61ffff95979896919a506001600160481b03939250613ac57f0000000000000000000000000000000000000000000000000000000000000000615a4d565b613acd615496565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a260405196613b1a88612d2f565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615eae83398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b0319825416178155613bb56001600160401b0360608701511682615a25565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d3f57613c168354613755565b601f8111613d04575b50602090601f8311600114613c9857906001600160401b03959683613c8d575b50508160011b916000199060031b1c19161790555b7f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613c89346145db565b1690565b015190503880613c3f565b95601f19831684885260208820975b818110613cec5750916001600160401b03969791846001959410613cd3575b505050811b019055613c54565b015160001960f88460031b161c19169055388080613cc6565b83830151895560019098019760209384019301613ca7565b613d2f9084835260208320601f850160051c81019160208610613d35575b601f0160051c019061378f565b38613c1f565b9091508190613d22565b634e487b7160e01b81526041600452602490fd5b506000613a3e565b604490613d66615496565b90604051916326fb55dd60e01b835260048301526024820152fd5b81613a33565b634e487b7160e01b82526011600452602482fd5b87613da860449282613194565b604051916338f831a560e11b835260048301526024820152fd5b803b156106e2578190602460405180948193630852cd8d60e31b83528c60048401525af18015613e3e57613e29575b50613dfd903090614cb6565b808203613e0b5788816138da565b60449250604051916302156a8f60e01b835260048301526024820152fd5b98613e37613dfd929a612d1c565b9890613df1565b6040513d8c823e3d90fd5b634e487b7160e01b8b52602160045260248bfd5b60405163717f139360e11b8152600490fd5b604051634e46966960e11b8152600490fd5b604051631f2a200560e01b8152600490fd5b95949392919060008715613e81578215613e6f578315613e5d577f0000000000000000000000000000000000000000000000000000000000000000613ed83082614cb6565b90613f1b60018060a01b0382169a604051906323b872dd60e01b6020830152336024830152306044830152606482015260648152613f1581612d9b565b8b614438565b613f298261389f3084614cb6565b997f0000000000000000000000000000000000000000000000000000000000000000600281101561440c576001146143a2575b50505061ffff8216600052600080516020615d2e83398151915260205260ff600160406000200154168015611f5b57613f9e613f96614c36565b91828b615bc7565b916001600160401b038360081c16613fbb60ff8516938483615b6c565b808c03614395575061395c613fdd91613fd5611d2b614c36565b948591615b6c565b99600080516020615e2e83398151915254976001600160401b03808a16146143815767ffffffffffffffff1989166001600160401b038a8116600101811691909117600080516020615e2e833981519152557f0000000000000000000000000000000000000000000000000000000000000000161561437b5761405e614d41565b508b6001600160401b0380614074612cad615029565b9260081b610100600160481b031660ff8816176140918185615b00565b60081c169160081c16105b811580614374575b6143695781614361575b506140df57505082612f219899610100600160481b0360ff613a7794169160081b16176140da81615656565b6158fe565b61ffff95979896919a506001600160481b0393925061411d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b614125615496565b604051916001600160401b038b168352602083015260408201527ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a60603392a26040519661417288612d2f565b875260208701521660408501526001600160401b03421660608501521660808301523360a083015260c08201526001600160401b038216600052600080516020615eae83398151915260205260c0600460406000208351815560208401516001820155600281016001600160481b036040860151166001600160481b031982541617815561420d6001600160401b0360608701511682615a25565b608085015181549061ffff60881b9060881b169061ffff60881b19161790556003810160018060a01b0360a0860151166001600160601b0360a01b82541617905501910151938451906001600160401b038211613d3f5761426e8354613755565b601f8111614331575b50602090601f83116001146142df57906001600160401b03959683613c8d5750508160011b916000199060031b1c19161790557f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f60206040518484168152a1613c89346145db565b95601f19831684885260208820975b8181106143195750916001600160401b03969791846001959410613cd357505050811b019055613c54565b838301518955600190980197602093840193016142ee565b61435b9084835260208320601f850160051c81019160208610613d3557601f0160051c019061378f565b38614277565b9050386140ae565b604483613d66615496565b50806140a4565b8261409c565b634e487b7160e01b83526011600452602483fd5b8b613da860449282613194565b803b156108195783809160248d6040519485938492630852cd8d60e31b845260048401525af18015614401576143ec575b506143df903090614cb6565b808203613e0b5780613f5c565b926143fa6143df9294612d1c565b92906143d3565b6040513d86823e3d90fd5b634e487b7160e01b85526021600452602485fd5b908160209103126105e5575180151581036105e55790565b604051614496916001600160a01b031661445182612d65565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614490614512565b91614542565b805190816144a357505050565b82806144b3938301019101614420565b156144bb5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b3d1561453d573d9061452382612dd7565b916145316040519384612db6565b82523d6000602084013e565b606090565b919290156145a45750815115614556575090565b3b1561455f5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156145b75750805190602001fd5b60405162461bcd60e51b815260206004820152908190610645906024830190612cf7565b600080808084335af16145ec614512565b50156145f55750565b60249060405190630b288dc560e21b82526004820152fd5b906020828203126105e55781516001600160401b0381116105e557612f219201612edf565b959492949391936146627f0000000000000000000000000000000000000000000000000000000000000000615a4d565b6040518081600080516020615e0e83398151915260208154938481520190600052600080516020615d6e8339815191529260005b818110614ab95750506146ab92500382612db6565b7f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed9785491815115614aa7576146fe6000916040519485928392635b10743960e11b8452604060048501526044840190612cf7565b906024830152038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d957600092614a8a575b50614738818388613039565b95863410614a6b5761474a8734613194565b80614a5c575b506040519061475e82612d80565b6001600160481b0386811683527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020840190815260408085018d815261ffff8d81166060880190815292516315cfa3cb60e11b81529651909416600487015291516024860152905160448501525116606483015260008260848173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49182156105d95761485d926000928d928492614a40575b506001600160401b036040519361482685612d4a565b16835260018060a01b031660208301526040820152604051809381926311692f3760e31b83526020600484015260248301906132ed565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156105d957600091614a1d575b5061ffff8816600052600080516020615d2e833981519152602052604060002054938351938515614a015760005b8581106149265750505050505050927fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a35982949261ffff926148f760c096610475614c36565b906040519586526020860152604085015260608401521660808201526001600160401b03841660a0820152a190565b6001600160a01b036149388284613005565b5116906149458187613005565b5182600052600080516020615e8e83398151915260205261497160ff60406000205460101c1686613005565b51833b156105e5576149b79361ffff8f936000948f8e906149c98d6040519b8c998a988997634b5b050560e01b895216600488015260a0602488015260a4870190613019565b85810360031901604487015290612cf7565b916064840152608483015203925af19182156105d9576149ed926149f25750612ff6565b6148b3565b6149fb90612d1c565b38610d93565b604051630ebc95af60e21b815261ffff8b166004820152602490fd5b614a3a91503d806000833e614a328183612db6565b81019061460d565b38614885565b614a559192503d8086833e614a328183612db6565b9038614810565b614a65906145db565b38614750565b6040516306a91e3760e51b815260048101889052346024820152604490fd5b614aa09192503d806000833e6117c68183612db6565b903861472c565b6040516334e7b19560e11b8152600490fd5b84546001600160a01b0316835260019485019486945060209093019201614696565b9291614b0a9061046d7f0000000000000000000000000000000000000000000000000000000000000000615a4d565b906000937f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a918580a27f00000000000000000000000000000000000000000000000000000000000000009360028510156120615784614b9f575060405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091529091506134bd906105128160648101610504565b9193600181036105ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156117ff576040516340c10f1960e01b81526001600160a01b03919091166004820152602481019490945291929181908390604490829084905af1908115614c2a5750614c215750565b6134bd90612d1c565b604051903d90823e3d90fd5b600080604051602081019063313ce56760e01b825260048152614c5881612d65565b51907f00000000000000000000000000000000000000000000000000000000000000005afa614c85614512565b9015614ca4576020818051810103126105e5576020612f219101612ed1565b604051631222cd8360e01b8152600490fd5b6040516370a0823160e01b602082019081526001600160a01b039093166024808301919091528152600092839291614ced81612d4a565b51915afa614cf9614512565b9015614ca4576020818051810103126105e5576020015190565b60ff1660ff811461192c5760010190565b15614d2b57565b634e487b7160e01b600052600160045260246000fd5b60405190614d4e82612d4a565b60006040838281528260208201520152565b600080516020615e4e8339815191525460ff8160081c16614d91600080516020615e0e833981519152548214614d24565b60005b818110614e1f575060005b818110614db8575050604060ff6134bd92161115614d24565b6001810180821161192c575b828110614dda5750614dd590612ff6565b614d9f565b614e1a90614e15614dea84613244565b905490614df684613244565b92909160018060a01b03809354600395861b1c16931b1c161415614d24565b612ff6565b614dc4565b80614e15614e2f614e4693613244565b905460039190911b1c6001600160a01b0316614e4b565b614d94565b6001600160a01b039081166000818152600080516020615e8e8339815191526020526040908190209051929190614e8184612d4a565b5460ff91614ebd838316158015938488526020880197604087808460081c16159384158c5260101c1691019581875292614f78575b5050614d24565b600080516020615dee83398151915254946001600160401b0360019687868651161b1616151590511515916000968791600080516020615e4e8339815191525497878960081c16935b848110614f3a575b5050505050816134bd96614f28869594614f309414614d24565b151514614d24565b5116911611614d24565b8282614f4583613244565b90549060031b1c1614614f6057614f5b90612ff6565b614f06565b50919850849250839150614f289050826134bd614f0e565b90915081614f89575b503880614eb6565b90501538614f81565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614fc457565b604051633c64f99360e21b8152600490fd5b600080516020615eee83398151915254336001600160a01b03918216141591908261501c575b505061500457565b60405163e2a08e5d60e01b8152336004820152602490fd5b1633141590503880614ffc565b6040519061503682612d4a565b8160406001600160401b03600080516020615f0e833981519152546001600160481b0380821685528160481c16602085015260901c16910152565b9060405161507e81612d4a565b60406001600160401b038294546001600160481b0380821685528160481c16602085015260901c16910152565b90600160481b600160901b0382549160481b1690600160481b600160901b031916179055565b600080516020615f0e8339815191529081546001600160481b03908181166001600160401b036008918184841c168015806152c4575b15615175575050855471ffffffffffffffffff0000000000000000001916604886901b600160481b600160901b03161786555050505b825479ffffffffffffffff000000000000000000ffffffffffffffffff19169116174260901b67ffffffffffffffff60901b16179055565b86615181612cad615029565b92600061518e8383615ade565b1561525a57506151ad92916151a291615b00565b8388861c1690615a75565b610100600160481b039290841b831660ff8616176151cb8184615ade565b1561524c578160ff92826151e26151ef9487615b00565b871c169084871c16615a75565b9116921b16175b6152008482615ade565b61522a57600160481b600160901b039060481b1690600160481b600160901b03191617835561513d565b604051631e74e8fb60e31b815290831660048201528383166024820152604490fd5b5050905060ff9150166151f6565b949395929061526c9061527693615b00565b8389841c16615a75565b9260ff881694838087610100600160481b038098871b16176152988185615b00565b851c1691841c16019283116152b057501b16176151f6565b634e487b7160e01b81526011600452602490fd5b5060ff851615615107565b919080546001600160481b03808216916001600160401b03926008908483831c1680158061548b575b1561535e5750505050846153106134bd9596856150ab565b835467ffffffffffffffff60901b19919092161679ffffffffffffffff000000000000000000ffffffffffffffffff1990911617429190911660901b67ffffffffffffffff60901b16179055565b85908961536d612cad8a615071565b93600061537a8383615ade565b1561543557509161539261539d9260ff979894615b00565b838c881c1690615a75565b610100600160481b039490861b85169116176153b98184615ade565b156154275760ff91816153cf6153dc9386615b00565b861c168784871c16615a75565b9116921b16175b6153ed8682615ade565b61540557946154006134bd9596856150ab565b615310565b604051631e74e8fb60e31b815290821660048201529085166024820152604490fd5b5050905060ff9150166153e3565b949650615450935061544691615b00565b868a851c16615a75565b9160ff891693868086610100600160481b038097861b16176154728185615b00565b841c1691831c1601918683116152b057501b16176153e3565b5060ff8416156152f8565b61549e614d41565b50612f2161046d612cad615029565b6154b5614d41565b506000527f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b86020526040600020604051906154ef82612d4a565b80546001600160481b038116835260481c6001600160401b03166020830152600101546001600160a01b0316604082015290565b811561552d570490565b634e487b7160e01b600052601260045260246000fd5b6001600160401b0390817f0000000000000000000000000000000000000000000000000000000000000000169182156155d7576155c4828260ff936040610100600160481b03960151164203816155a8602085019889519383875160081c1602615523565b9160081c1601915160081c168082106000146155d057506155ee565b9251169160081b161790565b90506155ee565b506020015160ff16610100600160481b0317919050565b6001600160401b0390818111615602571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608490fd5b6001600160401b0390817f000000000000000000000000000000000000000000000000000000000000000016156157125761568f614d41565b50600160481b600160901b036156a6612cad615029565b610100600160481b0360ff6156e1600080516020615f0e83398151915296808854976156d28188615b00565b60081c16908560081c16615a75565b92169160081b161760481b16906001600160401b0360901b4260901b1690600160481b600160d01b03191617179055565b5050565b6001600160401b0390817f000000000000000000000000000000000000000000000000000000000000000016156157125761574f614d41565b5061575b612cad615029565b90600160481b600160901b03600080516020615f0e83398151915293845493816001600160401b0360901b4260901b16946157968184615b00565b60081c16828260081c16018281116000146158225750610100600160481b0360ff6157c0846155ee565b92169160081b1617906001600160481b038516906157de8284615b00565b80856001600160401b0360901b1988161760081c16908360081c161060001461581b57505b60481b1691600160481b600160d01b03191617179055565b9050615803565b60ff6157c0610100600160481b03926155ee565b6001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000161561363057610100600160481b0360ff6158f061ffff6134bd96615883614d41565b50169384600052600080516020615e6e833981519152806020526158ad612cad6040600020615071565b60009687526020919091526040909520805467ffffffffffffffff60901b191642831660901b67ffffffffffffffff60901b161781559581906156d28188615b00565b92169160081b1617906150ab565b6001600160401b03807f000000000000000000000000000000000000000000000000000000000000000016156136305761ffff6134bd9361593d614d41565b5016600090808252600080516020615e6e83398151915280602052615967612cad60408520615071565b91835260205260408220805467ffffffffffffffff60901b191642851660901b67ffffffffffffffff60901b161781559383906159a48184615b00565b60081c16838260081c1601838111600014615a115750610100600160481b0360ff6159ce856155ee565b92169160081b1617918084546001600160481b038116936159ef8587615b00565b5060081c16908360081c1610600014615a095750906150ab565b9050906150ab565b60ff6159ce610100600160481b03926155ee565b9067ffffffffffffffff60481b82549160481b169067ffffffffffffffff60481b1916179055565b468103615a575750565b604490604051906377d879fb60e01b82526004820152466024820152fd5b6001600160401b03918216908216039190821161192c57565b60009182915b6001600160401b03908181168015615ad65760001901918211615ac2571691615abc90614d13565b91615a94565b634e487b7160e01b85526011600452602485fd5b505050915090565b90615ae98183615b00565b6001600160401b03809160081c169160081c161190565b60ff9182169116818103615b12575050565b604051635ce6db6160e11b815260ff918216600482015291166024820152604490fd5b60ff811660081015612f215750600890565b9060ff8091169116039060ff821161192c57565b60ff16604d811161192c57600a0a90565b919060ff821660ff8216818114615bc0571115615b9f57615b94612f219392615b9992615b47565b615b5b565b90615523565b615b9490615bac92615b47565b9081810291818304149015171561192c5790565b5050505090565b615bfa61395c60ff92610100600160481b039495615be487615b35565b908581168683161015615c055750958691615b6c565b92169160081b161790565b9050958691615b6c565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615615c3e57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b03908116908115615cab57600080516020615dae83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b600080516020615dae833981519152546001600160a01b03163303615ce557565b60405163118cdaa760e01b8152336004820152602490fd5b600080516020615ece8339815191526002815414615d1b5760029055565b604051633ee5aeb560e01b8152600490fdfeebcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef047028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b7f6c3cb3f3ae91330f31ba2bc0ff8855fc834fb66dc27e8e0b1a398617dabaa5a668dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abdda9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930064bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022fd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb11f00758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e1ad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a768561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d89efb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da1549bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a7f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ed9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00bfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12497c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220420a2646970667358221220f05bfca11e4f4e6b5c38d73a662c13522a3f5f5988d02259aab20e583604ccb064736f6c63430008130033",dqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0],b4=class b4 extends V1{constructor(...e){if(dqe(e))super(...e);else{const[n,r]=e;super(Q9,b4.linkBytecode(n),r)}}static linkBytecode(e){let n=mK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a){return super.getDeployTransaction(e,n,r,i,s,a||{})}deploy(e,n,r,i,s,a){return super.deploy(e,n,r,i,s,a||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Q9)}static connect(e,n){return new Js(e,Q9,n)}};ce(b4,"bytecode",mK),ce(b4,"abi",Q9);let VB=b4;const Z9=[{type:"constructor",inputs:[{name:"nttManager",type:"address",internalType:"address"},{name:"wormholeCoreBridge",type:"address",internalType:"address"},{name:"wormholeRelayerAddr",type:"address",internalType:"address"},{name:"specialRelayerAddr",type:"address",internalType:"address"},{name:"_consistencyLevel",type:"uint8",internalType:"uint8"},{name:"_gasLimit",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"WORMHOLE_TRANSCEIVER_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"consistencyLevel",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"encodeWormholeTransceiverInstruction",inputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"function",name:"gasLimit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMigratesImmutables",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNttManagerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTransceiverType",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"getWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"isPaused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isVAAConsumed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"migrate",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nttManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nttManagerToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseWormholeTransceiverInstruction",inputs:[{name:"encoded",type:"bytes",internalType:"bytes"}],outputs:[{name:"instruction",type:"tuple",internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",components:[{name:"shouldSkipRelayerSend",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"pauser",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"quoteDeliveryPrice",inputs:[{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiveMessage",inputs:[{name:"encodedMessage",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"receiveWormholeMessages",inputs:[{name:"payload",type:"bytes",internalType:"bytes"},{name:"additionalMessages",type:"bytes[]",internalType:"bytes[]"},{name:"sourceAddress",type:"bytes32",internalType:"bytes32"},{name:"sourceChain",type:"uint16",internalType:"uint16"},{name:"deliveryHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"sendMessage",inputs:[{name:"recipientChain",type:"uint16",internalType:"uint16"},{name:"instruction",type:"tuple",internalType:"struct TransceiverStructs.TransceiverInstruction",components:[{name:"index",type:"uint8",internalType:"uint8"},{name:"payload",type:"bytes",internalType:"bytes"}]},{name:"nttManagerMessage",type:"bytes",internalType:"bytes"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"refundAddress",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEvm",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"isEnabled",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWormholePeer",inputs:[{name:"peerChainId",type:"uint16",internalType:"uint16"},{name:"peerContract",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"specialRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ISpecialRelayer"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferPauserCapability",inputs:[{name:"newPauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferTransceiverOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgrade",inputs:[{name:"newImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"wormhole",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormhole"}],stateMutability:"view"},{type:"function",name:"wormholeRelayer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IWormholeRelayer"}],stateMutability:"view"},{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"NotPaused",inputs:[{name:"notPaused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"paused",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"PauserTransferred",inputs:[{name:"oldPauser",type:"address",indexed:!0,internalType:"address"},{name:"newPauser",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReceivedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"sequence",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"ReceivedRelayedMessage",inputs:[{name:"digest",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"emitterChainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"emitterAddress",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RelayingInfo",inputs:[{name:"relayingType",type:"uint8",indexed:!1,internalType:"uint8"},{name:"refundAddress",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"deliveryPayment",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SendTransceiverMessage",inputs:[{name:"recipientChain",type:"uint16",indexed:!1,internalType:"uint16"},{name:"message",type:"tuple",indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",components:[{name:"sourceNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"nttManagerPayload",type:"bytes",internalType:"bytes"},{name:"transceiverPayload",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetIsSpecialRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeEvmChain",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isEvm",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetIsWormholeRelayingEnabled",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"isRelayingEnabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetWormholePeer",inputs:[{name:"chainId",type:"uint16",indexed:!1,internalType:"uint16"},{name:"peerContract",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"CallerNotNttManager",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CallerNotRelayer",inputs:[{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotRenounceTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"}]},{type:"error",name:"CannotTransferTransceiverOwnership",inputs:[{name:"currentOwner",type:"address",internalType:"address"},{name:"newOwner",type:"address",internalType:"address"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidBoolValue",inputs:[{name:"value",type:"uint256",internalType:"BooleanFlag"}]},{type:"error",name:"InvalidFork",inputs:[{name:"evmChainId",type:"uint256",internalType:"uint256"},{name:"blockChainId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPauser",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"InvalidRelayingConfig",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"}]},{type:"error",name:"InvalidVaa",inputs:[{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"InvalidWormholeChainIdZero",inputs:[]},{type:"error",name:"InvalidWormholePeer",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidWormholePeerZeroAddress",inputs:[]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotAnEvmAddress",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotMigrating",inputs:[]},{type:"error",name:"OnlyDelegateCall",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PeerAlreadySet",inputs:[{name:"chainId",type:"uint16",internalType:"uint16"},{name:"peerAddress",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"RequireContractIsNotPaused",inputs:[]},{type:"error",name:"RequireContractIsPaused",inputs:[]},{type:"error",name:"TransferAlreadyCompleted",inputs:[{name:"vaaHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnexpectedAdditionalMessages",inputs:[]},{type:"error",name:"UnexpectedDeployer",inputs:[{name:"deployer",type:"address",internalType:"address"},{name:"caller",type:"address",internalType:"address"}]},{type:"error",name:"UnexpectedRecipientNttManagerAddress",inputs:[{name:"recipientNttManagerAddress",type:"bytes32",internalType:"bytes32"},{name:"expectedRecipientNttManagerAddress",type:"bytes32",internalType:"bytes32"}]}],yK="0x6101c06040818152346200031d5760c08262003742803803809162000025828562000322565b8339810103126200031d576200003b826200035c565b906020906200004c8285016200035c565b926200005a8286016200035c565b62000068606087016200035c565b9160808701519660ff881688036200031d5760a00151947ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080549060ff82881c166200030c5782906001600160401b03906002600160401b031984831601620002c9575b50505050306080528160a052845190637e062a3560e11b8252808260048160018060a01b038097165afa908115620002be576000916200027f575b50905060c0523360e0528061012096168652806101409216825261016092168252610180924684526101009687526101a094855251946133d096876200037288396080518761313b015260a051878181610e100152818161154d015281816118d00152818161205501528181612204015281816128e00152612ae4015260c051878181610e9b01528181611c93015281816122560152818161268d0152612d7c015260e05187610d1801525186818161076e01528181610f4d0152818161127401528181611bfe01528181611df1015261239b01525185818161020801528181610c1501528181610f7a015281816112a001528181611ba601528181611e1e015281816122a601528181612e0201528181612ee20152612f800152518481816107a70152818161163601528181611a4a015281816122f60152612cc5015251838181610a7501528181611c3c015281816123460152612db90152518261024c0152518181816106ac01528181611a150152612c9a0152f35b82813d8311620002b6575b62000296818362000322565b81010312620002b35750620002ab906200035c565b803862000107565b80fd5b503d6200028a565b86513d6000823e3d90fd5b6001600160401b0319909316811790925586519182527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291a138818180620000cc565b865163f92ee8a960e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200034657604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200031d5756fe6080604081815260048036101561001557600080fd5b600092833560e01c908163036de8af146125ab575080630900f010146120845780630b4a1e89146113db57806324fb21db14612040578063320d0d8e14611ffd57806348b330d614611fb75780634b5b05051461183f5780634b795b211461179e578063529dca321461159457806358f709ba14611525578063657b3b2f1461148457806366152efc14611423578063689f90c3146113e0578063694977d7146113db5780637ab564031461118057806380eb3239146111445780638129fc1c14610c8957806381e8ec7f14610c4457806384acd1bb14610c005780638da5cb5b14610bca5780638fd3ab8014610aa457806390ea542814610a60578063935dec0714610a1e57806396dddc63146109695780639fd0506d14610921578063a0926b2a146108d5578063b187bd2614610894578063b5634c7314610847578063bc7f6d3714610804578063d8d28418146107d6578063da25b72514610792578063e8dfd50814610754578063f2fde38b1461071f578063f48066a8146106d3578063f68016b7146106945763f953cec7146101af57600080fd5b34610690576020908160031936011261068c578035906001600160401b0385818411610689576101e5610204943690850161279e565b86518095819263607ec5ef60e11b835288878401526024830190612887565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561067f5786938790889261047a575b501561045757507f000000000000000000000000000000000000000000000000000000000000000046810361043b57506060830161ffff91828251166000526000805160206132bb833981519152865286600020546080860190815180910361040a575061014086016102d281516000526000805160206132db83398151915260205260ff6040600020541690565b6103f157927ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0608060e0948b8a8e9996896103336103849d9b516000526000805160206132db8339815191526020526040600020600160ff19825416179055565b519360a08989511692519301511692519384528d8401528d8301526060820152a1511694015190610362612943565b5061036b612969565b508651630453806b60e11b815293849283928301612ac2565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156103e7576103be9450859186946103c1575b50815191015191612ae1565b80f35b9093506103e091503d8087833e6103d88183612762565b810190612a44565b92386103b2565b84513d87823e3d90fd5b518851632d30ec0360e21b815280870191909152602490fd5b83518951633cd8e72b60e11b815290861661ffff1687820190815260208101929092529081900360400190fd5b0390fd5b826044918751916377d879fb60e01b8352820152466024820152fd5b8551634771719b60e11b8152808401869052908190610437906024830190612887565b945050503d8087853e61048d8185612762565b8301606090818582031261067b5784518381116105ff578501610160928382840312610603578851938401848110868211176106665789526104ce82613053565b84526104db888301613061565b888501526104ea898301613061565b898501528082015161ffff8116810361066257818501526080808301518186015261051760a08401612feb565b60a086015261052860c08401613053565b60c086015260e083015186811161065e57846105459185016129c1565b60e0860152610100610558818501613061565b90860152610120908184015187811161065a57840185601f8201121561065a5780518c946105916105888361284d565b96519687612762565b8186528c8087019260071b84010192888411610656578d01915b83831061060757505050505084015261014080910151908301526105d0868601613072565b94878101519084821161060357019080601f830112156105ff5781516105f792880161298a565b909338610243565b8880fd5b8980fd5b84838a0312610656578d8f9182879351906106218261272c565b865182528387015184830152610638818801613053565b90820152610647858701613053565b858201528152019201916105ab565b8f80fd5b8c80fd5b8b80fd5b8a80fd5b604187634e487b7160e01b6000525260246000fd5b8780fd5b85513d88823e3d90fd5b80fd5b8380fd5b8280fd5b5050346106cf57816003193601126106cf57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b5050346106cf5760203660031901126106cf5760209061ffff6106f46126bc565b166000526000805160206132fb833981519152825261071681600020546130f7565b90519015158152f35b8382346106cf5760203660031901126106cf57356001600160a01b03811681036106cf576103be9061074f61320b565b6131da565b5050346106cf57816003193601126106cf576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106cf57816003193601126106cf576020906107f36128cb565b90516001600160a01b039091168152f35b5050346106cf5760203660031901126106cf5760209061ffff6108256126bc565b1660005260008051602061329b833981519152825261071681600020546130f7565b50346106905781600319360112610690576108606126bc565b92602435906001600160401b03821161068957509261088761088d926020953691016127e5565b90612c24565b9051908152f35b5050346106cf57816003193601126106cf5760209060027f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b825802254149051908152f35b5050346106cf57816003193601126106cf57805161091d916108f682612747565b6008825267776f726d686f6c6560c01b602083015251918291602083526020830190612887565b0390f35b5050346106cf57816003193601126106cf577fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12495490516001600160a01b039091168152602090f35b508290346106cf57826003193601126106cf576109846126bc565b61098c61283e565b9161099561320b565b61ffff8216908115610a1057507f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c9394610a0a916109d285613129565b906000526000805160206132fb8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b0390a180f35b8551630f7662c960e21b8152fd5b5050346106cf5760203660031901126106cf5760209061ffff610a3f6126bc565b166000526000805160206132bb833981519152825280600020549051908152f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610690578260031936011261069057610abe613138565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546001600160401b038082166001810190828211610bb75760ff84871c16908115610baa575b50610b9a57169360ff7f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e541615610b8c575068ffffffffffffffffff19168317680100000000000000001768ff000000000000000019169055519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a180f35b8351632866815360e11b8152fd5b845163f92ee8a960e01b81528690fd5b9050828216111538610b06565b634e487b7160e01b885260118752602488fd5b5050346106cf57816003193601126106cf5760008051602061333b8339815191525490516001600160a01b039091168152602090f35b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346106cf57816003193601126106cf57805161091d91610c6582612747565b60058252640312e312e360dc1b602083015251918291602083526020830190612887565b508260031936011261069057610c9d613138565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff83831c1615906001600160401b03938481168015908161113c575b6001149081611132575b159081611129575b5061111a5767ffffffffffffffff1981166001178655826110fb575b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116338190036110df5750610d4a613199565b610d52613199565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610dfe610d816128cb565b610d89613199565b610d91613199565b610d99613199565b60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258022557fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124980546001600160a01b03191633179055610df6613199565b61074f613199565b8351634b4fd03b60e01b8152602095907f0000000000000000000000000000000000000000000000000000000000000000831687828681845afa9182156110d5578a9261109e575b508651631dcbf42b60e11b81529188838781855afa928315611094578b9361105d575b5087519360a0850190811185821017610666578852639c23bd3b60e01b845288840191825260ff9081168489019081527f00000000000000000000000000000000000000000000000000000000000000008616606086019081529382166080860190815289516301529f6160e21b815295516001600160e01b031916888701529251602486015251811660448501529151606484015251166084820152878160a48173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49081156110535791610f74939187938a91611031575b5086518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af1801561102757610fef575b50610fb0578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a13880808380f35b8381813d8311611020575b6110048183612762565b8101031261101c5761101590612feb565b5038610fa7565b8580fd5b503d610ffa565b83513d88823e3d90fd5b61104d91503d808c833e6110458183612762565b81019061307f565b38610f38565b85513d8a823e3d90fd5b9092508881813d831161108d575b6110758183612762565b810103126106625761108690613053565b9138610e69565b503d61106b565b88513d8d823e3d90fd5b9091508781813d83116110ce575b6110b68183612762565b81010312610603576110c790613053565b9038610e46565b503d6110ac565b87513d8c823e3d90fd5b82604491865191636345072160e11b8352820152336024820152fd5b68ffffffffffffffffff19166801000000000000000117855538610d0d565b50825163f92ee8a960e01b8152fd5b90501538610cf1565b303b159150610ce9565b849150610cdf565b5091346106895760203660031901126106895750610716602092356000526000805160206132db83398151915260205260ff6040600020541690565b5081600319360112610690576111946126bc565b602435916111a061320b565b61ffff8083169081156113cb5784156113bb57816000526000805160206132bb8339815191529160209280845287600020548061139257508160005283528587600020558651916111f083612711565b630c7e33e160e11b8352838301918252878301878152885163077650fb60e51b815293516001600160e01b031916868501529151166024830152516044820152868160648173__$93083e246e55d56d98f3df2872cd16bfd0$__5af49283156113885761129b938392899161136e575b5087516358cd21bf60e11b815294859283927f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b0381347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561067f57611312575b5050915161ffff909216825260208201527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466908060408101610a0a565b81813d8311611367575b6113268183612762565b81010312611363577fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d3264669361135c610a0a92612feb565b50936112d5565b8480fd5b503d61131c565b61138291503d808b833e6110458183612762565b38611260565b86513d89823e3d90fd5b885163b55eeae960e01b815261ffff881681880190815260208101929092529081906040010390fd5b855163137063ef60e11b81528390fd5b8551630f7662c960e21b81528390fd5b612677565b5050346106cf57816003193601126106cf5760209060ff7f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb541690519015158152f35b5091346106895760203660031901126106895750805191611443836126f6565b35908115159182810361147f5761091d935280519160f81b60208301526001825261146d82612747565b51918291602083526020830190612887565b600080fd5b508290346106cf57826003193601126106cf5761149f6126bc565b6114a761283e565b916114b061320b565b61ffff8216908115610a1057507f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c39394610a0a916114ed85613129565b9060005260008051602061331b8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b5034610690576020366003190112610690578035916001600160a01b038084168403611363577f000000000000000000000000000000000000000000000000000000000000000016330361157d57836103be84613244565b60249250519063c5aa615360e01b82523390820152fd5b5060a0366003190112610690576001600160401b038135818111611363576115bf903690840161279e565b60249283359383851161179a573660238601121561179a5784820135936115e58561284d565b946115f288519687612762565b808652602096838888019260051b8201019236841161066257848201925b8484106117745750505050506044356064359461ffff86169081870361147f57608435937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361176157826000526000805160206132bb8339815191528952838a600020540361173a57848b526000805160206132db833981519152895260ff8a8c20541661172657506116cf846000526000805160206132db8339815191526020526040600020600160ff19825416179055565b5161171657606061038495938a95937ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f87475938b519283528a8301528a820152a1610362612943565b875163c504ea2960e01b81528490fd5b8951632d30ec0360e21b8152808701869052fd5b8951633cd8e72b60e11b815261ffff89168188019081526020810186905281906040010390fd5b8951631c26958960e01b81523381880152fd5b833582811161065a578a9161178f839289369188010161279e565b815201930192611610565b8680fd5b508290346106cf57826003193601126106cf576117b96126bc565b6117c161283e565b916117ca61320b565b61ffff8216908115610a1057507f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c9394610a0a9161180785613129565b9060005260008051602061329b8339815191526020528160002055519283928390929160209061ffff60408401951683521515910152565b509060031960a03682011261068c576118566126bc565b9060249283356001600160401b039081811161067b5761187990369088016127e5565b906044358181116105ff57611891903690890161279e565b90608435977f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00976002895414611fa857600289556001600160a01b03937f000000000000000000000000000000000000000000000000000000000000000085163303611f9257908b61194b819361195a8a519b61190d8d6126f6565b848d528b516304616c8f60e21b81526309945ff160e41b89820152338782015260648035604483015260a0908201529c8d94859460a4860190612887565b91848303016084850152612887565b038173__$93083e246e55d56d98f3df2872cd16bfd0$__5af4938415611f885782988395611f36575b50611992602080980151612ba9565b80511580611f27575b15611b7e575050928a92859283898997611a0d61ffff8f16968792836000526000805160206132bb8339815191528c526119e16119db8660002054613027565b9b613027565b94519c8d9b8c9a8b9a6312d729bd60e21b8c528b0152169088015260e0604488015260e4870190612887565b9360648601527f0000000000000000000000000000000000000000000000000000000000000000608486015260a48501521660c4830152039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611b7457611b03575b5061ffff926060611ae884611afc9460008051602061337b8339815191528460019c60008051602061335b8339815191529b99519060008252848201523485820152a15b815197889716875281818801528451828801528401518387015283015160808087015260c0860190612887565b910151838203603f190160a0850152612887565b0390a15580f35b9391928185813d8311611b6d575b611b1b8183612762565b8101031261067b576060611ae861ffff95611afc9460008051602061337b8339815191528460019c611b5b60008051602061335b8339815191529c612feb565b509c5050509450949650505092611a77565b503d611b11565b83513d8a823e3d90fd5b919394959250959697989a50511580611efb575b15611dd1578651631a90a21960e01b8152937f000000000000000000000000000000000000000000000000000000000000000082169087868681855afa958d8715611dc657908993929197611d93575b50869291611c26918b519889809481936358cd21bf60e11b83527f0000000000000000000000000000000000000000000000000000000000000000908c8401612fff565b03925af1948515611d89578c95611d52575b50817f00000000000000000000000000000000000000000000000000000000000000001690340390348211611d3e5790818d9796959493923b1561067b578c96889660849561ffff8d519a8b998a98630b5624e160e11b8a527f0000000000000000000000000000000000000000000000000000000000000000169089015216908601528760448601521660648401525af18015611d3457611d1c575b5060008051602061335b833981519152936060611ae8856001999560008051602061337b83398151915284611afc9761ffff9a51908e8252848201523485820152a1611abb565b611d28909692966126cd565b61101c57938538611cd5565b84513d84823e3d90fd5b83601186634e487b7160e01b600052526000fd5b9094508681813d8311611d82575b611d6a8183612762565b8101031261065e57611d7b90612feb565b9338611c38565b503d611d60565b88513d8e823e3d90fd5b9196509181813d8111611dbf575b611dab8183612762565b8101031261147f5751948791611c26611be2565b503d611da1565b8a51903d90823e3d90fd5b9050611e189350849286999799518095819482936358cd21bf60e11b84527f0000000000000000000000000000000000000000000000000000000000000000918401612fff565b039134907f0000000000000000000000000000000000000000000000000000000000000000165af18015611ef157611e93575b5091611afc6001956060611ae88560008051602061335b8339815191529760008051602061337b833981519152848d61ffff9a519060028252848201523485820152a1611abb565b9181838195933d8311611eea575b611eab8183612762565b8101031261179a576001956060611ae8611afc9360008051602061335b83398151915297611edb61ffff98612feb565b50959750955050509550611e4b565b503d611ea1565b83513d89823e3d90fd5b5061ffff8a1660005260008051602061329b8339815191528652611f2287600020546130f7565b611b92565b50611f318b6130a4565b61199b565b985093503d80838a3e611f49818a612762565b88019787818a031261069057805185811161068c5789611f6a9183016129db565b98602082015186811161136357611f8192016129c1565b9338611983565b87513d84823e3d90fd5b509085519063c5aa615360e01b82523390820152fd5b508451633ee5aeb560e01b8152fd5b509134610689576020366003190112610689578235906001600160401b0382116106895750611fee602093611ff39236910161279e565b612ba9565b9051905115158152f35b5050346106cf5760203660031901126106cf5760209061ffff61201e6126bc565b1660005260008051602061331b833981519152825261071681600020546130f7565b5050346106cf57816003193601126106cf57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b509034610690576020918260031936011261068c576001600160a01b039181358381169081810361179a576120b761320b565b6120bf613138565b3b15612552577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a27f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4e9384549361214c60ff86161561317c565b60ff199485166001178655303b1561179a57825163011fa75760e71b81528781868183305af180156124465761253f575b50825163689f90c360e01b815282818681305afa90811561244657889161250a575b50156121d9575b505050507f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cb818154169055815416905580f35b82516324fb21db60e01b815282818681305afa908115612446579061222b9189916124ed575b5082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b8251630b4a1e8960e01b815282818681305afa908115612446579061227d9189916124c0575b5082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b82516384acd1bb60e01b815282818681305afa8015612446578890612488575b6122cd915082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b825163da25b72560e01b815282818681305afa8015612446578890612450575b61231d915082167f000000000000000000000000000000000000000000000000000000000000000083161461317c565b825163121d4a8560e31b815282818681305afa90811561244657889161240c575b508161236e927f00000000000000000000000000000000000000000000000000000000000000001691161461317c565b8082518094631d1bfaa160e31b825281305afa918215612403575085916123cc575b506123c3915060ff807f00000000000000000000000000000000000000000000000000000000000000001691161461317c565b388080806121a6565b905081813d83116123fc575b6123e28183612762565b8101031261068c576123f66123c391613053565b38612390565b503d6123d8565b513d87823e3d90fd5b90508281813d831161243f575b6124238183612762565b8101031261067b575190808216820361067b579061236e61233e565b503d612419565b84513d8a823e3d90fd5b508281813d8311612481575b6124668183612762565b8101031261067b5751818116810361067b5761231d906122ed565b503d61245c565b508281813d83116124b9575b61249e8183612762565b8101031261067b5751818116810361067b576122cd9061229d565b503d612494565b6124e09150843d86116124e6575b6124d88183612762565b8101906128ac565b38612251565b503d6124ce565b6125049150843d86116124e6576124d88183612762565b386121ff565b90508281813d8311612538575b6125218183612762565b8101031261067b5761253290613072565b3861219f565b503d612517565b61254b909791976126cd565b953861217d565b815162461bcd60e51b8152808401869052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b828591346106905760203660031901126106905781356001600160a01b038181169391849003611363578060008051602061333b8339815191525416927fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad12499283549283169433861415908161266c575b506126575750506001600160a01b031916831790557f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef68380a380f35b63e2a08e5d60e01b8252339082015260249150fd5b90503314158861261b565b3461147f57600036600319011261147f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6004359061ffff8216820361147f57565b6001600160401b0381116126e057604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b038211176126e057604052565b606081019081106001600160401b038211176126e057604052565b608081019081106001600160401b038211176126e057604052565b604081019081106001600160401b038211176126e057604052565b90601f801991011681019081106001600160401b038211176126e057604052565b6001600160401b0381116126e057601f01601f191660200190565b81601f8201121561147f578035906127b582612783565b926127c36040519485612762565b8284526020838301011161147f57816000926020809301838601378301015290565b91909160408184031261147f5760408051916001600160401b03918301828111848210176126e0576040528294813560ff8116810361147f578452602082013592831161147f57602092612839920161279e565b910152565b60243590811515820361147f57565b6001600160401b0381116126e05760051b60200190565b60005b8381106128775750506000910152565b8181015183820152602001612867565b906020916128a081518092818552858086019101612864565b601f01601f1916010190565b9081602091031261147f57516001600160a01b038116810361147f5790565b604051638da5cb5b60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156129375760009161291c575090565b612934915060203d81116124e6576124d88183612762565b90565b6040513d6000823e3d90fd5b604051906129508261272c565b6060808360008152600060208201528160408201520152565b6040519061297682612711565b606060408360008152600060208201520152565b9092919261299781612783565b916129a56040519384612762565b82948284528282011161147f5760206129bf930190612864565b565b9080601f8301121561147f5781516129349260200161298a565b919060808382031261147f57604051906129f48261272c565b819380518352602081015160208401526040810151916001600160401b039283811161147f5781612a269184016129c1565b6040850152606082015192831161147f5760609261283992016129c1565b919060408382031261147f578251906001600160401b039182811161147f5781612a6f9186016129db565b9360208101519083821161147f57019060608282031261147f5760405192612a9684612711565b8251845260208301516020850152604083015190811161147f57612aba92016129c1565b604082015290565b6309945ff160e41b815260406020820181905261293492910190612887565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690818103612b8b5750803b1561147f5761ffff60008094612b71604080519889978896879563275e091560e21b875216600486015260248501526060604485015280516064850152602081015160848501520151606060a484015260c4830190612887565b03925af1801561293757612b825750565b6129bf906126cd565b60449250604051916339dee99160e11b835260048301526024820152fd5b9060405191612bb7836126f6565b6000835282815115612c1f5750600181015160fe8116612c035760ff16151583525160018103612be45750565b604490604051906355c5b3e360e11b8252600482015260016024820152fd5b60405163f7a37b0760e01b815260ff9091166004820152602490fd5b925050565b90612c33602080920151612ba9565b51612f6a5761ffff82169060009082825260008051602061331b8339815191528152604093612c64858420546130f7565b80612f43575b612f2b57612c77906130a4565b15612d3e5750825163c23ee3c360e01b81526004810192909252602482018190527f0000000000000000000000000000000000000000000000000000000000000000604483015282826064817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315612d34578193612d03575b50505090565b9091809350813d8311612d2d575b612d1b8183612762565b81010312610689575051388080612cfd565b503d612d11565b51903d90823e3d90fd5b82829394925260008051602061329b8339815191528152612d61828420546130f7565b15612ec957815163209d173960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820195909552604481018490529381856064817f000000000000000000000000000000000000000000000000000000000000000085165afa948515612ebc578495612e8d575b509080600492845193848092631a90a21960e01b82527f0000000000000000000000000000000000000000000000000000000000000000165afa928315612e8457508392612e56575b50508201809211612e42575090565b634e487b7160e01b81526011600452602490fd5b90809250813d8311612e7d575b612e6d8183612762565b810103126106cf57513880612e33565b503d612e63565b513d85823e3d90fd5b9094508181813d8311612eb5575b612ea58183612762565b8101031261068c57519381612dea565b503d612e9b565b50505051903d90823e3d90fd5b8151631a90a21960e01b815291935090919080836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415612f2057508193612d035750505090565b51913d9150823e3d90fd5b845163251268db60e21b815260048101859052602490fd5b508383526000805160206132fb8339815191528252612f64858420546130f7565b15612c6a565b604051631a90a21960e01b8152915080826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561293757600091612fbf575b50905090565b82813d8311612fe4575b612fd38183612762565b810103126106895750518038612fb9565b503d612fc9565b51906001600160401b038216820361147f57565b9060ff61302060409295949560008552606060208601526060850190612887565b9416910152565b8060a01c61303b576001600160a01b031690565b6024906040519063033b960d60e41b82526004820152fd5b519060ff8216820361147f57565b519063ffffffff8216820361147f57565b5190811515820361147f57565b9060208282031261147f5781516001600160401b03811161147f5761293492016129c1565b61ffff168060005260008051602061331b8339815191526020526130cc6040600020546130f7565b90816130d6575090565b90506000526000805160206132fb8339815191526020526129346040600020545b8015613123576001811461311d576024906040519063b998bad560e01b82526004820152fd5b50600190565b50600090565b1561313357600190565b600090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461316a57565b604051633c64f99360e21b8152600490fd5b1561318357565b634e487b7160e01b600052600160045260246000fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156131c857565b604051631afcd79f60e31b8152600490fd5b6001600160a01b038116156131f2576129bf90613244565b604051631e4fbdf760e01b815260006004820152602490fd5b60008051602061333b833981519152546001600160a01b0316330361322c57565b60405163118cdaa760e01b8152336004820152602490fd5b60008051602061333b83398151915280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fed4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1c948c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba2846845e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e2e79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8c16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4af9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930079376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c738c3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958ea26469706673582212207bc4f63809fac595a807d3db7f0b018f2f37e2fc46722017fb19171aab94e8f964736f6c63430008130033",hqe=t=>typeof t[0]=="string"||Array.isArray(t[0])||"_isInterface"in t[0],m4=class m4 extends V1{constructor(...e){if(hqe(e))super(...e);else{const[n,r]=e;super(Z9,m4.linkBytecode(n),r)}}static linkBytecode(e){let n=yK;return n=n.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),e["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),n}getDeployTransaction(e,n,r,i,s,a,o){return super.getDeployTransaction(e,n,r,i,s,a,o||{})}deploy(e,n,r,i,s,a,o){return super.deploy(e,n,r,i,s,a,o||{})}connect(e){return super.connect(e)}static createInterface(){return new Ho(Z9)}static connect(e,n){return new Js(e,Z9,n)}};ce(m4,"bytecode",yK),ce(m4,"abi",Z9);let YB=m4;const pqe={NttManager:{connect:sqe.connect},NttTransceiver:{connect:oqe.connect}},bqe={NttManager:{connect:fqe.connect},NttTransceiver:{connect:lqe.connect}},mqe={NttManager:{connect:VB.connect},NttTransceiver:{connect:YB.connect}},yqe=[["1.1.0",mqe],["1.0.0",bqe],["0.1.0",pqe]];function gqe(t){for(const[e,n]of yqe)if(Co.abiVersionMatches(t,e))return n;throw new Error(`Unknown ABI version: ${t}`)}class xqe{constructor(e,n,r){ce(this,"manager");ce(this,"address");ce(this,"transceiver");this.manager=e,this.address=n,this.transceiver=r.NttTransceiver.connect(n,e.provider)}getAddress(){return{chain:this.manager.chain,address:Uh(this.manager.chain,this.address)}}encodeFlags(e){return new Uint8Array([e.skipRelay?1:0])}async*setPeer(e){const n=await this.transceiver.setWormholePeer.populateTransaction(ai(e.chain),FL(e));yield this.manager.createUnsignedTx(n,"WormholeTransceiver.registerPeer")}async getPauser(){const e=await this.transceiver.pauser();return new L0(e)}async*setPauser(e){const n=Ui({chain:this.manager.chain,address:e}),r=await this.transceiver.transferPauserCapability.populateTransaction(n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setPauser")}async getPeer(e){const n=await this.transceiver.getWormholePeer(ai(e)),r=fw.decode(n),i=new Uint8Array(32);return sa.equals(i,r)?null:{chain:e,address:Uh(e,r)}}async isEvmChain(e){return await this.transceiver.isWormholeEvmChain(ai(e))}async*setIsEvmChain(e,n){const r=await this.transceiver.setIsWormholeEvmChain.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setIsEvmChain")}async*receive(e){const n=await this.transceiver.receiveMessage.populateTransaction(jv(e));yield this.manager.createUnsignedTx(n,"WormholeTransceiver.receiveMessage")}async isWormholeRelayingEnabled(e){return await this.transceiver.isWormholeRelayingEnabled(ai(e))}async*setIsWormholeRelayingEnabled(e,n){const r=await this.transceiver.setIsWormholeRelayingEnabled.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setWormholeRelayingEnabled")}async isSpecialRelayingEnabled(e){return await this.transceiver.isSpecialRelayingEnabled(ai(e))}async*setIsSpecialRelayingEnabled(e,n){const r=await this.transceiver.setIsSpecialRelayingEnabled.populateTransaction(ai(e),n);yield this.manager.createUnsignedTx(r,"WormholeTransceiver.setSpecialRelayingEnabled")}}class uw{constructor(e,n,r,i,s="1.0.0"){ce(this,"network");ce(this,"chain");ce(this,"provider");ce(this,"contracts");ce(this,"version");ce(this,"tokenAddress");ce(this,"chainId");ce(this,"manager");ce(this,"xcvrs");ce(this,"managerAddress");if(this.network=e,this.chain=n,this.provider=r,this.contracts=i,this.version=s,!i.ntt)throw new Error("No Ntt Contracts provided");this.chainId=HHe.get(e,n),this.tokenAddress=i.ntt.token,this.managerAddress=i.ntt.manager;const a=gqe(this.version);this.manager=a.NttManager.connect(i.ntt.manager,this.provider),i.ntt.transceiver.wormhole!=null?this.xcvrs=[new xqe(this,i.ntt.transceiver.wormhole,a)]:this.xcvrs=[]}async getTransceiver(e){return this.xcvrs[e]||null}async getMode(){return await this.manager.getMode()===0n?"locking":"burning"}async isPaused(){return await this.manager.isPaused()}async*pause(){const e=await this.manager.pause.populateTransaction();yield this.createUnsignedTx(e,"Ntt.pause")}async*unpause(){const e=await this.manager.unpause.populateTransaction();yield this.createUnsignedTx(e,"Ntt.unpause")}async getOwner(){return new L0(await this.manager.owner())}async getPauser(){return new L0(await this.manager.pauser())}async*setOwner(e){const n=new L0(e).toString(),r=await this.manager.transferOwnership.populateTransaction(n);yield this.createUnsignedTx(r,"Ntt.setOwner")}async*setPauser(e){const n=new L0(e).toString(),r=await this.manager.transferPauserCapability.populateTransaction(n);yield this.createUnsignedTx(r,"Ntt.setPauser")}async getThreshold(){return Number(await this.manager.getThreshold())}async isRelayingAvailable(e){return(await Promise.all(this.xcvrs.map(async r=>{const[i,s]=await Promise.all([r.isWormholeRelayingEnabled(e),r.isSpecialRelayingEnabled(e)]);return i||s}))).filter(r=>r).length>0}async getIsExecuted(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return await this.manager.isMessageExecuted(Co.messageDigest(e.emitterChain,n.nttManagerPayload))?!await this.getIsTransferInboundQueued(e):!1}async getIsTransferInboundQueued(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return await this.getInboundQueuedTransfer(e.emitterChain,n.nttManagerPayload)!==null}getIsApproved(e){const n=e.payloadName==="WormholeTransfer"?e.payload:e.payload.payload;return this.manager.isMessageApproved(Co.messageDigest(e.emitterChain,n.nttManagerPayload))}async getTokenDecimals(){return await V2.getDecimals(this.chain,this.provider,this.tokenAddress)}async getPeer(e){const n=await this.manager.getPeer(ai(e)),r=fw.decode(n.peerAddress),i=new Uint8Array(32);return sa.equals(i,r)?null:{address:{chain:e,address:Uh(e,r)},tokenDecimals:Number(n.tokenDecimals),inboundLimit:await this.getInboundLimit(e)}}static async fromRpc(e,n){const[r,i]=await V2.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);const a=await uw.getVersion(e,s.contracts);return new uw(r,i,e,s.contracts,a)}encodeOptions(e){const n=[];return n.push({index:0,payload:this.xcvrs[0].encodeFlags({skipRelay:!e.automatic})}),n}static async getVersion(e,n){var i;const r=new Js(n.ntt.manager,["function NTT_MANAGER_VERSION() public view returns (string)"],e);try{const s=await r.getFunction("NTT_MANAGER_VERSION").staticCall();if(!s)throw new Error("NTT_MANAGER_VERSION not found");return s}catch(s){throw console.error(`Failed to get NTT_MANAGER_VERSION from contract ${(i=n.ntt)==null?void 0:i.manager}`),s}}async getCustodyAddress(){return this.managerAddress}async quoteDeliveryPrice(e,n){const[,r]=await this.manager.quoteDeliveryPrice(ai(e),Co.encodeTransceiverInstructions(this.encodeOptions(n)));return r}async*setPeer(e,n,r){const i=await this.manager.setPeer.populateTransaction(ai(e.chain),FL(e),n,r);yield this.createUnsignedTx(i,"Ntt.setPeer")}async*setWormholeTransceiverPeer(e){yield*this.xcvrs[0].setPeer(e)}async*transfer(e,n,r,i){const s=new L0(e).toString(),a=await this.quoteDeliveryPrice(r.chain,i),o=V2.getTokenImplementation(this.provider,this.tokenAddress);if(await o.allowance(s,this.managerAddress)<n){const m=await o.approve.populateTransaction(this.managerAddress,n);yield this.createUnsignedTx(Yv(m,s),"Ntt.Approve")}const u=FL(r),h=await this.manager.getFunction("transfer(uint256,uint16,bytes32,bytes32,bool,bytes)").populateTransaction(n,ai(r.chain),u,u,i.queue,Co.encodeTransceiverInstructions(this.encodeOptions(i)),{value:a});yield this.createUnsignedTx(Yv(h,s),"Ntt.transfer")}async*redeem(e){if(e.length!==this.xcvrs.length)throw new Error("Not enough attestations for the registered Transceivers");for(const n in this.xcvrs){const r=this.xcvrs[n],i=e[n];if((i==null?void 0:i.payloadName)!=="WormholeTransfer")throw new Error("Invalid attestation type for redeem");yield*r.receive(i)}}async getCurrentOutboundCapacity(){return await this.manager.getCurrentOutboundCapacity()}async getOutboundLimit(){const e=(await this.manager.getOutboundLimitParams()).limit,n=gK(e),r=await this.getTokenDecimals();return xK(n,r)}async*setOutboundLimit(e){const n=await this.manager.setOutboundLimit.populateTransaction(e);yield this.createUnsignedTx(n,"Ntt.setOutboundLimit")}async getCurrentInboundCapacity(e){return await this.manager.getCurrentInboundCapacity(ai(e))}async getInboundLimit(e){const n=(await this.manager.getInboundLimitParams(ai(e))).limit,r=gK(n),i=await this.getTokenDecimals();return xK(r,i)}async*setInboundLimit(e,n){const r=await this.manager.setInboundLimit.populateTransaction(n,ai(e));yield this.createUnsignedTx(r,"Ntt.setInboundLimit")}async getRateLimitDuration(){return await this.manager.rateLimitDuration()}async getInboundQueuedTransfer(e,n){const r=await this.manager.getInboundQueuedTransfer(Co.messageDigest(e,n));if(r.txTimestamp>0n){const{recipient:i,amount:s,txTimestamp:a}=r,o=await this.getRateLimitDuration();return{recipient:new L0(i),amount:s,rateLimitExpiryTimestamp:Number(a+o)}}return null}async*completeInboundQueuedTransfer(e,n,r){const i=await this.manager.completeInboundQueuedTransfer.populateTransaction(Co.messageDigest(e,n));yield this.createUnsignedTx(i,"Ntt.completeInboundQueuedTransfer")}async verifyAddresses(){var i;const e={manager:this.managerAddress,token:this.tokenAddress,transceiver:{wormhole:(i=this.xcvrs[0])==null?void 0:i.address}},n={manager:this.managerAddress,token:await this.manager.token(),transceiver:{wormhole:(await this.manager.getTransceivers())[0]}},r=(s,a)=>{for(const o in s)typeof s[o]=="object"?(r(s[o],a[o]),Object.keys(s[o]).length===0&&delete s[o]):s[o]===a[o]&&delete s[o]};return r(n,e),Object.keys(n).length>0?n:null}createUnsignedTx(e,n,r=!1){return new Jue(p1e(e,this.chainId),this.network,this.chain,n,r)}}function gK(t){const e=Number(t&0xffn);return{amount:t>>8n,decimals:e}}function xK(t,e){const{amount:n,decimals:r}=t;return vqe(n,r,e)}function vqe(t,e,n){return e==n?t:e>n?t/10n**BigInt(e-n):t*10n**BigInt(n-e)}uA(Ky,"Ntt",uw);class wqe extends nae{async getTokenAccount(e,n){const{getAssociatedTokenAddress:r}=await ss(async()=>{const{getAssociatedTokenAddress:o}=await import("./assets/index-3roRoeod.js");return{getAssociatedTokenAddress:o}},[]),i=new xr(n).unwrap(),s=new xr(e).unwrap(),a=await r(i,s);return{chain:this.chain,address:new xr(a.toString())}}}const Mqe=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),Aqe=new Fe("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"),Lft=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new Fe("So11111111111111111111111111111111111111112");new Fe("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const mf=class mf extends Jse{constructor(e,n){super(e,n??mO(e,mf._platform))}getRpc(e,n={commitment:"confirmed",disableRetryOnRateLimit:!0}){if(e in this.config)return new QE(this.config[e].rpc,n);throw new Error("No configuration available for chain: "+e)}getChain(e,n){if(e in this.config)return new wqe(e,this,n);throw new Error("No configuration available for chain: "+e)}static nativeTokenId(e,n){if(!mf.isSupportedChain(n))throw new Error(`invalid chain: ${n}`);return Nn.chainAddress(n,Y_e)}static isNativeTokenId(e,n,r){return!this.isSupportedChain(n)||r.chain!==n?!1:this.nativeTokenId(e,n)==r}static isSupportedChain(e){return bd(e)===mf._platform}static async getDecimals(e,n,r){if(ci(r))return V0e(mf._platform);let i=await n.getParsedAccountInfo(new xr(r).unwrap());if(!i||!i.value)throw new Error("could not fetch token details");const{decimals:s}=i.value.data.parsed.info;return s}static async getBalance(e,n,r,i){const s=new Fe(r);if(ci(i))return BigInt(await n.getBalance(s));const a=await n.getTokenAccountsByOwner(s,{mint:new xr(i).unwrap()}),o=a.value.length>0?a.value[0].pubkey:s,f=await n.getTokenAccountBalance(o);return BigInt(f.value.amount)}static async getBalances(e,n,r,i){let s;i.includes("native")&&(s=BigInt(await n.getBalance(new Fe(r))));const a=(await Promise.all([Mqe,Aqe].map(f=>new Fe(f)).map(f=>n.getParsedTokenAccountsByOwner(new Fe(r),{programId:f})))).reduce((f,u)=>f.concat(u.value),[]);return i.map(f=>{var m,y,x,w;if(ci(f))return{native:s};const u=new xr(f).toString(),h=(w=(x=(y=(m=a.find(E=>{var I,T;return((T=(I=E==null?void 0:E.account.data.parsed)==null?void 0:I.info)==null?void 0:T.mint)===f}))==null?void 0:m.account.data.parsed)==null?void 0:y.info)==null?void 0:x.tokenAmount)==null?void 0:w.amount;return h?{[u]:BigInt(h)}:{[u]:null}}).reduce((f,u)=>Object.assign(f,u),{})}static async sendWait(e,n,r,i){const s=await Promise.all(r.map(f=>this.sendTxWithRetry(n,f,i))),a=s.map(f=>f.signature),o=s.filter(f=>f.response.value.err).map(f=>f.response.value.err);if(o.length>0)throw new Error(`Failed to confirm transaction: ${o}`);return a}static async sendTxWithRetry(e,n,r={},i=5e3){const s=r.preflightCommitment??e.commitment,a=await e.sendRawTransaction(n,{...r,skipPreflight:!1,maxRetries:0,preflightCommitment:s}),{blockhash:o,lastValidBlockHeight:f}=await e.getLatestBlockhash(),u=e.confirmTransaction({signature:a,blockhash:o,lastValidBlockHeight:f},s);let h=null;for(;!h&&(h=await Promise.race([u,new Promise(m=>setTimeout(()=>{m(null)},i))]),!h);)await e.sendRawTransaction(n,{...r,skipPreflight:!0,maxRetries:0,preflightCommitment:s});return{signature:a,response:h}}static async latestBlock(e,n){return e.getLatestBlockhash(n??e.commitment)}static async getLatestBlock(e){return await e.getSlot()}static async getLatestFinalizedBlock(e){const{lastValidBlockHeight:n}=await this.latestBlock(e,"finalized");return n}static chainFromChainId(e){const n=Q0e(mf._platform,e);if(!n)throw new Error(`No matching genesis hash to determine network and chain: ${e}`);const[r,i]=n;return[r,i]}static async chainFromRpc(e){try{const n=await e.getGenesisHash();return mf.chainFromChainId(n)}catch(n){if(e.rpcEndpoint.includes("http://127")||e.rpcEndpoint.includes("http://localhost")||e.rpcEndpoint==="http://solana-devnet:8899")return["Devnet","Solana"];throw n}}};ce(mf,"_platform",ng);let Am=mf;class ele{constructor(e,n,r,i,s=!1){ce(this,"transaction");ce(this,"network");ce(this,"chain");ce(this,"description");ce(this,"parallelizable");this.transaction=e,this.network=n,this.chain=r,this.description=i,this.parallelizable=s}}function Bft(t){return t.signatures!==void 0&&t.message!==void 0}const vK=t=>typeof t=="string"?ze.Buffer.from(t):t;function Du(t,e){return Fe.findProgramAddressSync(Array.isArray(t)?t.map(vK):[vK(t)],new Fe(e))[0]}function jft(t,e){return{pubkey:new Fe(t),isWritable:!0,isSigner:e}}function Rft(t,e){return{pubkey:new Fe(t),isWritable:!1,isSigner:e}}function ag(t){if(t===null)throw Error("account info is null");return t.data}const tle=new Fe("BPFLoaderUpgradeab1e11111111111111111111111");function Eqe(t){return Du([new Fe(t).toBuffer()],tle)}function Sqe(t){if(t!==void 0)return{connection:t}}let Cqe=class extends Error{constructor(e){super(e),this.name="IdlError"}};var Xt={},Yt={};let Nr=class{constructor(e,n){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=n}makeDestinationObject(){return{}}decode(e,n){throw new Error("Layout is abstract")}encode(e,n,r){throw new Error("Layout is abstract")}getSpan(e,n){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const n=Object.create(this.constructor.prototype);return Object.assign(n,this),n.property=e,n}fromArray(e){}};Yt.Layout=Nr;function CP(t,e){return e.property?t+"["+e.property+"]":t}Yt.nameWithProperty=CP;function Tqe(t,e){if(typeof t!="function")throw new TypeError("Class must be constructor");if(t.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(e&&e instanceof Nr))throw new TypeError("layout must be a Layout");if(e.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");t.layout_=e,e.boundConstructor_=t,e.makeDestinationObject=()=>new t,Object.defineProperty(t.prototype,"encode",{value:function(n,r){return e.encode(this,n,r)},writable:!0}),Object.defineProperty(t,"decode",{value:function(n,r){return e.decode(n,r)},writable:!0})}Yt.bindConstructorLayout=Tqe;let Ys=class extends Nr{isCount(){throw new Error("ExternalLayout is abstract")}};class nle extends Ys{constructor(e,n){if(e===void 0&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,n),this.elementSpan=e}isCount(){return!0}decode(e,n){n===void 0&&(n=0);const r=e.length-n;return Math.floor(r/this.elementSpan)}encode(e,n,r){return 0}}let TP=class extends Ys{constructor(e,n,r){if(!(e instanceof Nr))throw new TypeError("layout must be a Layout");if(n===void 0)n=0;else if(!Number.isInteger(n))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=n}isCount(){return this.layout instanceof ef||this.layout instanceof ku}decode(e,n){return n===void 0&&(n=0),this.layout.decode(e,n+this.offset)}encode(e,n,r){return r===void 0&&(r=0),this.layout.encode(e,n,r+this.offset)}},ef=class extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntLE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntLE(e,r,this.span),this.span}},ku=class extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntBE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntBE(e,r,this.span),this.span}};class y5 extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readIntLE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeIntLE(e,r,this.span),this.span}}class g3 extends Nr{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readIntBE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeIntBE(e,r,this.span),this.span}}const QB=Math.pow(2,32);function rS(t){const e=Math.floor(t/QB),n=t-e*QB;return{hi32:e,lo32:n}}function iS(t,e){return t*QB+e}let Iqe=class extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readUInt32LE(n+4);return iS(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32LE(i.lo32,r),n.writeUInt32LE(i.hi32,r+4),8}};class Dqe extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32BE(n),i=e.readUInt32BE(n+4);return iS(r,i)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32BE(i.hi32,r),n.writeUInt32BE(i.lo32,r+4),8}}let kqe=class extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readInt32LE(n+4);return iS(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeUInt32LE(i.lo32,r),n.writeInt32LE(i.hi32,r+4),8}};class Nqe extends Nr{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readInt32BE(n),i=e.readUInt32BE(n+4);return iS(r,i)}encode(e,n,r){r===void 0&&(r=0);const i=rS(e);return n.writeInt32BE(i.hi32,r),n.writeUInt32BE(i.lo32,r+4),8}}class rle extends Nr{constructor(e){super(4,e)}decode(e,n){return n===void 0&&(n=0),e.readFloatLE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeFloatLE(e,r),4}}class ile extends Nr{constructor(e){super(4,e)}decode(e,n){return n===void 0&&(n=0),e.readFloatBE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeFloatBE(e,r),4}}class sle extends Nr{constructor(e){super(8,e)}decode(e,n){return n===void 0&&(n=0),e.readDoubleLE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeDoubleLE(e,r),8}}class ale extends Nr{constructor(e){super(8,e)}decode(e,n){return n===void 0&&(n=0),e.readDoubleBE(n)}encode(e,n,r){return r===void 0&&(r=0),n.writeDoubleBE(e,r),8}}class ole extends Nr{constructor(e,n,r){if(!(e instanceof Nr))throw new TypeError("elementLayout must be a Layout");if(!(n instanceof Ys&&n.isCount()||Number.isInteger(n)&&0<=n))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(n instanceof Ys)&&0<e.span&&(i=n*e.span),super(i,r),this.elementLayout=e,this.count=n}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0,i=this.count;if(i instanceof Ys&&(i=i.decode(e,n)),0<this.elementLayout.span)r=i*this.elementLayout.span;else{let s=0;for(;s<i;)r+=this.elementLayout.getSpan(e,n+r),++s}return r}decode(e,n){n===void 0&&(n=0);const r=[];let i=0,s=this.count;for(s instanceof Ys&&(s=s.decode(e,n));i<s;)r.push(this.elementLayout.decode(e,n)),n+=this.elementLayout.getSpan(e,n),i+=1;return r}encode(e,n,r){r===void 0&&(r=0);const i=this.elementLayout,s=e.reduce((a,o)=>a+i.encode(o,n,r+a),0);return this.count instanceof Ys&&this.count.encode(e.length,n,r),s}}let cle=class extends Nr{constructor(e,n,r){if(!(Array.isArray(e)&&e.reduce((s,a)=>s&&a instanceof Nr,!0)))throw new TypeError("fields must be array of Layout instances");typeof n=="boolean"&&r===void 0&&(r=n,n=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,a)=>s+a.getSpan(),0)}catch{}super(i,n),this.fields=e,this.decodePrefixes=!!r}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;try{r=this.fields.reduce((i,s)=>{const a=s.getSpan(e,n);return n+=a,i+a},0)}catch{throw new RangeError("indeterminate span")}return r}decode(e,n){n===void 0&&(n=0);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(e,n)),n+=i.getSpan(e,n),this.decodePrefixes&&e.length===n)break;return r}encode(e,n,r){r===void 0&&(r=0);const i=r;let s=0,a=0;for(const o of this.fields){let f=o.span;if(a=0<f?f:0,o.property!==void 0){const u=e[o.property];u!==void 0&&(a=o.encode(u,n,r),0>f&&(f=o.getSpan(n,r)))}s=r,r+=f}return s+a-i}fromArray(e){const n=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<e.length&&(n[r.property]=e.shift());return n}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const n of this.fields)if(n.property===e)return n}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let n=0;for(const r of this.fields){if(r.property===e)return n;0>r.span?n=-1:0<=n&&(n+=r.span)}}},IP=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},lw=class extends IP{constructor(e,n){if(!(e instanceof Ys&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(n||e.property||"variant"),this.layout=e}decode(e,n){return this.layout.decode(e,n)}encode(e,n,r){return this.layout.encode(e,n,r)}},DP=class extends Nr{constructor(e,n,r){const i=e instanceof ef||e instanceof ku;if(i)e=new lw(new TP(e));else if(e instanceof Ys&&e.isCount())e=new lw(e);else if(!(e instanceof IP))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(n===void 0&&(n=null),!(n===null||n instanceof Nr))throw new TypeError("defaultLayout must be null or a Layout");if(n!==null){if(0>n.span)throw new Error("defaultLayout must have constant span");n.property===void 0&&(n=n.replicate("content"))}let s=-1;n&&(s=n.span,0<=s&&i&&(s+=e.layout.span)),super(s,r),this.discriminator=e,this.usesPrefixDiscriminator=i,this.defaultLayout=n,this.registry={};let a=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(o){return a(o)},this.configGetSourceVariant=function(o){a=o.bind(this)}}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);const r=this.getVariant(e,n);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,n)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const n=this.registry[e[this.discriminator.property]];if(n&&(!n.layout||e.hasOwnProperty(n.property)))return n}else for(const n in this.registry){const r=this.registry[n];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,n){n===void 0&&(n=0);let r;const i=this.discriminator,s=i.decode(e,n);let a=this.registry[s];if(a===void 0){let o=0;a=this.defaultLayout,this.usesPrefixDiscriminator&&(o=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[a.property]=this.defaultLayout.decode(e,n+o)}else r=a.decode(e,n);return r}encode(e,n,r){r===void 0&&(r=0);const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,a=this.defaultLayout;let o=0;return this.usesPrefixDiscriminator&&(o=s.layout.span),s.encode(e[s.property],n,r),o+a.encode(e[a.property],n,r+o)}return i.encode(e,n,r)}addVariant(e,n,r){const i=new fle(this,e,n,r);return this.registry[e]=i,i}getVariant(e,n){let r=e;return ze.Buffer.isBuffer(e)&&(n===void 0&&(n=0),r=this.discriminator.decode(e,n)),this.registry[r]}},fle=class extends Nr{constructor(e,n,r,i){if(!(e instanceof DP))throw new TypeError("union must be a Union");if(!Number.isInteger(n)||0>n)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof Nr))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=r?r.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=n,this.layout=r||null}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,n+r)}decode(e,n){const r=this.makeDestinationObject();if(n===void 0&&(n=0),this!==this.union.getVariant(e,n))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,n+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,n,r){r===void 0&&(r=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,n,r);let s=i;if(this.layout&&(this.layout.encode(e[this.property],n,r+i),s+=this.layout.getSpan(n,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};function V5(t){return 0>t&&(t+=4294967296),t}class kP extends Nr{constructor(e,n,r){if(!(e instanceof ef||e instanceof ku))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof n=="string"&&r===void 0&&(r=n,n=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!n,this.fields=[];let i=0;this._packedSetValue=function(s){return i=V5(s),this},this._packedGetValue=function(){return i}}decode(e,n){const r=this.makeDestinationObject();n===void 0&&(n=0);const i=this.word.decode(e,n);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(r[s.property]=s.decode(i));return r}encode(e,n,r){r===void 0&&(r=0);const i=this.word.decode(n,r);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const a=e[s.property];a!==void 0&&s.encode(a)}return this.word.encode(this._packedGetValue(),n,r)}addField(e,n){const r=new r4(this,e,n);return this.fields.push(r),r}addBoolean(e){const n=new ule(this,e);return this.fields.push(n),n}fieldFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const n of this.fields)if(n.property===e)return n}}class r4{constructor(e,n,r){if(!(e instanceof kP))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(n)||0>=n)throw new TypeError("bits must be positive integer");const i=8*e.span,s=e.fields.reduce((a,o)=>a+o.bits,0);if(n+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=e,this.bits=n,this.valueMask=(1<<n)-1,n===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-n),this.wordMask=V5(this.valueMask<<this.start),this.property=r}decode(){const e=this.container._packedGetValue();return V5(e&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==V5(e&this.valueMask))throw new TypeError(CP("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const n=this.container._packedGetValue(),r=V5(e<<this.start);this.container._packedSetValue(V5(n&~this.wordMask)|r)}}let ule=class extends r4{constructor(e,n){super(e,1,n)}decode(e,n){return!!r4.prototype.decode.call(this,e,n)}encode(e){return typeof e=="boolean"&&(e=+e),r4.prototype.encode.call(this,e)}},lle=class extends Nr{constructor(e,n){if(!(e instanceof Ys&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof Ys||(r=e),super(r,n),this.length=e}getSpan(e,n){let r=this.span;return 0>r&&(r=this.length.decode(e,n)),r}decode(e,n){n===void 0&&(n=0);let r=this.span;return 0>r&&(r=this.length.decode(e,n)),e.slice(n,n+r)}encode(e,n,r){let i=this.length;if(this.length instanceof Ys&&(i=e.length),!(ze.Buffer.isBuffer(e)&&i===e.length))throw new TypeError(CP("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(r+i>n.length)throw new RangeError("encoding overruns Buffer");return n.write(e.toString("hex"),r,i,"hex"),this.length instanceof Ys&&this.length.encode(i,n,r),i}};class dle extends Nr{constructor(e){super(-1,e)}getSpan(e,n){if(!ze.Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");n===void 0&&(n=0);let r=n;for(;r<e.length&&e[r]!==0;)r+=1;return 1+r-n}decode(e,n,r){n===void 0&&(n=0);let i=this.getSpan(e,n);return e.slice(n,n+i-1).toString("utf-8")}encode(e,n,r){r===void 0&&(r=0),typeof e!="string"&&(e=e.toString());const i=new ze.Buffer(e,"utf8"),s=i.length;if(r+s>n.length)throw new RangeError("encoding overruns Buffer");return i.copy(n,r),n[r+s]=0,s+1}}class hle extends Nr{constructor(e,n){if(typeof e=="string"&&n===void 0&&(n=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,n),this.maxSpan=e}getSpan(e,n){if(!ze.Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return n===void 0&&(n=0),e.length-n}decode(e,n,r){n===void 0&&(n=0);let i=this.getSpan(e,n);if(0<=this.maxSpan&&this.maxSpan<i)throw new RangeError("text length exceeds maxSpan");return e.slice(n,n+i).toString("utf-8")}encode(e,n,r){r===void 0&&(r=0),typeof e!="string"&&(e=e.toString());const i=new ze.Buffer(e,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(r+s>n.length)throw new RangeError("encoding overruns Buffer");return i.copy(n,r),s}}class ple extends Nr{constructor(e,n){super(0,n),this.value=e}decode(e,n,r){return this.value}encode(e,n,r){return 0}}Yt.ExternalLayout=Ys;Yt.GreedyCount=nle;Yt.OffsetLayout=TP;Yt.UInt=ef;Yt.UIntBE=ku;Yt.Int=y5;Yt.IntBE=g3;Yt.Float=rle;Yt.FloatBE=ile;Yt.Double=sle;Yt.DoubleBE=ale;Yt.Sequence=ole;Yt.Structure=cle;Yt.UnionDiscriminator=IP;Yt.UnionLayoutDiscriminator=lw;Yt.Union=DP;Yt.VariantLayout=fle;Yt.BitStructure=kP;Yt.BitField=r4;Yt.Boolean=ule;Yt.Blob=lle;Yt.CString=dle;Yt.UTF8=hle;Yt.Constant=ple;Yt.greedy=(t,e)=>new nle(t,e);Yt.offset=(t,e,n)=>new TP(t,e,n);Yt.u8=t=>new ef(1,t);Yt.u16=t=>new ef(2,t);Yt.u24=t=>new ef(3,t);Yt.u32=t=>new ef(4,t);Yt.u40=t=>new ef(5,t);Yt.u48=t=>new ef(6,t);Yt.nu64=t=>new Iqe(t);Yt.u16be=t=>new ku(2,t);Yt.u24be=t=>new ku(3,t);Yt.u32be=t=>new ku(4,t);Yt.u40be=t=>new ku(5,t);Yt.u48be=t=>new ku(6,t);Yt.nu64be=t=>new Dqe(t);Yt.s8=t=>new y5(1,t);Yt.s16=t=>new y5(2,t);Yt.s24=t=>new y5(3,t);Yt.s32=t=>new y5(4,t);Yt.s40=t=>new y5(5,t);Yt.s48=t=>new y5(6,t);Yt.ns64=t=>new kqe(t);Yt.s16be=t=>new g3(2,t);Yt.s24be=t=>new g3(3,t);Yt.s32be=t=>new g3(4,t);Yt.s40be=t=>new g3(5,t);Yt.s48be=t=>new g3(6,t);Yt.ns64be=t=>new Nqe(t);Yt.f32=t=>new rle(t);Yt.f32be=t=>new ile(t);Yt.f64=t=>new sle(t);Yt.f64be=t=>new ale(t);Yt.struct=(t,e,n)=>new cle(t,e,n);Yt.bits=(t,e,n)=>new kP(t,e,n);Yt.seq=(t,e,n)=>new ole(t,e,n);Yt.union=(t,e,n)=>new DP(t,e,n);Yt.unionLayoutDiscriminator=(t,e)=>new lw(t,e);Yt.blob=(t,e)=>new lle(t,e);Yt.cstr=t=>new dle(t);Yt.utf8=(t,e)=>new hle(t,e);Yt.const=(t,e)=>new ple(t,e);const Lqe=da(V_e);(function(t){var e=an&&an.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(t,"__esModule",{value:!0}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=Yt,r=Lqe,i=e(o3);var s=Yt;Object.defineProperty(t,"u8",{enumerable:!0,get:function(){return s.u8}}),Object.defineProperty(t,"i8",{enumerable:!0,get:function(){return s.s8}}),Object.defineProperty(t,"u16",{enumerable:!0,get:function(){return s.u16}}),Object.defineProperty(t,"i16",{enumerable:!0,get:function(){return s.s16}}),Object.defineProperty(t,"u32",{enumerable:!0,get:function(){return s.u32}}),Object.defineProperty(t,"i32",{enumerable:!0,get:function(){return s.s32}}),Object.defineProperty(t,"f32",{enumerable:!0,get:function(){return s.f32}}),Object.defineProperty(t,"f64",{enumerable:!0,get:function(){return s.f64}}),Object.defineProperty(t,"struct",{enumerable:!0,get:function(){return s.struct}});class a extends n.Layout{constructor(d,p,b){super(d,b),this.blob=(0,n.blob)(d),this.signed=p}decode(d,p=0){const b=new i.default(this.blob.decode(d,p),10,"le");return this.signed?b.fromTwos(this.span*8).clone():b}encode(d,p,b=0){return this.signed&&(d=d.toTwos(this.span*8)),this.blob.encode(d.toArrayLike(ze.Buffer,"le",this.span),p,b)}}function o(c){return new a(8,!1,c)}t.u64=o;function f(c){return new a(8,!0,c)}t.i64=f;function u(c){return new a(16,!1,c)}t.u128=u;function h(c){return new a(16,!0,c)}t.i128=h;function m(c){return new a(32,!1,c)}t.u256=m;function y(c){return new a(32,!0,c)}t.i256=y;class x extends n.Layout{constructor(d,p,b,g){super(d.span,g),this.layout=d,this.decoder=p,this.encoder=b}decode(d,p){return this.decoder(this.layout.decode(d,p))}encode(d,p,b){return this.layout.encode(this.encoder(d),p,b)}getSpan(d,p){return this.layout.getSpan(d,p)}}function w(c){return new x((0,n.blob)(32),d=>new r.PublicKey(d),d=>d.toBuffer(),c)}t.publicKey=w;class E extends n.Layout{constructor(d,p){super(-1,p),this.layout=d,this.discriminator=(0,n.u8)()}encode(d,p,b=0){return d==null?this.discriminator.encode(0,p,b):(this.discriminator.encode(1,p,b),this.layout.encode(d,p,b+1)+1)}decode(d,p=0){const b=this.discriminator.decode(d,p);if(b===0)return null;if(b===1)return this.layout.decode(d,p+1);throw new Error("Invalid option "+this.property)}getSpan(d,p=0){const b=this.discriminator.decode(d,p);if(b===0)return 1;if(b===1)return this.layout.getSpan(d,p+1)+1;throw new Error("Invalid option "+this.property)}}function I(c,d){return new E(c,d)}t.option=I;function T(c){return new x((0,n.u8)(),D,k,c)}t.bool=T;function D(c){if(c===0)return!1;if(c===1)return!0;throw new Error("Invalid bool: "+c)}function k(c){return c?1:0}function N(c,d){const p=(0,n.u32)("length"),b=(0,n.struct)([p,(0,n.seq)(c,(0,n.offset)(p,-p.span),"values")]);return new x(b,({values:g})=>g,g=>({values:g}),d)}t.vec=N;function R(c,d,p){const b=(0,n.struct)([o("tag"),d.replicate("data")]);function g({tag:M,data:S}){if(!M.eq(c))throw new Error("Invalid tag, expected: "+c.toString("hex")+", got: "+M.toString("hex"));return S}return new x(b,g,M=>({tag:c,data:M}),p)}t.tagged=R;function _(c){const d=(0,n.u32)("length"),p=(0,n.struct)([d,(0,n.blob)((0,n.offset)(d,-d.span),"data")]);return new x(p,({data:b})=>b,b=>({data:b}),c)}t.vecU8=_;function F(c){return new x(_(),d=>d.toString("utf-8"),d=>ze.Buffer.from(d,"utf-8"),c)}t.str=F;function L(c,d,p){const b=(0,n.union)(p??(0,n.u8)(),d);return c.forEach((g,M)=>b.addVariant(M,g,g.property)),b}t.rustEnum=L;function B(c,d,p){const b=(0,n.struct)([(0,n.seq)(c,d,"values")]);return new x(b,({values:g})=>g,g=>({values:g}),p)}t.array=B;class P extends n.Layout{constructor(d,p,b){super(d.span+p.span,b),this.keyLayout=d,this.valueLayout=p}decode(d,p){p=p||0;const b=this.keyLayout.decode(d,p),g=this.valueLayout.decode(d,p+this.keyLayout.getSpan(d,p));return[b,g]}encode(d,p,b){b=b||0;const g=this.keyLayout.encode(d[0],p,b),M=this.valueLayout.encode(d[1],p,b+g);return g+M}getSpan(d,p){return this.keyLayout.getSpan(d,p)+this.valueLayout.getSpan(d,p)}}function C(c,d,p){const b=(0,n.u32)("length"),g=(0,n.struct)([b,(0,n.seq)(new P(c,d),(0,n.offset)(b,-b.span),"values")]);return new x(g,({values:M})=>new Map(M),M=>({values:Array.from(M.entries())}),p)}t.map=C})(Xt);function ble(t,e){switch(e.type.kind){case"struct":return e.type.fields.map(n=>L6(t,n.type)).reduce((n,r)=>n+r,0);case"enum":{const n=e.type.variants.map(r=>r.fields?r.fields.map(i=>typeof i=="object"&&"name"in i?L6(t,i.type):L6(t,i)).reduce((i,s)=>i+s,0):0);return Math.max(...n)+1}case"alias":return L6(t,e.type.value)}}function L6(t,e){var n;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+L6(t,e.option);if("coption"in e)return 4+L6(t,e.coption);if("defined"in e){const r=((n=t.types)==null?void 0:n.filter(s=>s.name===e.defined))??[];if(r.length!==1)throw new Cqe(`Type not found: ${JSON.stringify(e)}`);let i=r[0];return ble(t,i)}if("array"in e){let r=e.array[0],i=e.array[1];return L6(t,r)*i}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}function Lb(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,n){return n===0?e.toLowerCase():e.toUpperCase()}).replace(/[\s\-_]+/g,"")}function Bqe(t){return t.charAt(0).toUpperCase()+t.slice(1)}var NP={exports:{}};const jqe=/[\p{Lu}]/u,Rqe=/[\p{Ll}]/u,wK=/^[\p{Lu}](?![\p{Lu}])/gu,mle=/([\p{Alpha}\p{N}_]|$)/u,yle=/[_.\- ]+/,_qe=new RegExp("^"+yle.source),MK=new RegExp(yle.source+mle.source,"gu"),AK=new RegExp("\\d+"+mle.source,"gu"),Oqe=(t,e,n)=>{let r=!1,i=!1,s=!1;for(let a=0;a<t.length;a++){const o=t[a];r&&jqe.test(o)?(t=t.slice(0,a)+"-"+t.slice(a),r=!1,s=i,i=!0,a++):i&&s&&Rqe.test(o)?(t=t.slice(0,a-1)+"-"+t.slice(a-1),s=i,i=!1,r=!0):(r=e(o)===o&&n(o)!==o,s=i,i=n(o)===o&&e(o)!==o)}return t},Fqe=(t,e)=>(wK.lastIndex=0,t.replace(wK,n=>e(n))),Pqe=(t,e)=>(MK.lastIndex=0,AK.lastIndex=0,t.replace(MK,(n,r)=>e(r)).replace(AK,n=>e(n))),gle=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");if(e={pascalCase:!1,preserveConsecutiveUppercase:!1,...e},Array.isArray(t)?t=t.map(s=>s.trim()).filter(s=>s.length).join("-"):t=t.trim(),t.length===0)return"";const n=e.locale===!1?s=>s.toLowerCase():s=>s.toLocaleLowerCase(e.locale),r=e.locale===!1?s=>s.toUpperCase():s=>s.toLocaleUpperCase(e.locale);return t.length===1?e.pascalCase?r(t):n(t):(t!==n(t)&&(t=Oqe(t,n,r)),t=t.replace(_qe,""),e.preserveConsecutiveUppercase?t=Fqe(t,n):t=n(t),e.pascalCase&&(t=r(t.charAt(0))+t.slice(1)),Pqe(t,r))};NP.exports=gle;NP.exports.default=gle;var zqe=NP.exports;const ni=hs(zqe);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Uqe=4,EK=0,SK=1,Wqe=2;function x3(t){let e=t.length;for(;--e>=0;)t[e]=0}const Hqe=0,xle=1,qqe=2,Gqe=3,Vqe=258,LP=29,og=256,Em=og+1+LP,Y2=30,BP=19,vle=2*Em+1,B6=15,YD=16,Yqe=7,jP=256,wle=16,Mle=17,Ale=18,ZB=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Tx=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Qqe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ele=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zqe=512,wf=new Array((Em+2)*2);x3(wf);const i4=new Array(Y2*2);x3(i4);const Sm=new Array(Zqe);x3(Sm);const Cm=new Array(Vqe-Gqe+1);x3(Cm);const RP=new Array(LP);x3(RP);const dw=new Array(Y2);x3(dw);function QD(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let Sle,Cle,Tle;function ZD(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const Ile=t=>t<256?Sm[t]:Sm[256+(t>>>7)],Tm=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},Zs=(t,e,n)=>{t.bi_valid>YD-n?(t.bi_buf|=e<<t.bi_valid&65535,Tm(t,t.bi_buf),t.bi_buf=e>>YD-t.bi_valid,t.bi_valid+=n-YD):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},v1=(t,e,n)=>{Zs(t,n[e*2],n[e*2+1])},Dle=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},Kqe=t=>{t.bi_valid===16?(Tm(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},$qe=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,f=e.stat_desc.max_length;let u,h,m,y,x,w,E=0;for(y=0;y<=B6;y++)t.bl_count[y]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<vle;u++)h=t.heap[u],y=n[n[h*2+1]*2+1]+1,y>f&&(y=f,E++),n[h*2+1]=y,!(h>r)&&(t.bl_count[y]++,x=0,h>=o&&(x=a[h-o]),w=n[h*2],t.opt_len+=w*(y+x),s&&(t.static_len+=w*(i[h*2+1]+x)));if(E!==0){do{for(y=f-1;t.bl_count[y]===0;)y--;t.bl_count[y]--,t.bl_count[y+1]+=2,t.bl_count[f]--,E-=2}while(E>0);for(y=f;y!==0;y--)for(h=t.bl_count[y];h!==0;)m=t.heap[--u],!(m>r)&&(n[m*2+1]!==y&&(t.opt_len+=(y-n[m*2+1])*n[m*2],n[m*2+1]=y),h--)}},kle=(t,e,n)=>{const r=new Array(B6+1);let i=0,s,a;for(s=1;s<=B6;s++)i=i+n[s-1]<<1,r[s]=i;for(a=0;a<=e;a++){let o=t[a*2+1];o!==0&&(t[a*2]=Dle(r[o]++,o))}},Xqe=()=>{let t,e,n,r,i;const s=new Array(B6+1);for(n=0,r=0;r<LP-1;r++)for(RP[r]=n,t=0;t<1<<ZB[r];t++)Cm[n++]=r;for(Cm[n-1]=r,i=0,r=0;r<16;r++)for(dw[r]=i,t=0;t<1<<Tx[r];t++)Sm[i++]=r;for(i>>=7;r<Y2;r++)for(dw[r]=i<<7,t=0;t<1<<Tx[r]-7;t++)Sm[256+i++]=r;for(e=0;e<=B6;e++)s[e]=0;for(t=0;t<=143;)wf[t*2+1]=8,t++,s[8]++;for(;t<=255;)wf[t*2+1]=9,t++,s[9]++;for(;t<=279;)wf[t*2+1]=7,t++,s[7]++;for(;t<=287;)wf[t*2+1]=8,t++,s[8]++;for(kle(wf,Em+1,s),t=0;t<Y2;t++)i4[t*2+1]=5,i4[t*2]=Dle(t,5);Sle=new QD(wf,ZB,og+1,Em,B6),Cle=new QD(i4,Tx,0,Y2,B6),Tle=new QD(new Array(0),Qqe,0,BP,Yqe)},Nle=t=>{let e;for(e=0;e<Em;e++)t.dyn_ltree[e*2]=0;for(e=0;e<Y2;e++)t.dyn_dtree[e*2]=0;for(e=0;e<BP;e++)t.bl_tree[e*2]=0;t.dyn_ltree[jP*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Lle=t=>{t.bi_valid>8?Tm(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},CK=(t,e,n,r)=>{const i=e*2,s=n*2;return t[i]<t[s]||t[i]===t[s]&&r[e]<=r[n]},KD=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&CK(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!CK(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},TK=(t,e,n)=>{let r,i,s=0,a,o;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+s++]&255,r+=(t.pending_buf[t.sym_buf+s++]&255)<<8,i=t.pending_buf[t.sym_buf+s++],r===0?v1(t,i,e):(a=Cm[i],v1(t,a+og+1,e),o=ZB[a],o!==0&&(i-=RP[a],Zs(t,i,o)),r--,a=Ile(r),v1(t,a,n),o=Tx[a],o!==0&&(r-=dw[a],Zs(t,r,o)));while(s<t.sym_next);v1(t,jP,e)},KB=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,s=e.stat_desc.elems;let a,o,f=-1,u;for(t.heap_len=0,t.heap_max=vle,a=0;a<s;a++)n[a*2]!==0?(t.heap[++t.heap_len]=f=a,t.depth[a]=0):n[a*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=f<2?++f:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=f,a=t.heap_len>>1;a>=1;a--)KD(t,n,a);u=s;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],KD(t,n,1),o=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=o,n[u*2]=n[a*2]+n[o*2],t.depth[u]=(t.depth[a]>=t.depth[o]?t.depth[a]:t.depth[o])+1,n[a*2+1]=n[o*2+1]=u,t.heap[1]=u++,KD(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],$qe(t,e),kle(n,f,t.bl_count)},IK=(t,e,n)=>{let r,i=-1,s,a=e[0*2+1],o=0,f=7,u=4;for(a===0&&(f=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)s=a,a=e[(r+1)*2+1],!(++o<f&&s===a)&&(o<u?t.bl_tree[s*2]+=o:s!==0?(s!==i&&t.bl_tree[s*2]++,t.bl_tree[wle*2]++):o<=10?t.bl_tree[Mle*2]++:t.bl_tree[Ale*2]++,o=0,i=s,a===0?(f=138,u=3):s===a?(f=6,u=3):(f=7,u=4))},DK=(t,e,n)=>{let r,i=-1,s,a=e[0*2+1],o=0,f=7,u=4;for(a===0&&(f=138,u=3),r=0;r<=n;r++)if(s=a,a=e[(r+1)*2+1],!(++o<f&&s===a)){if(o<u)do v1(t,s,t.bl_tree);while(--o!==0);else s!==0?(s!==i&&(v1(t,s,t.bl_tree),o--),v1(t,wle,t.bl_tree),Zs(t,o-3,2)):o<=10?(v1(t,Mle,t.bl_tree),Zs(t,o-3,3)):(v1(t,Ale,t.bl_tree),Zs(t,o-11,7));o=0,i=s,a===0?(f=138,u=3):s===a?(f=6,u=3):(f=7,u=4)}},Jqe=t=>{let e;for(IK(t,t.dyn_ltree,t.l_desc.max_code),IK(t,t.dyn_dtree,t.d_desc.max_code),KB(t,t.bl_desc),e=BP-1;e>=3&&t.bl_tree[Ele[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},eGe=(t,e,n,r)=>{let i;for(Zs(t,e-257,5),Zs(t,n-1,5),Zs(t,r-4,4),i=0;i<r;i++)Zs(t,t.bl_tree[Ele[i]*2+1],3);DK(t,t.dyn_ltree,e-1),DK(t,t.dyn_dtree,n-1)},tGe=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return EK;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return SK;for(n=32;n<og;n++)if(t.dyn_ltree[n*2]!==0)return SK;return EK};let kK=!1;const nGe=t=>{kK||(Xqe(),kK=!0),t.l_desc=new ZD(t.dyn_ltree,Sle),t.d_desc=new ZD(t.dyn_dtree,Cle),t.bl_desc=new ZD(t.bl_tree,Tle),t.bi_buf=0,t.bi_valid=0,Nle(t)},Ble=(t,e,n,r)=>{Zs(t,(Hqe<<1)+(r?1:0),3),Lle(t),Tm(t,n),Tm(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},rGe=t=>{Zs(t,xle<<1,3),v1(t,jP,wf),Kqe(t)},iGe=(t,e,n,r)=>{let i,s,a=0;t.level>0?(t.strm.data_type===Wqe&&(t.strm.data_type=tGe(t)),KB(t,t.l_desc),KB(t,t.d_desc),a=Jqe(t),i=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&e!==-1?Ble(t,e,n,r):t.strategy===Uqe||s===i?(Zs(t,(xle<<1)+(r?1:0),3),TK(t,wf,i4)):(Zs(t,(qqe<<1)+(r?1:0),3),eGe(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),TK(t,t.dyn_ltree,t.dyn_dtree)),Nle(t),r&&Lle(t)},sGe=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(Cm[n]+og+1)*2]++,t.dyn_dtree[Ile(e)*2]++),t.sym_next===t.sym_end);var aGe=nGe,oGe=Ble,cGe=iGe,fGe=sGe,uGe=rGe,lGe={_tr_init:aGe,_tr_stored_block:oGe,_tr_flush_block:cGe,_tr_tally:fGe,_tr_align:uGe};const dGe=(t,e,n,r)=>{let i=t&65535|0,s=t>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,s=s+i|0;while(--a);i%=65521,s%=65521}return i|s<<16|0};var Im=dGe;const hGe=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},pGe=new Uint32Array(hGe()),bGe=(t,e,n,r)=>{const i=pGe,s=r+n;t^=-1;for(let a=r;a<s;a++)t=t>>>8^i[(t^e[a])&255];return t^-1};var s0=bGe,t5={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},g5={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:mGe,_tr_stored_block:$B,_tr_flush_block:yGe,_tr_tally:sd,_tr_align:gGe}=lGe,{Z_NO_FLUSH:ad,Z_PARTIAL_FLUSH:xGe,Z_FULL_FLUSH:vGe,Z_FINISH:Io,Z_BLOCK:NK,Z_OK:T0,Z_STREAM_END:LK,Z_STREAM_ERROR:j1,Z_DATA_ERROR:wGe,Z_BUF_ERROR:$D,Z_DEFAULT_COMPRESSION:MGe,Z_FILTERED:AGe,Z_HUFFMAN_ONLY:K9,Z_RLE:EGe,Z_FIXED:SGe,Z_DEFAULT_STRATEGY:CGe,Z_UNKNOWN:TGe,Z_DEFLATED:sS}=g5,IGe=9,DGe=15,kGe=8,NGe=29,LGe=256,XB=LGe+1+NGe,BGe=30,jGe=19,RGe=2*XB+1,_Ge=15,Jn=3,Pl=258,R1=Pl+Jn+1,OGe=32,S8=42,_P=57,JB=69,ej=73,tj=91,nj=103,j6=113,Bb=666,Es=1,v3=2,n5=3,w3=4,FGe=3,R6=(t,e)=>(t.msg=t5[e],e),BK=t=>t*2-(t>4?9:0),il=t=>{let e=t.length;for(;--e>=0;)t[e]=0},PGe=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let zGe=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask,od=zGe;const wa=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},ja=(t,e)=>{yGe(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wa(t.strm)},br=(t,e)=>{t.pending_buf[t.pending++]=e},K3=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},rj=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=Im(t.adler,e,i,n):t.state.wrap===2&&(t.adler=s0(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},jle=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,s,a=t.prev_length,o=t.nice_match;const f=t.strstart>t.w_size-R1?t.strstart-(t.w_size-R1):0,u=t.window,h=t.w_mask,m=t.prev,y=t.strstart+Pl;let x=u[r+a-1],w=u[r+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(i=e,!(u[i+a]!==w||u[i+a-1]!==x||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<y);if(s=Pl-(y-r),r=y-Pl,s>a){if(t.match_start=e,a=s,s>=o)break;x=u[r+a-1],w=u[r+a]}}while((e=m[e&h])>f&&--n!==0);return a<=t.lookahead?a:t.lookahead},C8=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-R1)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),PGe(t),r+=e),t.strm.avail_in===0)break;if(n=rj(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=Jn)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=od(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=od(t,t.ins_h,t.window[i+Jn-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<Jn)););}while(t.lookahead<R1&&t.strm.avail_in!==0)},Rle=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,s,a=0,o=t.strm.avail_in;do{if(r=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s||(s=t.strm.avail_out-s,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>s&&(r=s),r<n&&(r===0&&e!==Io||e===ad||r!==i+t.strm.avail_in)))break;a=e===Io&&r===i+t.strm.avail_in?1:0,$B(t,0,0,a),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,wa(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(rj(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(a===0);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),a?w3:e!==ad&&e!==Io&&t.strm.avail_in===0&&t.strstart===t.block_start?v3:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(rj(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,n=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=n||(i||e===Io)&&e!==ad&&t.strm.avail_in===0&&i<=s)&&(r=i>s?s:i,a=e===Io&&t.strm.avail_in===0&&r===i?1:0,$B(t,t.block_start,r,a),t.block_start+=r,wa(t.strm)),a?n5:Es)},XD=(t,e)=>{let n,r;for(;;){if(t.lookahead<R1){if(C8(t),t.lookahead<R1&&e===ad)return Es;if(t.lookahead===0)break}if(n=0,t.lookahead>=Jn&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-R1&&(t.match_length=jle(t,n)),t.match_length>=Jn)if(r=sd(t,t.strstart-t.match_start,t.match_length-Jn),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Jn){t.match_length--;do t.strstart++,t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=od(t,t.ins_h,t.window[t.strstart+1]);else r=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=t.strstart<Jn-1?t.strstart:Jn-1,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},j5=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<R1){if(C8(t),t.lookahead<R1&&e===ad)return Es;if(t.lookahead===0)break}if(n=0,t.lookahead>=Jn&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=Jn-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-R1&&(t.match_length=jle(t,n),t.match_length<=5&&(t.strategy===AGe||t.match_length===Jn&&t.strstart-t.match_start>4096)&&(t.match_length=Jn-1)),t.prev_length>=Jn&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-Jn,r=sd(t,t.strstart-1-t.prev_match,t.prev_length-Jn),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=od(t,t.ins_h,t.window[t.strstart+Jn-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=Jn-1,t.strstart++,r&&(ja(t,!1),t.strm.avail_out===0))return Es}else if(t.match_available){if(r=sd(t,0,t.window[t.strstart-1]),r&&ja(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Es}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=sd(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<Jn-1?t.strstart:Jn-1,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},UGe=(t,e)=>{let n,r,i,s;const a=t.window;for(;;){if(t.lookahead<=Pl){if(C8(t),t.lookahead<=Pl&&e===ad)return Es;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=Jn&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){s=t.strstart+Pl;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<s);t.match_length=Pl-(s-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Jn?(n=sd(t,1,t.match_length-Jn),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=0,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3},WGe=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(C8(t),t.lookahead===0)){if(e===ad)return Es;break}if(t.match_length=0,n=sd(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(ja(t,!1),t.strm.avail_out===0))return Es}return t.insert=0,e===Io?(ja(t,!0),t.strm.avail_out===0?n5:w3):t.sym_next&&(ja(t,!1),t.strm.avail_out===0)?Es:v3};function zc(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const jb=[new zc(0,0,0,0,Rle),new zc(4,4,8,4,XD),new zc(4,5,16,8,XD),new zc(4,6,32,32,XD),new zc(4,4,16,16,j5),new zc(8,16,32,32,j5),new zc(8,16,128,128,j5),new zc(8,32,128,256,j5),new zc(32,128,258,1024,j5),new zc(32,258,258,4096,j5)],HGe=t=>{t.window_size=2*t.w_size,il(t.head),t.max_lazy_match=jb[t.level].max_lazy,t.good_match=jb[t.level].good_length,t.nice_match=jb[t.level].nice_length,t.max_chain_length=jb[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Jn-1,t.match_available=0,t.ins_h=0};function qGe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=sS,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(RGe*2),this.dyn_dtree=new Uint16Array((2*BGe+1)*2),this.bl_tree=new Uint16Array((2*jGe+1)*2),il(this.dyn_ltree),il(this.dyn_dtree),il(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_Ge+1),this.heap=new Uint16Array(2*XB+1),il(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*XB+1),il(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const cg=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==S8&&e.status!==_P&&e.status!==JB&&e.status!==ej&&e.status!==tj&&e.status!==nj&&e.status!==j6&&e.status!==Bb?1:0},_le=t=>{if(cg(t))return R6(t,j1);t.total_in=t.total_out=0,t.data_type=TGe;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?_P:e.wrap?S8:j6,t.adler=e.wrap===2?0:1,e.last_flush=-2,mGe(e),T0},Ole=t=>{const e=_le(t);return e===T0&&HGe(t.state),e},GGe=(t,e)=>cg(t)||t.state.wrap!==2?j1:(t.state.gzhead=e,T0),Fle=(t,e,n,r,i,s)=>{if(!t)return j1;let a=1;if(e===MGe&&(e=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>IGe||n!==sS||r<8||r>15||e<0||e>9||s<0||s>SGe||r===8&&a!==1)return R6(t,j1);r===8&&(r=9);const o=new qGe;return t.state=o,o.strm=t,o.status=S8,o.wrap=a,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+Jn-1)/Jn),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=e,o.strategy=s,o.method=n,Ole(t)},VGe=(t,e)=>Fle(t,e,sS,DGe,kGe,CGe),YGe=(t,e)=>{if(cg(t)||e>NK||e<0)return t?R6(t,j1):j1;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===Bb&&e!==Io)return R6(t,t.avail_out===0?$D:j1);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(wa(t),t.avail_out===0)return n.last_flush=-1,T0}else if(t.avail_in===0&&BK(e)<=BK(r)&&e!==Io)return R6(t,$D);if(n.status===Bb&&t.avail_in!==0)return R6(t,$D);if(n.status===S8&&n.wrap===0&&(n.status=j6),n.status===S8){let i=sS+(n.w_bits-8<<4)<<8,s=-1;if(n.strategy>=K9||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,i|=s<<6,n.strstart!==0&&(i|=OGe),i+=31-i%31,K3(n,i),n.strstart!==0&&(K3(n,t.adler>>>16),K3(n,t.adler&65535)),t.adler=1,n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(n.status===_P){if(t.adler=0,br(n,31),br(n,139),br(n,8),n.gzhead)br(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),br(n,n.gzhead.time&255),br(n,n.gzhead.time>>8&255),br(n,n.gzhead.time>>16&255),br(n,n.gzhead.time>>24&255),br(n,n.level===9?2:n.strategy>=K9||n.level<2?4:0),br(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(br(n,n.gzhead.extra.length&255),br(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=s0(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=JB;else if(br(n,0),br(n,0),br(n,0),br(n,0),br(n,0),br(n,n.level===9?2:n.strategy>=K9||n.level<2?4:0),br(n,FGe),n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(n.status===JB){if(n.gzhead.extra){let i=n.pending,s=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+s>n.pending_buf_size;){let o=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=o,wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0,s-=o}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending+=s,n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=ej}if(n.status===ej){if(n.gzhead.name){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0}n.gzindex<n.gzhead.name.length?s=n.gzhead.name.charCodeAt(n.gzindex++)&255:s=0,br(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=tj}if(n.status===tj){if(n.gzhead.comment){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i)),wa(t),n.pending!==0)return n.last_flush=-1,T0;i=0}n.gzindex<n.gzhead.comment.length?s=n.gzhead.comment.charCodeAt(n.gzindex++)&255:s=0,br(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=s0(t.adler,n.pending_buf,n.pending-i,i))}n.status=nj}if(n.status===nj){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(wa(t),n.pending!==0))return n.last_flush=-1,T0;br(n,t.adler&255),br(n,t.adler>>8&255),t.adler=0}if(n.status=j6,wa(t),n.pending!==0)return n.last_flush=-1,T0}if(t.avail_in!==0||n.lookahead!==0||e!==ad&&n.status!==Bb){let i=n.level===0?Rle(n,e):n.strategy===K9?WGe(n,e):n.strategy===EGe?UGe(n,e):jb[n.level].func(n,e);if((i===n5||i===w3)&&(n.status=Bb),i===Es||i===n5)return t.avail_out===0&&(n.last_flush=-1),T0;if(i===v3&&(e===xGe?gGe(n):e!==NK&&($B(n,0,0,!1),e===vGe&&(il(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),wa(t),t.avail_out===0))return n.last_flush=-1,T0}return e!==Io?T0:n.wrap<=0?LK:(n.wrap===2?(br(n,t.adler&255),br(n,t.adler>>8&255),br(n,t.adler>>16&255),br(n,t.adler>>24&255),br(n,t.total_in&255),br(n,t.total_in>>8&255),br(n,t.total_in>>16&255),br(n,t.total_in>>24&255)):(K3(n,t.adler>>>16),K3(n,t.adler&65535)),wa(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?T0:LK)},QGe=t=>{if(cg(t))return j1;const e=t.state.status;return t.state=null,e===j6?R6(t,wGe):T0},ZGe=(t,e)=>{let n=e.length;if(cg(t))return j1;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==S8||r.lookahead)return j1;if(i===1&&(t.adler=Im(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(il(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(e.subarray(n-r.w_size,n),0),e=f,n=r.w_size}const s=t.avail_in,a=t.next_in,o=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,C8(r);r.lookahead>=Jn;){let f=r.strstart,u=r.lookahead-(Jn-1);do r.ins_h=od(r,r.ins_h,r.window[f+Jn-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--u);r.strstart=f,r.lookahead=Jn-1,C8(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Jn-1,r.match_available=0,t.next_in=a,t.input=o,t.avail_in=s,r.wrap=i,T0};var KGe=VGe,$Ge=Fle,XGe=Ole,JGe=_le,eVe=GGe,tVe=YGe,nVe=QGe,rVe=ZGe,iVe="pako deflate (from Nodeca project)",s4={deflateInit:KGe,deflateInit2:$Ge,deflateReset:XGe,deflateResetKeep:JGe,deflateSetHeader:eVe,deflate:tVe,deflateEnd:nVe,deflateSetDictionary:rVe,deflateInfo:iVe};const sVe=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var aVe=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)sVe(n,r)&&(t[r]=n[r])}}return t},oVe=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,s=t.length;r<s;r++){let a=t[r];n.set(a,i),i+=a.length}return n},aS={assign:aVe,flattenChunks:oVe};let Ple=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ple=!1}const Dm=new Uint8Array(256);for(let t=0;t<256;t++)Dm[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Dm[254]=Dm[254]=1;var cVe=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,s,a=t.length,o=0;for(i=0;i<a;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(o),s=0,i=0;s<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[s++]=n:n<2048?(e[s++]=192|n>>>6,e[s++]=128|n&63):n<65536?(e[s++]=224|n>>>12,e[s++]=128|n>>>6&63,e[s++]=128|n&63):(e[s++]=240|n>>>18,e[s++]=128|n>>>12&63,e[s++]=128|n>>>6&63,e[s++]=128|n&63);return e};const fVe=(t,e)=>{if(e<65534&&t.subarray&&Ple)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var uVe=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const s=new Array(n*2);for(i=0,r=0;r<n;){let a=t[r++];if(a<128){s[i++]=a;continue}let o=Dm[a];if(o>4){s[i++]=65533,r+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&r<n;)a=a<<6|t[r++]&63,o--;if(o>1){s[i++]=65533;continue}a<65536?s[i++]=a:(a-=65536,s[i++]=55296|a>>10&1023,s[i++]=56320|a&1023)}return fVe(s,i)},lVe=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+Dm[t[n]]>e?n:e},km={string2buf:cVe,buf2string:uVe,utf8border:lVe};function dVe(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zle=dVe;const Ule=Object.prototype.toString,{Z_NO_FLUSH:hVe,Z_SYNC_FLUSH:pVe,Z_FULL_FLUSH:bVe,Z_FINISH:mVe,Z_OK:hw,Z_STREAM_END:yVe,Z_DEFAULT_COMPRESSION:gVe,Z_DEFAULT_STRATEGY:xVe,Z_DEFLATED:vVe}=g5;function fg(t){this.options=aS.assign({level:gVe,method:vVe,chunkSize:16384,windowBits:15,memLevel:8,strategy:xVe},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zle,this.strm.avail_out=0;let n=s4.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==hw)throw new Error(t5[n]);if(e.header&&s4.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=km.string2buf(e.dictionary):Ule.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=s4.deflateSetDictionary(this.strm,r),n!==hw)throw new Error(t5[n]);this._dict_set=!0}}fg.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,s;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?mVe:hVe,typeof t=="string"?n.input=km.string2buf(t):Ule.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(s===pVe||s===bVe)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=s4.deflate(n,s),i===yVe)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=s4.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===hw;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};fg.prototype.onData=function(t){this.chunks.push(t)};fg.prototype.onEnd=function(t){t===hw&&(this.result=aS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function OP(t,e){const n=new fg(e);if(n.push(t,!0),n.err)throw n.msg||t5[n.err];return n.result}function wVe(t,e){return e=e||{},e.raw=!0,OP(t,e)}function MVe(t,e){return e=e||{},e.gzip=!0,OP(t,e)}var AVe=fg,EVe=OP,SVe=wVe,CVe=MVe,TVe=g5,IVe={Deflate:AVe,deflate:EVe,deflateRaw:SVe,gzip:CVe,constants:TVe};const $9=16209,DVe=16191;var kVe=function(e,n){let r,i,s,a,o,f,u,h,m,y,x,w,E,I,T,D,k,N,R,_,F,L,B,P;const C=e.state;r=e.next_in,B=e.input,i=r+(e.avail_in-5),s=e.next_out,P=e.output,a=s-(n-e.avail_out),o=s+(e.avail_out-257),f=C.dmax,u=C.wsize,h=C.whave,m=C.wnext,y=C.window,x=C.hold,w=C.bits,E=C.lencode,I=C.distcode,T=(1<<C.lenbits)-1,D=(1<<C.distbits)-1;e:do{w<15&&(x+=B[r++]<<w,w+=8,x+=B[r++]<<w,w+=8),k=E[x&T];t:for(;;){if(N=k>>>24,x>>>=N,w-=N,N=k>>>16&255,N===0)P[s++]=k&65535;else if(N&16){R=k&65535,N&=15,N&&(w<N&&(x+=B[r++]<<w,w+=8),R+=x&(1<<N)-1,x>>>=N,w-=N),w<15&&(x+=B[r++]<<w,w+=8,x+=B[r++]<<w,w+=8),k=I[x&D];n:for(;;){if(N=k>>>24,x>>>=N,w-=N,N=k>>>16&255,N&16){if(_=k&65535,N&=15,w<N&&(x+=B[r++]<<w,w+=8,w<N&&(x+=B[r++]<<w,w+=8)),_+=x&(1<<N)-1,_>f){e.msg="invalid distance too far back",C.mode=$9;break e}if(x>>>=N,w-=N,N=s-a,_>N){if(N=_-N,N>h&&C.sane){e.msg="invalid distance too far back",C.mode=$9;break e}if(F=0,L=y,m===0){if(F+=u-N,N<R){R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}}else if(m<N){if(F+=u+m-N,N-=m,N<R){R-=N;do P[s++]=y[F++];while(--N);if(F=0,m<R){N=m,R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}}}else if(F+=m-N,N<R){R-=N;do P[s++]=y[F++];while(--N);F=s-_,L=P}for(;R>2;)P[s++]=L[F++],P[s++]=L[F++],P[s++]=L[F++],R-=3;R&&(P[s++]=L[F++],R>1&&(P[s++]=L[F++]))}else{F=s-_;do P[s++]=P[F++],P[s++]=P[F++],P[s++]=P[F++],R-=3;while(R>2);R&&(P[s++]=P[F++],R>1&&(P[s++]=P[F++]))}}else if(N&64){e.msg="invalid distance code",C.mode=$9;break e}else{k=I[(k&65535)+(x&(1<<N)-1)];continue n}break}}else if(N&64)if(N&32){C.mode=DVe;break e}else{e.msg="invalid literal/length code",C.mode=$9;break e}else{k=E[(k&65535)+(x&(1<<N)-1)];continue t}break}}while(r<i&&s<o);R=w>>3,r-=R,w-=R<<3,x&=(1<<w)-1,e.next_in=r,e.next_out=s,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=s<o?257+(o-s):257-(s-o),C.hold=x,C.bits=w};const R5=15,jK=852,RK=592,_K=0,JD=1,OK=2,NVe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),LVe=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),BVe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),jVe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),RVe=(t,e,n,r,i,s,a,o)=>{const f=o.bits;let u=0,h=0,m=0,y=0,x=0,w=0,E=0,I=0,T=0,D=0,k,N,R,_,F,L=null,B;const P=new Uint16Array(R5+1),C=new Uint16Array(R5+1);let c=null,d,p,b;for(u=0;u<=R5;u++)P[u]=0;for(h=0;h<r;h++)P[e[n+h]]++;for(x=f,y=R5;y>=1&&P[y]===0;y--);if(x>y&&(x=y),y===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,o.bits=1,0;for(m=1;m<y&&P[m]===0;m++);for(x<m&&(x=m),I=1,u=1;u<=R5;u++)if(I<<=1,I-=P[u],I<0)return-1;if(I>0&&(t===_K||y!==1))return-1;for(C[1]=0,u=1;u<R5;u++)C[u+1]=C[u]+P[u];for(h=0;h<r;h++)e[n+h]!==0&&(a[C[e[n+h]]++]=h);if(t===_K?(L=c=a,B=20):t===JD?(L=NVe,c=LVe,B=257):(L=BVe,c=jVe,B=0),D=0,h=0,u=m,F=s,w=x,E=0,R=-1,T=1<<x,_=T-1,t===JD&&T>jK||t===OK&&T>RK)return 1;for(;;){d=u-E,a[h]+1<B?(p=0,b=a[h]):a[h]>=B?(p=c[a[h]-B],b=L[a[h]-B]):(p=96,b=0),k=1<<u-E,N=1<<w,m=N;do N-=k,i[F+(D>>E)+N]=d<<24|p<<16|b|0;while(N!==0);for(k=1<<u-1;D&k;)k>>=1;if(k!==0?(D&=k-1,D+=k):D=0,h++,--P[u]===0){if(u===y)break;u=e[n+a[h]]}if(u>x&&(D&_)!==R){for(E===0&&(E=x),F+=m,w=u-E,I=1<<w;w+E<y&&(I-=P[w+E],!(I<=0));)w++,I<<=1;if(T+=1<<w,t===JD&&T>jK||t===OK&&T>RK)return 1;R=D&_,i[R]=x<<24|w<<16|F-s|0}}return D!==0&&(i[F+D]=u-E<<24|64<<16|0),o.bits=x,0};var a4=RVe;const _Ve=0,Wle=1,Hle=2,{Z_FINISH:FK,Z_BLOCK:OVe,Z_TREES:X9,Z_OK:r5,Z_STREAM_END:FVe,Z_NEED_DICT:PVe,Z_STREAM_ERROR:Go,Z_DATA_ERROR:qle,Z_MEM_ERROR:Gle,Z_BUF_ERROR:zVe,Z_DEFLATED:PK}=g5,oS=16180,zK=16181,UK=16182,WK=16183,HK=16184,qK=16185,GK=16186,VK=16187,YK=16188,QK=16189,pw=16190,ff=16191,ek=16192,ZK=16193,tk=16194,KK=16195,$K=16196,XK=16197,JK=16198,J9=16199,e7=16200,e$=16201,t$=16202,n$=16203,r$=16204,i$=16205,nk=16206,s$=16207,a$=16208,ti=16209,Vle=16210,Yle=16211,UVe=852,WVe=592,HVe=15,qVe=HVe,o$=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function GVe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const x5=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<oS||e.mode>Yle?1:0},Qle=t=>{if(x5(t))return Go;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=oS,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(UVe),e.distcode=e.distdyn=new Int32Array(WVe),e.sane=1,e.back=-1,r5},Zle=t=>{if(x5(t))return Go;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Qle(t)},Kle=(t,e)=>{let n;if(x5(t))return Go;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Go:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,Zle(t))},$le=(t,e)=>{if(!t)return Go;const n=new GVe;t.state=n,n.strm=t,n.window=null,n.mode=oS;const r=Kle(t,e);return r!==r5&&(t.state=null),r},VVe=t=>$le(t,qVe);let c$=!0,rk,ik;const YVe=t=>{if(c$){rk=new Int32Array(512),ik=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(a4(Wle,t.lens,0,288,rk,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;a4(Hle,t.lens,0,32,ik,0,t.work,{bits:5}),c$=!1}t.lencode=rk,t.lenbits=9,t.distcode=ik,t.distbits=5},Xle=(t,e,n,r)=>{let i;const s=t.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(e.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),s.window.set(e.subarray(n-r,n-r+i),s.wnext),r-=i,r?(s.window.set(e.subarray(n-r,n),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},QVe=(t,e)=>{let n,r,i,s,a,o,f,u,h,m,y,x,w,E,I=0,T,D,k,N,R,_,F,L;const B=new Uint8Array(4);let P,C;const c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(x5(t)||!t.output||!t.input&&t.avail_in!==0)return Go;n=t.state,n.mode===ff&&(n.mode=ek),a=t.next_out,i=t.output,f=t.avail_out,s=t.next_in,r=t.input,o=t.avail_in,u=n.hold,h=n.bits,m=o,y=f,L=r5;e:for(;;)switch(n.mode){case oS:if(n.wrap===0){n.mode=ek;break}for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0),u=0,h=0,n.mode=zK;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=ti;break}if((u&15)!==PK){t.msg="unknown compression method",n.mode=ti;break}if(u>>>=4,h-=4,F=(u&15)+8,n.wbits===0&&(n.wbits=F),F>15||F>n.wbits){t.msg="invalid window size",n.mode=ti;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?QK:ff,u=0,h=0;break;case zK:for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.flags=u,(n.flags&255)!==PK){t.msg="unknown compression method",n.mode=ti;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=ti;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0,n.mode=UK;case UK:for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,B[2]=u>>>16&255,B[3]=u>>>24&255,n.check=s0(n.check,B,4,0)),u=0,h=0,n.mode=WK;case WK:for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0,n.mode=HK;case HK:if(n.flags&1024){for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(B[0]=u&255,B[1]=u>>>8&255,n.check=s0(n.check,B,2,0)),u=0,h=0}else n.head&&(n.head.extra=null);n.mode=qK;case qK:if(n.flags&1024&&(x=n.length,x>o&&(x=o),x&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(s,s+x),F)),n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,n.length-=x),n.length))break e;n.length=0,n.mode=GK;case GK:if(n.flags&2048){if(o===0)break e;x=0;do F=r[s+x++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F));while(F&&x<o);if(n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,F)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=VK;case VK:if(n.flags&4096){if(o===0)break e;x=0;do F=r[s+x++],n.head&&F&&n.length<65536&&(n.head.comment+=String.fromCharCode(F));while(F&&x<o);if(n.flags&512&&n.wrap&4&&(n.check=s0(n.check,r,x,s)),o-=x,s+=x,F)break e}else n.head&&(n.head.comment=null);n.mode=YK;case YK:if(n.flags&512){for(;h<16;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=ti;break}u=0,h=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=ff;break;case QK:for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}t.adler=n.check=o$(u),u=0,h=0,n.mode=pw;case pw:if(n.havedict===0)return t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,PVe;t.adler=n.check=1,n.mode=ff;case ff:if(e===OVe||e===X9)break e;case ek:if(n.last){u>>>=h&7,h-=h&7,n.mode=nk;break}for(;h<3;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}switch(n.last=u&1,u>>>=1,h-=1,u&3){case 0:n.mode=ZK;break;case 1:if(YVe(n),n.mode=J9,e===X9){u>>>=2,h-=2;break e}break;case 2:n.mode=$K;break;case 3:t.msg="invalid block type",n.mode=ti}u>>>=2,h-=2;break;case ZK:for(u>>>=h&7,h-=h&7;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=ti;break}if(n.length=u&65535,u=0,h=0,n.mode=tk,e===X9)break e;case tk:n.mode=KK;case KK:if(x=n.length,x){if(x>o&&(x=o),x>f&&(x=f),x===0)break e;i.set(r.subarray(s,s+x),a),o-=x,s+=x,f-=x,a+=x,n.length-=x;break}n.mode=ff;break;case $K:for(;h<14;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.nlen=(u&31)+257,u>>>=5,h-=5,n.ndist=(u&31)+1,u>>>=5,h-=5,n.ncode=(u&15)+4,u>>>=4,h-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ti;break}n.have=0,n.mode=XK;case XK:for(;n.have<n.ncode;){for(;h<3;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.lens[c[n.have++]]=u&7,u>>>=3,h-=3}for(;n.have<19;)n.lens[c[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,P={bits:n.lenbits},L=a4(_Ve,n.lens,0,19,n.lencode,0,n.work,P),n.lenbits=P.bits,L){t.msg="invalid code lengths set",n.mode=ti;break}n.have=0,n.mode=JK;case JK:for(;n.have<n.nlen+n.ndist;){for(;I=n.lencode[u&(1<<n.lenbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(k<16)u>>>=T,h-=T,n.lens[n.have++]=k;else{if(k===16){for(C=T+2;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(u>>>=T,h-=T,n.have===0){t.msg="invalid bit length repeat",n.mode=ti;break}F=n.lens[n.have-1],x=3+(u&3),u>>>=2,h-=2}else if(k===17){for(C=T+3;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=T,h-=T,F=0,x=3+(u&7),u>>>=3,h-=3}else{for(C=T+7;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=T,h-=T,F=0,x=11+(u&127),u>>>=7,h-=7}if(n.have+x>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ti;break}for(;x--;)n.lens[n.have++]=F}}if(n.mode===ti)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=ti;break}if(n.lenbits=9,P={bits:n.lenbits},L=a4(Wle,n.lens,0,n.nlen,n.lencode,0,n.work,P),n.lenbits=P.bits,L){t.msg="invalid literal/lengths set",n.mode=ti;break}if(n.distbits=6,n.distcode=n.distdyn,P={bits:n.distbits},L=a4(Hle,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,P),n.distbits=P.bits,L){t.msg="invalid distances set",n.mode=ti;break}if(n.mode=J9,e===X9)break e;case J9:n.mode=e7;case e7:if(o>=6&&f>=258){t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,kVe(t,y),a=t.next_out,i=t.output,f=t.avail_out,s=t.next_in,r=t.input,o=t.avail_in,u=n.hold,h=n.bits,n.mode===ff&&(n.back=-1);break}for(n.back=0;I=n.lencode[u&(1<<n.lenbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(D&&!(D&240)){for(N=T,R=D,_=k;I=n.lencode[_+((u&(1<<N+R)-1)>>N)],T=I>>>24,D=I>>>16&255,k=I&65535,!(N+T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=N,h-=N,n.back+=N}if(u>>>=T,h-=T,n.back+=T,n.length=k,D===0){n.mode=i$;break}if(D&32){n.back=-1,n.mode=ff;break}if(D&64){t.msg="invalid literal/length code",n.mode=ti;break}n.extra=D&15,n.mode=e$;case e$:if(n.extra){for(C=n.extra;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,h-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=t$;case t$:for(;I=n.distcode[u&(1<<n.distbits)-1],T=I>>>24,D=I>>>16&255,k=I&65535,!(T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(!(D&240)){for(N=T,R=D,_=k;I=n.distcode[_+((u&(1<<N+R)-1)>>N)],T=I>>>24,D=I>>>16&255,k=I&65535,!(N+T<=h);){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}u>>>=N,h-=N,n.back+=N}if(u>>>=T,h-=T,n.back+=T,D&64){t.msg="invalid distance code",n.mode=ti;break}n.offset=k,n.extra=D&15,n.mode=n$;case n$:if(n.extra){for(C=n.extra;h<C;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,h-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ti;break}n.mode=r$;case r$:if(f===0)break e;if(x=y-f,n.offset>x){if(x=n.offset-x,x>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ti;break}x>n.wnext?(x-=n.wnext,w=n.wsize-x):w=n.wnext-x,x>n.length&&(x=n.length),E=n.window}else E=i,w=a-n.offset,x=n.length;x>f&&(x=f),f-=x,n.length-=x;do i[a++]=E[w++];while(--x);n.length===0&&(n.mode=e7);break;case i$:if(f===0)break e;i[a++]=n.length,f--,n.mode=e7;break;case nk:if(n.wrap){for(;h<32;){if(o===0)break e;o--,u|=r[s++]<<h,h+=8}if(y-=f,t.total_out+=y,n.total+=y,n.wrap&4&&y&&(t.adler=n.check=n.flags?s0(n.check,i,y,a-y):Im(n.check,i,y,a-y)),y=f,n.wrap&4&&(n.flags?u:o$(u))!==n.check){t.msg="incorrect data check",n.mode=ti;break}u=0,h=0}n.mode=s$;case s$:if(n.wrap&&n.flags){for(;h<32;){if(o===0)break e;o--,u+=r[s++]<<h,h+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=ti;break}u=0,h=0}n.mode=a$;case a$:L=FVe;break e;case ti:L=qle;break e;case Vle:return Gle;case Yle:default:return Go}return t.next_out=a,t.avail_out=f,t.next_in=s,t.avail_in=o,n.hold=u,n.bits=h,(n.wsize||y!==t.avail_out&&n.mode<ti&&(n.mode<nk||e!==FK))&&Xle(t,t.output,t.next_out,y-t.avail_out),m-=t.avail_in,y-=t.avail_out,t.total_in+=m,t.total_out+=y,n.total+=y,n.wrap&4&&y&&(t.adler=n.check=n.flags?s0(n.check,i,y,t.next_out-y):Im(n.check,i,y,t.next_out-y)),t.data_type=n.bits+(n.last?64:0)+(n.mode===ff?128:0)+(n.mode===J9||n.mode===tk?256:0),(m===0&&y===0||e===FK)&&L===r5&&(L=zVe),L},ZVe=t=>{if(x5(t))return Go;let e=t.state;return e.window&&(e.window=null),t.state=null,r5},KVe=(t,e)=>{if(x5(t))return Go;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,r5):Go},$Ve=(t,e)=>{const n=e.length;let r,i,s;return x5(t)||(r=t.state,r.wrap!==0&&r.mode!==pw)?Go:r.mode===pw&&(i=1,i=Im(i,e,n,0),i!==r.check)?qle:(s=Xle(t,e,n,n),s?(r.mode=Vle,Gle):(r.havedict=1,r5))};var XVe=Zle,JVe=Kle,eYe=Qle,tYe=VVe,nYe=$le,rYe=QVe,iYe=ZVe,sYe=KVe,aYe=$Ve,oYe="pako inflate (from Nodeca project)",Mf={inflateReset:XVe,inflateReset2:JVe,inflateResetKeep:eYe,inflateInit:tYe,inflateInit2:nYe,inflate:rYe,inflateEnd:iYe,inflateGetHeader:sYe,inflateSetDictionary:aYe,inflateInfo:oYe};function cYe(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var fYe=cYe;const Jle=Object.prototype.toString,{Z_NO_FLUSH:uYe,Z_FINISH:lYe,Z_OK:Nm,Z_STREAM_END:sk,Z_NEED_DICT:ak,Z_STREAM_ERROR:dYe,Z_DATA_ERROR:f$,Z_MEM_ERROR:hYe}=g5;function ug(t){this.options=aS.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zle,this.strm.avail_out=0;let n=Mf.inflateInit2(this.strm,e.windowBits);if(n!==Nm)throw new Error(t5[n]);if(this.header=new fYe,Mf.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=km.string2buf(e.dictionary):Jle.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Mf.inflateSetDictionary(this.strm,e.dictionary),n!==Nm)))throw new Error(t5[n])}ug.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let s,a,o;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?lYe:uYe,Jle.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),s=Mf.inflate(n,a),s===ak&&i&&(s=Mf.inflateSetDictionary(n,i),s===Nm?s=Mf.inflate(n,a):s===f$&&(s=ak));n.avail_in>0&&s===sk&&n.state.wrap>0&&t[n.next_in]!==0;)Mf.inflateReset(n),s=Mf.inflate(n,a);switch(s){case dYe:case f$:case ak:case hYe:return this.onEnd(s),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(n.avail_out===0||s===sk))if(this.options.to==="string"){let f=km.utf8border(n.output,n.next_out),u=n.next_out-f,h=km.buf2string(n.output,f);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(f,f+u),0),this.onData(h)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===Nm&&o===0)){if(s===sk)return s=Mf.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};ug.prototype.onData=function(t){this.chunks.push(t)};ug.prototype.onEnd=function(t){t===Nm&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=aS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function FP(t,e){const n=new ug(e);if(n.push(t),n.err)throw n.msg||t5[n.err];return n.result}function pYe(t,e){return e=e||{},e.raw=!0,FP(t,e)}var bYe=ug,mYe=FP,yYe=pYe,gYe=FP,xYe=g5,vYe={Inflate:bYe,inflate:mYe,inflateRaw:yYe,ungzip:gYe,constants:xYe};const{Deflate:wYe,deflate:MYe,deflateRaw:AYe,gzip:EYe}=IVe,{Inflate:SYe,inflate:CYe,inflateRaw:TYe,ungzip:IYe}=vYe;var ede=wYe,tde=MYe,nde=AYe,rde=EYe,ide=SYe,PP=CYe,sde=TYe,ade=IYe,ode=g5,DYe={Deflate:ede,deflate:tde,deflateRaw:nde,gzip:rde,Inflate:ide,inflate:PP,inflateRaw:sde,ungzip:ade,constants:ode};const $ft=Object.freeze(Object.defineProperty({__proto__:null,Deflate:ede,Inflate:ide,constants:ode,default:DYe,deflate:tde,deflateRaw:nde,gzip:rde,inflate:PP,inflateRaw:sde,ungzip:ade},Symbol.toStringTag,{value:"Module"}));function kYe(t,e){return Array.apply(0,new Array(Math.ceil(t.length/e))).map((n,r)=>t.slice(r*e,(r+1)*e))}const $3=t=>"version"in t;function NYe(t){return t.reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"0x")}function LYe(t){t.indexOf("0x")===0&&(t=t.substr(2)),t.length%2===1&&(t="0"+t);let e=t.match(/.{2}/g);return e===null?ve.Buffer.from([]):ve.Buffer.from(e.map(n=>parseInt(n,16)))}var BYe=Object.freeze({__proto__:null,encode:NYe,decode:LYe});function cde(t){return new TextDecoder("utf-8").decode(t)}function fde(t){return new TextEncoder().encode(t)}var jYe=Object.freeze({__proto__:null,decode:cde,encode:fde});function ij(t){return pi.encode(t)}function RYe(t){return pi.decode(t)}var _Ye=Object.freeze({__proto__:null,encode:ij,decode:RYe});function sj(t){return t.toString("base64")}function zP(t){return ve.Buffer.from(t,"base64")}var OYe=Object.freeze({__proto__:null,encode:sj,decode:zP}),FYe=Object.freeze({__proto__:null,hex:BYe,utf8:jYe,bs58:_Ye,base64:OYe});function ude(t){const e=new Map;return t.errors&&t.errors.forEach(n=>{var r;let i=(r=n.msg)!==null&&r!==void 0?r:n.name;e.set(n.code,i)}),e}function PYe(t,...e){if(t.args.length!=e.length)throw new Error("Invalid argument length");const n={};let r=0;return t.args.forEach(i=>{n[i.name]=e[r],r+=1}),n}function lde(t,e={}){t.forEach(n=>{if("accounts"in n)lde(n.accounts,e[n.name]);else if(e[n.name]===void 0)throw new Error(`Invalid arguments: ${n.name} not provided.`)})}function Ra(t){return t instanceof Fe?t:new Fe(t)}class zYe extends TypeError{constructor(e,n){let r;const{message:i,...s}=e,{path:a}=e,o=a.length===0?i:"At path: "+a.join(".")+" -- "+i;super(o),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>{var f;return(f=r)!=null?f:r=[e,...n()]}}}function UYe(t){return Q2(t)&&typeof t[Symbol.iterator]=="function"}function Q2(t){return typeof t=="object"&&t!=null}function Ad(t){return typeof t=="string"?JSON.stringify(t):""+t}function WYe(t){const{done:e,value:n}=t.next();return e?void 0:n}function HYe(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t=="string"&&(t={message:t});const{path:i,branch:s}=e,{type:a}=n,{refinement:o,message:f="Expected a value of type `"+a+"`"+(o?" with refinement `"+o+"`":"")+", but received: `"+Ad(r)+"`"}=t;return{value:r,type:a,refinement:o,key:i[i.length-1],path:i,branch:s,...t,message:f}}function*u$(t,e,n,r){UYe(t)||(t=[t]);for(const i of t){const s=HYe(i,e,n,r);s&&(yield s)}}function*UP(t,e,n){n===void 0&&(n={});const{path:r=[],branch:i=[t],coerce:s=!1,mask:a=!1}=n,o={path:r,branch:i};if(s&&(t=e.coercer(t,o),a&&e.type!=="type"&&Q2(e.schema)&&Q2(t)&&!Array.isArray(t)))for(const u in t)e.schema[u]===void 0&&delete t[u];let f=!0;for(const u of e.validator(t,o))f=!1,yield[u,void 0];for(let[u,h,m]of e.entries(t,o)){const y=UP(h,m,{path:u===void 0?r:[...r,u],branch:u===void 0?i:[...i,h],coerce:s,mask:a});for(const x of y)x[0]?(f=!1,yield[x[0],void 0]):s&&(h=x[1],u===void 0?t=h:t instanceof Map?t.set(u,h):t instanceof Set?t.add(h):Q2(t)&&(t[u]=h))}if(f)for(const u of e.refiner(t,o))f=!1,yield[u,void 0];f&&(yield[void 0,t])}class Pd{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:n,schema:r,validator:i,refiner:s,coercer:a=f=>f,entries:o=function*(){}}=e;this.type=n,this.schema=r,this.entries=o,this.coercer=a,i?this.validator=(f,u)=>{const h=i(f,u);return u$(h,u,this,f)}:this.validator=()=>[],s?this.refiner=(f,u)=>{const h=s(f,u);return u$(h,u,this,f)}:this.refiner=()=>[]}assert(e){return qYe(e,this)}create(e){return WP(e,this)}is(e){return dde(e,this)}mask(e){return GYe(e,this)}validate(e,n){return n===void 0&&(n={}),lg(e,this,n)}}function qYe(t,e){const n=lg(t,e);if(n[0])throw n[0]}function WP(t,e){const n=lg(t,e,{coerce:!0});if(n[0])throw n[0];return n[1]}function GYe(t,e){const n=lg(t,e,{coerce:!0,mask:!0});if(n[0])throw n[0];return n[1]}function dde(t,e){return!lg(t,e)[0]}function lg(t,e,n){n===void 0&&(n={});const r=UP(t,e,n),i=WYe(r);return i[0]?[new zYe(i[0],function*(){for(const a of r)a[0]&&(yield a[0])}),void 0]:[void 0,i[1]]}function dg(t,e){return new Pd({type:t,schema:null,validator:e})}function VYe(){return dg("any",()=>!0)}function ok(t){return new Pd({type:"array",schema:t,*entries(e){if(t&&Array.isArray(e))for(const[n,r]of e.entries())yield[n,r,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+Ad(e)}})}function YYe(){return dg("boolean",t=>typeof t=="boolean")}function l$(t){const e=Ad(t);return new Pd({type:"literal",schema:t,validator(n){return n===t||"Expected the literal `"+e+"`, but received: "+Ad(n)}})}function t7(t){return new Pd({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}function Ix(){return dg("number",t=>typeof t=="number"&&!isNaN(t)||"Expected a number, but received: "+Ad(t))}function Dx(t){return new Pd({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function _6(){return dg("string",t=>typeof t=="string"||"Expected a string, but received: "+Ad(t))}function cd(t){const e=Object.keys(t);return new Pd({type:"type",schema:t,*entries(n){if(Q2(n))for(const r of e)yield[r,n[r],t[r]]},validator(n){return Q2(n)||"Expected an object, but received: "+Ad(n)}})}function hde(t){const e=t.map(n=>n.type).join(" | ");return new Pd({type:"union",schema:null,coercer(n,r){return(t.find(s=>{const[a]=s.validate(n,{coerce:!0});return!a})||HP()).coercer(n,r)},validator(n,r){const i=[];for(const s of t){const[...a]=UP(n,s,r),[o]=a;if(o[0])for(const[f]of a)f&&i.push(f);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+Ad(n),...i]}})}function HP(){return dg("unknown",()=>!0)}function QYe(t,e,n){return new Pd({...t,coercer:(r,i)=>dde(r,e)?t.coercer(n(r,i),i):t.coercer(r,i)})}async function ZYe(t,e,n,r){t=Ra(t),r||(r=bw());const i=new yn;if(i.add(new cr({programId:t,keys:e??[],data:n})),r.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");return await r.sendAndConfirm(i,[])}const d$=99;async function KYe(t,e,n){return(await qP(t,e,n)).map(i=>i?{publicKey:i.publicKey,account:i.account}:null)}async function qP(t,e,n){if(e.length<=d$)return await h$(t,e,n);{const r=kYe(e,d$);return(await Promise.all(r.map(s=>h$(t,s,n)))).flat()}}async function h$(t,e,n){const r=n??t.commitment,{value:i,context:s}=await t.getMultipleAccountsInfoAndContext(e,r);return i.map((o,f)=>o===null?null:{publicKey:e[f],account:o,context:s})}async function pde(t,e,n,r,i){var s;n&&n.length>0&&e.sign(...n);const a=e._compile(),o=a.serialize(),u=e._serialize(o).toString("base64"),h={encoding:"base64",commitment:r??t.commitment};if(i){const w=(Array.isArray(i)?i:a.nonProgramIds()).map(E=>E.toBase58());h.accounts={encoding:"base64",addresses:w}}n&&(h.sigVerify=!0);const m=[u,h],y=await t._rpcRequest("simulateTransaction",m),x=WP(y,eQe);if("error"in x){let w;if("data"in x.error&&(w=(s=x.error.data)===null||s===void 0?void 0:s.logs,w&&Array.isArray(w))){const E=`
116
116
  `,I=E+w.join(E);console.error(x.error.message,I)}throw new Md("failed to simulate transaction: "+x.error.message,w)}return x.result}function $Ye(t){return QYe(bde(t),XYe,e=>"error"in e?e:{...e,result:WP(e.result,t)})}const XYe=bde(HP());function bde(t){return hde([cd({jsonrpc:l$("2.0"),id:_6(),result:t}),cd({jsonrpc:l$("2.0"),id:_6(),error:cd({code:HP(),message:_6(),data:Dx(VYe())})})])}function JYe(t){return $Ye(cd({context:cd({slot:Ix()}),value:t}))}const eQe=JYe(cd({err:t7(hde([cd({}),_6()])),logs:t7(ok(_6())),accounts:Dx(t7(ok(t7(cd({executable:YYe(),owner:_6(),lamports:Ix(),data:ok(_6()),rentEpoch:Dx(Ix())}))))),unitsConsumed:Dx(Ix())}));var tQe=Object.freeze({__proto__:null,invoke:ZYe,getMultipleAccounts:KYe,getMultipleAccountsAndContext:qP,simulateTransaction:pde});class nQe{constructor(e,n,r){this.connection=e,this.wallet=n,this.opts=r,this.publicKey=n==null?void 0:n.publicKey}static defaultOptions(){return{preflightCommitment:"processed",commitment:"processed"}}static local(e,n){throw new Error("Provider local is not available on browser.")}static env(){throw new Error("Provider env is not available on browser.")}async sendAndConfirm(e,n,r){var i,s,a,o;if(r===void 0&&(r=this.opts),$3(e))n&&e.sign(n);else if(e.feePayer=(i=e.feePayer)!==null&&i!==void 0?i:this.wallet.publicKey,e.recentBlockhash=(await this.connection.getLatestBlockhash(r.preflightCommitment)).blockhash,n)for(const u of n)e.partialSign(u);e=await this.wallet.signTransaction(e);const f=e.serialize();try{return await p$(this.connection,f,r)}catch(u){if(u instanceof aj){const h=ij($3(e)?((s=e.signatures)===null||s===void 0?void 0:s[0])||new Uint8Array:(a=e.signature)!==null&&a!==void 0?a:new Uint8Array),m=await this.connection.getTransaction(h,{commitment:"confirmed"});if(m){const y=(o=m.meta)===null||o===void 0?void 0:o.logMessages;throw y?new Md(u.message,y):u}else throw u}else throw u}}async sendAll(e,n){var r,i,s;n===void 0&&(n=this.opts);const a=(await this.connection.getLatestBlockhash(n.preflightCommitment)).blockhash;let o=e.map(h=>{var m,y;if($3(h.tx)){let x=h.tx;return h.signers&&x.sign(h.signers),x}else{let x=h.tx,w=(m=h.signers)!==null&&m!==void 0?m:[];return x.feePayer=(y=x.feePayer)!==null&&y!==void 0?y:this.wallet.publicKey,x.recentBlockhash=a,w.forEach(E=>{x.partialSign(E)}),x}});const f=await this.wallet.signAllTransactions(o),u=[];for(let h=0;h<o.length;h+=1){const m=f[h],y=m.serialize();try{u.push(await p$(this.connection,y,n))}catch(x){if(x instanceof aj){const w=ij($3(m)?((r=m.signatures)===null||r===void 0?void 0:r[0])||new Uint8Array:(i=m.signature)!==null&&i!==void 0?i:new Uint8Array),E=await this.connection.getTransaction(w,{commitment:"confirmed"});if(E){const I=(s=E.meta)===null||s===void 0?void 0:s.logMessages;throw I?new Md(x.message,I):x}else throw x}else throw x}}return u}async simulate(e,n,r,i){let s=(await this.connection.getLatestBlockhash(r??this.connection.commitment)).blockhash,a;if($3(e)?(n&&(e.sign(n),e=await this.wallet.signTransaction(e)),a=await this.connection.simulateTransaction(e,{commitment:r})):(e.feePayer=e.feePayer||this.wallet.publicKey,e.recentBlockhash=s,n&&(e=await this.wallet.signTransaction(e)),a=await pde(this.connection,e,n,r,i)),a.value.err)throw new rQe(a.value);return a.value}}class rQe extends Error{constructor(e,n){super(n),this.simulationResponse=e}}async function p$(t,e,n){const r=n&&{skipPreflight:n.skipPreflight,preflightCommitment:n.preflightCommitment||n.commitment},i=await t.sendRawTransaction(e,r),s=(await t.confirmTransaction(i,n&&n.commitment)).value;if(s.err)throw new aj(`Raw transaction ${i} failed (${JSON.stringify(s)})`);return i}class aj extends Error{constructor(e){super(e)}}function bw(){return nQe.local()}const iQe=new Set(["anchor-deprecated-state","debug-logs"]),mde=new Map;function sQe(t){if(!iQe.has(t))throw new Error("Invalid feature");mde.set(t,!0)}function GP(t){return mde.get(t)!==void 0}var aQe=Object.freeze({__proto__:null,set:sQe,isSet:GP});class mw extends Error{constructor(e){super(e),this.name="IdlError"}}class hg{constructor(e){this.stack=e}static parse(e){var n;const r=/^Program (\w*) invoke/,i=/^Program \w* success/,s=[];for(let a=0;a<e.length;a++){if(i.exec(e[a])){s.pop();continue}const o=(n=r.exec(e[a]))===null||n===void 0?void 0:n[1];o&&s.push(new Fe(o))}return new hg(s)}}class o4 extends Error{constructor(e,n,r,i,s,a){super(r.join(`
117
117
  `).replace("Program log: ","")),this.errorLogs=r,this.logs=i,this.error={errorCode:e,errorMessage:n,comparedValues:a,origin:s},this._programErrorStack=hg.parse(i)}static parse(e){if(!e)return null;const n=e.findIndex(y=>y.startsWith("Program log: AnchorError"));if(n===-1)return null;const r=e[n],i=[r];let s;if(n+1<e.length){if(e[n+1]==="Program log: Left:"){const y=/^Program log: (.*)$/,x=y.exec(e[n+2])[1],w=y.exec(e[n+4])[1];s=[new Fe(x),new Fe(w)],i.push(...e.slice(n+1,n+5))}else if(e[n+1].startsWith("Program log: Left:")){const y=/^Program log: (Left|Right): (.*)$/,x=y.exec(e[n+1])[2],w=y.exec(e[n+2])[2];i.push(...e.slice(n+1,n+3)),s=[x,w]}}const o=/^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r),u=/^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r),m=/^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r);if(o){const[y,x,w]=o.slice(1,4),E={code:y,number:parseInt(x)};return new o4(E,w,i,e,void 0,s)}else if(u){const[y,x,w,E,I]=u.slice(1,6),T={code:w,number:parseInt(E)},D={file:y,line:parseInt(x)};return new o4(T,I,i,e,D,s)}else if(m){const[y,x,w,E]=m.slice(1,5),I=y,T={code:x,number:parseInt(w)};return new o4(T,E,i,e,I,s)}else return null}get program(){return this._programErrorStack.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){return this._programErrorStack.stack}toString(){return this.message}}class yw extends Error{constructor(e,n,r){super(),this.code=e,this.msg=n,this.logs=r,r&&(this._programErrorStack=hg.parse(r))}static parse(e,n){const r=e.toString();let i;if(r.includes("custom program error:")){let o=r.split("custom program error: ");if(o.length!==2)return null;i=o[1]}else{const o=r.match(/"Custom":([0-9]+)}/g);if(!o||o.length>1)return null;i=o[0].match(/([0-9]+)/g)[0]}let s;try{s=parseInt(i)}catch{return null}let a=n.get(s);return a!==void 0?new yw(s,a,e.logs):(a=oQe.get(s),a!==void 0?new yw(s,a,e.logs):null)}get program(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack}toString(){return this.msg}}function VP(t,e){GP("debug-logs")&&console.log("Translating error:",t);const n=o4.parse(t.logs);if(n)return n;const r=yw.parse(t,e);if(r)return r;if(t.logs){const i={get:function(s,a){return a==="programErrorStack"?s.programErrorStack.stack:a==="program"?s.programErrorStack.stack[t.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return t.programErrorStack=hg.parse(t.logs),new Proxy(t,i)}return t}const hn={InstructionMissing:100,InstructionFallbackNotFound:101,InstructionDidNotDeserialize:102,InstructionDidNotSerialize:103,IdlInstructionStub:1e3,IdlInstructionInvalidProgram:1001,ConstraintMut:2e3,ConstraintHasOne:2001,ConstraintSigner:2002,ConstraintRaw:2003,ConstraintOwner:2004,ConstraintRentExempt:2005,ConstraintSeeds:2006,ConstraintExecutable:2007,ConstraintState:2008,ConstraintAssociated:2009,ConstraintAssociatedInit:2010,ConstraintClose:2011,ConstraintAddress:2012,ConstraintZero:2013,ConstraintTokenMint:2014,ConstraintTokenOwner:2015,ConstraintMintMintAuthority:2016,ConstraintMintFreezeAuthority:2017,ConstraintMintDecimals:2018,ConstraintSpace:2019,ConstraintAccountIsNone:2020,RequireViolated:2500,RequireEqViolated:2501,RequireKeysEqViolated:2502,RequireNeqViolated:2503,RequireKeysNeqViolated:2504,RequireGtViolated:2505,RequireGteViolated:2506,AccountDiscriminatorAlreadySet:3e3,AccountDiscriminatorNotFound:3001,AccountDiscriminatorMismatch:3002,AccountDidNotDeserialize:3003,AccountDidNotSerialize:3004,AccountNotEnoughKeys:3005,AccountNotMutable:3006,AccountOwnedByWrongProgram:3007,InvalidProgramId:3008,InvalidProgramExecutable:3009,AccountNotSigner:3010,AccountNotSystemOwned:3011,AccountNotInitialized:3012,AccountNotProgramData:3013,AccountNotAssociatedTokenAccount:3014,AccountSysvarMismatch:3015,AccountReallocExceedsLimit:3016,AccountDuplicateReallocs:3017,DeclaredProgramIdMismatch:4100,Deprecated:5e3},oQe=new Map([[hn.InstructionMissing,"8 byte instruction identifier not provided"],[hn.InstructionFallbackNotFound,"Fallback functions are not supported"],[hn.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[hn.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[hn.IdlInstructionStub,"The program was compiled without idl instructions"],[hn.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[hn.ConstraintMut,"A mut constraint was violated"],[hn.ConstraintHasOne,"A has one constraint was violated"],[hn.ConstraintSigner,"A signer constraint was violated"],[hn.ConstraintRaw,"A raw constraint was violated"],[hn.ConstraintOwner,"An owner constraint was violated"],[hn.ConstraintRentExempt,"A rent exemption constraint was violated"],[hn.ConstraintSeeds,"A seeds constraint was violated"],[hn.ConstraintExecutable,"An executable constraint was violated"],[hn.ConstraintState,"Deprecated Error, feel free to replace with something else"],[hn.ConstraintAssociated,"An associated constraint was violated"],[hn.ConstraintAssociatedInit,"An associated init constraint was violated"],[hn.ConstraintClose,"A close constraint was violated"],[hn.ConstraintAddress,"An address constraint was violated"],[hn.ConstraintZero,"Expected zero account discriminant"],[hn.ConstraintTokenMint,"A token mint constraint was violated"],[hn.ConstraintTokenOwner,"A token owner constraint was violated"],[hn.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[hn.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[hn.ConstraintMintDecimals,"A mint decimals constraint was violated"],[hn.ConstraintSpace,"A space constraint was violated"],[hn.ConstraintAccountIsNone,"A required account for the constraint is None"],[hn.RequireViolated,"A require expression was violated"],[hn.RequireEqViolated,"A require_eq expression was violated"],[hn.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[hn.RequireNeqViolated,"A require_neq expression was violated"],[hn.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[hn.RequireGtViolated,"A require_gt expression was violated"],[hn.RequireGteViolated,"A require_gte expression was violated"],[hn.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[hn.AccountDiscriminatorNotFound,"No 8 byte discriminator was found on the account"],[hn.AccountDiscriminatorMismatch,"8 byte discriminator did not match what was expected"],[hn.AccountDidNotDeserialize,"Failed to deserialize the account"],[hn.AccountDidNotSerialize,"Failed to serialize the account"],[hn.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[hn.AccountNotMutable,"The given account is not mutable"],[hn.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[hn.InvalidProgramId,"Program ID was not as expected"],[hn.InvalidProgramExecutable,"Program account is not executable"],[hn.AccountNotSigner,"The given account did not sign"],[hn.AccountNotSystemOwned,"The given account is not owned by the system program"],[hn.AccountNotInitialized,"The program expected this account to be already initialized"],[hn.AccountNotProgramData,"The given account is not a program data account"],[hn.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[hn.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[hn.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[hn.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[hn.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[hn.Deprecated,"The API being used is deprecated and should no longer be used"]]);var oj=function(){return oj=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},oj.apply(this,arguments)},cj=function(){return cj=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},cj.apply(this,arguments)};function cQe(t){return t.toLowerCase()}var fQe=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],uQe=/[^A-Z0-9]+/gi;function lQe(t,e){e===void 0&&(e={});for(var n=e.splitRegexp,r=n===void 0?fQe:n,i=e.stripRegexp,s=i===void 0?uQe:i,a=e.transform,o=a===void 0?cQe:a,f=e.delimiter,u=f===void 0?" ":f,h=b$(b$(t,r,"$1\0$2"),s,"\0"),m=0,y=h.length;h.charAt(m)==="\0";)m++;for(;h.charAt(y-1)==="\0";)y--;return h.slice(m,y).split("\0").map(o).join(u)}function b$(t,e,n){return e instanceof RegExp?t.replace(e,n):e.reduce(function(r,i){return r.replace(i,n)},t)}function dQe(t,e){return e===void 0&&(e={}),lQe(t,cj({delimiter:"."},e))}function hQe(t,e){return e===void 0&&(e={}),dQe(t,oj({delimiter:"_"},e))}let pg=class df{static fieldLayout(e,n){const r=e.name!==void 0?ni(e.name):void 0;switch(e.type){case"bool":return Xt.bool(r);case"u8":return Xt.u8(r);case"i8":return Xt.i8(r);case"u16":return Xt.u16(r);case"i16":return Xt.i16(r);case"u32":return Xt.u32(r);case"i32":return Xt.i32(r);case"f32":return Xt.f32(r);case"u64":return Xt.u64(r);case"i64":return Xt.i64(r);case"f64":return Xt.f64(r);case"u128":return Xt.u128(r);case"i128":return Xt.i128(r);case"u256":return Xt.u256(r);case"i256":return Xt.i256(r);case"bytes":return Xt.vecU8(r);case"string":return Xt.str(r);case"publicKey":return Xt.publicKey(r);default:{if("vec"in e.type)return Xt.vec(df.fieldLayout({name:void 0,type:e.type.vec},n),r);if("option"in e.type)return Xt.option(df.fieldLayout({name:void 0,type:e.type.option},n),r);if("defined"in e.type){if(!n)throw new mw("User defined types not provided");const i=e.type.defined,s=n.filter(a=>a.name===i);if(s.length!==1)throw new mw(`Type not found: ${JSON.stringify(e)}`);return df.typeDefLayout(s[0],n,r)}else if("array"in e.type){let i=e.type.array[0],s=e.type.array[1],a=df.fieldLayout({name:void 0,type:i},n);return Xt.array(a,s,r)}else throw new Error(`Not yet implemented: ${e}`)}}}static typeDefLayout(e,n=[],r){switch(e.type.kind){case"struct":{const i=e.type.fields.map(s=>df.fieldLayout(s,n));return Xt.struct(i,r)}case"enum":{let i=e.type.variants.map(s=>{const a=ni(s.name);if(!s.fields)return Xt.struct([],a);const o=s.fields.map((f,u)=>f!=null&&f.name?df.fieldLayout(f,n):df.fieldLayout({type:f,name:u.toString()},n));return Xt.struct(o,a)});return r!==void 0?Xt.rustEnum(i).replicate(r):Xt.rustEnum(i,r)}case"alias":return df.fieldLayout({type:e.type.value,name:e.name},n)}}};const m$="global";class YP{constructor(e){this.idl=e,this.ixLayout=YP.parseIxLayout(e);const n=new Map;e.instructions.forEach(r=>{const i=y$(m$,r.name);n.set(pi.encode(i),{layout:this.ixLayout.get(r.name),name:r.name})}),this.sighashLayouts=n}encode(e,n){return this._encode(m$,e,n)}_encode(e,n,r){const i=ve.Buffer.alloc(1e3),s=ni(n),a=this.ixLayout.get(s);if(!a)throw new Error(`Unknown method: ${s}`);const o=a.encode(r,i),f=i.slice(0,o);return ve.Buffer.concat([y$(e,n),f])}static parseIxLayout(e){const n=e.instructions.map(r=>{let i=r.args.map(a=>{var o,f;return pg.fieldLayout(a,Array.from([...(o=e.accounts)!==null&&o!==void 0?o:[],...(f=e.types)!==null&&f!==void 0?f:[]]))});const s=ni(r.name);return[s,Xt.struct(i,s)]});return new Map(n)}decode(e,n="hex"){typeof e=="string"&&(e=n==="hex"?ve.Buffer.from(e,"hex"):pi.decode(e));let r=pi.encode(e.slice(0,8)),i=e.slice(8);const s=this.sighashLayouts.get(r);return s?{data:s.layout.decode(i),name:s.name}:null}format(e,n){return Gc.format(e,n,this.idl)}}class Gc{static format(e,n,r){const i=r.instructions.filter(f=>e.name===f.name)[0];if(i===void 0)return console.error("Invalid instruction given"),null;const s=i.args.map(f=>({name:f.name,type:Gc.formatIdlType(f.type),data:Gc.formatIdlData(f,e.data[f.name],r.types)})),a=Gc.flattenIdlAccounts(i.accounts),o=n.map((f,u)=>u<a.length?{name:a[u].name,...f}:{name:void 0,...f});return{args:s,accounts:o}}static formatIdlType(e){if(typeof e=="string")return e;if("vec"in e)return`Vec<${this.formatIdlType(e.vec)}>`;if("option"in e)return`Option<${this.formatIdlType(e.option)}>`;if("defined"in e)return e.defined;if("array"in e)return`Array<${e.array[0]}; ${e.array[1]}>`;throw new Error(`Unknown IDL type: ${e}`)}static formatIdlData(e,n,r){if(typeof e.type=="string")return n.toString();if(e.type.hasOwnProperty("vec"))return"["+n.map(i=>this.formatIdlData({name:"",type:e.type.vec},i)).join(", ")+"]";if(e.type.hasOwnProperty("option"))return n===null?"null":this.formatIdlData({name:"",type:e.type.option},n,r);if(e.type.hasOwnProperty("defined")){if(r===void 0)throw new Error("User defined types not provided");const i=r.filter(s=>s.name===e.type.defined);if(i.length!==1)throw new Error(`Type not found: ${e.type.defined}`);return Gc.formatIdlDataDefined(i[0],n,r)}return"unknown"}static formatIdlDataDefined(e,n,r){switch(e.type.kind){case"struct":{const i=e.type;return"{ "+Object.keys(n).map(a=>{const o=i.fields.find(f=>f.name===a);if(!o)throw new Error("Unable to find type");return a+": "+Gc.formatIdlData(o,n[a],r)}).join(", ")+" }"}case"enum":{if(e.type.variants.length===0)return"{}";if(e.type.variants[0].name){const i=e.type.variants,s=Object.keys(n)[0],a=n[s],o=Object.keys(a).map(u=>{var h;const m=a[u],y=(h=i[s])===null||h===void 0?void 0:h.find(x=>x.name===u);if(!y)throw new Error("Unable to find variant");return u+": "+Gc.formatIdlData(y,m,r)}).join(", "),f=ni(s,{pascalCase:!0});return o.length===0?f:`${f} { ${o} }`}else return"Tuple formatting not yet implemented"}case"alias":return Gc.formatIdlType(e.type.value)}}static flattenIdlAccounts(e,n){return e.map(r=>{const i=pQe(r.name);if(r.hasOwnProperty("accounts")){const s=n?`${n} > ${i}`:i;return Gc.flattenIdlAccounts(r.accounts,s)}else return{...r,name:n?`${n} > ${i}`:i}}).flat()}}function pQe(t){const e=t.replace(/([A-Z])/g," $1");return e.charAt(0).toUpperCase()+e.slice(1)}function y$(t,e){let n=hQe(e),r=`${t}:${n}`;return ve.Buffer.from(yu(r).slice(0,8))}function yde(t,e){switch(e.type.kind){case"struct":return e.type.fields.map(n=>O6(t,n.type)).reduce((n,r)=>n+r,0);case"enum":{const n=e.type.variants.map(r=>r.fields?r.fields.map(i=>typeof i=="object"&&"name"in i?O6(t,i.type):O6(t,i)).reduce((i,s)=>i+s,0):0);return Math.max(...n)+1}case"alias":return O6(t,e.type.value)}}function O6(t,e){var n,r;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in e)return 1;if("option"in e)return 1+O6(t,e.option);if("coption"in e)return 4+O6(t,e.coption);if("defined"in e){const i=(r=(n=t.types)===null||n===void 0?void 0:n.filter(a=>a.name===e.defined))!==null&&r!==void 0?r:[];if(i.length!==1)throw new mw(`Type not found: ${JSON.stringify(e)}`);let s=i[0];return yde(t,s)}if("array"in e){let i=e.array[0],s=e.array[1];return O6(t,i)*s}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}const fj=8;function gde(t){return ze.Buffer.from(yu(t).slice(0,fj))}class m2{constructor(e){if(e.accounts===void 0){this.accountLayouts=new Map;return}const n=e.accounts.map(r=>[r.name,pg.typeDefLayout(r,e.types)]);this.accountLayouts=new Map(n),this.idl=e}async encode(e,n){const r=ve.Buffer.alloc(1e3),i=this.accountLayouts.get(e);if(!i)throw new Error(`Unknown account: ${e}`);const s=i.encode(n,r);let a=r.slice(0,s),o=m2.accountDiscriminator(e);return ve.Buffer.concat([o,a])}decode(e,n){if(m2.accountDiscriminator(e).compare(n.slice(0,8)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(e,n)}decodeAny(e){const n=e.slice(0,8),r=Array.from(this.accountLayouts.keys()).find(i=>m2.accountDiscriminator(i).equals(n));if(!r)throw new Error("Account descriminator not found");return this.decodeUnchecked(r,e)}decodeUnchecked(e,n){const r=n.subarray(fj),i=this.accountLayouts.get(e);if(!i)throw new Error(`Unknown account: ${e}`);return i.decode(r)}memcmp(e,n){const r=m2.accountDiscriminator(e);return{offset:0,bytes:pi.encode(n?ve.Buffer.concat([r,n]):r)}}size(e){var n;return fj+((n=yde(this.idl,e))!==null&&n!==void 0?n:0)}static accountDiscriminator(e){const n=`account:${ni(e,{pascalCase:!0,preserveConsecutiveUppercase:!0})}`;return gde(n)}}class bQe{constructor(e){if(e.events===void 0){this.layouts=new Map;return}const n=e.events.map(r=>{let i={name:r.name,type:{kind:"struct",fields:r.fields.map(s=>({name:s.name,type:s.type}))}};return[r.name,pg.typeDefLayout(i,e.types)]});this.layouts=new Map(n),this.discriminators=new Map(e.events===void 0?[]:e.events.map(r=>[sj(mQe(r.name)),r.name]))}decode(e){let n;try{n=zP(e)}catch{return null}const r=sj(n.slice(0,8)),i=this.discriminators.get(r);if(i===void 0)return null;const s=this.layouts.get(i);if(!s)throw new Error(`Unknown event: ${i}`);return{data:s.decode(n.slice(8)),name:i}}}function mQe(t){return gde(`event:${t}`)}class yQe{constructor(e){if(e.types===void 0){this.typeLayouts=new Map;return}const n=e.types.map(r=>[r.name,pg.typeDefLayout(r,e.types)]);this.typeLayouts=new Map(n),this.idl=e}encode(e,n){const r=ve.Buffer.alloc(1e3),i=this.typeLayouts.get(e);if(!i)throw new Error(`Unknown type: ${e}`);const s=i.encode(n,r);return r.slice(0,s)}decode(e,n){const r=this.typeLayouts.get(e);if(!r)throw new Error(`Unknown type: ${e}`);return r.decode(n)}}class xde{constructor(e){this.instruction=new YP(e),this.accounts=new m2(e),this.events=new bQe(e),this.types=new yQe(e)}}var gQe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof ze.global<"u"?ze.global:typeof self<"u"?self:{};function xQe(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}class la{constructor(e,n){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=n}makeDestinationObject(){return{}}decode(e,n){throw new Error("Layout is abstract")}encode(e,n,r){throw new Error("Layout is abstract")}getSpan(e,n){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const n=Object.create(this.constructor.prototype);return Object.assign(n,this),n.property=e,n}fromArray(e){}}var cS=la;function vQe(t,e){return e.property?t+"["+e.property+"]":t}class F6 extends la{isCount(){throw new Error("ExternalLayout is abstract")}}class vde extends F6{constructor(e,n,r){if(!(e instanceof la))throw new TypeError("layout must be a Layout");if(n===void 0)n=0;else if(!Number.isInteger(n))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=n}isCount(){return this.layout instanceof fS||this.layout instanceof wde}decode(e,n){return n===void 0&&(n=0),this.layout.decode(e,n+this.offset)}encode(e,n,r){return r===void 0&&(r=0),this.layout.encode(e,n,r+this.offset)}}class fS extends la{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntLE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntLE(e,r,this.span),this.span}}class wde extends la{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,n){return n===void 0&&(n=0),e.readUIntBE(n,this.span)}encode(e,n,r){return r===void 0&&(r=0),n.writeUIntBE(e,r,this.span),this.span}}const uj=Math.pow(2,32);function Mde(t){const e=Math.floor(t/uj),n=t-e*uj;return{hi32:e,lo32:n}}function Ade(t,e){return t*uj+e}class wQe extends la{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readUInt32LE(n+4);return Ade(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=Mde(e);return n.writeUInt32LE(i.lo32,r),n.writeUInt32LE(i.hi32,r+4),8}}class MQe extends la{constructor(e){super(8,e)}decode(e,n){n===void 0&&(n=0);const r=e.readUInt32LE(n),i=e.readInt32LE(n+4);return Ade(i,r)}encode(e,n,r){r===void 0&&(r=0);const i=Mde(e);return n.writeUInt32LE(i.lo32,r),n.writeInt32LE(i.hi32,r+4),8}}class AQe extends la{constructor(e,n,r){if(!(Array.isArray(e)&&e.reduce((s,a)=>s&&a instanceof la,!0)))throw new TypeError("fields must be array of Layout instances");typeof n=="boolean"&&r===void 0&&(r=n,n=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,a)=>s+a.getSpan(),0)}catch{}super(i,n),this.fields=e,this.decodePrefixes=!!r}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;try{r=this.fields.reduce((i,s)=>{const a=s.getSpan(e,n);return n+=a,i+a},0)}catch{throw new RangeError("indeterminate span")}return r}decode(e,n){n===void 0&&(n=0);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(e,n)),n+=i.getSpan(e,n),this.decodePrefixes&&e.length===n)break;return r}encode(e,n,r){r===void 0&&(r=0);const i=r;let s=0,a=0;for(const o of this.fields){let f=o.span;if(a=0<f?f:0,o.property!==void 0){const u=e[o.property];u!==void 0&&(a=o.encode(u,n,r),0>f&&(f=o.getSpan(n,r)))}s=r,r+=f}return s+a-i}fromArray(e){const n=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<e.length&&(n[r.property]=e.shift());return n}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const n of this.fields)if(n.property===e)return n}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let n=0;for(const r of this.fields){if(r.property===e)return n;0>r.span?n=-1:0<=n&&(n+=r.span)}}}class Ede{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class g$ extends Ede{constructor(e,n){if(!(e instanceof F6&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(n||e.property||"variant"),this.layout=e}decode(e,n){return this.layout.decode(e,n)}encode(e,n,r){return this.layout.encode(e,n,r)}}class Sde extends la{constructor(e,n,r){const i=e instanceof fS||e instanceof wde;if(i)e=new g$(new vde(e));else if(e instanceof F6&&e.isCount())e=new g$(e);else if(!(e instanceof Ede))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(n===void 0&&(n=null),!(n===null||n instanceof la))throw new TypeError("defaultLayout must be null or a Layout");if(n!==null){if(0>n.span)throw new Error("defaultLayout must have constant span");n.property===void 0&&(n=n.replicate("content"))}let s=-1;n&&(s=n.span,0<=s&&i&&(s+=e.layout.span)),super(s,r),this.discriminator=e,this.usesPrefixDiscriminator=i,this.defaultLayout=n,this.registry={};let a=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(o){return a(o)},this.configGetSourceVariant=function(o){a=o.bind(this)}}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);const r=this.getVariant(e,n);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,n)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const n=this.registry[e[this.discriminator.property]];if(n&&(!n.layout||e.hasOwnProperty(n.property)))return n}else for(const n in this.registry){const r=this.registry[n];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,n){n===void 0&&(n=0);let r;const i=this.discriminator,s=i.decode(e,n);let a=this.registry[s];if(a===void 0){let o=0;a=this.defaultLayout,this.usesPrefixDiscriminator&&(o=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[a.property]=this.defaultLayout.decode(e,n+o)}else r=a.decode(e,n);return r}encode(e,n,r){r===void 0&&(r=0);const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,a=this.defaultLayout;let o=0;return this.usesPrefixDiscriminator&&(o=s.layout.span),s.encode(e[s.property],n,r),o+a.encode(e[a.property],n,r+o)}return i.encode(e,n,r)}addVariant(e,n,r){const i=new EQe(this,e,n,r);return this.registry[e]=i,i}getVariant(e,n){let r=e;return ze.Buffer.isBuffer(e)&&(n===void 0&&(n=0),r=this.discriminator.decode(e,n)),this.registry[r]}}class EQe extends la{constructor(e,n,r,i){if(!(e instanceof Sde))throw new TypeError("union must be a Union");if(!Number.isInteger(n)||0>n)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof la))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=r?r.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=n,this.layout=r||null}getSpan(e,n){if(0<=this.span)return this.span;n===void 0&&(n=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,n+r)}decode(e,n){const r=this.makeDestinationObject();if(n===void 0&&(n=0),this!==this.union.getVariant(e,n))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,n+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,n,r){r===void 0&&(r=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,n,r);let s=i;if(this.layout&&(this.layout.encode(e[this.property],n,r+i),s+=this.layout.getSpan(n,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}class SQe extends la{constructor(e,n){if(!(e instanceof F6&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof F6||(r=e),super(r,n),this.length=e}getSpan(e,n){let r=this.span;return 0>r&&(r=this.length.decode(e,n)),r}decode(e,n){n===void 0&&(n=0);let r=this.span;return 0>r&&(r=this.length.decode(e,n)),e.slice(n,n+r)}encode(e,n,r){let i=this.length;if(this.length instanceof F6&&(i=e.length),!(ze.Buffer.isBuffer(e)&&i===e.length))throw new TypeError(vQe("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(r+i>n.length)throw new RangeError("encoding overruns Buffer");return n.write(e.toString("hex"),r,i,"hex"),this.length instanceof F6&&this.length.encode(i,n,r),i}}var CQe=(t,e,n)=>new vde(t,e,n),TQe=t=>new fS(1,t),Wf=t=>new fS(4,t),IQe=t=>new wQe(t),Au=t=>new MQe(t),Xi=(t,e,n)=>new AQe(t,e,n),Cde=(t,e,n)=>new Sde(t,e,n),bg=(t,e)=>new SQe(t,e);class DQe extends cS{constructor(e){super(-1,e),this.property=e,this.layout=Xi([Wf("length"),Wf("lengthPadding"),bg(CQe(Wf(),-8),"chars")],this.property)}encode(e,n,r=0){if(e==null)return this.layout.span;const i={chars:ze.Buffer.from(e,"utf8")};return this.layout.encode(i,n,r)}decode(e,n=0){return this.layout.decode(e,n).chars.toString()}getSpan(e,n=0){return Wf().span+Wf().span+new ra(new Uint8Array(e).slice(n,n+4),10,"le").toNumber()}}function uS(t){return new DQe(t)}function Vo(t){return bg(32,t)}const Za=Cde(Wf("instruction"));Za.addVariant(0,Xi([Au("lamports"),Au("space"),Vo("owner")]),"createAccount");Za.addVariant(1,Xi([Vo("owner")]),"assign");Za.addVariant(2,Xi([Au("lamports")]),"transfer");Za.addVariant(3,Xi([Vo("base"),uS("seed"),Au("lamports"),Au("space"),Vo("owner")]),"createAccountWithSeed");Za.addVariant(4,Xi([Vo("authorized")]),"advanceNonceAccount");Za.addVariant(5,Xi([Au("lamports")]),"withdrawNonceAccount");Za.addVariant(6,Xi([Vo("authorized")]),"initializeNonceAccount");Za.addVariant(7,Xi([Vo("authorized")]),"authorizeNonceAccount");Za.addVariant(8,Xi([Au("space")]),"allocate");Za.addVariant(9,Xi([Vo("base"),uS("seed"),Au("space"),Vo("owner")]),"allocateWithSeed");Za.addVariant(10,Xi([Vo("base"),uS("seed"),Vo("owner")]),"assignWithSeed");Za.addVariant(11,Xi([Au("lamports"),uS("seed"),Vo("owner")]),"transferWithSeed");Math.max(...Object.values(Za.registry).map(t=>t.span));class kQe extends cS{constructor(e,n,r,i){super(e.span,i),this.layout=e,this.decoder=n,this.encoder=r}decode(e,n){return this.decoder(this.layout.decode(e,n))}encode(e,n,r){return this.layout.encode(this.encoder(e),n,r)}getSpan(e,n){return this.layout.getSpan(e,n)}}function x$(t){return new kQe(bg(32),e=>new Fe(e),e=>e.toBuffer(),t)}Xi([Wf("version"),Wf("state"),x$("authorizedPubkey"),x$("nonce"),Xi([IQe("lamportsPerSignature")],"feeCalculator")]);function NQe(t){return new TextDecoder().decode(yu(t))}var LQe=Object.freeze({__proto__:null,hash:NQe});function BQe(t,e,n){const r=ve.Buffer.concat([t.toBuffer(),ve.Buffer.from(e),n.toBuffer()]);return new Fe(yu(r))}function Tde(t,...e){let n=[ve.Buffer.from([97,110,99,104,111,114])];e.forEach(i=>{n.push(i instanceof ve.Buffer?i:Ra(i).toBuffer())});const[r]=Fe.findProgramAddressSync(n,Ra(t));return r}var jQe=Object.freeze({__proto__:null,createWithSeedSync:BQe,associated:Tde});const QP=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ZP=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");function RQe({mint:t,owner:e}){return Fe.findProgramAddressSync([e.toBuffer(),QP.toBuffer(),t.toBuffer()],ZP)[0]}var _Qe=Object.freeze({__proto__:null,TOKEN_PROGRAM_ID:QP,ASSOCIATED_PROGRAM_ID:ZP,associatedAddress:RQe}),lj={exports:{}};(function(t,e){var n=typeof self<"u"?self:gQe,r=function(){function s(){this.fetch=!1,this.DOMException=n.DOMException}return s.prototype=n,new s}();(function(s){(function(a){var o={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function f(p){return p&&DataView.prototype.isPrototypeOf(p)}if(o.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(p){return p&&u.indexOf(Object.prototype.toString.call(p))>-1};function m(p){if(typeof p!="string"&&(p=String(p)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(p))throw new TypeError("Invalid character in header field name");return p.toLowerCase()}function y(p){return typeof p!="string"&&(p=String(p)),p}function x(p){var b={next:function(){var g=p.shift();return{done:g===void 0,value:g}}};return o.iterable&&(b[Symbol.iterator]=function(){return b}),b}function w(p){this.map={},p instanceof w?p.forEach(function(b,g){this.append(g,b)},this):Array.isArray(p)?p.forEach(function(b){this.append(b[0],b[1])},this):p&&Object.getOwnPropertyNames(p).forEach(function(b){this.append(b,p[b])},this)}w.prototype.append=function(p,b){p=m(p),b=y(b);var g=this.map[p];this.map[p]=g?g+", "+b:b},w.prototype.delete=function(p){delete this.map[m(p)]},w.prototype.get=function(p){return p=m(p),this.has(p)?this.map[p]:null},w.prototype.has=function(p){return this.map.hasOwnProperty(m(p))},w.prototype.set=function(p,b){this.map[m(p)]=y(b)},w.prototype.forEach=function(p,b){for(var g in this.map)this.map.hasOwnProperty(g)&&p.call(b,this.map[g],g,this)},w.prototype.keys=function(){var p=[];return this.forEach(function(b,g){p.push(g)}),x(p)},w.prototype.values=function(){var p=[];return this.forEach(function(b){p.push(b)}),x(p)},w.prototype.entries=function(){var p=[];return this.forEach(function(b,g){p.push([g,b])}),x(p)},o.iterable&&(w.prototype[Symbol.iterator]=w.prototype.entries);function E(p){if(p.bodyUsed)return Promise.reject(new TypeError("Already read"));p.bodyUsed=!0}function I(p){return new Promise(function(b,g){p.onload=function(){b(p.result)},p.onerror=function(){g(p.error)}})}function T(p){var b=new FileReader,g=I(b);return b.readAsArrayBuffer(p),g}function D(p){var b=new FileReader,g=I(b);return b.readAsText(p),g}function k(p){for(var b=new Uint8Array(p),g=new Array(b.length),M=0;M<b.length;M++)g[M]=String.fromCharCode(b[M]);return g.join("")}function N(p){if(p.slice)return p.slice(0);var b=new Uint8Array(p.byteLength);return b.set(new Uint8Array(p)),b.buffer}function R(){return this.bodyUsed=!1,this._initBody=function(p){this._bodyInit=p,p?typeof p=="string"?this._bodyText=p:o.blob&&Blob.prototype.isPrototypeOf(p)?this._bodyBlob=p:o.formData&&FormData.prototype.isPrototypeOf(p)?this._bodyFormData=p:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)?this._bodyText=p.toString():o.arrayBuffer&&o.blob&&f(p)?(this._bodyArrayBuffer=N(p.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(p)||h(p))?this._bodyArrayBuffer=N(p):this._bodyText=p=Object.prototype.toString.call(p):this._bodyText="",this.headers.get("content-type")||(typeof p=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o.blob&&(this.blob=function(){var p=E(this);if(p)return p;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?E(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(T)}),this.text=function(){var p=E(this);if(p)return p;if(this._bodyBlob)return D(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(k(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(B)}),this.json=function(){return this.text().then(JSON.parse)},this}var _=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function F(p){var b=p.toUpperCase();return _.indexOf(b)>-1?b:p}function L(p,b){b=b||{};var g=b.body;if(p instanceof L){if(p.bodyUsed)throw new TypeError("Already read");this.url=p.url,this.credentials=p.credentials,b.headers||(this.headers=new w(p.headers)),this.method=p.method,this.mode=p.mode,this.signal=p.signal,!g&&p._bodyInit!=null&&(g=p._bodyInit,p.bodyUsed=!0)}else this.url=String(p);if(this.credentials=b.credentials||this.credentials||"same-origin",(b.headers||!this.headers)&&(this.headers=new w(b.headers)),this.method=F(b.method||this.method||"GET"),this.mode=b.mode||this.mode||null,this.signal=b.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&g)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(g)}L.prototype.clone=function(){return new L(this,{body:this._bodyInit})};function B(p){var b=new FormData;return p.trim().split("&").forEach(function(g){if(g){var M=g.split("="),S=M.shift().replace(/\+/g," "),v=M.join("=").replace(/\+/g," ");b.append(decodeURIComponent(S),decodeURIComponent(v))}}),b}function P(p){var b=new w,g=p.replace(/\r?\n[\t ]+/g," ");return g.split(/\r?\n/).forEach(function(M){var S=M.split(":"),v=S.shift().trim();if(v){var l=S.join(":").trim();b.append(v,l)}}),b}R.call(L.prototype);function C(p,b){b||(b={}),this.type="default",this.status=b.status===void 0?200:b.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in b?b.statusText:"OK",this.headers=new w(b.headers),this.url=b.url||"",this._initBody(p)}R.call(C.prototype),C.prototype.clone=function(){return new C(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new w(this.headers),url:this.url})},C.error=function(){var p=new C(null,{status:0,statusText:""});return p.type="error",p};var c=[301,302,303,307,308];C.redirect=function(p,b){if(c.indexOf(b)===-1)throw new RangeError("Invalid status code");return new C(null,{status:b,headers:{location:p}})},a.DOMException=s.DOMException;try{new a.DOMException}catch{a.DOMException=function(b,g){this.message=b,this.name=g;var M=Error(b);this.stack=M.stack},a.DOMException.prototype=Object.create(Error.prototype),a.DOMException.prototype.constructor=a.DOMException}function d(p,b){return new Promise(function(g,M){var S=new L(p,b);if(S.signal&&S.signal.aborted)return M(new a.DOMException("Aborted","AbortError"));var v=new XMLHttpRequest;function l(){v.abort()}v.onload=function(){var A={status:v.status,statusText:v.statusText,headers:P(v.getAllResponseHeaders()||"")};A.url="responseURL"in v?v.responseURL:A.headers.get("X-Request-URL");var j="response"in v?v.response:v.responseText;g(new C(j,A))},v.onerror=function(){M(new TypeError("Network request failed"))},v.ontimeout=function(){M(new TypeError("Network request failed"))},v.onabort=function(){M(new a.DOMException("Aborted","AbortError"))},v.open(S.method,S.url,!0),S.credentials==="include"?v.withCredentials=!0:S.credentials==="omit"&&(v.withCredentials=!1),"responseType"in v&&o.blob&&(v.responseType="blob"),S.headers.forEach(function(A,j){v.setRequestHeader(j,A)}),S.signal&&(S.signal.addEventListener("abort",l),v.onreadystatechange=function(){v.readyState===4&&S.signal.removeEventListener("abort",l)}),v.send(typeof S._bodyInit>"u"?null:S._bodyInit)})}return d.polyfill=!0,s.fetch||(s.fetch=d,s.Headers=w,s.Request=L,s.Response=C),a.Headers=w,a.Request=L,a.Response=C,a.fetch=d,Object.defineProperty(a,"__esModule",{value:!0}),a})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e})(lj,lj.exports);var OQe=xQe(lj.exports);async function FQe(t,e,n=5){const r=`https://api.apr.dev/api/v0/program/${e.toString()}/latest?limit=${n}`,[i,s]=await Promise.all([Ide(t,e),OQe(r)]),a=(await s.json()).filter(f=>!f.aborted&&f.state==="Built"&&f.verified==="Verified");if(a.length===0)return null;const o=a[0];return i.slot.toNumber()!==o.verified_slot?null:o}async function Ide(t,e){const n=await t.getAccountInfo(e);if(n===null)throw new Error("program account not found");const{program:r}=dj(n.data),i=await t.getAccountInfo(r.programdataAddress);if(i===null)throw new Error("program data account not found");const{programData:s}=dj(i.data);return s}const PQe=Xt.rustEnum([Xt.struct([],"uninitialized"),Xt.struct([Xt.option(Xt.publicKey(),"authorityAddress")],"buffer"),Xt.struct([Xt.publicKey("programdataAddress")],"program"),Xt.struct([Xt.u64("slot"),Xt.option(Xt.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,Xt.u32());function dj(t){return PQe.decode(t)}var zQe=Object.freeze({__proto__:null,verifiedBuild:FQe,fetchData:Ide,decodeUpgradeableLoaderState:dj}),Xft=Object.freeze({__proto__:null,sha256:LQe,rpc:tQe,publicKey:jQe,bytes:FYe,token:_Qe,features:aQe,registry:zQe});function UQe(t){return"accounts"in t}async function WQe(t){const e=(await Fe.findProgramAddress([],t))[0];return await Fe.createWithSeed(e,HQe(),t)}function HQe(){return"anchor:idl"}const qQe=Xt.struct([Xt.publicKey("authority"),Xt.vecU8("data")]);function GQe(t){return qQe.decode(t)}function lS(t,e){var n,r;let i={};const s=t.args?t.args.length:0;if(e.length>s){if(e.length!==s+1)throw new Error(`provided too many arguments ${e} to instruction ${t==null?void 0:t.name} expecting: ${(r=(n=t.args)===null||n===void 0?void 0:n.map(a=>a.name))!==null&&r!==void 0?r:[]}`);i=e.pop()}return[e,i]}class gw{static build(e,n,r){if(e.name==="_inner")throw new mw("the _inner name is reserved");const i=(...s)=>{const[a,o]=lS(e,[...s]);lde(e.accounts,o.accounts),VQe(e,...s);const f=i.accounts(o.accounts);return o.remainingAccounts!==void 0&&f.push(...o.remainingAccounts),GP("debug-logs")&&console.log("Outgoing account metas:",f),new cr({keys:f,programId:r,data:n(e.name,PYe(e,...a))})};return i.accounts=s=>gw.accountsArray(s,e.accounts,r,e.name),i}static accountsArray(e,n,r,i){return e?n.map(s=>{if(("accounts"in s?s.accounts:void 0)!==void 0){const o=e[s.name];return gw.accountsArray(o,s.accounts,r,i).flat()}else{const o=s;let f;try{f=Ra(e[s.name])}catch{throw new Error(`Wrong input type for account "${s.name}" in the instruction accounts object${i!==void 0?' for instruction "'+i+'"':""}. Expected PublicKey or string.`)}const u=o.isOptional&&f.equals(r),h=o.isMut&&!u,m=o.isSigner&&!u;return{pubkey:f,isWritable:h,isSigner:m}}}).flat():[]}}function VQe(t,...e){}class YQe{static build(e,n){return(...i)=>{var s,a,o;const[,f]=lS(e,[...i]),u=new yn;if(f.preInstructions&&f.instructions)throw new Error("instructions is deprecated, use preInstructions");return(s=f.preInstructions)===null||s===void 0||s.forEach(h=>u.add(h)),(a=f.instructions)===null||a===void 0||a.forEach(h=>u.add(h)),u.add(n(...i)),(o=f.postInstructions)===null||o===void 0||o.forEach(h=>u.add(h)),u}}}class QQe{static build(e,n,r,i){return async(...a)=>{var o;const f=n(...a),[,u]=lS(e,[...a]);if(i.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await i.sendAndConfirm(f,(o=u.signers)!==null&&o!==void 0?o:[],u.options)}catch(h){throw VP(h,r)}}}}class ZQe{static build(e,n,r,i){var s;const a={};return(s=e.accounts)===null||s===void 0||s.forEach(o=>{const f=ni(o.name);a[f]=new KQe(e,o,r,i,n)}),a}}class KQe{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}get idlAccount(){return this._idlAccount}constructor(e,n,r,i,s){this._idlAccount=n,this._programId=r,this._provider=i??bw(),this._coder=s??new xde(e),this._size=this._coder.accounts.size(n)}async fetchNullable(e,n){const{data:r}=await this.fetchNullableAndContext(e,n);return r}async fetchNullableAndContext(e,n){const r=await this.getAccountInfoAndContext(e,n),{value:i,context:s}=r;return{data:i&&i.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,i.data):null,context:s}}async fetch(e,n){const{data:r}=await this.fetchNullableAndContext(e,n);if(r===null)throw new Error(`Account does not exist or has no data ${e.toString()}`);return r}async fetchAndContext(e,n){const{data:r,context:i}=await this.fetchNullableAndContext(e,n);if(r===null)throw new Error(`Account does not exist ${e.toString()}`);return{data:r,context:i}}async fetchMultiple(e,n){return(await this.fetchMultipleAndContext(e,n)).map(i=>i?i.data:null)}async fetchMultipleAndContext(e,n){return(await qP(this._provider.connection,e.map(i=>Ra(i)),n)).map(i=>{if(i==null)return null;const{account:s,context:a}=i;return{data:this._coder.accounts.decode(this._idlAccount.name,s.data),context:a}})}async all(e){const n=this.coder.accounts.memcmp(this._idlAccount.name,e instanceof ze.Buffer?e:void 0),r=[];return(n==null?void 0:n.offset)!=null&&(n==null?void 0:n.bytes)!=null&&r.push({memcmp:{offset:n.offset,bytes:n.bytes}}),(n==null?void 0:n.dataSize)!=null&&r.push({dataSize:n.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...r,...Array.isArray(e)?e:[]]})).map(({pubkey:s,account:a})=>({publicKey:s,account:this._coder.accounts.decode(this._idlAccount.name,a.data)}))}subscribe(e,n){const r=X3.get(e.toString());if(r)return r.ee;const i=new kPe;e=Ra(e);const s=this._provider.connection.onAccountChange(e,a=>{const o=this._coder.accounts.decode(this._idlAccount.name,a.data);i.emit("change",o)},n);return X3.set(e.toString(),{ee:i,listener:s}),i}async unsubscribe(e){let n=X3.get(e.toString());if(!n){console.warn("Address is not subscribed");return}X3&&await this._provider.connection.removeAccountChangeListener(n.listener).then(()=>{X3.delete(e.toString())}).catch(console.error)}async createInstruction(e,n){const r=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return kn.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:e.publicKey,space:n??r,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(n??r),programId:this._programId})}async associated(...e){const n=await this.associatedAddress(...e);return await this.fetch(n)}async associatedAddress(...e){return await Tde(this._programId,...e)}async getAccountInfo(e,n){return await this._provider.connection.getAccountInfo(Ra(e),n)}async getAccountInfoAndContext(e,n){return await this._provider.connection.getAccountInfoAndContext(Ra(e),n)}}const X3=new Map,hj="Program log: ",Dde="Program data: ",$Qe=hj.length,XQe=Dde.length;class JQe{constructor(e,n,r){this._programId=e,this._provider=n,this._eventParser=new kde(e,r),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(e,n){var r;let i=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.set(e,((r=this._eventListeners.get(e))!==null&&r!==void 0?r:[]).concat(i)),this._eventCallbacks.set(i,[e,n]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(s,a)=>{if(!s.err)for(const o of this._eventParser.parseLogs(s.logs)){const f=this._eventListeners.get(o.name);f&&f.forEach(u=>{const h=this._eventCallbacks.get(u);if(h){const[,m]=h;m(o.data,a.slot,s.signature)}})}})),i}async removeEventListener(e){const n=this._eventCallbacks.get(e);if(!n)throw new Error(`Event listener ${e} doesn't exist!`);const[r]=n;let i=this._eventListeners.get(r);if(!i)throw new Error(`Event listeners don't exist for ${r}!`);if(this._eventCallbacks.delete(e),i=i.filter(s=>s!==e),this._eventListeners.set(r,i),i.length===0&&this._eventListeners.delete(r),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class kde{constructor(e,n){this.coder=n,this.programId=e}*parseLogs(e,n=!1){const r=new tZe(e),i=new eZe;let s=r.next();for(;s!==null;){let[a,o,f]=this.handleLog(i,s,n);a&&(yield a),o&&i.push(o),f&&i.pop(),s=r.next()}}handleLog(e,n,r){return e.stack.length>0&&e.program()===this.programId.toString()?this.handleProgramLog(n,r):[null,...this.handleSystemLog(n)]}handleProgramLog(e,n){if(e.startsWith(hj)||e.startsWith(Dde)){const r=e.startsWith(hj)?e.slice($Qe):e.slice(XQe),i=this.coder.events.decode(r);if(n&&i===null)throw new Error(`Unable to decode event ${r}`);return[i,null,!1]}else return[null,...this.handleSystemLog(e)]}handleSystemLog(e){const n=e.split(":")[0];return n.match(/^Program (.*) success/g)!==null?[null,!0]:n.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:n.includes("invoke")?["cpi",!1]:[null,!1]}}class eZe{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(e){this.stack.push(e)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class tZe{constructor(e){this.logs=e}next(){if(this.logs.length===0)return null;let e=this.logs[0];return this.logs=this.logs.slice(1),e}}class nZe{static build(e,n,r,i,s,a,o){return async(...u)=>{var h;const m=n(...u),[,y]=lS(e,[...u]);let x;if(i.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{x=await i.simulate(m,y.signers,(h=y.options)===null||h===void 0?void 0:h.commitment)}catch(I){throw VP(I,r)}if(x===void 0)throw new Error("Unable to simulate transaction");const w=x.logs;if(!w)throw new Error("Simulated logs not found");const E=[];if(o.events){let I=new kde(a,s);for(const T of I.parseLogs(w))E.push(T)}return{events:E,raw:w}}}}function ck(t){return new Nde(bg(8),e=>KP.fromBuffer(e),e=>e.toBuffer(),t)}function n7(t){return new Nde(bg(32),e=>new Fe(e),e=>e.toBuffer(),t)}function fk(t,e){return new rZe(t,e)}class Nde extends cS{constructor(e,n,r,i){super(e.span,i),this.layout=e,this.decoder=n,this.encoder=r}decode(e,n){return this.decoder(this.layout.decode(e,n))}encode(e,n,r){return this.layout.encode(this.encoder(e),n,r)}getSpan(e,n){return this.layout.getSpan(e,n)}}class rZe extends cS{constructor(e,n){super(-1,n),this.layout=e,this.discriminator=Wf()}encode(e,n,r=0){return e==null?this.layout.span+this.discriminator.encode(0,n,r):(this.discriminator.encode(1,n,r),this.layout.encode(e,n,r+4)+4)}decode(e,n=0){const r=this.discriminator.decode(e,n);if(r===0)return null;if(r===1)return this.layout.decode(e,n+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,n=0){return this.layout.getSpan(e,n+4)+4}}class KP extends ra{toBuffer(){const e=super.toArray().reverse(),n=ze.Buffer.from(e);if(n.length===8)return n;if(n.length>=8)throw new Error("u64 too large");const r=ze.Buffer.alloc(8);return n.copy(r),r}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new KP([...e].reverse().map(n=>`00${n.toString(16)}`.slice(-2)).join(""),16)}}const iZe=Xi([n7("mint"),n7("owner"),ck("amount"),fk(n7(),"delegate"),(t=>{const e=Cde(TQe("discriminator"),null,t);return e.addVariant(0,Xi([]),"uninitialized"),e.addVariant(1,Xi([]),"initialized"),e.addVariant(2,Xi([]),"frozen"),e})("state"),fk(ck(),"isNative"),ck("delegatedAmount"),fk(n7(),"closeAuthority")]);function sZe(t){return iZe.decode(t)}class Lm{constructor(e,n,r,i,s,a,o,f){this._accounts=n,this._provider=r,this._programId=i,this._idlIx=s,this._idlTypes=o,this._customResolver=f,this._args=e,this._accountStore=new aZe(r,a,this._programId)}args(e){this._args=e}async resolve(){for(await this.resolveConst(this._idlIx.accounts),this._resolveEventCpi(this._idlIx.accounts);await this.resolvePdas(this._idlIx.accounts)+await this.resolveRelations(this._idlIx.accounts)+await this.resolveCustom()>0;);}async resolveCustom(){if(this._customResolver){const{accounts:e,resolved:n}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=e,n}return 0}resolveOptionalsHelper(e,n){const r={};for(const i of n){const s=i.name,a=e[s];a!==void 0&&(Lde(a)?UQe(i)?r[s]=this.resolveOptionalsHelper(a,i.accounts):r[s]=Bde(a):a!==null?r[s]=Ra(a):i.isOptional&&(r[s]=this._programId))}return r}resolveOptionals(e){Object.assign(this._accounts,this.resolveOptionalsHelper(e,this._idlIx.accounts))}get(e){const n=e.reduce((r,i)=>r&&r[i],this._accounts);if(n&&n.toBase58)return n}set(e,n){let r=this._accounts;e.forEach((i,s)=>{s==e.length-1&&(r[i]=n),r[i]=r[i]||{},r=r[i]})}async resolveConst(e,n=[]){for(let r=0;r<e.length;r+=1){const i=e[r],s=i.accounts;s&&await this.resolveConst(s,[...n,ni(i.name)]);const a=i,o=ni(i.name);if(a.isSigner&&!this.get([...n,o])){if(this._provider.wallet===void 0)throw new Error("This function requires the Provider interface implementor to have a 'wallet' field.");this.set([...n,o],this._provider.wallet.publicKey)}Reflect.has(Lm.CONST_ACCOUNTS,o)&&!this.get([...n,o])&&this.set([...n,o],Lm.CONST_ACCOUNTS[o])}}_resolveEventCpi(e,n=[]){for(const r in e){const i=e[r],s=i.accounts;s&&this._resolveEventCpi(s,[...n,ni(i.name)]);const a=+r+1;if(a===e.length)return;const o=ni(e[r].name),f=ni(e[a].name);if(o==="eventAuthority"&&f==="program"){const u=[...n,o],h=[...n,f];this.get(u)||this.set(u,Fe.findProgramAddressSync([ze.Buffer.from("__event_authority")],this._programId)[0]),this.get(h)||this.set(h,this._programId);return}}}async resolvePdas(e,n=[]){let r=0;for(let i=0;i<e.length;i+=1){const s=e[i],a=s.accounts;a&&(r+=await this.resolvePdas(a,[...n,ni(s.name)]));const o=s,f=ni(s.name);o.pda&&o.pda.seeds.length>0&&!this.get([...n,f])&&await this.autoPopulatePda(o,n)&&(r+=1)}return r}async resolveRelations(e,n=[]){let r=0;for(let i=0;i<e.length;i+=1){const s=e[i],a=s.accounts;a&&(r+=await this.resolveRelations(a,[...n,ni(s.name)]));const o=s.relations||[],f=ni(s.name),u=[...n,f],h=this.get(u);if(h){const m=o.filter(y=>!this.get([...n,ni(y)]));if(r+=m.length,m.length>0){const y=await this._accountStore.fetchAccount({publicKey:h});await Promise.all(m.map(async x=>{const w=ni(x);return this.set([...n,w],y[w]),y[w]}))}}}return r}async autoPopulatePda(e,n=[]){if(!e.pda||!e.pda.seeds)throw new Error("Must have seeds");const r=await Promise.all(e.pda.seeds.map(a=>this.toBuffer(a,n)));if(r.some(a=>typeof a>"u"))return;const i=await this.parseProgramId(e,n);if(!i)return;const[s]=await Fe.findProgramAddress(r,i);this.set([...n,ni(e.name)],s)}async parseProgramId(e,n=[]){var r;if(!(!((r=e.pda)===null||r===void 0)&&r.programId))return this._programId;switch(e.pda.programId.kind){case"const":return new Fe(this.toBufferConst(e.pda.programId.value));case"arg":return this.argValue(e.pda.programId);case"account":return await this.accountValue(e.pda.programId,n);default:throw new Error(`Unexpected program seed kind: ${e.pda.programId.kind}`)}}async toBuffer(e,n=[]){switch(e.kind){case"const":return this.toBufferConst(e);case"arg":return await this.toBufferArg(e);case"account":return await this.toBufferAccount(e,n);default:throw new Error(`Unexpected seed kind: ${e.kind}`)}}getType(e,n=[]){if(n.length>0&&e.defined){const r=this._idlTypes.find(a=>a.name===e.defined);if(!r)throw new Error(`Cannot find type ${e.defined}`);const s=r.type.fields.find(a=>a.name===n[0]);return this.getType(s.type,n.slice(1))}return e}toBufferConst(e){return this.toBufferValue(this.getType(e.type,(e.path||"").split(".").slice(1)),e.value)}async toBufferArg(e){const n=this.argValue(e);if(!(typeof n>"u"))return this.toBufferValue(this.getType(e.type,(e.path||"").split(".").slice(1)),n)}argValue(e){const n=e.path.split("."),r=ni(n[0]),i=this._idlIx.args.findIndex(s=>s.name===r);if(i===-1)throw new Error(`Unable to find argument for seed: ${r}`);return n.slice(1).reduce((s,a)=>(s||{})[a],this._args[i])}async toBufferAccount(e,n=[]){const r=await this.accountValue(e,n);if(r)return this.toBufferValue(e.type,r)}async accountValue(e,n=[]){const r=e.path.split("."),i=r[0],s=this.get([...n,ni(i)]);if(s===null)throw new Error("fieldPubkey is null");if(r.length===1)return s;const a=await this._accountStore.fetchAccount({publicKey:s,name:e.account});return this.parseAccountValue(a,r.slice(1))}parseAccountValue(e,n){let r;for(;n.length>0;)r=e[ni(n[0])],n=n.slice(1);return r}toBufferValue(e,n){switch(e){case"u8":return ze.Buffer.from([n]);case"u16":let r=ze.Buffer.alloc(2);return r.writeUInt16LE(n),r;case"u32":let i=ze.Buffer.alloc(4);return i.writeUInt32LE(n),i;case"u64":let s=ze.Buffer.alloc(8);return s.writeBigUInt64LE(BigInt(n)),s;case"string":return ze.Buffer.from(fde(n));case"publicKey":return n.toBuffer();default:if(e.array)return ze.Buffer.from(n);throw new Error(`Unexpected seed type: ${e}`)}}}Lm.CONST_ACCOUNTS={associatedTokenProgram:ZP,rent:ds,systemProgram:kn.programId,tokenProgram:QP,clock:f0};class aZe{constructor(e,n,r){this._provider=e,this._programId=r,this._cache=new Map,this._idls={},this._idls[r.toBase58()]=n}async ensureIdl(e){if(!this._idls[e.toBase58()]){const n=await Ed.fetchIdl(e,this._provider);if(n){const r=new Ed(n,e,this._provider);this._idls[e.toBase58()]=r.account}}return this._idls[e.toBase58()]}async fetchAccount({publicKey:e,name:n,programId:r=this._programId}){const i=e.toString();if(!this._cache.has(i))if(n==="TokenAccount"){const s=await this._provider.connection.getAccountInfo(e);if(s===null)throw new Error(`invalid account info for ${i}`);const a=sZe(s.data);this._cache.set(i,a)}else if(n){const s=await this.ensureIdl(r);if(s){const a=s[ni(n)];if(a){const o=await a.fetch(e);this._cache.set(i,o)}}}else{const s=await this._provider.connection.getAccountInfo(e);if(s===null)throw new Error(`invalid account info for ${i}`);const a=s.data,o=await this.ensureIdl(s.owner);if(o){const f=Object.values(o)[0];if(!f)throw new Error("No accounts for this program");const u=f.coder.accounts.decodeAny(a);this._cache.set(i,u)}}return this._cache.get(i)}}class oZe{static build(e,n,r,i,s,a,o,f,u,h,m){return(...y)=>new cZe(y,i,s,a,o,f,e,n,r,u,h,m)}}function Lde(t){return typeof t=="object"&&t!==null&&!("_bn"in t)}function Bde(t,e){const n={};for(const r in t){const i=t[r];if(i===null)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");n[r]=Lde(i)?Bde(i):Ra(i)}return n}class cZe{constructor(e,n,r,i,s,a,o,f,u,h,m,y){this._ixFn=n,this._txFn=r,this._rpcFn=i,this._simulateFn=s,this._viewFn=a,this._programId=f,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._autoResolveAccounts=!0,this._args=e,this._accountsResolver=new Lm(e,this._accounts,o,f,u,h,m,y)}args(e){this._args=e,this._accountsResolver.args(e)}async pubkeys(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._accounts}accounts(e){return this._autoResolveAccounts=!0,this._accountsResolver.resolveOptionals(e),this}accountsStrict(e){return this._autoResolveAccounts=!1,this._accountsResolver.resolveOptionals(e),this}signers(e){return this._signers=this._signers.concat(e),this}remainingAccounts(e){return this._remainingAccounts=this._remainingAccounts.concat(e),this}preInstructions(e){return this._preInstructions=this._preInstructions.concat(e),this}postInstructions(e){return this._postInstructions=this._postInstructions.concat(e),this}async rpc(e){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async rpcAndKeys(e){return{pubkeys:await this.pubkeys(),signature:await this.rpc(e)}}async view(e){if(this._autoResolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error("Method does not support views");return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async simulate(e){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async instruction(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async prepare(){return{instruction:await this.instruction(),pubkeys:await this.pubkeys(),signers:await this._signers}}async transaction(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}}class fZe{static build(e,n,r,i){const s=n.accounts.find(f=>f.isMut),a=!!n.returns;return s||!a?void 0:async(...f)=>{var u,h;let m=await r(...f);const y=`Program return: ${e} `;let x=m.raw.find(T=>T.startsWith(y));if(!x)throw new Error("View expected return log");let w=zP(x.slice(y.length)),E=n.returns;if(!E)throw new Error("View expected return type");return pg.fieldLayout({type:E},Array.from([...(u=i.accounts)!==null&&u!==void 0?u:[],...(h=i.types)!==null&&h!==void 0?h:[]])).decode(w)}}}class uZe{static build(e,n,r,i,s){const a={},o={},f={},u={},h={},m={},y=ude(e),x=e.accounts?ZQe.build(e,n,r,i):{};return e.instructions.forEach(w=>{const E=gw.build(w,(_,F)=>n.instruction.encode(_,F),r),I=YQe.build(w,E),T=QQe.build(w,I,y,i),D=nZe.build(w,I,y,i,n,r,e),k=fZe.build(r,w,D,e),N=oZe.build(i,r,w,E,I,T,D,k,x,e.types||[],s&&s(w)),R=ni(w.name);o[R]=E,f[R]=I,a[R]=T,u[R]=D,h[R]=N,k&&(m[R]=k)}),[a,o,f,x,u,h,m]}}class Ed{get programId(){return this._programId}get idl(){return this._idl}get coder(){return this._coder}get provider(){return this._provider}constructor(e,n,r,i,s){n=Ra(n),r||(r=bw()),this._idl=e,this._provider=r,this._programId=n,this._coder=i??new xde(e),this._events=new JQe(this._programId,r,this._coder);const[a,o,f,u,h,m,y]=uZe.build(e,this._coder,n,r,s??(()=>{}));this.rpc=a,this.instruction=o,this.transaction=f,this.account=u,this.simulate=h,this.methods=m,this.views=y}static async at(e,n){const r=Ra(e),i=await Ed.fetchIdl(r,n);if(!i)throw new Error(`IDL not found for program: ${e.toString()}`);return new Ed(i,r,n)}static async fetchIdl(e,n){n=n??bw();const r=Ra(e),i=await WQe(r),s=await n.connection.getAccountInfo(i);if(!s)return null;let a=GQe(s.data.slice(8));const o=PP(a.data);return JSON.parse(cde(o))}addEventListener(e,n){return this._events.addEventListener(e,n)}async removeEventListener(e){return await this._events.removeEventListener(e)}}new Fe("11111111111111111111111111111111");const zd=new Fe("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new Fe("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const mg=new Fe("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new Fe("So11111111111111111111111111111111111111112");new Fe("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");class Ud extends Error{constructor(e){super(e)}}class lZe extends Ud{constructor(){super(...arguments),this.name="TokenAccountNotFoundError"}}class dZe extends Ud{constructor(){super(...arguments),this.name="TokenInvalidAccountOwnerError"}}class uk extends Ud{constructor(){super(...arguments),this.name="TokenInvalidAccountSizeError"}}class hZe extends Ud{constructor(){super(...arguments),this.name="TokenInvalidMintError"}}class jde extends Ud{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}class pZe extends Ud{constructor(){super(...arguments),this.name="TokenTransferHookAccountNotFound"}}class _1 extends Ud{constructor(){super(...arguments),this.name="TokenTransferHookInvalidSeed"}}class bZe extends Ud{constructor(){super(...arguments),this.name="TokenTransferHookAccountDataNotFound"}}var pj;(function(t){t[t.InitializeMint=0]="InitializeMint",t[t.InitializeAccount=1]="InitializeAccount",t[t.InitializeMultisig=2]="InitializeMultisig",t[t.Transfer=3]="Transfer",t[t.Approve=4]="Approve",t[t.Revoke=5]="Revoke",t[t.SetAuthority=6]="SetAuthority",t[t.MintTo=7]="MintTo",t[t.Burn=8]="Burn",t[t.CloseAccount=9]="CloseAccount",t[t.FreezeAccount=10]="FreezeAccount",t[t.ThawAccount=11]="ThawAccount",t[t.TransferChecked=12]="TransferChecked",t[t.ApproveChecked=13]="ApproveChecked",t[t.MintToChecked=14]="MintToChecked",t[t.BurnChecked=15]="BurnChecked",t[t.InitializeAccount2=16]="InitializeAccount2",t[t.SyncNative=17]="SyncNative",t[t.InitializeAccount3=18]="InitializeAccount3",t[t.InitializeMultisig2=19]="InitializeMultisig2",t[t.InitializeMint2=20]="InitializeMint2",t[t.GetAccountDataSize=21]="GetAccountDataSize",t[t.InitializeImmutableOwner=22]="InitializeImmutableOwner",t[t.AmountToUiAmount=23]="AmountToUiAmount",t[t.UiAmountToAmount=24]="UiAmountToAmount",t[t.InitializeMintCloseAuthority=25]="InitializeMintCloseAuthority",t[t.TransferFeeExtension=26]="TransferFeeExtension",t[t.ConfidentialTransferExtension=27]="ConfidentialTransferExtension",t[t.DefaultAccountStateExtension=28]="DefaultAccountStateExtension",t[t.Reallocate=29]="Reallocate",t[t.MemoTransferExtension=30]="MemoTransferExtension",t[t.CreateNativeMint=31]="CreateNativeMint",t[t.InitializeNonTransferableMint=32]="InitializeNonTransferableMint",t[t.InterestBearingMintExtension=33]="InterestBearingMintExtension",t[t.CpiGuardExtension=34]="CpiGuardExtension",t[t.InitializePermanentDelegate=35]="InitializePermanentDelegate",t[t.TransferHookExtension=36]="TransferHookExtension",t[t.MetadataPointerExtension=39]="MetadataPointerExtension"})(pj||(pj={}));function mZe(t,e,n){if(n.length){t.push({pubkey:e,isSigner:!1,isWritable:!1});for(const r of n)t.push({pubkey:r instanceof Fe?r:r.publicKey,isSigner:!0,isWritable:!1})}else t.push({pubkey:e,isSigner:!0,isWritable:!1});return t}const v$=_t([Mn("instruction"),B1("amount")]);function yZe(t,e,n,r,i=[],s=zd){const a=mZe([{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!1}],n,i),o=ze.Buffer.alloc(v$.span);return v$.encode({instruction:pj.Approve,amount:BigInt(r)},o),new cr({keys:a,programId:s,data:o})}var bj;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Mint=1]="Mint",t[t.Account=2]="Account"})(bj||(bj={}));const gZe=1,xZe=_t([Mn("m"),Mn("n"),Zh("isInitialized"),Vn("signer1"),Vn("signer2"),Vn("signer3"),Vn("signer4"),Vn("signer5"),Vn("signer6"),Vn("signer7"),Vn("signer8"),Vn("signer9"),Vn("signer10"),Vn("signer11")]),vZe=xZe.span;var w$;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initialized=1]="Initialized",t[t.Frozen=2]="Frozen"})(w$||(w$={}));const wZe=_t([Vn("mint"),Vn("owner"),B1("amount"),Ft("delegateOption"),Vn("delegate"),Mn("state"),Ft("isNativeOption"),B1("isNative"),B1("delegatedAmount"),Ft("closeAuthorityOption"),Vn("closeAuthority")]),lk=wZe.span,Rde=_t([Ft("mintAuthorityOption"),Vn("mintAuthority"),B1("supply"),Mn("decimals"),Zh("isInitialized"),Ft("freezeAuthorityOption"),Vn("freezeAuthority")]),dk=Rde.span;async function r7(t,e,n,r=zd){const i=await t.getAccountInfo(e,n);return MZe(e,i,r)}function MZe(t,e,n=zd){if(!e)throw new lZe;if(!e.owner.equals(n))throw new dZe;if(e.data.length<dk)throw new uk;const r=Rde.decode(e.data.slice(0,dk));let i=ze.Buffer.alloc(0);if(e.data.length>dk){if(e.data.length<=lk)throw new uk;if(e.data.length===vZe)throw new uk;if(e.data[lk]!=bj.Mint)throw new hZe;i=e.data.slice(lk+gZe)}return{address:t,mintAuthority:r.mintAuthorityOption?r.mintAuthority:null,supply:r.supply,decimals:r.decimals,isInitialized:r.isInitialized,freezeAuthority:r.freezeAuthorityOption?r.freezeAuthority:null,tlvData:i}}async function mj(t,e,n=!1,r=zd,i=mg){if(!n&&!Fe.isOnCurve(e.toBuffer()))throw new jde;const[s]=await Fe.findProgramAddress([e.toBuffer(),r.toBuffer(),t.toBuffer()],i);return s}function i7(t,e,n=!1,r=zd,i=mg){if(!n&&!Fe.isOnCurve(e.toBuffer()))throw new jde;const[s]=Fe.findProgramAddressSync([e.toBuffer(),r.toBuffer(),t.toBuffer()],i);return s}const dS=1,AZe=1,EZe=1,SZe=1,CZe=1,TZe=1,IZe=1,DZe=1;function kZe(t){if(t.length<1)throw new _1;const[e,...n]=t;if(n.length<e)throw new _1;return{data:ze.Buffer.from(n.slice(0,e)),packedLength:dS+AZe+e}}function NZe(t,e){if(t.length<2)throw new _1;const[n,r]=t;if(e.length<r+n)throw new _1;return{data:e.subarray(n,n+r),packedLength:dS+EZe+SZe}}function LZe(t,e){if(t.length<1)throw new _1;const[n]=t;if(e.length<=n)throw new _1;return{data:e[n].pubkey.toBuffer(),packedLength:dS+CZe}}async function BZe(t,e,n){if(t.length<3)throw new _1;const[r,i,s]=t;if(e.length<=r)throw new _1;const a=await n.getAccountInfo(e[r].pubkey);if(a==null)throw new bZe;if(a.data.length<i+s)throw new _1;return{data:a.data.subarray(i,i+s),packedLength:dS+TZe+IZe+DZe}}async function jZe(t,e,n,r){const[i,...s]=t,a=new Uint8Array(s);switch(i){case 0:return null;case 1:return kZe(a);case 2:return NZe(a,n);case 3:return LZe(a,e);case 4:return BZe(a,e,r);default:throw new _1}}async function RZe(t,e,n,r){const i=[];let s=0;for(;s<32;){const a=await jZe(t.slice(s),e,n,r);if(a==null)break;i.push(a.data),s+=a.packedLength}return i}const _de=_t([Vn("authority"),Vn("programId")]);_de.span;function s7(t){const e=qZe(yj.TransferHook,t.tlvData);return e!==null?_de.decode(e):null}const _Ze=_t([Zh("transferring")]);_Ze.span;function OZe(t,e){const n=[ze.Buffer.from("extra-account-metas"),t.toBuffer()];return Fe.findProgramAddressSync(n,e)[0]}const M$=_t([Mn("discriminator"),_r(32,"addressConfig"),Zh("isSigner"),Zh("isWritable")]),FZe=_t([Ft("count"),d0(M$,U1e(M$.span),"extraAccounts")]),PZe=_t([B1("instructionDiscriminator"),Ft("length"),FZe.replicate("extraAccountsList")]);function zZe(t){const e=PZe.decode(t.data).extraAccountsList;return e.extraAccounts.slice(0,e.count)}async function UZe(t,e,n,r,i){if(e.discriminator===0)return{pubkey:new Fe(e.addressConfig),isSigner:e.isSigner,isWritable:e.isWritable};let s=Fe.default;if(e.discriminator===1)s=i;else{const f=e.discriminator-128;if(n.length<=f)throw new pZe;s=n[f].pubkey}const a=await RZe(e.addressConfig,n,r,t);return{pubkey:Fe.findProgramAddressSync(a,s)[0],isSigner:e.isSigner,isWritable:e.isWritable}}var A$;(function(t){t[t.Initialize=0]="Initialize",t[t.Update=1]="Update"})(A$||(A$={}));_t([Mn("instruction"),Mn("transferHookInstruction"),Vn("authority"),Vn("transferHookProgramId")]);_t([Mn("instruction"),Mn("transferHookInstruction"),Vn("transferHookProgramId")]);function WZe(t,e,n,r,i,s,a){const o=[e,n,r,i,s].map(u=>({pubkey:u,isSigner:!1,isWritable:!1})),f=ze.Buffer.alloc(16);return f.set(ze.Buffer.from([105,37,101,197,75,251,102,26]),0),f.writeBigUInt64LE(BigInt(a),8),new cr({keys:o,programId:t,data:f})}var yj;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.TransferFeeConfig=1]="TransferFeeConfig",t[t.TransferFeeAmount=2]="TransferFeeAmount",t[t.MintCloseAuthority=3]="MintCloseAuthority",t[t.ConfidentialTransferMint=4]="ConfidentialTransferMint",t[t.ConfidentialTransferAccount=5]="ConfidentialTransferAccount",t[t.DefaultAccountState=6]="DefaultAccountState",t[t.ImmutableOwner=7]="ImmutableOwner",t[t.MemoTransfer=8]="MemoTransfer",t[t.NonTransferable=9]="NonTransferable",t[t.InterestBearingConfig=10]="InterestBearingConfig",t[t.CpiGuard=11]="CpiGuard",t[t.PermanentDelegate=12]="PermanentDelegate",t[t.NonTransferableAccount=13]="NonTransferableAccount",t[t.TransferHook=14]="TransferHook",t[t.TransferHookAccount=15]="TransferHookAccount",t[t.MetadataPointer=18]="MetadataPointer",t[t.TokenMetadata=19]="TokenMetadata"})(yj||(yj={}));const Ode=2,HZe=2;function E$(t){return t+Ode+HZe}function qZe(t,e){let n=0;for(;E$(n)<=e.length;){const r=e.readUInt16LE(n),i=e.readUInt16LE(n+Ode),s=E$(n);if(r==t)return e.slice(s,s+i);n=s+i}return null}function GZe(t,e,n,r,i=zd,s=mg){return VZe(t,e,n,r,ze.Buffer.alloc(0),i,s)}function VZe(t,e,n,r,i,s=zd,a=mg){const o=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:kn.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1}];return new cr({keys:o,programId:a,data:i})}const Fde=[{name:"discriminator",binary:"bytes",size:4},{name:"consistencyLevel",binary:"uint",size:1,endianness:"little"},{name:"emitterAuthority",...Tn},{name:"messageStatus",binary:"uint",size:1,endianness:"little"},{name:"gap",binary:"uint",size:3},{name:"timestamp",binary:"uint",size:4,endianness:"little"},{name:"nonce",binary:"uint",size:4,endianness:"little"},{name:"sequence",binary:"uint",size:8,endianness:"little"},{name:"emitterChain",binary:"uint",size:2,endianness:"little"},{name:"emitterAddress",...Tn},{name:"payloadLength",binary:"uint",size:4,endianness:"little"},{name:"payload",binary:"bytes"}];function Pde(t){return lwe(Fde,t)}function M3(t,e,n,r){const i=typeof e=="string"?ze.Buffer.from(e,"hex"):ze.Buffer.from(e);if(i.length!=32)throw Error("address.length != 32");const s=ze.Buffer.alloc(8);return s.writeBigUInt64BE(typeof r=="number"?BigInt(r):r),Du([i,(()=>{const a=ze.Buffer.alloc(2);return a.writeUInt16BE(n),a})(),s],t)}async function YZe(t,e,n,r,i,s){return t.getAccountInfo(M3(e,n,r,i),s).then(a=>!!ag(a)[0])}function tf(t){return Du([ze.Buffer.from("Bridge")],t)}async function zde(t,e,n){return t.getAccountInfo(tf(e),n).then(r=>pS.deserialize(ag(r)))}class hS{constructor(e,n){ce(this,"guardianSetExpirationTime");ce(this,"fee");this.guardianSetExpirationTime=e,this.fee=n}static deserialize(e){if(e.length!=12)throw new Error("data.length != 12");const n=e.readUInt32LE(0),r=e.readBigUInt64LE(4);return new hS(n,r)}}class pS{constructor(e,n,r){ce(this,"guardianSetIndex");ce(this,"lastLamports");ce(this,"config");this.guardianSetIndex=e,this.lastLamports=n,this.config=r}static deserialize(e){if(e.length!=24)throw new Error("data.length != 24");const n=e.readUInt32LE(0),r=e.readBigUInt64LE(4),i=hS.deserialize(e.subarray(12));return new pS(n,r,i)}}function bS(t,e){return Du([ze.Buffer.from("Sequence"),new Fe(t).toBytes()],e)}async function Ude(t,e,n,r){return t.getAccountInfo(bS(e,n),r).then(i=>mS.deserialize(ag(i)))}class mS{constructor(e,n,r){ce(this,"sequence");ce(this,"bump");ce(this,"emitterType");this.sequence=e,this.bump=n,this.emitterType=r}static deserialize(e){if(e.length!==8&&e.length!==10)throw new Error("data.length != 8 or data.length != 10");let n,r;const i=e.readBigUInt64LE(0);return e.length===10&&(n=e[8],r=e[9]),new mS(i,n,r)}value(){return this.sequence}}function $P(t){return Du([ze.Buffer.from("emitter")],t)}function XP(t,e){const n=$P(t);return{emitter:n,sequence:bS(n,e)}}async function QZe(t,e,n,r){return Ude(t,$P(e),n,r)}function A3(t){return Du([ze.Buffer.from("fee_collector")],t)}const S$=65,c4=20;function ZZe(t,e,n){return new cr({keys:[],programId:Mh.programId,data:KZe.serialize(t,e,n)})}class KZe{static serialize(e,n,r){if(e.length==0)throw Error("signatures.length == 0");if(e.length!=n.length)throw Error("signatures.length != keys.length");if(r.length!=32)throw Error("message.length != 32");const i=e.length,s=11,a=1+i*s,o=S$+c4,f=a+i*o,u=32,h=ze.Buffer.alloc(f+u);h.writeUInt8(i,0),h.write(r.toString("hex"),f,"hex");for(let m=0;m<i;++m){const y=e.at(m);if((y==null?void 0:y.length)!=S$)throw Error(`signatures[${m}].length != 65`);const x=n.at(m);if((x==null?void 0:x.length)!=c4)throw Error(`keys[${m}].length != 20`);const w=a+o*m,E=w+65;h.writeUInt16LE(w,1+m*s),h.writeUInt8(0,3+m*s),h.writeUInt16LE(E,4+m*s),h.writeUInt8(0,6+m*s),h.writeUInt16LE(f,7+m*s),h.writeUInt16LE(u,9+m*s),h.writeUInt8(0,10+m*s),h.write(y.toString("hex"),w,"hex"),h.write(x.toString("hex"),E,"hex")}return h}}function i5(t,e){return Du([ze.Buffer.from("GuardianSet"),(()=>{const n=ze.Buffer.alloc(4);return n.writeUInt32BE(e),n})()],t)}async function JP(t,e,n,r){return t.getAccountInfo(i5(e,n),r).then(i=>yS.deserialize(ag(i)))}class yS{constructor(e,n,r,i){ce(this,"index");ce(this,"keys");ce(this,"creationTime");ce(this,"expirationTime");this.index=e,this.keys=n,this.creationTime=r,this.expirationTime=i}static deserialize(e){const n=e.readUInt32LE(0),r=e.readUInt32LE(4),i=8+r*c4,s=e.readUInt32LE(i),a=e.readUInt32LE(4+i),o=[];for(let f=0;f<r;++f){const u=8+f*c4;o.push(e.subarray(u,u+c4))}return new yS(n,o,s,a)}}function Nu(t,e){return Du([ze.Buffer.from("PostedVAA"),e],t)}async function $Ze(t,e,n){return t.getAccountInfo(new Fe(e),n).then(r=>gS.deserialize(ag(r)))}class gS{constructor(e,n,r){ce(this,"signatures");ce(this,"hash");ce(this,"guardianSetIndex");this.signatures=e,this.hash=n,this.guardianSetIndex=r}static deserialize(e){const n=e.readUInt32LE(0),r=[...e.subarray(4,4+n)].map(o=>o!=0),i=4+n,s=e.subarray(i,i+32),a=e.readUInt32LE(i+32);return new gS(r,s,a)}}function Wde(t){return Du([ze.Buffer.from("upgrade")],t)}function Hde(t,e,n){return kn.transfer({fromPubkey:new Fe(e),toPubkey:A3(t),lamports:n})}class XZe{constructor(e){ce(this,"idl");this.idl=e}async encode(e,n){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}decode(e,n){return this.decodeUnchecked(e,n)}decodeUnchecked(e,n){switch(e){default:throw new Error(`Invalid account name: ${e}`)}}memcmp(e,n){switch(e){case"postVaa":return{dataSize:56};default:throw new Error(`Invalid account name: ${e}`)}}size(e){return ble(this.idl,e)??0}}class JZe{constructor(e){}decode(e){throw new Error("Wormhole program does not have events")}}class Z2{static fieldLayout(e,n){const r=e.name!==void 0?Lb(e.name):void 0;switch(e.type){case"bool":return Xt.bool(r);case"u8":return Xt.u8(r);case"i8":return Xt.i8(r);case"u16":return Xt.u16(r);case"i16":return Xt.i16(r);case"u32":return Xt.u32(r);case"i32":return Xt.i32(r);case"f32":return Xt.f32(r);case"u64":return Xt.u64(r);case"i64":return Xt.i64(r);case"f64":return Xt.f64(r);case"u128":return Xt.u128(r);case"i128":return Xt.i128(r);case"u256":return Xt.u256(r);case"i256":return Xt.i256(r);case"bytes":return Xt.vecU8(r);case"string":return Xt.str(r);case"publicKey":return Xt.publicKey(r);default:{if("vec"in e.type)return Xt.vec(Z2.fieldLayout({name:void 0,type:e.type.vec},n),r);if("option"in e.type)return Xt.option(Z2.fieldLayout({name:void 0,type:e.type.option},n),r);if("array"in e.type){let i=e.type.array[0],s=e.type.array[1],a=Z2.fieldLayout({name:void 0,type:i},n);return Xt.array(a,s,r)}else throw new Error(`Not yet implemented: ${e}`)}}}}class ez{constructor(e){ce(this,"ixLayout");this.ixLayout=ez.parseIxLayout(e)}static parseIxLayout(e){const r=(e.instructions?e.instructions:[]).map(i=>{let s=i.args.map(o=>Z2.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const a=Lb(i.name);return[a,Xt.struct(s,a)]}).concat(e.instructions.map(i=>{let s=i.args.map(o=>Z2.fieldLayout(o,Array.from([...e.accounts??[],...e.types??[]])));const a=Lb(i.name);return[a,Xt.struct(s,a)]}));return new Map(r)}encode(e,n){const r=ze.Buffer.alloc(1e3),i=Lb(e),s=this.ixLayout.get(i);if(!s)throw new Error(`Unknown method: ${i}`);const a=s.encode(n,r),o=r.slice(0,a);return eKe(xw[Bqe(i)],o)}encodeState(e,n){throw new Error("Wormhole program does not have state")}decode(e,n="hex"){var o;typeof e=="string"&&(e=n==="hex"?ze.Buffer.from(e,"hex"):kwe.decode(e));let r=ze.Buffer.from(e.slice(0,1)).readInt8(),i=ze.Buffer.from(e.slice(1)),s=Lb(xw[r]??"");return this.ixLayout.get(s)?{data:(o=this.ixLayout.get(s))==null?void 0:o.decode(i),name:s}:null}}var xw;(function(t){t[t.Initialize=0]="Initialize",t[t.PostMessage=1]="PostMessage",t[t.PostVaa=2]="PostVaa",t[t.SetFees=3]="SetFees",t[t.TransferFees=4]="TransferFees",t[t.UpgradeContract=5]="UpgradeContract",t[t.UpgradeGuardianSet=6]="UpgradeGuardianSet",t[t.VerifySignatures=7]="VerifySignatures",t[t.PostMessageUnreliable=8]="PostMessageUnreliable"})(xw||(xw={}));function eKe(t,e){const n=ze.Buffer.alloc(1+(e===void 0?0:e.length));return n.writeUInt8(t,0),e!==void 0&&n.write(e.toString("hex"),1,"hex"),n}class tKe{constructor(e){}encode(e,n){throw new Error("Wormhole program does not have state")}decode(e){throw new Error("Wormhole program does not have state")}}class nKe{constructor(e){}encode(e,n){throw new Error("Wormhole program does not have user-defined types")}decode(e,n){throw new Error("Wormhole program does not have user-defined types")}}class rKe{constructor(e){ce(this,"instruction");ce(this,"accounts");ce(this,"state");ce(this,"events");ce(this,"types");this.instruction=new ez(e),this.accounts=new XZe(e),this.state=new tKe(e),this.events=new JZe(e),this.types=new nKe(e)}}const tz={version:"0.1.0",name:"wormhole",instructions:[{name:"initialize",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"guardianSet",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"guardianSetExpirationTime",type:"u32"},{name:"fee",type:"u64"},{name:"initialGuardians",type:{vec:{array:["u8",20]}}}]},{name:"postMessage",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]},{name:"postVaa",accounts:[{name:"guardianSet",isMut:!1,isSigner:!1},{name:"bridge",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!1,isSigner:!1},{name:"vaa",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"version",type:"u8"},{name:"guardianSetIndex",type:"u32"},{name:"timestamp",type:"u32"},{name:"nonce",type:"u32"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"sequence",type:"u64"},{name:"consistencyLevel",type:"u8"},{name:"payload",type:"bytes"}]},{name:"setFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"transferFees",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeContract",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"upgradeAuthority",isMut:!1,isSigner:!1},{name:"spill",isMut:!0,isSigner:!1},{name:"implementation",isMut:!0,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeable",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"upgradeGuardianSet",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"bridge",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"claim",isMut:!0,isSigner:!1},{name:"guardianSetOld",isMut:!0,isSigner:!1},{name:"guardianSetNew",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"verifySignatures",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"guardianSet",isMut:!1,isSigner:!1},{name:"signatureSet",isMut:!0,isSigner:!0},{name:"instructions",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"signatureStatus",type:{array:["i8",19]}}]},{name:"postMessageUnreliable",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"nonce",type:"u32"},{name:"payload",type:"bytes"},{name:"consistencyLevel",type:"u8"}]}],accounts:[{name:"PostedMessage",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}},{name:"PostedVAA",type:{kind:"struct",fields:[{name:"vaaVersion",type:"u8"},{name:"consistencyLevel",type:"u8"},{name:"vaaTime",type:"u32"},{name:"vaaSignatureAccount",type:"publicKey"},{name:"submissionTime",type:"u32"},{name:"nonce",type:"u32"},{name:"sequence",type:"u64"},{name:"emitterChain",type:"u16"},{name:"emitterAddress",type:{array:["u8",32]}},{name:"payload",type:"bytes"}]}}]};function qde(t,e){return new Ed(tz,new Fe(t),e===void 0?{connection:null}:e,Gde())}function nf(t,e){return qde(t,Sqe(e))}function Gde(){return new rKe(tz)}function iKe(t,e,n,r){const i=nf(e,t).methods.setFees();return i._ixFn(...i._args,{accounts:Vde(e,n,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Vde(t,e,n){return{payer:new Fe(e),bridge:tf(t),vaa:Nu(t,ze.Buffer.from(n.hash)),claim:M3(t,n.emitterAddress.toString(),Y1(n.emitterChain),n.sequence),systemProgram:kn.programId}}function sKe(t,e,n,r,i){const s=nf(e,t).methods.transferFees();return s._ixFn(...s._args,{accounts:Yde(e,n,r,i),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Yde(t,e,n,r){return{payer:new Fe(e),bridge:tf(t),vaa:Nu(t,ze.Buffer.from(r.hash)),claim:M3(t,r.emitterAddress.toString(),Y1(r.emitterChain),r.sequence),feeCollector:A3(t),recipient:new Fe(n),rent:ds,systemProgram:kn.programId}}function aKe(t,e,n,r){const i=nf(e,t).methods.upgradeGuardianSet();return i._ixFn(...i._args,{accounts:Qde(e,n,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Qde(t,e,n){return{payer:new Fe(e),bridge:tf(t),vaa:Nu(t,ze.Buffer.from(n.hash)),claim:M3(t,n.emitterAddress.toString(),Y1(n.emitterChain),n.sequence),guardianSetOld:i5(t,n.guardianSet),guardianSetNew:i5(t,n.guardianSet+1),systemProgram:kn.programId}}function oKe(t,e,n,r){const i=nf(e,t).methods.upgradeContract();return i._ixFn(...i._args,{accounts:Zde(e,n,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Zde(t,e,n,r){const{newContract:i}=n.payload.actionArgs;return{payer:new Fe(e),bridge:tf(t),vaa:Nu(t,ze.Buffer.from(n.hash)),claim:M3(t,n.emitterAddress.toString(),Y1(n.emitterChain),n.sequence),upgradeAuthority:Wde(t),spill:new Fe(r===void 0?e:r),implementation:new xr(i).unwrap(),programData:Eqe(t),wormholeProgram:new Fe(t),rent:ds,clock:f0,bpfLoaderUpgradeable:tle,systemProgram:kn.programId}}function cKe(t,e,n,r,i,s){const a=nf(e,t).methods.initialize(r,new ra(i.toString()),[...s.map(o=>[...new Uint8Array(o)])]);return a._ixFn(...a._args,{accounts:Kde(e,n),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Kde(t,e){return{bridge:tf(t),guardianSet:i5(t,0),feeCollector:A3(t),payer:new Fe(e),clock:f0,rent:ds,systemProgram:kn.programId}}function $de(t,e,n,r,i,s,a){const o=nf(e,t).methods.postMessage(s,ze.Buffer.from(i),a);return o._ixFn(...o._args,{accounts:nz(e,n,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function nz(t,e,n,r){let i;return r?{emitter:r,sequence:i}=XP(r,t):(r=e,i=bS(r,t)),{bridge:tf(t),message:new Fe(n),emitter:new Fe(r),sequence:i,payer:new Fe(e),feeCollector:A3(t),clock:f0,rent:ds,systemProgram:kn.programId}}function Xde(t,e,n,r,i){const s=nf(e,t).methods.postVaa(1,r.guardianSet,r.timestamp,r.nonce,Y1(r.emitterChain),[...r.emitterAddress.toUint8Array()],new ra(r.sequence.toString()),r.consistencyLevel,ze.Buffer.from(ZEe(r.payloadLiteral,r.payload)));return s._ixFn(...s._args,{accounts:Jde(e,n,i,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function Jde(t,e,n,r){return{guardianSet:i5(t,r.guardianSet),bridge:tf(t),signatureSet:new Fe(n),vaa:Nu(t,ze.Buffer.from(r.hash)),payer:new Fe(e),clock:f0,rent:ds,systemProgram:kn.programId}}const fKe=19;async function e6e(t,e,n,r,i,s){const a=r.guardianSet,o=await JP(t,e,a,s),f=r.signatures,u=o.keys,h=7,m=[];for(let y=0;y<Math.ceil(f.length/h);++y){const x=y*h,w=Math.min(f.length,(y+1)*h),E=new Array(fKe).fill(-1),I=[],T=[];for(let D=0;D<w-x;++D){const k=f.at(D+x);I.push(ze.Buffer.from(k.signature.encode())),T.push(u.at(k.guardianIndex)),E[k.guardianIndex]=D}m.push(ZZe(I,T,ze.Buffer.from(r.hash))),m.push(uKe(t,e,n,r,i,E))}return m}function uKe(t,e,n,r,i,s){const a=nf(e,t).methods.verifySignatures(s);return a._ixFn(...a._args,{accounts:t6e(e,n,i,r),signers:void 0,remainingAccounts:void 0,preInstructions:void 0,postInstructions:void 0})}function t6e(t,e,n,r){return{payer:new Fe(e),guardianSet:i5(t,r.guardianSet),signatureSet:new Fe(n),instructions:sfe,rent:ds,systemProgram:kn.programId}}function y2(t,e){const{emitter:n,sequence:r}=XP(t,e);return{wormholeBridge:tf(e),wormholeEmitter:n,wormholeSequence:r,wormholeFeeCollector:A3(e)}}function lKe(t,e,n,r){const i=nz(e,n,r,t);return{payer:i.payer,wormholeBridge:i.bridge,wormholeMessage:i.message,wormholeEmitter:i.emitter,wormholeSequence:i.sequence,wormholeFeeCollector:i.feeCollector,clock:i.clock,rent:i.rent,systemProgram:i.systemProgram}}const dKe=Object.freeze(Object.defineProperty({__proto__:null,BridgeConfig:hS,BridgeData:pS,GuardianSetData:yS,SequenceTracker:mS,SignatureSetData:gS,coder:Gde,createBridgeFeeTransferInstruction:Hde,createInitializeInstruction:cKe,createPostMessageInstruction:$de,createPostVaaInstruction:Xde,createReadOnlyWormholeProgramInterface:nf,createSetFeesInstruction:iKe,createTransferFeesInstruction:sKe,createUpgradeContractInstruction:oKe,createUpgradeGuardianSetInstruction:aKe,createVerifySignaturesInstructions:e6e,createWormholeProgramInterface:qde,deriveClaimKey:M3,deriveEmitterSequenceKey:bS,deriveFeeCollectorKey:A3,deriveGuardianSetKey:i5,derivePostedVaaKey:Nu,deriveUpgradeAuthorityKey:Wde,deriveWormholeBridgeDataKey:tf,deriveWormholeEmitterKey:$P,getClaim:YZe,getEmitterKeys:XP,getGuardianSet:JP,getInitializeAccounts:Kde,getPostMessageAccounts:nz,getPostMessageCpiAccounts:lKe,getPostVaaAccounts:Jde,getProgramSequenceTracker:QZe,getSequenceTracker:Ude,getSetFeesAccounts:Vde,getSignatureSetData:$Ze,getTransferFeesAccounts:Yde,getUpgradeContractAccounts:Zde,getUpgradeGuardianSetAccounts:Qde,getVerifySignatureAccounts:t6e,getWormholeBridgeData:zde,getWormholeDerivedAccounts:y2},Symbol.toStringTag,{value:"Module"})),C$="Program log: Sequence: ";class T8{constructor(e,n,r,i){ce(this,"network");ce(this,"chain");ce(this,"connection");ce(this,"contracts");ce(this,"chainId");ce(this,"coreBridge");ce(this,"address");ce(this,"bridgeData");this.network=e,this.chain=n,this.connection=r,this.contracts=i,this.chainId=Y1(n);const s=i.coreBridge;if(!s)throw new Error(`CoreBridge contract Address for chain ${n} not found`);this.address=s,this.coreBridge=nf(s,r)}async getGuardianSet(e){const n=await JP(this.connection,this.coreBridge.programId,e);return{index:n.index,keys:n.keys.map(r=>r.toString("hex")),expiry:BigInt(n.expirationTime)}}static async fromRpc(e,n){const[r,i]=await Am.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch for chain ${i}: ${s.network} != ${r}`);return new T8(r,i,e,n[i].contracts)}async ensureBridgeConfig(){this.bridgeData||(this.bridgeData=await zde(this.connection,this.coreBridge.programId))}async getMessageFee(){return await this.ensureBridgeConfig(),this.bridgeData.config.fee}async getGuardianSetIndex(){return await this.ensureBridgeConfig(),this.bridgeData.guardianSetIndex}async*publishMessage(e,n,r,i){const s=jo.generate(),a=new xr(e).unwrap(),o=$de(this.connection,this.coreBridge.programId,a,s.publicKey,n,r,i),f=await this.getMessageFee(),u=Hde(this.coreBridge.programId,a,f),h=new yn;h.feePayer=a,h.add(u,o),yield this.createUnsignedTx({transaction:h,signers:[s]},"Core.PublishMessage")}async*verifyMessage(e,n){yield*this.postVaa(e,n)}async*postVaa(e,n){const r=Nu(this.coreBridge.programId,ze.Buffer.from(n.hash));if(await this.connection.getAccountInfo(r))return;const s=new xr(e).unwrap(),a=jo.generate(),o=await e6e(this.connection,this.coreBridge.programId,s,n,a.publicKey);for(let u=0;u<o.length;u+=2){const h=new yn().add(...o.slice(u,u+2));h.feePayer=s,yield this.createUnsignedTx({transaction:h,signers:[a]},"Core.VerifySignature",!0)}const f=new yn().add(Xde(this.connection,this.coreBridge.programId,s,n,a.publicKey));f.feePayer=s,yield this.createUnsignedTx({transaction:f},"Core.PostVAA")}static parseSequenceFromLog(e,n){var f,u,h,m;const{meta:r,transaction:{message:i}}=n;if(!((f=r==null?void 0:r.innerInstructions)!=null&&f.length))return[];const s=i.staticAccountKeys;if(s.filter(y=>y.toString()===e).length===0)return[];const a=(m=(h=(u=r==null?void 0:r.logMessages)==null?void 0:u.filter(y=>y.startsWith(C$)))==null?void 0:h[0])==null?void 0:m.replace(C$,"");if(!a)return[];const o=[];for(const y of r==null?void 0:r.innerInstructions){const x=y.instructions;o.push(...x.filter(w=>w.programIdIndex in s&&s[w.programIdIndex].toString()===e))}return o.length<1?[]:s.length<3?[]:o.map(y=>[new xr(s[y.accounts[2]]).toUniversalAddress(),BigInt(a)]).filter(y=>y!==null)}async getMessageAccountKeys(e){let n;if(typeof e.transaction.message.version!="string")if(e.meta.loadedAddresses)n=e.transaction.message.getAccountKeys({accountKeysFromLookups:e.meta.loadedAddresses});else{const r=await Promise.all(e.transaction.message.addressTableLookups.map(async i=>{const s=await this.connection.getAddressLookupTable(i.accountKey);if(!s||!s.value)throw new Error("Could not resolve lookup table: "+i.accountKey.toBase58());return s.value}));n=e.transaction.message.getAccountKeys({addressLookupTableAccounts:r})}else n=e.transaction.message.getAccountKeys();return n}async findInstructions(e,n){var f;const{meta:r,transaction:{message:i}}=n,s=this.coreBridge.programId,a=(f=r.innerInstructions)==null?void 0:f.flatMap(u=>u.instructions.filter(h=>s.toString()===e.get(h.programIdIndex).toString())).map(u=>({programIdIndex:u.programIdIndex,accountKeyIndexes:u.accounts})),o=i.compiledInstructions.filter(u=>s.toString()===e.get(u.programIdIndex).toString());return[...a,...o]}async parsePostMessageAccount(e){const n=await this.connection.getAccountInfo(e);if(!(n!=null&&n.data))throw new Error("No data found in message account");const{timestamp:r,emitterAddress:i,emitterChain:s,consistencyLevel:a,sequence:o,nonce:f,payload:u}=Pde(new Uint8Array(n==null?void 0:n.data));return Xse("Uint8Array",{guardianSet:await this.getGuardianSetIndex(),emitterChain:Ey(s),timestamp:r,emitterAddress:i,consistencyLevel:a,sequence:o,nonce:f,payload:u,signatures:[]})}async parseTransaction(e){const n=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!n||!n.meta||!n.meta.innerInstructions)throw new Error("transaction not found");try{const a=T8.parseSequenceFromLog(this.coreBridge.programId.toBase58(),n);if(a.length>0){const[o,f]=a[0];return[{chain:this.chain,emitter:o,sequence:f}]}}catch{}const r=await this.getMessageAccountKeys(n),i=await this.findInstructions(r,n);if(!i||i.length===0)throw new Error("no bridge messages found");const s=i.map(async a=>{const o=r.get(a.accountKeyIndexes[1]),f=await this.parsePostMessageAccount(o);return{chain:f.emitterChain,emitter:f.emitterAddress,sequence:f.sequence}});return await Promise.all(s)}async parseMessages(e){const n=await this.connection.getTransaction(e,{maxSupportedTransactionVersion:0});if(!n||!n.meta||!n.meta.innerInstructions)throw new Error("transaction not found");const r=await this.getMessageAccountKeys(n),i=await this.findInstructions(r,n);if(!i||i.length===0)throw new Error("no bridge messages found");const s=i.map(async a=>{const o=r.get(a.accountKeyIndexes[1]);return await this.parsePostMessageAccount(o)});return await Promise.all(s)}createUnsignedTx(e,n,r=!1){return new ele(e,this.network,this.chain,n,r)}}uA(ng,"WormholeCore",T8);const Jft=Object.freeze(Object.defineProperty({__proto__:null,IDL:tz,SolanaWormholeCore:T8,deserializePostMessage:Pde,postMessageLayout:Fde,utils:dKe},Symbol.toStringTag,{value:"Module"})),hKe={version:"1.0.0",name:"example_native_token_transfers",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"deployer",isMut:!1,isSigner:!0},{name:"programData",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"rateLimit",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1,docs:["The custody account that holds tokens in locking mode.","NOTE: the account is unconditionally initialized, but not used in","burning mode.","function if the token account has already been created."]},{name:"tokenProgram",isMut:!1,isSigner:!1,docs:["associated token account for the given mint."]},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"version",accounts:[],args:[],returns:"string"},{name:"transferBurn",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"transferLock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"redeem",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!1,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"inboxItem",isMut:!0,isSigner:!1,docs:["NOTE: This account is content-addressed (PDA seeded by the message hash).","This is because in a multi-transceiver configuration, the different",'transceivers "vote" on messages (by delivering them). By making the inbox',"items content-addressed, we can ensure that disagreeing votes don't","interfere with each other.","On the first call to [`redeem()`], [`InboxItem`] will be allocated and initialized with","default values.",'On subsequent calls, we want to modify the `InboxItem` by "voting" on it. Therefore the',"program should not fail which would occur when using the `init` constraint.","The [`InboxItem::init`] field is used to guard against malicious or accidental modification","InboxItem fields that should remain constant."]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RedeemArgs"}}]},{name:"releaseInboundMint",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"releaseInboundUnlock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}]},{name:"custody",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"transferOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"newOwner",isMut:!1,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"claimOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"newOwner",isMut:!1,isSigner:!0},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setPaused",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"pause",type:"bool"}]},{name:"setPeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!0,isSigner:!1},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetPeerArgs"}}]},{name:"registerTransceiver",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"transceiver",isMut:!1,isSigner:!1},{name:"registeredTransceiver",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setOutboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetOutboundLimitArgs"}}]},{name:"setInboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetInboundLimitArgs"}}]},{name:"setWormholePeer",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"peer",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetTransceiverPeerArgs"}}]},{name:"receiveWormholeMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"peer",isMut:!1,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"releaseWormholeOutbound",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"outboxItem",isMut:!0,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!1},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseOutboundArgs"}}]},{name:"broadcastWormholeId",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[]},{name:"broadcastWormholePeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"BroadcastPeerArgs"}}]}],accounts:[{name:"config",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"owner",docs:["Owner of the program."],type:"publicKey"},{name:"pendingOwner",docs:["Pending next owner (before claiming ownership)."],type:{option:"publicKey"}},{name:"mint",docs:["Mint address of the token managed by this program."],type:"publicKey"},{name:"tokenProgram",docs:["Address of the token program (token or token22). This could always be queried","from the [`mint`] account's owner, but storing it here avoids an indirection","on the client side."],type:"publicKey"},{name:"mode",docs:["The mode that this program is running in. This is used to determine","whether the program is burning tokens or locking tokens."],type:{defined:"Mode"}},{name:"chainId",docs:["The chain id of the chain that this program is running on. We don't","hardcode this so that the program is deployable on any potential SVM","forks."],type:{defined:"ChainId"}},{name:"nextTransceiverId",docs:["The next transceiver id to use when registering an transceiver."],type:"u8"},{name:"threshold",docs:["The number of transceivers that must attest to a transfer before it is","accepted."],type:"u8"},{name:"enabledTransceivers",docs:["Bitmap of enabled transceivers.","The maximum number of transceivers is equal to [`Bitmap::BITS`]."],type:{defined:"Bitmap"}},{name:"paused",docs:["Pause the program. This is useful for upgrades and other maintenance."],type:"bool"},{name:"custody",docs:["The custody account that holds tokens in locking mode."],type:"publicKey"}]}},{name:"nttManagerPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}},{name:"tokenDecimals",type:"u8"}]}},{name:"inboxItem",type:{kind:"struct",fields:[{name:"init",type:"bool"},{name:"bump",type:"u8"},{name:"amount",type:"u64"},{name:"recipientAddress",type:"publicKey"},{name:"votes",type:{defined:"Bitmap"}},{name:"releaseStatus",type:{defined:"ReleaseStatus"}}]}},{name:"inboxRateLimit",docs:["Inbound rate limit per chain.","SECURITY: must check the PDA (since there are multiple PDAs, namely one for each chain.)"],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"outboxItem",type:{kind:"struct",fields:[{name:"amount",type:{defined:"TrimmedAmount"}},{name:"sender",type:"publicKey"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientNttManager",type:{array:["u8",32]}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"releaseTimestamp",type:"i64"},{name:"released",type:{defined:"Bitmap"}}]}},{name:"outboxRateLimit",type:{kind:"struct",fields:[{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"registeredTransceiver",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"id",type:"u8"},{name:"transceiverAddress",type:"publicKey"}]}},{name:"transceiverPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}},{name:"bridgeData",type:{kind:"struct",fields:[{name:"guardianSetIndex",docs:["The current guardian set index, used to decide which signature sets to accept."],type:"u32"},{name:"lastLamports",docs:["Lamports in the collection account"],type:"u64"},{name:"config",docs:["Bridge configuration, which is set once upon initialization."],type:{defined:"BridgeConfig"}}]}}],types:[{name:"Bitmap",type:{kind:"struct",fields:[{name:"map",type:"u128"}]}},{name:"SetInboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"},{name:"chainId",type:{defined:"ChainId"}}]}},{name:"SetOutboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"}]}},{name:"SetPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}},{name:"limit",type:"u64"},{name:"tokenDecimals",docs:["The token decimals on the peer chain."],type:"u8"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"},{name:"limit",type:"u64"},{name:"mode",type:{defined:"Mode"}}]}},{name:"RedeemArgs",type:{kind:"struct",fields:[]}},{name:"ReleaseInboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"TransferArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"shouldQueue",type:"bool"}]}},{name:"ReleaseStatus",docs:["The status of an InboxItem. This determines whether the tokens are minted/unlocked to the recipient. As","such, this must be used as a state machine that moves forward in a linear manner. A state",'should never "move backward" to a previous state (e.g. should never move from `Released` to',"`ReleaseAfter`)."],type:{kind:"enum",variants:[{name:"NotApproved"},{name:"ReleaseAfter",fields:["i64"]},{name:"Released"}]}},{name:"RateLimitState",type:{kind:"struct",fields:[{name:"limit",docs:["The maximum capacity of the rate limiter."],type:"u64"},{name:"capacityAtLastTx",docs:["The capacity of the rate limiter at `last_tx_timestamp`.","The actual current capacity is calculated in `capacity_at`, by","accounting for the time that has passed since `last_tx_timestamp` and","the refill rate."],type:"u64"},{name:"lastTxTimestamp",docs:["The timestamp of the last transaction that counted towards the current","capacity. Transactions that exceeded the capacity do not count, they are","just delayed."],type:"i64"}]}},{name:"SetTransceiverPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}}]}},{name:"BroadcastPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"ReleaseOutboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"ChainId",type:{kind:"struct",fields:[{name:"id",type:"u16"}]}},{name:"Mode",type:{kind:"enum",variants:[{name:"Locking"},{name:"Burning"}]}},{name:"TrimmedAmount",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"decimals",type:"u8"}]}},{name:"BridgeConfig",type:{kind:"struct",fields:[{name:"guardianSetExpirationTime",docs:["Period for how long a guardian set is valid after it has been replaced by a new one. This","guarantees that VAAs issued by that set can still be submitted for a certain period. In","this period we still trust the old guardian set."],type:"u32"},{name:"fee",docs:["Amount of lamports that needs to be paid to the protocol to post a message"],type:"u64"}]}}],errors:[{code:6e3,name:"CantReleaseYet",msg:"CantReleaseYet"},{code:6001,name:"InvalidPendingOwner",msg:"InvalidPendingOwner"},{code:6002,name:"InvalidChainId",msg:"InvalidChainId"},{code:6003,name:"InvalidRecipientAddress",msg:"InvalidRecipientAddress"},{code:6004,name:"InvalidTransceiverPeer",msg:"InvalidTransceiverPeer"},{code:6005,name:"InvalidNttManagerPeer",msg:"InvalidNttManagerPeer"},{code:6006,name:"InvalidRecipientNttManager",msg:"InvalidRecipientNttManager"},{code:6007,name:"TransferAlreadyRedeemed",msg:"TransferAlreadyRedeemed"},{code:6008,name:"TransferCannotBeRedeemed",msg:"TransferCannotBeRedeemed"},{code:6009,name:"TransferNotApproved",msg:"TransferNotApproved"},{code:6010,name:"MessageAlreadySent",msg:"MessageAlreadySent"},{code:6011,name:"InvalidMode",msg:"InvalidMode"},{code:6012,name:"InvalidMintAuthority",msg:"InvalidMintAuthority"},{code:6013,name:"TransferExceedsRateLimit",msg:"TransferExceedsRateLimit"},{code:6014,name:"Paused",msg:"Paused"},{code:6015,name:"DisabledTransceiver",msg:"DisabledTransceiver"},{code:6016,name:"InvalidDeployer",msg:"InvalidDeployer"},{code:6017,name:"BadAmountAfterTransfer",msg:"BadAmountAfterTransfer"},{code:6018,name:"BadAmountAfterBurn",msg:"BadAmountAfterBurn"},{code:6019,name:"ZeroThreshold",msg:"ZeroThreshold"},{code:6020,name:"OverflowExponent",msg:"OverflowExponent"},{code:6021,name:"OverflowScaledAmount",msg:"OverflowScaledAmount"},{code:6022,name:"BitmapIndexOutOfBounds",msg:"BitmapIndexOutOfBounds"}]},pKe={version:"2.0.0",name:"ntt_quoter",instructions:[{name:"requestRelay",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!1,isSigner:!1,docs:["and checking the release constraint into a single function"]},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RequestRelayArgs"}}]},{name:"closeRelay",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"feeRecipient",isMut:!0,isSigner:!1},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"initialize",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1,docs:["We use the program data to make sure this owner is the upgrade authority (the true owner,","who deployed this program)."]},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAssistant",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"assistant",isMut:!1,isSigner:!1,isOptional:!0}],args:[]},{name:"setFeeRecipient",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1}],args:[]},{name:"registerChain",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainArgs"}}]},{name:"registerNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterNttArgs"}}]},{name:"deregisterNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"DeregisterNttArgs"}}]},{name:"updateSolPrice",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateSolPriceArgs"}}]},{name:"updateChainPrices",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainPricesArgs"}}]},{name:"updateChainParams",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainParamsArgs"}}]}],accounts:[{name:"instance",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"assistant",type:"publicKey"},{name:"feeRecipient",type:"publicKey"},{name:"solPrice",type:"u64"}]}},{name:"registeredChain",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"},{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"registeredNtt",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"relayRequest",type:{kind:"struct",fields:[{name:"requestedGasDropoff",type:"u64"}]}}],types:[{name:"RegisterChainArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"RegisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"DeregisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"}]}},{name:"RequestRelayArgs",type:{kind:"struct",fields:[{name:"gasDropoff",type:"u64"},{name:"maxFee",type:"u64"}]}},{name:"UpdateSolPriceArgs",type:{kind:"struct",fields:[{name:"solPrice",type:"u64"}]}},{name:"UpdateChainPricesArgs",type:{kind:"struct",fields:[{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"UpdateChainParamsArgs",type:{kind:"struct",fields:[{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"}]}}],errors:[{code:6001,name:"ExceedsUserMaxFee",msg:"Relay fees exceeds specified max"},{code:6002,name:"ExceedsMaxGasDropoff",msg:"Requested gas dropoff exceeds max allowed for chain"},{code:6003,name:"InvalidFeeRecipient",msg:"The specified fee recipient does not match the address in the instance accound"},{code:6004,name:"RelayingToChainDisabled",msg:"Relaying to the specified chain is disabled"},{code:6005,name:"OutboxItemNotReleased",msg:"Relaying to the specified chain is disabled"},{code:6006,name:"ScalingOverflow",msg:"Scaled value exceeds u64::MAX"},{code:6007,name:"DivByZero",msg:"Cannot divide by zero"},{code:6257,name:"FeeRecipientCannotBeDefault",msg:"The fee recipient cannot be the default address (0x0)"},{code:6258,name:"NotAuthorized",msg:"Must be owner or assistant"},{code:6259,name:"PriceCannotBeZero",msg:"The price cannot be zero"}]},bKe={version:"1.0.0",name:"wormhole_governance",instructions:[{name:"governance",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"governance",isMut:!0,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"replay",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"replayProtection",type:{kind:"struct",fields:[{name:"bump",type:"u8"}]}}],errors:[{code:6e3,name:"InvalidGovernanceChain",msg:"InvalidGovernanceChain"},{code:6001,name:"InvalidGovernanceEmitter",msg:"InvalidGovernanceEmitter"}]};var gj;(function(t){t.idl={ntt:hKe,quoter:pKe,governance:bKe}})(gj||(gj={}));const mKe={version:"2.0.0",name:"example_native_token_transfers",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"deployer",isMut:!1,isSigner:!0},{name:"programData",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"rateLimit",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1,docs:["In any case, this function is used to set the Config and initialize the program so we","assume the caller of this function will have total control over the program.","",'TODO: Using `UncheckedAccount` here leads to "Access violation in stack frame ...".',"Could refactor code to use `Box<_>` to reduce stack size."]},{name:"custody",isMut:!0,isSigner:!1,docs:["The custody account that holds tokens in locking mode and temporarily","holds tokens in burning mode.","function if the token account has already been created."]},{name:"tokenProgram",isMut:!1,isSigner:!1,docs:["associated token account for the given mint."]},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"initializeLut",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"authority",isMut:!1,isSigner:!1},{name:"lutAddress",isMut:!0,isSigner:!1},{name:"lut",isMut:!0,isSigner:!1},{name:"lutProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"entries",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"custody",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"outboxRateLimit",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}]}],args:[{name:"recentSlot",type:"u64"}]},{name:"version",accounts:[],args:[],returns:"string"},{name:"transferBurn",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1,docs:["Tokens are always transferred to the custody account first regardless of","the mode.","For an explanation, see the note in [`transfer_burn`]."]},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1,docs:["See [`crate::SESSION_AUTHORITY_SEED`] for an explanation of the flow."]},{name:"tokenAuthority",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"transferLock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1,docs:["Tokens are always transferred to the custody account first regardless of","the mode.","For an explanation, see the note in [`transfer_burn`]."]},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1,docs:["See [`crate::SESSION_AUTHORITY_SEED`] for an explanation of the flow."]}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"redeem",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!1,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"inboxItem",isMut:!0,isSigner:!1,docs:["NOTE: This account is content-addressed (PDA seeded by the message hash).","This is because in a multi-transceiver configuration, the different",'transceivers "vote" on messages (by delivering them). By making the inbox',"items content-addressed, we can ensure that disagreeing votes don't","interfere with each other.","On the first call to [`redeem()`], [`InboxItem`] will be allocated and initialized with","default values.",'On subsequent calls, we want to modify the `InboxItem` by "voting" on it. Therefore the',"program should not fail which would occur when using the `init` constraint.","The [`InboxItem::init`] field is used to guard against malicious or accidental modification","InboxItem fields that should remain constant."]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RedeemArgs"}}]},{name:"releaseInboundMint",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1,docs:["CHECK The seeds constraint ensures that this is the correct address"]},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"releaseInboundUnlock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1,docs:["CHECK The seeds constraint ensures that this is the correct address"]},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"transferOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"newOwner",isMut:!1,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"claimOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"newOwner",isMut:!1,isSigner:!0},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setPaused",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"pause",type:"bool"}]},{name:"setPeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!0,isSigner:!1},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetPeerArgs"}}]},{name:"registerTransceiver",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"transceiver",isMut:!1,isSigner:!1,docs:["used here that wraps the Transceiver account type."]},{name:"registeredTransceiver",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setOutboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetOutboundLimitArgs"}}]},{name:"setInboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetInboundLimitArgs"}}]},{name:"setWormholePeer",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"peer",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetTransceiverPeerArgs"}}]},{name:"receiveWormholeMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"peer",isMut:!1,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"releaseWormholeOutbound",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"outboxItem",isMut:!0,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!1},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseOutboundArgs"}}]},{name:"broadcastWormholeId",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[]},{name:"broadcastWormholePeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"BroadcastPeerArgs"}}]}],accounts:[{name:"config",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"owner",docs:["Owner of the program."],type:"publicKey"},{name:"pendingOwner",docs:["Pending next owner (before claiming ownership)."],type:{option:"publicKey"}},{name:"mint",docs:["Mint address of the token managed by this program."],type:"publicKey"},{name:"tokenProgram",docs:["Address of the token program (token or token22). This could always be queried","from the [`mint`] account's owner, but storing it here avoids an indirection","on the client side."],type:"publicKey"},{name:"mode",docs:["The mode that this program is running in. This is used to determine","whether the program is burning tokens or locking tokens."],type:{defined:"Mode"}},{name:"chainId",docs:["The chain id of the chain that this program is running on. We don't","hardcode this so that the program is deployable on any potential SVM","forks."],type:{defined:"ChainId"}},{name:"nextTransceiverId",docs:["The next transceiver id to use when registering an transceiver."],type:"u8"},{name:"threshold",docs:["The number of transceivers that must attest to a transfer before it is","accepted."],type:"u8"},{name:"enabledTransceivers",docs:["Bitmap of enabled transceivers.","The maximum number of transceivers is equal to [`Bitmap::BITS`]."],type:{defined:"Bitmap"}},{name:"paused",docs:["Pause the program. This is useful for upgrades and other maintenance."],type:"bool"},{name:"custody",docs:["The custody account that holds tokens in locking mode."],type:"publicKey"}]}},{name:"LUT",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:"publicKey"}]}},{name:"nttManagerPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}},{name:"tokenDecimals",type:"u8"}]}},{name:"inboxItem",type:{kind:"struct",fields:[{name:"init",type:"bool"},{name:"bump",type:"u8"},{name:"amount",type:"u64"},{name:"recipientAddress",type:"publicKey"},{name:"votes",type:{defined:"Bitmap"}},{name:"releaseStatus",type:{defined:"ReleaseStatus"}}]}},{name:"inboxRateLimit",docs:["Inbound rate limit per chain.","SECURITY: must check the PDA (since there are multiple PDAs, namely one for each chain.)"],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"outboxItem",type:{kind:"struct",fields:[{name:"amount",type:{defined:"TrimmedAmount"}},{name:"sender",type:"publicKey"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientNttManager",type:{array:["u8",32]}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"releaseTimestamp",type:"i64"},{name:"released",type:{defined:"Bitmap"}}]}},{name:"outboxRateLimit",type:{kind:"struct",fields:[{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"registeredTransceiver",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"id",type:"u8"},{name:"transceiverAddress",type:"publicKey"}]}},{name:"transceiverPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}},{name:"bridgeData",type:{kind:"struct",fields:[{name:"guardianSetIndex",docs:["The current guardian set index, used to decide which signature sets to accept."],type:"u32"},{name:"lastLamports",docs:["Lamports in the collection account"],type:"u64"},{name:"config",docs:["Bridge configuration, which is set once upon initialization."],type:{defined:"BridgeConfig"}}]}}],types:[{name:"Bitmap",type:{kind:"struct",fields:[{name:"map",type:"u128"}]}},{name:"SetInboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"},{name:"chainId",type:{defined:"ChainId"}}]}},{name:"SetOutboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"}]}},{name:"SetPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}},{name:"limit",type:"u64"},{name:"tokenDecimals",docs:["The token decimals on the peer chain."],type:"u8"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"},{name:"limit",type:"u64"},{name:"mode",type:{defined:"Mode"}}]}},{name:"RedeemArgs",type:{kind:"struct",fields:[]}},{name:"ReleaseInboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"TransferArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"shouldQueue",type:"bool"}]}},{name:"ReleaseStatus",docs:["The status of an InboxItem. This determines whether the tokens are minted/unlocked to the recipient. As","such, this must be used as a state machine that moves forward in a linear manner. A state",'should never "move backward" to a previous state (e.g. should never move from `Released` to',"`ReleaseAfter`)."],type:{kind:"enum",variants:[{name:"NotApproved"},{name:"ReleaseAfter",fields:["i64"]},{name:"Released"}]}},{name:"RateLimitState",type:{kind:"struct",fields:[{name:"limit",docs:["The maximum capacity of the rate limiter."],type:"u64"},{name:"capacityAtLastTx",docs:["The capacity of the rate limiter at `last_tx_timestamp`.","The actual current capacity is calculated in `capacity_at`, by","accounting for the time that has passed since `last_tx_timestamp` and","the refill rate."],type:"u64"},{name:"lastTxTimestamp",docs:["The timestamp of the last transaction that counted towards the current","capacity. Transactions that exceeded the capacity do not count, they are","just delayed."],type:"i64"}]}},{name:"SetTransceiverPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}}]}},{name:"BroadcastPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"ReleaseOutboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"ChainId",type:{kind:"struct",fields:[{name:"id",type:"u16"}]}},{name:"Mode",type:{kind:"enum",variants:[{name:"Locking"},{name:"Burning"}]}},{name:"TrimmedAmount",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"decimals",type:"u8"}]}},{name:"BridgeConfig",type:{kind:"struct",fields:[{name:"guardianSetExpirationTime",docs:["Period for how long a guardian set is valid after it has been replaced by a new one. This","guarantees that VAAs issued by that set can still be submitted for a certain period. In","this period we still trust the old guardian set."],type:"u32"},{name:"fee",docs:["Amount of lamports that needs to be paid to the protocol to post a message"],type:"u64"}]}}],errors:[{code:6e3,name:"CantReleaseYet",msg:"CantReleaseYet"},{code:6001,name:"InvalidPendingOwner",msg:"InvalidPendingOwner"},{code:6002,name:"InvalidChainId",msg:"InvalidChainId"},{code:6003,name:"InvalidRecipientAddress",msg:"InvalidRecipientAddress"},{code:6004,name:"InvalidTransceiverPeer",msg:"InvalidTransceiverPeer"},{code:6005,name:"InvalidNttManagerPeer",msg:"InvalidNttManagerPeer"},{code:6006,name:"InvalidRecipientNttManager",msg:"InvalidRecipientNttManager"},{code:6007,name:"TransferAlreadyRedeemed",msg:"TransferAlreadyRedeemed"},{code:6008,name:"TransferCannotBeRedeemed",msg:"TransferCannotBeRedeemed"},{code:6009,name:"TransferNotApproved",msg:"TransferNotApproved"},{code:6010,name:"MessageAlreadySent",msg:"MessageAlreadySent"},{code:6011,name:"InvalidMode",msg:"InvalidMode"},{code:6012,name:"InvalidMintAuthority",msg:"InvalidMintAuthority"},{code:6013,name:"TransferExceedsRateLimit",msg:"TransferExceedsRateLimit"},{code:6014,name:"Paused",msg:"Paused"},{code:6015,name:"DisabledTransceiver",msg:"DisabledTransceiver"},{code:6016,name:"InvalidDeployer",msg:"InvalidDeployer"},{code:6017,name:"BadAmountAfterTransfer",msg:"BadAmountAfterTransfer"},{code:6018,name:"BadAmountAfterBurn",msg:"BadAmountAfterBurn"},{code:6019,name:"ZeroThreshold",msg:"ZeroThreshold"},{code:6020,name:"OverflowExponent",msg:"OverflowExponent"},{code:6021,name:"OverflowScaledAmount",msg:"OverflowScaledAmount"},{code:6022,name:"BitmapIndexOutOfBounds",msg:"BitmapIndexOutOfBounds"},{code:6023,name:"NoRegisteredTransceivers",msg:"NoRegisteredTransceivers"}]},yKe={version:"2.0.0",name:"ntt_quoter",instructions:[{name:"requestRelay",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!1,isSigner:!1,docs:["and checking the release constraint into a single function"]},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RequestRelayArgs"}}]},{name:"closeRelay",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"feeRecipient",isMut:!0,isSigner:!1},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"initialize",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1,docs:["We use the program data to make sure this owner is the upgrade authority (the true owner,","who deployed this program)."]},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAssistant",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"assistant",isMut:!1,isSigner:!1,isOptional:!0}],args:[]},{name:"setFeeRecipient",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1}],args:[]},{name:"registerChain",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainArgs"}}]},{name:"registerNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterNttArgs"}}]},{name:"deregisterNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"DeregisterNttArgs"}}]},{name:"updateSolPrice",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateSolPriceArgs"}}]},{name:"updateChainPrices",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainPricesArgs"}}]},{name:"updateChainParams",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainParamsArgs"}}]}],accounts:[{name:"instance",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"assistant",type:"publicKey"},{name:"feeRecipient",type:"publicKey"},{name:"solPrice",type:"u64"}]}},{name:"registeredChain",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"},{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"registeredNtt",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"relayRequest",type:{kind:"struct",fields:[{name:"requestedGasDropoff",type:"u64"}]}}],types:[{name:"RegisterChainArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"RegisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"DeregisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"}]}},{name:"RequestRelayArgs",type:{kind:"struct",fields:[{name:"gasDropoff",type:"u64"},{name:"maxFee",type:"u64"}]}},{name:"UpdateSolPriceArgs",type:{kind:"struct",fields:[{name:"solPrice",type:"u64"}]}},{name:"UpdateChainPricesArgs",type:{kind:"struct",fields:[{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"UpdateChainParamsArgs",type:{kind:"struct",fields:[{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"}]}}],errors:[{code:6001,name:"ExceedsUserMaxFee",msg:"Relay fees exceeds specified max"},{code:6002,name:"ExceedsMaxGasDropoff",msg:"Requested gas dropoff exceeds max allowed for chain"},{code:6003,name:"InvalidFeeRecipient",msg:"The specified fee recipient does not match the address in the instance accound"},{code:6004,name:"RelayingToChainDisabled",msg:"Relaying to the specified chain is disabled"},{code:6005,name:"OutboxItemNotReleased",msg:"Relaying to the specified chain is disabled"},{code:6006,name:"ScalingOverflow",msg:"Scaled value exceeds u64::MAX"},{code:6007,name:"DivByZero",msg:"Cannot divide by zero"},{code:6257,name:"FeeRecipientCannotBeDefault",msg:"The fee recipient cannot be the default address (0x0)"},{code:6258,name:"NotAuthorized",msg:"Must be owner or assistant"},{code:6259,name:"PriceCannotBeZero",msg:"The price cannot be zero"}]},gKe={version:"2.0.0",name:"wormhole_governance",instructions:[{name:"governance",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"governance",isMut:!0,isSigner:!1,docs:["governed program. This account is validated by Wormhole, not this program."]},{name:"vaa",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"replay",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"replayProtection",type:{kind:"struct",fields:[{name:"bump",type:"u8"}]}}],errors:[{code:6e3,name:"InvalidGovernanceChain",msg:"InvalidGovernanceChain"},{code:6001,name:"InvalidGovernanceEmitter",msg:"InvalidGovernanceEmitter"},{code:6002,name:"InvalidGovernanceProgram",msg:"InvalidGovernanceProgram"}]};var xj;(function(t){t.idl={ntt:mKe,quoter:yKe,governance:gKe}})(xj||(xj={}));const n6e=[["2.0.0",xj],["1.0.0",gj]];function xKe(t){for(const[e,n]of n6e)if(Co.abiVersionMatches(t,e))return n;throw new Error(`Unknown IDL version: ${t}`)}function r6e(t,e,n){const{idl:{ntt:r}}=xKe(n);return new Ed(r,e,{connection:t})}const i6e=new Fe("BPFLoaderUpgradeab1e11111111111111111111111");function s6e(t){return Fe.findProgramAddressSync([new Fe(t).toBytes()],i6e)[0]}function T$(t){const e=t.split(".");if(e.length<3)throw new Error("Invalid version string");const n=e[2],r=n.split(/[^0-9]/)[0],i=n.slice(r.length);return[Number(e[0]),Number(e[1]),Number(r),i]}const vKe={to:t=>new Fe(t),from:t=>t.toBytes()},wKe=[{name:"slot",binary:"uint",endianness:"little",size:8},{name:"upgradeAuthority",binary:"switch",idSize:1,idTag:"isSome",layouts:[[[0,!1],[]],[[1,!0],[{name:"value",binary:"bytes",size:32,custom:vKe}]]]}],MKe=[{name:"length",binary:"uint",endianness:"little",size:4},{name:"version",binary:"bytes"}],w0={MAX:new ra((2n**64n-1n).toString()),to:(t,e)=>{const n=new ra(Math.round(t*e));if(n.isNeg())throw new Error("Value negative");if(n.bitLength()>64)throw new Error("Value too large");return n},from:(t,e)=>t.toNumber()/e};function Si(t,e){const n=r=>typeof r=="string"?sa.encode(r):r;return Fe.findProgramAddressSync(Array.isArray(t)?t.map(n):[n(t)],new Fe(e))[0]}const p6=t=>n4.toBytes(ai(t),2),AKe=t=>({relayRequestAccount:s=>Si(["relay_request",s.toBytes()],t),instanceAccount:()=>Si("instance",t),registeredChainAccount:s=>Si(["registered_chain",p6(s)],t),registeredNttAccount:s=>Si(["registered_ntt",s.toBytes()],t)});var Qr;(function(t){function e(F,L,B){return{amount:new ra(F.toString()),recipientChain:{id:ai(L.chain)},recipientAddress:Array.from(L.address.toUniversalAddress().toUint8Array()),shouldQueue:B}}t.transferArgs=e,t.pdas=F=>({configAccount:()=>Si("config",F),outboxRateLimitAccount:()=>Si("outbox_rate_limit",F),inboxRateLimitAccount:j=>Si(["inbox_rate_limit",p6(j)],F),inboxItemAccount:(j,U)=>Si(["inbox_item",Co.messageDigest(j,U)],F),sessionAuthority:(j,U)=>Si(["session_authority",j.toBytes(),gd(sa.concat(sa.zpad(new Uint8Array(U.amount.toArray()),8),p6(U.recipientChain.id),new Uint8Array(U.recipientAddress),new Uint8Array([U.shouldQueue?1:0])))],F),tokenAuthority:()=>Si("token_authority",F),emitterAccount:()=>Si("emitter",F),wormholeMessageAccount:j=>Si(["message",j.toBytes()],F),peerAccount:j=>Si(["peer",p6(j)],F),transceiverPeerAccount:j=>Si(["transceiver_peer",p6(j)],F),transceiverMessageAccount:(j,U)=>Si(["transceiver_message",p6(j),U],F),registeredTransceiver:j=>Si(["registered_transceiver",j.toBytes()],F),lutAccount:()=>Si("lut",F),lutAuthority:()=>Si("lut_authority",F)});async function n(F,L,B){var v;if(!B){const l=F.rpcEndpoint===WHe("Devnet","Solana")?"6sbzC1eH4FTujJXWj51eQe25cYvr4xfXbJ1vAj7j2k5J":F.rpcEndpoint.startsWith("http://localhost")?"98evdAiWr7ey9MAQzoQQMwFQkTsSR6KkWQuFqKrgwNwb":"Hk3SdYTJFpawrvRz4qRztuEt2SqoCG7BGj2yJfDJSFbJ";B=new Fe(l)}const P=r6e(F,L.toString(),"1.0.0"),C=await P.methods.version().accountsStrict({}).instruction(),{blockhash:c}=await P.provider.connection.getLatestBlockhash("finalized"),d=new v8({payerKey:B,recentBlockhash:c,instructions:[C]}).compileToV0Message(),p=new w8(d),b=await P.provider.connection.simulateTransaction(p,{sigVerify:!1});if(!b.value.returnData||b.value.err)throw new Error("Could not fetch IDL version: "+JSON.stringify(VP(b.value.err,ude(P.idl))));const g=FHe.decode((v=b.value.returnData)==null?void 0:v.data[0]),M=Yue(MKe,g),S=sa.decode(M.version);for(const[l]of n6e)if(Co.abiVersionMatches(S,l))return l;throw new Error(`Unknown IDL version: ${S}`)}t.getVersion=n;async function r(F,L,B){const P=L.mode==="burning"?{burning:{}}:{locking:{}},C=ai(L.chain);B=B??t.pdas(F.programId);const c=new ra(L.outboundLimit.toString());return await F.methods.initialize({chainId:C,limit:c,mode:P}).accountsStrict({payer:L.payer,deployer:L.owner,programData:s6e(F.programId),config:B.configAccount(),mint:L.mint,rateLimit:B.outboxRateLimitAccount(),tokenProgram:L.tokenProgram,tokenAuthority:B.tokenAuthority(),custody:await t.custodyAccountAddress(B,L.mint,L.tokenProgram),bpfLoaderUpgradeableProgram:i6e,associatedTokenProgram:mg,systemProgram:kn.programId}).instruction()}t.createInitializeInstruction=r;async function i(F,L,B,P){var l;const[C,,,]=T$(F.idl.version);if(C<2)return;P=P??t.pdas(F.programId);const c=await F.provider.connection.getSlot()-1,[d,p]=xm.createLookupTable({authority:P.lutAuthority(),payer:B.payer,recentSlot:c}),b=y2(F.programId,B.wormholeId.toString()),g={config:P.configAccount(),custody:L.custody,tokenProgram:L.tokenProgram,mint:L.mint,tokenAuthority:P.tokenAuthority(),outboxRateLimit:P.outboxRateLimitAccount(),wormhole:{bridge:b.wormholeBridge,feeCollector:b.wormholeFeeCollector,sequence:b.wormholeSequence,program:B.wormholeId,systemProgram:kn.programId,clock:f0,rent:ds}},M=A=>{const j=new Array;for(const U in A){const Q=A[U];Q instanceof Fe?j.push(Q):typeof Q=="object"&&j.push(...M(Q))}return j},S=M(g).map(A=>A.toBase58()),v=await R(F,P);if(v!==null){const A=((l=v.state.addresses)==null?void 0:l.map(U=>U.toBase58()))??[];if(S.filter(U=>!A.includes(U)).length===0)return null}return await F.methods.initializeLut(new ra(c)).accountsStrict({payer:B.payer,authority:P.lutAuthority(),lutAddress:p,lut:P.lutAccount(),lutProgram:xm.programId,systemProgram:kn.programId,entries:g}).instruction()}t.initializeOrUpdateLUT=i;async function s(F,L,B,P){P=P??t.pdas(F.programId);const C=await _(P,L),c=cK(B.transferArgs.recipientChain.id),d=await F.methods.transferBurn(B.transferArgs).accountsStrict({common:{payer:B.payer,config:{config:P.configAccount()},mint:L.mint,from:B.from,tokenProgram:L.tokenProgram,outboxItem:B.outboxItem,outboxRateLimit:P.outboxRateLimitAccount(),systemProgram:kn.programId,custody:C},peer:P.peerAccount(c),inboxRateLimit:P.inboxRateLimitAccount(c),sessionAuthority:P.sessionAuthority(B.fromAuthority,B.transferArgs),tokenAuthority:P.tokenAuthority()}).instruction(),p=await r7(F.provider.connection,L.mint,void 0,L.tokenProgram),b=s7(p);if(b){const g=B.from,M=L.mint,S=await _(P,L),v=P.sessionAuthority(B.fromAuthority,B.transferArgs);await a7(F.provider.connection,d,b.programId,g,M,S,v,0)}return d}t.createTransferBurnInstruction=s;async function a(F,L,B,P){if(L.paused)throw new Error("Contract is paused");P=P??t.pdas(F.programId);const C=cK(B.transferArgs.recipientChain.id),c=await _(P,L),d=await F.methods.transferLock(B.transferArgs).accountsStrict({common:{payer:B.payer,config:{config:P.configAccount()},mint:L.mint,from:B.from,tokenProgram:L.tokenProgram,outboxItem:B.outboxItem,outboxRateLimit:P.outboxRateLimitAccount(),custody:c,systemProgram:kn.programId},peer:P.peerAccount(C),inboxRateLimit:P.inboxRateLimitAccount(C),sessionAuthority:P.sessionAuthority(B.fromAuthority,B.transferArgs),custody:c}).instruction(),p=await r7(F.provider.connection,L.mint,void 0,L.tokenProgram),b=s7(p);if(b){const g=B.from,M=await _(P,L),S=P.sessionAuthority(B.fromAuthority,B.transferArgs);await a7(F.provider.connection,d,b.programId,g,L.mint,M,S,0)}return d}t.createTransferLockInstruction=a;async function o(F,L,B){B=B??t.pdas(F.programId);const P=y2(F.programId,L.wormholeId);return await F.methods.releaseWormholeOutbound({revertOnDelay:L.revertOnDelay}).accounts({payer:L.payer,config:{config:B.configAccount()},outboxItem:L.outboxItem,wormholeMessage:B.wormholeMessageAccount(L.outboxItem),emitter:P.wormholeEmitter,transceiver:B.registeredTransceiver(F.programId),wormhole:{bridge:P.wormholeBridge,feeCollector:P.wormholeFeeCollector,sequence:P.wormholeSequence,program:L.wormholeId}}).instruction()}t.createReleaseOutboundInstruction=o;async function f(F,L,B,P){P=P??t.pdas(F.programId);const C=B.recipient??(await N(F,B.chain,B.nttMessage)).recipientAddress,c=await F.methods.releaseInboundMint({revertOnDelay:B.revertOnDelay}).accountsStrict({common:{payer:B.payer,config:{config:P.configAccount()},inboxItem:P.inboxItemAccount(B.chain,B.nttMessage),recipient:i7(L.mint,C,!0,L.tokenProgram),mint:L.mint,tokenAuthority:P.tokenAuthority(),tokenProgram:L.tokenProgram,custody:await _(P,L)}}).instruction(),d=await r7(F.provider.connection,L.mint,void 0,L.tokenProgram),p=s7(d);if(p){const b=await _(P,L),g=L.mint,M=i7(g,C,!0,L.tokenProgram),S=P.tokenAuthority();await a7(F.provider.connection,c,p.programId,b,g,M,S,0)}return c}t.createReleaseInboundMintInstruction=f;async function u(F,L,B,P){const C=B.recipient??(await t.getInboxItem(F,B.chain,B.nttMessage)).recipientAddress;P=P??t.pdas(F.programId);const c=await _(P,L),d=await F.methods.releaseInboundUnlock({revertOnDelay:B.revertOnDelay}).accountsStrict({common:{payer:B.payer,config:{config:P.configAccount()},inboxItem:P.inboxItemAccount(B.chain,B.nttMessage),recipient:i7(L.mint,C,!0,L.tokenProgram),mint:L.mint,tokenAuthority:P.tokenAuthority(),tokenProgram:L.tokenProgram,custody:c},custody:c}).instruction(),p=await r7(F.provider.connection,L.mint,void 0,L.tokenProgram),b=s7(p);if(b){const g=await _(P,L),M=L.mint,S=i7(M,C,!0,L.tokenProgram),v=P.tokenAuthority();await a7(F.provider.connection,d,b.programId,g,M,S,v,0)}return d}t.createReleaseInboundUnlockInstruction=u;async function h(F,L,B){return B=B??t.pdas(F.programId),await F.methods.transferOwnership().accounts({config:B.configAccount(),newOwner:L.newOwner}).instruction()}t.createTransferOwnershipInstruction=h;async function m(F,L,B){return B=B??t.pdas(F.programId),await F.methods.setPeer({chainId:{id:ai(L.chain)},address:Array.from(L.address),limit:L.limit,tokenDecimals:L.tokenDecimals}).accounts({payer:L.payer,owner:L.owner,config:B.configAccount(),peer:B.peerAccount(L.chain),inboxRateLimit:B.inboxRateLimitAccount(L.chain)}).instruction()}t.createSetPeerInstruction=m;async function y(F,L,B){return B=B??t.pdas(F.programId),await F.methods.setPaused(L.paused).accountsStrict({owner:L.owner,config:B.configAccount()}).instruction()}t.createSetPausedInstruction=y;async function x(F,L,B){B=B??t.pdas(F.programId);const P=await F.methods.setWormholePeer({chainId:{id:ai(L.chain)},address:Array.from(L.address)}).accounts({payer:L.payer,owner:L.owner,config:B.configAccount(),peer:B.transceiverPeerAccount(L.chain)}).instruction(),C=jo.generate(),c=y2(F.programId,L.wormholeId),d=await F.methods.broadcastWormholePeer({chainId:ai(L.chain)}).accounts({payer:L.payer,config:B.configAccount(),peer:B.transceiverPeerAccount(L.chain),wormholeMessage:C.publicKey,emitter:B.emitterAccount(),wormhole:{bridge:c.wormholeBridge,feeCollector:c.wormholeFeeCollector,sequence:c.wormholeSequence,program:L.wormholeId}}).instruction(),p=new yn().add(P,d);return p.feePayer=L.payer,{transaction:p,signers:[C]}}t.setWormholeTransceiverPeer=x;async function w(F,L,B,P){P=P??t.pdas(F.programId);const C=await F.methods.registerTransceiver().accounts({payer:B.payer,owner:B.owner,config:P.configAccount(),transceiver:B.transceiver,registeredTransceiver:P.registeredTransceiver(B.transceiver)}).instruction(),c=jo.generate(),d=y2(F.programId,B.wormholeId),p=await F.methods.broadcastWormholeId().accountsStrict({payer:B.payer,config:P.configAccount(),mint:L.mint,wormholeMessage:c.publicKey,emitter:P.emitterAccount(),wormhole:{bridge:d.wormholeBridge,feeCollector:d.wormholeFeeCollector,sequence:d.wormholeSequence,program:B.wormholeId,systemProgram:kn.programId,clock:f0,rent:ds}}).instruction(),b=new yn().add(C,p);return b.feePayer=B.payer,{transaction:b,signers:[c]}}t.registerTransceiver=w;async function E(F,L,B){return B=B??t.pdas(F.programId),await F.methods.setOutboundLimit({limit:L.limit}).accounts({owner:L.owner,config:B.configAccount(),rateLimit:B.outboxRateLimitAccount()}).instruction()}t.createSetOutboundLimitInstruction=E;async function I(F,L,B){return B=B??t.pdas(F.programId),await F.methods.setInboundLimit({chainId:{id:ai(L.chain)},limit:L.limit}).accounts({owner:L.owner,config:B.configAccount(),rateLimit:B.inboxRateLimitAccount(L.chain)}).instruction()}t.setInboundLimit=I;async function T(F,L,B){B=B??t.pdas(F.programId);const P=L.vaa,C=P.payload.nttManagerPayload,c=P.emitterChain,d=B.transceiverPeerAccount(c);return await F.methods.receiveWormholeMessage().accounts({payer:L.payer,config:{config:B.configAccount()},peer:d,vaa:Nu(L.wormholeId,ze.Buffer.from(P.hash)),transceiverMessage:B.transceiverMessageAccount(c,C.id)}).instruction()}t.createReceiveWormholeMessageInstruction=T;async function D(F,L,B,P){P=P??t.pdas(F.programId);const C=B.vaa,c=C.payload.nttManagerPayload,d=C.emitterChain;return await F.methods.redeem({}).accounts({payer:B.payer,config:P.configAccount(),peer:P.peerAccount(d),transceiverMessage:P.transceiverMessageAccount(d,c.id),transceiver:P.registeredTransceiver(F.programId),mint:L.mint,inboxItem:P.inboxItemAccount(d,c),inboxRateLimit:P.inboxRateLimitAccount(d),outboxRateLimit:P.outboxRateLimitAccount()}).instruction()}t.createRedeemInstruction=D;async function k(F,L){return await F.account.config.fetch(L.configAccount())}t.getConfig=k;async function N(F,L,B){return await F.account.inboxItem.fetch(t.pdas(F.programId).inboxItemAccount(L,B))}t.getInboxItem=N;async function R(F,L){const[B,,,]=T$(F.idl.version);if(B<2)return null;L=L??t.pdas(F.programId);const P=await F.account.lut.fetchNullable(L.lutAccount());if(!P)return null;const C=await F.provider.connection.getAddressLookupTable(P.address);if(C.value===null)throw new Error("Could not fetch LUT");return C.value}t.getAddressLookupTable=R;async function _(F,L,B=zd){return L instanceof Fe?mj(L,F.tokenAuthority(),!0,B):mj(L.mint,F.tokenAuthority(),!0,L.tokenProgram)}t.custodyAccountAddress=_})(Qr||(Qr={}));async function a7(t,e,n,r,i,s,a,o,f){const u=OZe(i,n),h=await t.getAccountInfo(u,f);if(h==null)return e;const m=zZe(h);if(![r,i,s,a].every(x=>e.keys.some(w=>w.pubkey.equals(x))))throw new Error("Missing required account in instruction");const y=WZe(n,r,i,s,a,u,BigInt(o));for(const x of m)y.keys.push(EKe(await UZe(t,x,y.keys,y.data,y.programId),y.keys));e.keys.push(...y.keys.slice(5)),e.keys.push({pubkey:n,isSigner:!1,isWritable:!1}),e.keys.push({pubkey:u,isSigner:!1,isWritable:!1})}function EKe(t,e){const n=e.filter(r=>r.pubkey.equals(t.pubkey)).reduce((r,i)=>r?{isSigner:r.isSigner||i.isSigner,isWritable:r.isWritable||i.isWritable}:{isSigner:i.isSigner,isWritable:i.isWritable},void 0);if(n){const{isSigner:r,isWritable:i}=n;!r&&r!==t.isSigner&&(t.isSigner=!1),!i&&i!==t.isWritable&&(t.isWritable=!1)}return t}const SKe="2.0.0",CKe="ntt_quoter",TKe=[{name:"requestRelay",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!1,isSigner:!1,docs:["and checking the release constraint into a single function"]},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RequestRelayArgs"}}]},{name:"closeRelay",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"feeRecipient",isMut:!0,isSigner:!1},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"initialize",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1,docs:["We use the program data to make sure this owner is the upgrade authority (the true owner,","who deployed this program)."]},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAssistant",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"assistant",isMut:!1,isSigner:!1,isOptional:!0}],args:[]},{name:"setFeeRecipient",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1}],args:[]},{name:"registerChain",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainArgs"}}]},{name:"registerNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterNttArgs"}}]},{name:"deregisterNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"DeregisterNttArgs"}}]},{name:"updateSolPrice",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateSolPriceArgs"}}]},{name:"updateChainPrices",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainPricesArgs"}}]},{name:"updateChainParams",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainParamsArgs"}}]}],IKe=[{name:"Instance",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"assistant",type:"publicKey"},{name:"feeRecipient",type:"publicKey"},{name:"solPrice",type:"u64"}]}},{name:"RegisteredChain",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"},{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"RegisteredNtt",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"RelayRequest",type:{kind:"struct",fields:[{name:"requestedGasDropoff",type:"u64"}]}}],DKe=[{name:"RegisterChainArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"RegisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"DeregisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"}]}},{name:"RequestRelayArgs",type:{kind:"struct",fields:[{name:"gasDropoff",type:"u64"},{name:"maxFee",type:"u64"}]}},{name:"UpdateSolPriceArgs",type:{kind:"struct",fields:[{name:"solPrice",type:"u64"}]}},{name:"UpdateChainPricesArgs",type:{kind:"struct",fields:[{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"UpdateChainParamsArgs",type:{kind:"struct",fields:[{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"}]}}],kKe=[{code:6001,name:"ExceedsUserMaxFee",msg:"Relay fees exceeds specified max"},{code:6002,name:"ExceedsMaxGasDropoff",msg:"Requested gas dropoff exceeds max allowed for chain"},{code:6003,name:"InvalidFeeRecipient",msg:"The specified fee recipient does not match the address in the instance accound"},{code:6004,name:"RelayingToChainDisabled",msg:"Relaying to the specified chain is disabled"},{code:6005,name:"OutboxItemNotReleased",msg:"Relaying to the specified chain is disabled"},{code:6006,name:"ScalingOverflow",msg:"Scaled value exceeds u64::MAX"},{code:6007,name:"DivByZero",msg:"Cannot divide by zero"},{code:6257,name:"FeeRecipientCannotBeDefault",msg:"The fee recipient cannot be the default address (0x0)"},{code:6258,name:"NotAuthorized",msg:"Must be owner or assistant"},{code:6259,name:"PriceCannotBeZero",msg:"The price cannot be zero"}],NKe={version:SKe,name:CKe,instructions:TKe,accounts:IKe,types:DKe,errors:kKe},_5=1e6,O5=1e9,vj=1e9,LKe="instance",BKe="registered_chain",jKe="registered_ntt",RKe="relay_request";class _Ke{constructor(e,n,r){ce(this,"instance");ce(this,"program");ce(this,"nttProgramId");ce(this,"pdas");this.program=new Ed(NKe,new Fe(n),{connection:e}),this.nttProgramId=new Fe(r),this.pdas=AKe(this.program.programId),this.instance=Si([LKe],this.program.programId)}async isRelayEnabled(e){var n;try{const{paused:r}=await this.getRegisteredChain(e);return!r}catch(r){if((n=r.message)!=null&&n.includes("Account does not exist"))return!1;throw r}}async calcRelayCostInSol(e,n,r){const[i,s,a,o]=await Promise.all([this.getRegisteredChain(n),this.getRegisteredNtt(e),this.getInstance(),this.program.provider.connection.getMinimumBalanceForRentExemption(this.program.account.relayRequest.size)]);if(r>i.maxGasDropoffEth)throw new Error("Requested gas dropoff exceeds allowed maximum");const f=i.nativePriceUsd*(r+i.gasPriceGwei*s.gasCost/O5);return o/p2+(i.basePriceUsd+f)/a.solPriceUsd}async quoteDeliveryPrice(e,n){if($ue(e)!=="Evm")throw new Error("Only EVM chains are supported");const r=BHe(LHe(n??0n,18)),[i,s,a,o]=await Promise.all([this.getRegisteredChain(e),this.getInstance(),this.getRegisteredNtt(this.nttProgramId),this.program.provider.connection.getMinimumBalanceForRentExemption(this.program.account.relayRequest.size)]);if(i.nativePriceUsd===0)throw new Error("Native price is 0");if(s.solPriceUsd===0)throw new Error("SOL price is 0");if(r>i.maxGasDropoffEth)throw new Error("Requested gas dropoff exceeds allowed maximum");const f=i.nativePriceUsd*(r+i.gasPriceGwei*a.gasCost/O5),u=o/p2+(i.basePriceUsd+f)/s.solPriceUsd;return BigInt(w0.to(u*1.05,p2).toString())}async createRequestRelayInstruction(e,n,r,i,s){return this.program.methods.requestRelay({maxFee:w0.to(i,p2),gasDropoff:w0.to(s,O5)}).accountsStrict({payer:e,instance:this.instance,registeredChain:this.registeredChainPda(r),outboxItem:n,relayRequest:this.relayRequestPda(n),systemProgram:kn.programId,registeredNtt:this.pdas.registeredNttAccount(this.nttProgramId)}).instruction()}async getInstance(){const e=await this.program.account.instance.fetch(this.instance);return{owner:e.owner,assistant:e.assistant,feeRecipient:e.feeRecipient,solPriceUsd:w0.from(e.solPrice,_5)}}async getRegisteredChain(e){const n=await this.program.account.registeredChain.fetch(this.registeredChainPda(e));return{paused:n.basePrice.eq(w0.MAX),maxGasDropoffEth:w0.from(n.maxGasDropoff,O5),basePriceUsd:w0.from(n.basePrice,_5),nativePriceUsd:w0.from(n.nativePrice,_5),gasPriceGwei:w0.from(n.gasPrice,vj)}}async getRegisteredNtt(e){const n=await this.program.account.registeredNtt.fetch(this.registeredNttPda(e));return{gasCost:n.gasCost,wormholeTransceiverIndex:n.wormholeTransceiverIndex}}async wasRelayRequested(e){const n=await this.program.account.relayRequest.fetchNullable(this.relayRequestPda(e));return n?w0.from(n.requestedGasDropoff,O5):null}async createInitalizeInstruction(e){if(!this.program.account.instance.fetchNullable(this.instance))throw new Error("Already initialized");const n=s6e(this.program.programId),r=await this.program.provider.connection.getAccountInfo(n);if(!r)throw new Error("Could not find program data account");const i=Yue(wKe,r.data);if(!i.upgradeAuthority.isSome)throw new Error("Could not determine program owner from program data.");return this.program.methods.initialize().accounts({owner:i.upgradeAuthority.value,instance:this.instance,feeRecipient:e,programData:n,systemProgram:kn.programId}).instruction()}async createSetAssistantInstruction(e){const{owner:n,assistant:r}=await this.getInstance();if(r.equals(e))throw new Error("Is already assistant");return this.program.methods.setAssistant().accounts({owner:n,instance:this.instance,assistant:e}).instruction()}async createSetFeeRecipientInstruction(e){if(e.equals(Fe.default))throw new Error("Fee recipient cannot be default public key");const{owner:n,feeRecipient:r}=await this.getInstance();if(r.equals(e))throw new Error("Is already feeRecipient");return this.program.methods.setFeeRecipient().accounts({owner:n,instance:this.instance,feeRecipient:e}).instruction()}async createRegisterChainInstruction(e,n){const r=ai(n);return this.program.methods.registerChain({chainId:r}).accounts({authority:e,instance:this.instance,registeredChain:this.registeredChainPda(n),systemProgram:kn.programId}).instruction()}async createRegisterNttInstruction(e,n,r,i){return this.program.methods.registerNtt({nttProgramId:n,gasCost:r,wormholeTransceiverIndex:i}).accounts({authority:e,instance:this.instance,registeredNtt:this.registeredNttPda(n),systemProgram:kn.programId}).instruction()}async createDeregisterNttInstruction(e,n){return this.program.methods.deregisterNtt({nttProgramId:n}).accounts({authority:e,instance:this.instance,registeredNtt:this.registeredNttPda(n),systemProgram:kn.programId}).instruction()}async createUpdateSolPriceInstruction(e,n){return this.program.methods.updateSolPrice({solPrice:w0.to(n,_5)}).accounts({authority:e,instance:this.instance}).instruction()}async createUpdateChainParamsInstruction(e,n,r,i){return this.program.methods.updateChainParams({maxGasDropoff:w0.to(r,O5),basePrice:w0.to(i,_5)}).accounts({authority:e,instance:this.instance,registeredChain:this.registeredChainPda(n)}).instruction()}async createPauseRelayForChainInstruction(e,n){return this.program.methods.updateChainParams({maxGasDropoff:w0.to(0,1),basePrice:w0.MAX}).accounts({authority:e,instance:this.instance,registeredChain:this.registeredChainPda(n)}).instruction()}async createUpdateChainPricesInstruction(e,n,r,i){return this.program.methods.updateChainPrices({nativePrice:w0.to(r,_5),gasPrice:w0.to(i,vj)}).accounts({authority:e,instance:this.instance,registeredChain:this.registeredChainPda(n)}).instruction()}async createCloseRelayInstruction(e,n){return this.program.methods.closeRelay().accounts({authority:e,instance:this.instance,relayRequest:this.relayRequestPda(n)}).instruction()}registeredChainPda(e){return Si([BKe,p6(e)],this.program.programId)}registeredNttPda(e){return Si([jKe,e.toBytes()],this.program.programId)}relayRequestPda(e){return Si([RKe,e.toBytes()],this.program.programId)}}class OKe{constructor(e,n){ce(this,"manager");ce(this,"address");this.manager=e,this.address=n}async getPauser(){return null}async*setPauser(e,n){throw new Error("Method not implemented.")}async*receive(e){throw new Error("Method not implemented.")}getAddress(){return{chain:this.manager.chain,address:Uh(this.manager.chain,this.address.toBase58())}}async*setPeer(e,n){yield*this.manager.setWormholeTransceiverPeer(e,n)}async getPeer(e){const n=await this.manager.program.account.transceiverPeer.fetchNullable(this.manager.pdas.transceiverPeerAccount(e));return n?{chain:e,address:Uh(e,new Uint8Array(n.address))}:null}}class vw{constructor(e,n,r,i,s="2.0.0"){ce(this,"network");ce(this,"chain");ce(this,"connection");ce(this,"contracts");ce(this,"version");ce(this,"core");ce(this,"pdas");ce(this,"program");ce(this,"config");ce(this,"quoter");ce(this,"addressLookupTable");ce(this,"managerAddress");ce(this,"tokenAddress");ce(this,"whTransceiverAddress");var a;if(this.network=e,this.chain=n,this.connection=r,this.contracts=i,this.version=s,!i.ntt)throw new Error("Ntt contracts not found");this.program=r6e(r,i.ntt.manager,s),this.managerAddress=i.ntt.manager,this.tokenAddress=i.ntt.token,this.whTransceiverAddress=i.ntt.transceiver.wormhole,(a=this.contracts.ntt)!=null&&a.quoter&&(this.quoter=new _Ke(r,this.contracts.ntt.quoter,this.contracts.ntt.manager)),this.core=new T8(e,n,r,i),this.pdas=Qr.pdas(this.program.programId)}async getTransceiver(e){return e!==0||this.whTransceiverAddress===void 0?null:new OKe(this,new Fe(this.whTransceiverAddress))}async getMode(){return(await this.getConfig()).mode.locking!=null?"locking":"burning"}async isPaused(){return(await this.getConfig()).paused}async*pause(e){const n=new xr(e).unwrap(),r=await Qr.createSetPausedInstruction(this.program,{owner:n,paused:!0}),i=new yn;i.feePayer=n,i.add(r),yield this.createUnsignedTx({transaction:i},"Ntt.Pause")}async*unpause(e){const n=new xr(e).unwrap(),r=await Qr.createSetPausedInstruction(this.program,{owner:n,paused:!1}),i=new yn;i.feePayer=n,i.add(r),yield this.createUnsignedTx({transaction:i},"Ntt.Unpause")}async getThreshold(){return(await this.getConfig()).threshold}async getOwner(){const e=await this.getConfig();return new xr(e.owner)}async getPauser(){return null}async*setOwner(e,n){const r=new xr(n).unwrap(),i=await Qr.createTransferOwnershipInstruction(this.program,{newOwner:new xr(e).unwrap()}),s=new yn;s.feePayer=r,s.add(i),yield this.createUnsignedTx({transaction:s},"Ntt.SetOwner")}async*setPauser(e,n){throw new Error("Pauser role not supported on Solna.")}async isRelayingAvailable(e){return this.quoter?await this.quoter.isRelayEnabled(e):!1}async quoteDeliveryPrice(e,n){if(!this.quoter)throw new Error("Quoter not available");if(!this.quoter.isRelayEnabled(e))throw new Error("Relay not enabled");return await this.quoter.quoteDeliveryPrice(e,n.gasDropoff)}static async fromRpc(e,n){const[r,i]=await Am.chainFromRpc(e),s=n[i];if(s.network!==r)throw new Error(`Network mismatch: ${s.network} != ${r}`);if(!("ntt"in s.contracts))throw new Error("Ntt contracts not found");const a=s.contracts.ntt,o=await vw.getVersion(e,s.contracts);return new vw(r,i,e,{...s.contracts,ntt:a},o)}async getConfig(){return this.config=this.config??await Qr.getConfig(this.program,this.pdas),this.config}async getTokenDecimals(){const e=await this.getConfig();return await Am.getDecimals(this.chain,this.connection,e.mint)}async getPeer(e){const n=await this.program.account.nttManagerPeer.fetchNullable(this.pdas.peerAccount(e));return n?{address:{chain:e,address:Uh(e,new Uint8Array(n.address))},tokenDecimals:n.tokenDecimals,inboundLimit:await this.getInboundLimit(e)}:null}async getCustodyAddress(){return(await this.getConfig()).custody.toBase58()}static async getVersion(e,n,r){try{return await Qr.getVersion(e,new Fe(n.ntt.manager),r?new xr(r).unwrap():void 0)}catch{return"2.0.0"}}async*initialize(e,n){const r=await this.connection.getAccountInfo(n.mint);if(r===null)throw new Error("Couldn't determine token program. Mint account is null.");const i=new xr(e).unwrap(),s=await Qr.createInitializeInstruction(this.program,{...n,payer:i,owner:i,chain:this.chain,tokenProgram:r.owner},this.pdas),a=new yn;a.feePayer=i,a.add(s),yield this.createUnsignedTx({transaction:a,signers:[]},"Ntt.Initialize"),yield*this.initializeOrUpdateLUT({payer:i})}async*initializeOrUpdateLUT(e){const n=await this.getConfig(),r=await Qr.initializeOrUpdateLUT(this.program,n,{payer:e.payer,wormholeId:new Fe(this.core.address)});if(!r)return;const i=new yn().add(r);i.feePayer=e.payer,yield this.createUnsignedTx({transaction:i},"Ntt.InitializeLUT")}async*registerTransceiver(e){const n=await this.getConfig(),r=new xr(e.payer).unwrap(),i=new xr(e.owner).unwrap();if(n.paused)throw new Error("Contract is paused");const s=await this.program.methods.registerTransceiver().accountsStrict({payer:r,owner:i,config:this.pdas.configAccount(),transceiver:e.transceiver,registeredTransceiver:this.pdas.registeredTransceiver(e.transceiver),systemProgram:kn.programId}).instruction(),a=jo.generate(),o=y2(this.program.programId,this.core.address),f=await this.program.methods.broadcastWormholeId().accountsStrict({payer:r,config:this.pdas.configAccount(),mint:n.mint,wormholeMessage:a.publicKey,emitter:this.pdas.emitterAccount(),wormhole:{bridge:o.wormholeBridge,feeCollector:o.wormholeFeeCollector,sequence:o.wormholeSequence,program:this.core.address,systemProgram:kn.programId,clock:f0,rent:ds}}).instruction(),u=new yn;u.feePayer=r,u.add(s,f),yield this.createUnsignedTx({transaction:u,signers:[a]},"Ntt.RegisterTransceiver")}async*setWormholeTransceiverPeer(e,n){const r=new xr(n).unwrap();yield this.createUnsignedTx(await Qr.setWormholeTransceiverPeer(this.program,{wormholeId:new Fe(this.core.address),payer:r,owner:r,chain:e.chain,address:e.address.toUniversalAddress().toUint8Array()}),"Ntt.SetWormholeTransceiverPeer")}async*setPeer(e,n,r,i){const s=new xr(i).unwrap(),a=await Qr.createSetPeerInstruction(this.program,{payer:s,owner:s,chain:e.chain,address:e.address.toUniversalAddress().toUint8Array(),limit:new ra(r.toString()),tokenDecimals:n}),o=new yn;o.feePayer=s,o.add(a),yield this.createUnsignedTx({transaction:o},"Ntt.SetPeer")}async*transfer(e,n,r,i,s){const a=await this.getConfig();if(a.paused)throw new Error("Contract is paused");s=s??jo.generate();const o=new xr(e).unwrap(),f=o,u=await this.getTokenAccount(f),h=Qr.transferArgs(n,r,i.queue),m={transferArgs:h,payer:o,from:u,fromAuthority:f,outboxItem:s.publicKey},y=yZe(u,this.pdas.sessionAuthority(f,h),f,n,[],a.tokenProgram),x=a.mode.locking!=null?Qr.createTransferLockInstruction(this.program,a,m,this.pdas):Qr.createTransferBurnInstruction(this.program,a,m,this.pdas),w=Qr.createReleaseOutboundInstruction(this.program,{payer:o,outboxItem:s.publicKey,revertOnDelay:!i.queue,wormholeId:new Fe(this.core.address)},this.pdas),E=new yn;if(E.feePayer=o,E.add(y,...await Promise.all([x,w])),i.automatic){if(!this.quoter)throw new Error("No quoter available, cannot initiate an automatic transfer.");const N=await this.quoteDeliveryPrice(r.chain,i),R=await this.quoter.createRequestRelayInstruction(o,s.publicKey,r.chain,Number(N)/p2,Number(i.gasDropoff??0n)/vj);E.add(R)}const I=[];try{I.push(await this.getAddressLookupTable())}catch{}const{blockhash:T}=await this.connection.getLatestBlockhash(),D=new v8({payerKey:o,instructions:E.instructions,recentBlockhash:T}).compileToV0Message(I),k=new w8(D);yield this.createUnsignedTx({transaction:k,signers:[s]},"Ntt.Transfer")}async getTokenAccount(e){const n=await this.getConfig();return await mj(n.mint,e,!0,n.tokenProgram)}async*createAta(e){const n=await this.getConfig(),r=new xr(e).unwrap(),i=await this.getTokenAccount(r);if(await this.connection.getAccountInfo(i)===null){const a=new yn().add(GZe(r,i,r,n.mint,n.tokenProgram));a.feePayer=r,yield this.createUnsignedTx({transaction:a},"Redeem.CreateATA")}}async*redeem(e,n){const r=await this.getConfig();if(r.paused)throw new Error("Contract is paused");const i=e[0];if(!i||i.payloadName!=="WormholeTransfer")throw new Error("Invalid attestation payload");yield*this.createAta(n),yield*this.core.postVaa(n,i);const s=new xr(n).unwrap(),a=Qr.createReceiveWormholeMessageInstruction(this.program,{wormholeId:new Fe(this.core.address),payer:s,vaa:i},this.pdas),o=i.payload.nttManagerPayload,f=i.emitterChain,u={payer:s,config:r,nttMessage:o,recipient:new Fe(o.payload.recipientAddress.toUint8Array()),chain:f,revertOnDelay:!1},h=Qr.createRedeemInstruction(this.program,r,{payer:s,vaa:i}),m=r.mode.locking!=null?Qr.createReleaseInboundUnlockInstruction(this.program,r,u):Qr.createReleaseInboundMintInstruction(this.program,r,u),y=new yn;y.feePayer=s,y.add(...await Promise.all([a,h,m]));const x=[];try{x.push(await this.getAddressLookupTable())}catch{}const{blockhash:w}=await this.connection.getLatestBlockhash(),E=new v8({payerKey:s,instructions:y.instructions,recentBlockhash:w}).compileToV0Message(x),I=new w8(E);yield this.createUnsignedTx({transaction:I},"Ntt.Redeem")}async getCurrentOutboundCapacity(){const e=await this.program.account.outboxRateLimit.fetch(this.pdas.outboxRateLimitAccount());return BigInt(e.rateLimit.capacityAtLastTx.toString())}async getOutboundLimit(){const e=await this.program.account.outboxRateLimit.fetch(this.pdas.outboxRateLimitAccount());return BigInt(e.rateLimit.limit.toString())}async*setOutboundLimit(e,n){const r=new xr(n).unwrap(),i=await Qr.createSetOutboundLimitInstruction(this.program,{owner:r,limit:new ra(e.toString())}),s=new yn;s.feePayer=r,s.add(i),yield this.createUnsignedTx({transaction:s},"Ntt.SetOutboundLimit")}async getCurrentInboundCapacity(e){const n=await this.program.account.inboxRateLimit.fetch(this.pdas.inboxRateLimitAccount(e));return BigInt(n.rateLimit.capacityAtLastTx.toString())}async getRateLimitDuration(){return BigInt(24*60*60)}async getInboundLimit(e){const n=await this.program.account.inboxRateLimit.fetch(this.pdas.inboxRateLimitAccount(e));return BigInt(n.rateLimit.limit.toString())}async*setInboundLimit(e,n,r){const i=new xr(r).unwrap(),s=await Qr.setInboundLimit(this.program,{owner:i,chain:e,limit:new ra(n.toString())}),a=new yn;a.feePayer=i,a.add(s),yield this.createUnsignedTx({transaction:a},"Ntt.SetInboundLimit")}async getIsExecuted(e){var i;if(e.payloadName!=="WormholeTransfer")return!1;const n=e.payload.nttManagerPayload;let r;try{r=await this.program.account.inboxItem.fetch(this.pdas.inboxItemAccount(e.emitterChain,n))}catch(s){if((i=s.message)!=null&&i.includes("Account does not exist"))return!1;throw s}return!!r.releaseStatus.released}async getIsTransferInboundQueued(e){var i;if(e.payloadName!=="WormholeTransfer")return!1;const n=e.payload.nttManagerPayload;let r;try{r=await this.program.account.inboxItem.fetch(this.pdas.inboxItemAccount(e.emitterChain,n))}catch(s){if((i=s.message)!=null&&i.includes("Account does not exist"))return!1;throw s}return!!r.releaseStatus.releaseAfter}async getIsApproved(e){const n=e.hash,r=Nu(this.core.address,ze.Buffer.from(n));return await this.connection.getAccountInfo(r)!==null}async*completeInboundQueuedTransfer(e,n,r){const i=await this.getConfig();if(i.paused)throw new Error("Contract is paused");const s=new xr(r).unwrap(),a=new yn;a.feePayer=s;const o={payer:s,config:i,nttMessage:n,recipient:new Fe(n.payload.recipientAddress.toUint8Array()),chain:e,revertOnDelay:!1};a.add(await(i.mode.locking!=null?Qr.createReleaseInboundUnlockInstruction(this.program,i,o):Qr.createReleaseInboundMintInstruction(this.program,i,o))),yield this.createUnsignedTx({transaction:a},"Ntt.CompleteInboundTransfer")}async getInboundQueuedTransfer(e,n){var i;let r;try{r=await this.program.account.inboxItem.fetch(this.pdas.inboxItemAccount(e,n))}catch(s){if((i=s.message)!=null&&i.includes("Account does not exist"))return null;throw s}if(r.releaseStatus.releaseAfter){const{recipientAddress:s,amount:a,releaseStatus:o}=r,f=o.releaseAfter[0].toNumber();return{recipient:new xr(s),amount:BigInt(a.toString()),rateLimitExpiryTimestamp:f}}return null}async verifyAddresses(){const e={manager:this.managerAddress,token:this.tokenAddress,transceiver:{wormhole:this.whTransceiverAddress}},n={manager:this.program.programId.toBase58(),token:(await this.getConfig()).mint.toBase58(),transceiver:{wormhole:this.pdas.emitterAccount().toBase58()}},r=(i,s)=>{for(const a in i)typeof i[a]=="object"?(r(i[a],s[a]),Object.keys(i[a]).length===0&&delete i[a]):i[a]===s[a]&&delete i[a]};return r(n,e),Object.keys(n).length>0?n:null}async getAddressLookupTable(e=!0){if(!e||!this.addressLookupTable){const n=await Qr.getAddressLookupTable(this.program,this.pdas);n&&(this.addressLookupTable=n)}if(!this.addressLookupTable)throw new Error("Address lookup table not found. Did you forget to call initializeLUT?");return this.addressLookupTable}createUnsignedTx(e,n,r=!1){return new ele(e,this.network,this.chain,n,r)}}uA(ng,"Ntt",vw);const FKe=[nB,zae,eB,Pae,tB];class PKe{constructor(e=FKe){ce(this,"preference");ce(this,"routes");ce(this,"quoteCache");const n={},r=[];for(const i of e){const s=i.meta.name;if(s==="")throw new Error("Route has empty meta.name");if(s in n)throw new Error(`Route has duplicate meta.name: ${s}`);r.push(s),n[s]=new EHe(i)}this.routes=n,this.preference=r,this.quoteCache=new zKe(15e3)}get(e){return this.routes[e]}async forEach(e){return Promise.all(this.preference.map(n=>e(n,this.routes[n])))}async resumeFromTx(e){return new Promise((n,r)=>{const i=Object.keys(this.routes).length;let s=0;this.forEach((a,o)=>{o.resumeIfManual(e).then(f=>{f!==null?n({route:a,receipt:f}):s+=1}).catch(f=>{s+=1}).finally(()=>{s===i&&n(null)})})})}allSupportedChains(){const e=new Set;for(const n in Ne.chains){const r=n;this.forEach(async(i,s)=>{e.has(r)||s.isSupportedChain(r)&&e.add(r)})}return Array.from(e)}async allSupportedSourceTokens(e,n,r){const i={};return await this.forEach(async(s,a)=>{try{const o=await a.supportedSourceTokens(Ne.tokensArr,e,n,r);for(const f of o)i[f.key]=f}catch(o){console.error(o)}}),Object.values(i)}async allSupportedDestTokens(e,n,r){const i={};return await this.forEach(async(s,a)=>{try{const o=await a.supportedDestTokens(Ne.tokensArr,e,n,r);for(const f of o)i[f.key]=f}catch(o){console.error(o)}}),Object.values(i)}async getQuotes(e,n){return(await Promise.allSettled(e.map(r=>{const i=this.quoteCache.get(r,n);return i||this.quoteCache.fetch(r,n,this.get(r))}))).map(r=>r.status==="rejected"?{success:!1,error:r.reason}:r.value)}}class zKe{constructor(e){ce(this,"ttl");ce(this,"cache");ce(this,"pending");this.ttl=e,this.cache={},this.pending={}}quoteParamsKey(e,n){return`${e}:${n.sourceChain}:${n.sourceToken}:${n.destChain}:${n.destToken}:${n.amount}:${n.nativeGas}`}get(e,n){const r=this.quoteParamsKey(e,n),i=this.cache[r];if(i){if(i.age()<this.ttl)return i.result;delete this.cache[r]}return null}async fetch(e,n,r){const i=this.quoteParamsKey(e,n),s=this.pending[i];if(s)return new Promise((a,o)=>{s.push({resolve:a,reject:o})});{const a=new Promise((o,f)=>{this.pending[i]=[{resolve:o,reject:f}]});return r.computeQuote(n.amount,n.sourceToken,n.destToken,n.sourceChain,n.destChain,{nativeGas:n.nativeGas}).then(o=>{const f=this.pending[i];for(const{resolve:u}of f)u(o);delete this.pending[i],this.cache[i]=new UKe(o)}).catch(o=>{const f=this.pending[i];for(const{reject:u}of f)u(o);delete this.pending[i]}),a}}}class UKe{constructor(e){ce(this,"result");ce(this,"timestamp");this.result=e,this.timestamp=new Date}age(){return new Date().valueOf()-this.timestamp.valueOf()}}function WKe(t){return{...t,walletConnectProjectId:(t==null?void 0:t.walletConnectProjectId)??void 0}}function a6e(t){var u;const e=bOe((t==null?void 0:t.network)||void 0||"Mainnet");if(!["Mainnet","Testnet","Devnet"].includes(e))throw new Error(`Invalid env "${e}": Use "Testnet", "Devnet", or "Mainnet"`);const n={MAINNET:ZOe,DEVNET:qFe,TESTNET:kFe}[e.toUpperCase()],r=dOe(n.tokens,t==null?void 0:t.tokensConfig),i=hOe(n.wrappedTokens,t==null?void 0:t.wrappedTokens),s=$E.getConfig(e),a=Object.assign({},s.rpcs,n.rpcs,t==null?void 0:t.rpcs),o=HKe(e,s,a);(u=t==null?void 0:t.ui)!=null&&u.defaultInputs&&pOe(t.ui.defaultInputs,n.chains,r);const f=new jWe(o);return{whLegacy:o,sdkConfig:s,sdkConverter:f,network:e,isMainnet:e==="Mainnet",rpcs:a,rest:Object.assign({},s.rest,n.rest,t==null?void 0:t.rest),graphql:Object.assign({},n.graphql,t==null?void 0:t.graphql),mayanApi:"https://explorer-api.mayan.finance",wormholeApi:{Mainnet:"https://api.wormholescan.io/",Testnet:"https://api.testnet.wormholescan.io/",Devnet:""}[e],wormholeRpcHosts:{Mainnet:["https://wormhole-v2-mainnet-api.mcf.rocks","https://wormhole-v2-mainnet-api.chainlayer.network","https://wormhole-v2-mainnet-api.staking.fund"],Testnet:["https://guardian.testnet.xlabs.xyz","https://guardian-01.testnet.xlabs.xyz","https://guardian-02.testnet.xlabs.xyz"],Devnet:["http://localhost:7071"]}[e],coinGeckoApiKey:t==null?void 0:t.coinGeckoApiKey,triggerEvent:YFe(t==null?void 0:t.eventHandler),validateTransfer:t==null?void 0:t.validateTransferHandler,isRouteSupportedHandler:t==null?void 0:t.isRouteSupportedHandler,chains:n.chains,chainsArr:Object.values(n.chains).filter(h=>t!=null&&t.chains?t.chains.includes(h.key):!0).sort((h,m)=>{const y=BZ.indexOf(h.key),x=BZ.indexOf(m.key);return y>=0&&x>=0?y-x:y===-1?1:x===-1?-1:0}),tokens:r,tokensArr:Object.values(r).filter(h=>t!=null&&t.tokens?t.tokens.includes(h.key):!0),wrappedTokenAddressCache:new uOe(r,i),routes:new PKe(t==null?void 0:t.routes),ui:WKe({...t==null?void 0:t.ui}),guardianSet:n.guardianSet}}const Ne=a6e();function HKe(t,e,n){return new $E(t,{...e,rpcs:n})}async function xc(){return Ne._v2Wormhole||(Ne._v2Wormhole=await qKe()),Ne._v2Wormhole}async function qKe(){const t={chains:{}};for(const e in Ne.chains){const n=e,r=Ne.rpcs[n],i={};for(const s of Ne.tokensArr){const a={key:s.key,chain:n,symbol:s.symbol};if(s.nativeChain===n){const o=Ne.sdkConverter.getNativeTokenAddressV2(s);if(!o)throw new Error("Token must have address");a.address=o,a.decimals=s.decimals}else{a.original=s.nativeChain;const o=e5(s,n);if(o)a.address=o.toString(),a.decimals=sg(n,ig(s));else continue}i[s.key]=a}t.chains[n]={rpc:r,tokenMap:i}}return await fOe(Ne.network,[OWe,FWe,PWe,UWe,zWe,WWe],t)}function GKe(t){const e=a6e(t);for(const n in e)Ne[n]=e[n]}function rz(){return{data:null,error:null,isFetching:!1,receivedAt:null}}function o6e(t){return{data:t,error:null,isFetching:!1,receivedAt:new Date().toISOString()}}function c6e(t){return{data:null,error:t,isFetching:!1,receivedAt:null}}function f6e(){return{data:null,error:null,isFetching:!0,receivedAt:null}}const I$=(t="0")=>parseFloat(t).toLocaleString("en",{maximumFractionDigits:4}),I8=(t,e)=>{var n;return((n=Object.entries(Ne.tokens).map(([r,i])=>i).find(r=>r.symbol===t&&r.nativeChain===e))==null?void 0:n.key)||""},VKe=(t,e,n)=>{if(!n||!t||!e)return;const r=t[e];if(!r)return;const i=r[n];if(i)return i},u6e=(t,e,n,r)=>{const i=VKe(t,e,n);if(i)return i.balances[r]};function D$(){var t,e,n,r,i;return{showValidationState:!1,validations:{fromChain:"",toChain:"",token:"",destToken:"",amount:"",toNativeToken:"",sendingWallet:"",receivingWallet:"",relayerFee:"",receiveAmount:""},fromChain:((t=Ne.ui.defaultInputs)==null?void 0:t.fromChain)||void 0,toChain:((e=Ne.ui.defaultInputs)==null?void 0:e.toChain)||void 0,token:((n=Ne.ui.defaultInputs)==null?void 0:n.tokenKey)||"",destToken:((r=Ne.ui.defaultInputs)==null?void 0:r.toTokenKey)||"",amount:"",receiveAmount:rz(),preferredRouteName:(i=Ne.ui.defaultInputs)==null?void 0:i.preferredRouteName,route:void 0,balances:{},foreignAsset:"",associatedTokenAddress:"",gasEst:{send:"",claim:""},isTransactionInProgress:!1,receiverNativeBalance:"",supportedSourceTokens:[],supportedDestTokens:[]}}const k$=t=>{var r;const{fromChain:e,token:n}=t;if(n){const i=Ne.tokens[n];(!e||!i.tokenId&&i.nativeChain!==e)&&(t.token="",t.amount=""),i.symbol==="USDC"&&i.nativeChain!==e?t.token=I8("USDC",e):i.symbol==="tBTC"&&i.nativeChain!==e&&(t.token=I8("tBTC",e)||((r=Ne.tokens.tBTC)==null?void 0:r.key)||"")}},N$=t=>{var r;const{toChain:e,destToken:n}=t;if(n){const i=Ne.tokens[n];e||(t.destToken=""),i.symbol==="USDC"&&i.nativeChain!==e?t.destToken=I8("USDC",e):i.symbol==="tBTC"&&i.nativeChain!==e&&(t.destToken=I8("tBTC",e)||((r=Ne.tokens.tBTC)==null?void 0:r.key)||"")}},l6e=H8({name:"transfer",initialState:D$(),reducers:{setValidations:(t,{payload:{showValidationState:e,validations:n}})=>{Object.keys(n).forEach(r=>{t.validations[r]=n[r]}),t.showValidationState=e},setRoute:(t,{payload:e})=>{t.route=e},setToken:(t,{payload:e})=>{t.token=e},setDestToken:(t,{payload:e})=>{t.destToken=e},setFromChain:(t,{payload:e})=>{t.fromChain=e,k$(t)},setToChain:(t,{payload:e})=>{t.toChain=e,N$(t)},setAmount:(t,{payload:e})=>{t.amount=e},setReceiveAmount:(t,{payload:e})=>{t.receiveAmount=o6e(e)},setFetchingReceiveAmount:t=>{t.receiveAmount=f6e()},setReceiveAmountError:(t,{payload:e})=>{t.receiveAmount=c6e(e)},updateBalances:(t,{payload:e})=>{var s,a;const{chain:n,balances:r,address:i}=e;i&&((s=t.balances)[i]??(s[i]={}),(a=t.balances[i])[n]??(a[n]={balances:{}}),t.balances[i][n].balances={...t.balances[i][n].balances,...r})},setReceiverNativeBalance:(t,{payload:e})=>{t.receiverNativeBalance=e},setForeignAsset:(t,{payload:e})=>{t.foreignAsset=e},setAssociatedTokenAddress:(t,{payload:e})=>{t.associatedTokenAddress=e},setTransferRoute:(t,{payload:e})=>{if(!e){t.route=void 0;return}t.route=e},clearTransfer:t=>{const e=D$();Object.keys(t).forEach(n=>{t[n]=e[n]})},setIsTransactionInProgress:(t,{payload:e})=>{t.isTransactionInProgress=e},setSupportedSourceTokens:(t,{payload:e})=>{t.supportedSourceTokens=e},setSupportedDestTokens:(t,{payload:e})=>{t.supportedDestTokens=e},swapInputs:t=>{const e=t.fromChain;t.fromChain=t.toChain,t.toChain=e;const n=t.token;t.token=t.destToken,t.destToken=n,k$(t),N$(t)}}}),d6e=(t,e)=>e.name==="OKX Wallet"&&t==="Evmos"?!0:!Fue(e.type).includes(t),YKe=async(t,e,n)=>{h6e(h0.SENDING,t,e,n)},QKe=async(t,e,n)=>{h6e(h0.RECEIVING,t,e,n)},h6e=async(t,e,n,r)=>{d6e(n,r)&&(e(Oue(t)),e(bHe({type:t,error:"Wallet disconnected, please connect a supported wallet"}))),Ne.chains[n]&&e(t===h0.SENDING?KKe(n):iz(n))},{setValidations:ZKe,setRoute:eut,setToken:wj,setDestToken:ww,setFromChain:KKe,setToChain:iz,setAmount:Mw,setReceiveAmount:tut,setFetchingReceiveAmount:nut,setReceiveAmountError:rut,setForeignAsset:iut,setAssociatedTokenAddress:sut,setTransferRoute:$Ke,updateBalances:XKe,clearTransfer:L$,setIsTransactionInProgress:B$,setReceiverNativeBalance:aut,setSupportedDestTokens:JKe,setSupportedSourceTokens:e$e,swapInputs:t$e}=l6e.actions,n$e=l6e.reducer,j$={maxSwapAmt:void 0,toNativeToken:0,receiveNativeAmt:void 0,relayerFee:void 0,receiverNativeBalance:""},p6e=H8({name:"transfer",initialState:j$,reducers:{setToNativeToken:(t,{payload:e})=>{t.toNativeToken=e},setReceiveNativeAmt:(t,{payload:e})=>{t.receiveNativeAmt=e},setRelayerFee:(t,{payload:e})=>{t.relayerFee=e},setReceiverNativeBalance:(t,{payload:e})=>{t.receiverNativeBalance=e},clearRelay:t=>{Object.keys(t).forEach(e=>{t[e]=j$[e]})}}}),{setToNativeToken:R$,setReceiveNativeAmt:out,setRelayerFee:cut,setReceiverNativeBalance:fut}=p6e.actions,r$e=p6e.reducer,i$e={route:"bridge",showFromChainsModal:!1,showToChainsModal:!1,showTokensModal:!1,showWalletModal:!1},b6e=H8({name:"router",initialState:i$e,reducers:{setWalletModal:(t,{payload:e})=>{t.showWalletModal=e},setRoute:(t,{payload:e})=>{t.route=e}}}),{setWalletModal:uut,setRoute:_o}=b6e.actions,s$e=b6e.reducer,_$={usdPrices:rz()},m6e=H8({name:"tokenPrices",initialState:_$,reducers:{setPrices:(t,{payload:e})=>{t.usdPrices=o6e(e)},setFetchingPrices:t=>{t.usdPrices=f6e()},setPricesError:(t,{payload:e})=>{t.usdPrices=c6e(e)},resetPrices:t=>{t.usdPrices=rz()},clearTokenPrices:()=>_$}}),{setPrices:a$e,setFetchingPrices:o$e,setPricesError:c$e,resetPrices:lut,clearTokenPrices:dut}=m6e.actions,f$e=m6e.reducer,u$e=bye({reducer:{redeem:Cye,transferInput:n$e,router:s$e,wallet:xHe,relay:r$e,tokenPrices:f$e}}),y6e=Object.fromEntries?Object.fromEntries:t=>{if(!t||!t[Symbol.iterator])throw new Error("Object.fromEntries() requires a single iterable argument");const e={};return Object.keys(t).forEach(n=>{const[r,i]=t[n];e[r]=i}),e};function Sd(t){return Object.keys(t)}function P6(t,e){if(!t)throw new Error(e)}function sz(t,e){return e}const az=t=>{const e=t.length;let n=0,r="";for(;n<e;n++){const i=t[n];if(i==null)continue;let s;switch(typeof i){case"boolean":break;case"object":{if(Array.isArray(i))s=az(i);else{P6(!sz(i,!1)),s="";for(const a in i)i[a]&&a&&(s&&(s+=" "),s+=a)}break}default:s=i}s&&(r&&(r+=" "),r+=s)}return r};function l$e(t,e){var n;const r=$.useRef();return(!r.current||e.length!==((n=r.current.prevDeps)===null||n===void 0?void 0:n.length)||r.current.prevDeps.map((i,s)=>i===e[s]).indexOf(!1)>=0)&&(r.current={v:t(),prevDeps:[...e]}),r.current.v}function d$e(t){return t instanceof Object&&!("styles"in t)&&!("length"in t)&&!("__emotion_styles"in t)}const{createCssAndCx:h$e}=(()=>{function t(n,r,i){const s=[],a=Qte(n,s,i);return s.length<2?i:a+r(s)}function e(n){const{cache:r}=n,i=(...a)=>{const o=EM(a,r.registered);OR(r,o,!1);const f=`${r.key}-${o.name}`;e:{const u=a[0];if(!d$e(u))break e;O$.saveClassNameCSSObjectMapping(r,f,u)}return f};return{css:i,cx:(...a)=>{const o=az(a),f=O$.fixClassName(r,o,i);return t(r.registered,i,f)}}}return{createCssAndCx:e}})();function g6e(t){const{useCache:e}=t;function n(){const r=e(),{css:i,cx:s}=l$e(()=>h$e({cache:r}),[r]);return{css:i,cx:s}}return{useCssAndCx:n}}const O$=(()=>{const t=new WeakMap;return{saveClassNameCSSObjectMapping:(e,n,r)=>{let i=t.get(e);i===void 0&&(i=new Map,t.set(e,i)),i.set(n,r)},fixClassName:(()=>{function e(n){let r=!1;return n.map(([i,s])=>{if(s===void 0)return i;let a;if(r)a={"&&":s};else{a=i;for(const o in s)if(o.startsWith("@media")){r=!0;break}}return a})}return(n,r,i)=>{const s=t.get(n);return az(e(r.split(" ").map(a=>[a,s==null?void 0:s.get(a)])).map(a=>typeof a=="string"?a:i(a)))}})()}})();function Cd(t){if(!(t instanceof Object)||typeof t=="function")return t;const e=[];for(const n in t){const r=t[n],i=typeof r;if(!(i==="string"||i==="number"&&!isNaN(r)||i==="boolean"||r===void 0||r===null))return t;e.push(`${n}:${i}_${r}`)}return"xSqLiJdLMd9s"+e.join("|")}function oz(t,e,n){if(!(e instanceof Object))return t;const r={};return Sd(t).forEach(i=>r[i]=n(t[i],e[i])),Sd(e).forEach(i=>{if(i in t)return;const s=e[i];typeof s=="string"&&(r[i]=s)}),r}const x6e=({classes:t,theme:e,muiStyleOverridesParams:n,css:r,cx:i,name:s})=>{var a,o;e:{if(s==="makeStyle no name"){s=void 0;break e}if(n!==void 0&&s===void 0)throw new Error("To use muiStyleOverridesParams, you must specify a name using .withName('MyComponent')")}let f;try{f=s===void 0?void 0:((o=(a=e.components)===null||a===void 0?void 0:a[s])===null||o===void 0?void 0:o.styleOverrides)||void 0}catch{}const u=$.useMemo(()=>{if(f===void 0)return;const h={};for(const m in f){const y=f[m];y instanceof Object&&(h[m]=r(typeof y=="function"?y({theme:e,ownerState:n==null?void 0:n.ownerState,...n==null?void 0:n.props}):y))}return h},[f,Cd(n==null?void 0:n.props),Cd(n==null?void 0:n.ownerState),r]);return t=$.useMemo(()=>oz(t,u,i),[t,u,i]),{classes:t}};let p$e=0;function v6e(t){const{useTheme:e,cache:n}=t,{useCache:r}=w6e({cacheProvidedAtInception:n}),{useCssAndCx:i}=g6e({useCache:r});function s(o){const{name:f,uniqId:u=`${p$e++}`}=o??{},h=typeof f!="object"?f:Object.keys(f)[0];return function(m){const y=typeof m=="function"?m:()=>m;return function(w,E){const I=e();let{css:T,cx:D}=i();const k=r();let N=$.useMemo(()=>{const R={},_=typeof Proxy<"u"&&new Proxy({},{get:(B,P)=>(typeof P=="symbol"&&P6(!1),R[P]=`${k.key}-${u}${h!==void 0?`-${h}`:""}-${P}-ref`)}),F=y(I,w,_||{}),L=y6e(Sd(F).map(B=>{const P=F[B];return P.label||(P.label=`${h!==void 0?`${h}-`:""}${B}`),[B,`${T(P)}${sz(B,B in R)?` ${R[B]}`:""}`]}));return Sd(R).forEach(B=>{B in L||(L[B]=R[B])}),L},[k,T,D,I,Cd(w)]);{const R=E==null?void 0:E.props.classes;N=$.useMemo(()=>oz(N,R,D),[N,Cd(R),D])}{const R=x6e({classes:N,css:T,cx:D,name:h??"makeStyle no name",idOfUseStyles:u,muiStyleOverridesParams:E,theme:I});R.classes!==void 0&&(N=R.classes),R.css!==void 0&&(T=R.css),R.cx!==void 0&&(D=R.cx)}return{classes:N,theme:I,css:T,cx:D}}}}function a(){const o=e(),{css:f,cx:u}=i();return{theme:o,css:f,cx:u}}return{makeStyles:s,useStyles:a}}const b$e=$.createContext(void 0),{createUseCache:w6e}=(()=>{function t(){return $.useContext(b$e)}function e(n){const{cacheProvidedAtInception:r}=n;function i(){var s;const a=J8e(),o=t(),f=(s=r??o)!==null&&s!==void 0?s:a;if(f===null)throw new Error(["In order to get SSR working with tss-react you need to explicitly provide an Emotion cache.","MUI users be aware: This is not an error strictly related to tss-react, with or without tss-react,","MUI needs an Emotion cache to be provided for SSR to work.","Here is the MUI documentation related to SSR setup: https://mui.com/material-ui/guides/server-rendering/","TSS provides helper that makes the process of setting up SSR easier: https://docs.tss-react.dev/ssr"].join(`
118
118
  `));return f}return{useCache:i}}return{createUseCache:e}})();function F$(t){return t.charAt(0).toUpperCase()+t.slice(1)}function m$e(t){const{useTheme:e,cache:n}=t,{makeStyles:r}=v6e({useTheme:e,cache:n});function i(s,a,o){const f=typeof s=="string"?(()=>{const x=s,w=function({children:E,...I}){return $.createElement(x,I,E)};return Object.defineProperty(w,"name",{value:F$(x)}),w})():s,u=(()=>{{const{name:w}=o??{};if(w!==void 0)return typeof w!="object"?w:Object.keys(w)[0]}let x;e:{const w=f.displayName;if(typeof w!="string"||w==="")break e;x=w}e:{if(x!==void 0)break e;const w=f.name;if(typeof w!="string"||w==="")break e;x=w}if(x!==void 0)return x=x.replace(/\$/g,"usd"),x=x.replace(/\(/g,"_").replace(/\)/g,"_"),x=x.replace(/[^a-zA-Z0-9-_]/g,"_"),x})(),h=r({...o,name:u})(typeof a=="function"?(x,w,E)=>z$(a(x,w,E)):z$(a));function m(x){for(const w in x)if(w!=="root")return!0;return!1}const y=$.forwardRef(function(x,w){const{className:E,classes:I,...T}=x,{classes:D,cx:k}=h(x,{props:x}),N=k(D.root,E);return M6e.set(D,{...D,root:N}),Hi.createElement(f,{ref:w,className:m(D)?E:N,...typeof s=="string"?{}:{classes:D},...T})});return u!==void 0&&(y.displayName=`${F$(u)}WithStyles`,Object.defineProperty(y,"name",{value:y.displayName})),y}return i.getClasses=y$e,{withStyles:i}}const M6e=new WeakMap,P$="getClasses should only be used in conjunction with withStyles";function y$e(t){const e=t.classes;if(e===void 0)throw new Error(P$);const n=M6e.get(e);if(n===void 0)throw new Error(P$);return n}function z$(t){const e={},n={};return Object.keys(t).forEach(r=>(r.startsWith("@media")?n:e)[r]=t[r]),Object.keys(n).forEach(r=>{const i=n[r];Object.keys(i).forEach(s=>{var a;return e[s]={...(a=e[s])!==null&&a!==void 0?a:{},[r]:i[s]}})}),e}const g$e=!(typeof document=="object"&&typeof(document==null?void 0:document.getElementById)=="function")&&!(typeof jest<"u")&&!(typeof mocha<"u")&&!(typeof __vitest_worker__<"u");function A6e(t){E6e=0,el.splice(0,el.length);const{useContext:e,usePlugin:n,cache:r}=t,{useCache:i}=w6e({cacheProvidedAtInception:r}),{useCssAndCx:s}=g6e({useCache:i});return{tss:kx({useContext:e,useCache:i,useCssAndCx:s,usePlugin:n??(({classes:f,cx:u,css:h})=>({classes:f,cx:u,css:h})),name:void 0,doesUseNestedSelectors:!1})}}let E6e=0;const el=[];function kx(t){const{useContext:e,useCache:n,useCssAndCx:r,usePlugin:i,name:s,doesUseNestedSelectors:a}=t;return{withParams:()=>kx({...t}),withName:o=>kx({...t,name:typeof o!="object"?o:Object.keys(o)[0]}),withNestedSelectors:()=>kx({...t,doesUseNestedSelectors:!0}),create:o=>{const f=`x${E6e++}`;if(s!==void 0)for(;;){const h=el.find(m=>m.name===s);if(h===void 0)break;el.splice(el.indexOf(h),1)}const u=typeof o=="function"?o:()=>o;return function(m){var y,x,w;const{classesOverrides:E,...I}=m??{},T=e(),{css:D,cx:k}=r(),N=n(),R=()=>{const L={},B=u({...m,...T,...a?{classes:typeof Proxy>"u"?{}:new Proxy({},{get:(C,c)=>{if(typeof c=="symbol"&&P6(!1),g$e&&s===void 0)throw new Error(["tss-react: In SSR setups, in order to use nested selectors, you must also give a unique name to the useStyle function.",'Solution: Use tss.withName("ComponentName").withNestedSelectors<...>()... to set a name.'].join(`