UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

510 lines 62.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "MasterContractsRegistry", "sourceName": "contracts/core/MasterContractsRegistry.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "ContractAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "ContractRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "ProxyContractAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "ProxyContractUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "MASTER_DAO_FACTORY_NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MASTER_DAO_REGISTRY_NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "masterAccess_", "type": "address" } ], "name": "__MasterContractsRegistry_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "contractAddress_", "type": "address" } ], "name": "addContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "contractAddress_", "type": "address" } ], "name": "addProxyContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "contractAddress_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "addProxyContractAndCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "getContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "getImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMasterDAOFactory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMasterDAORegistry", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPermissionManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getProxyUpgrader", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTokenFactory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "hasContract", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "injectDependencies", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "contractAddress_", "type": "address" } ], "name": "justAddProxyContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "removeContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "newImplementation_", "type": "address" } ], "name": "upgradeContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "address", "name": "newImplementation_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "upgradeContractAndCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x60a080604052346100315730608052613240908161003782396080518181816109db01528181610c72015261119d0152f35b600080fdfe604060808152600490813610156200001657600080fd5b600091823560e01c80631271bd5314620015b95780631adad8cf146200145c5780632cbc1211146200143757806335000d2914620014125780633581777314620013d55780633659cfe614620011715780633e6decde1462000f66578063423c072b1462000f085780634f1ef2861462000c295780635102aad31462000c0657806351dad82c1462000a8a57806352d1902d14620009c45780636b68389614620008c05780636bbe869414620008345780638c22360114620007c3578063925d6ba2146200077c57806397623b58146200058c5780639a06df501462000550578063a54818171462000515578063ac9650d81462000330578063bf5b6016146200023b578063d10611fc14620002095763e0e084f8146200013657600080fd5b3462000205576020620001866200014d366200172b565b60035491949093916001600160a01b0316620001686200195f565b87516384b9a64560e01b8152948593849283929133908401620018be565b03915afa908115620001fb57620001c29491620001ac918791620001c5575b5062001983565b5191620001b98362001651565b84835262001d4e565b80f35b620001ec915060203d602011620001f3575b620001e3818362001689565b810190620018a4565b38620001a5565b503d620001d7565b84513d87823e3d90fd5b8280fd5b50503462000237578160031936011262000237579054905160109190911c6001600160a01b03168152602090f35b5080fd5b503462000205576200024d366200172b565b60035490926001600160a01b03916200028d9160209184166200026f6200195f565b88516384b9a64560e01b8152948593849283929133908401620018be565b03915afa908115620003265791620002d47f8b4ef7d4e5bc8f098e6f637ac0acf4aee47b3f027efea6307264b06b4bc9d298969262000320948991620001c5575062001983565b8416620002e381151562001cbb565b81516020818651620002f98183858b0162001804565b81016001815203019020906001600160601b0360a01b825416179055519283928362001e82565b0390a180f35b85513d88823e3d90fd5b5082903462000237576020918260031936011262000512578135916001600160401b0390818411620002055736602385011215620002055783013590808211620002055760246005923660248260051b880101116200050e5792875191620003988362001651565b85835287830191620003aa8662001c17565b97620003b98b51998a62001689565b868952620003c78762001c17565b601f19018a895b8b838210620004fd5750505050368190036042190191885b8881106200044f578c8c8c8c83519280840190808552835180925280868601968360051b870101940192955b828710620004205785850386f35b9091929382806200043e600193603f198a8203018652885162001829565b960192019601959291909262000412565b8481831b8401013584811215620004f95783018581013590898211620004f5576044018136038113620004f557620004e08f938f8f93948f620004d99284978f928f93620004ba620004c7958760019e51988996888801378501928684019485525193849162001804565b0103808452018262001689565b620004d162001fa4565b903062002090565b9262001c2f565b52620004ed818d62001c2f565b5001620003e6565b8b80fd5b8a80fd5b60609082018301528c9101620003ce565b8480fd5b80fd5b50503462000237578160031936011262000237576200054c906200053862001850565b905191829160208352602083019062001829565b0390f35b50503462000237578160031936011262000237576020906200057b6200057562001be3565b62001a63565b90516001600160a01b039091168152f35b509034620002055760209081600319360112620007785782356001600160401b0381116200050e57620005c39036908501620016c7565b9260018060a01b039062000611848360035416855190620005e4826200166d565b600682526544454c45544560d01b83830152865180809581946384b9a64560e01b835233898401620018be565b03915afa9081156200076e5787916200074c575b5015620006d9575081620006af8462000320937f0c4eafbc12ea2584eb34031bf52952af5909a5880ef4058cb05c627ae39ffda097969551908751918381818b01946200067481838862001804565b8101600181520301902054166200068d81151562001a00565b89526002825283892060ff198154169055835180938192895192839162001804565b810160018152030190206001600160601b0360a01b81541690555192828493845283019062001829565b825162461bcd60e51b8152908101849052604160248201527f5b5147444b2d3030313030325d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f2064656c6574652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b620007679150853d8711620001f357620001e3818362001689565b3862000625565b84513d89823e3d90fd5b8380fd5b5050346200023757816003193601126200023757806200057b60209251620007a4816200166d565b600d81526c544f4b454e5f464143544f525960981b8482015262001a63565b5091346200051257602036600319011262000512578235906001600160401b038211620005125750602092620007fc91369101620016c7565b82620008118351928381519384920162001804565b6001908201908152819003830190205490516001600160a01b0390911615158152f35b50346200020557620008679060206200084d3662001771565b949192909360018060a01b03600354166200026f62001880565b03915afa948515620008b75750620001c2946200088d91879162000893575b50620018e2565b62001eac565b620008b0915060203d602011620001f357620001e3818362001689565b3862000886565b513d87823e3d90fd5b50829034620002375760209283600319360112620002055781356001600160401b0381116200077857620008f89036908401620016c7565b9184806200090f8451958681519384920162001804565b840160018152848260018060a01b039687930301902054166200093481151562001a00565b808652600282526200094c60ff858820541662001b65565b602485875460101c169385519485938492630ad6396560e11b84528301525afa938415620009b9579362000983575b505191168152f35b620009a9919350843d8611620009b1575b620009a0818362001689565b81019062001bc2565b91846200097b565b503d62000994565b8251903d90823e3d90fd5b5082346200051257806003193601126200051257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300362000a225760208251600080516020620032148339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b5034620002055762000ade9062000aa1366200172b565b60035490939192906001600160a01b039081169062000abf6200195f565b875180936384b9a64560e01b825281806020988995338a8401620018be565b03915afa91821562000bfc57849262000aff918a9162000be1575062001983565b60248187169162000b1283151562001cbb565b885184818162000b298b8381519384920162001804565b81016001815203019020836001600160601b0360a01b825416179055828a5260028452888a20600160ff19825416179055895460101c169388519485938492630ad6396560e11b84528301525afa9182156200032657946200032092917f10e75df11debcdd8425769babc76babb1b082c13be22ba626bfc8e6de393c4c596889362000bbd575b5050519384938462001d1d565b62000bd8929350803d10620009b157620009a0818362001689565b90388062000bb0565b620001ec9150843d8611620001f357620001e3818362001689565b87513d8a823e3d90fd5b50503462000237578160031936011262000237576200054c9062000538620017d3565b50829082600319360112620002375762000c4262001714565b906024356001600160401b038111620007785762000c6862000cf29136908401620016c7565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811696919062000ca43089141562001aa1565b62000cc46000805160206200321483398151915298828a54161462001b03565b806003541662000cd36200195f565b845180926384b9a64560e01b825281806020998a95338d8401620018be565b03915afa90811562000efe579062000d1291899162000edc575062001983565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000d4f575050505050620001c291925062001ffe565b85919294969395169684516352d1902d60e01b8152868189818c5afa6000918162000ea2575b5062000dd557855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b97949195929693970362000e4f5750505062000df18262001ffe565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159062000e46575b62000e2c57505080f35b62000e429162000e3b62001fa4565b9162002090565b5080f35b50600162000e22565b5162461bcd60e51b815291820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260849150fd5b9091508781813d831162000ed4575b62000ebd818362001689565b8101031262000ecf5751908a62000d75565b600080fd5b503d62000eb1565b62000ef79150863d8811620001f357620001e3818362001689565b8a620001a5565b84513d8a823e3d90fd5b5034620002055762000f3b90602062000f213662001771565b949192909360018060a01b03600354166200026f6200195f565b03915afa948515620008b75750620001c29462000f60918791620001c5575062001983565b62001d4e565b503462000205576020366003190112620002055762000f8462001714565b83549160ff8360081c16159283809462001163575b80156200114a575b15620010f05760ff198116600117865583620010de575b5062000fd660ff865460081c1662000fd08162001c5a565b62001c5a565b83519061045d808301918383106001600160401b03841117620010cb575090829162002db78339039085f0908115620010be57845462010000600160b01b03191660109290921b62010000600160b01b031691909117845562001055906200103d62001be3565b908451916200104c8362001651565b86835262001d4e565b6001600160a01b036200106b6200057562001be3565b166001600160601b0360a01b600354161760035562001088575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b50505051903d90823e3d90fd5b634e487b7160e01b885260419052602487fd5b61ffff19166101011785553862000fb8565b845162461bcd60e51b8152602081840152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801562000fa15750600160ff82161462000fa1565b50600160ff82161062000f99565b5082903462000237576020908160031936011262000205576200119362001714565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169591939190620011d13088141562001aa1565b620011f16000805160206200321483398151915297828954161462001b03565b62001221838260035416620012056200195f565b90855180809581946384b9a64560e01b8352338c8401620018be565b03915afa908115620013cb579062001241918891620013a9575062001983565b8151906200124f8262001651565b8682527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200128f575050505050620001c291925062001ffe565b85919294969395169684516352d1902d60e01b8152868189818c5afa6000918162001374575b506200131557855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b97949195929693970362000e4f57505050620013318262001ffe565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906200136b5762000e2c57505080f35b50600062000e22565b9091508781813d8311620013a1575b6200138f818362001689565b8101031262000ecf5751908a620012b5565b503d62001383565b620013c49150853d8711620001f357620001e3818362001689565b89620001a5565b83513d89823e3d90fd5b5091346200051257602036600319011262000512578235906001600160401b038211620005125750620005756020936200057b92369101620016c7565b50503462000237578160031936011262000237576020906200057b62000575620017d3565b50503462000237578160031936011262000237576020906200057b6200057562001850565b509034620002055782602080600319360112620002375783356001600160401b0381116200020557620014939036908601620016c7565b60035490916001600160a01b0391620014d29082908416620014b46200195f565b88516384b9a64560e01b81529384929183918291338e8401620018be565b03915afa908115620015af576200151b9291620014f791879162001594575062001983565b855193620015058562001651565b8585528187519382858094519384920162001804565b8101600181520301902054166200153481151562001a00565b803b1562000205576200156a94838551809781958294636913045160e01b84523090840152886024840152604483019062001829565b03925af19081156200158b575062001580575080f35b620001c29062001627565b513d84823e3d90fd5b620001ec9150833d8511620001f357620001e3818362001689565b86513d87823e3d90fd5b503462000205576020620015ec620015d1366200172b565b60035491949093916001600160a01b03166200016862001880565b03915afa908115620001fb57620001c2949162001611918791620008935750620018e2565b51916200161e8362001651565b84835262001eac565b6001600160401b0381116200163b57604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b038211176200163b57604052565b604081019081106001600160401b038211176200163b57604052565b90601f801991011681019081106001600160401b038211176200163b57604052565b6001600160401b0381116200163b57601f01601f191660200190565b81601f8201121562000ecf57803590620016e182620016ab565b92620016f1604051948562001689565b8284526020838301011162000ecf57816000926020809301838601378301015290565b600435906001600160a01b038216820362000ecf57565b604060031982011262000ecf57600435906001600160401b03821162000ecf576200175991600401620016c7565b906024356001600160a01b038116810362000ecf5790565b606060031982011262000ecf576001600160401b039160043583811162000ecf5782620017a191600401620016c7565b926024356001600160a01b038116810362000ecf579260443591821162000ecf57620017d091600401620016c7565b90565b60405190620017e2826200166d565b60138252724d41535445525f44414f5f524547495354525960681b6020830152565b60005b838110620018185750506000910152565b818101518382015260200162001807565b90602091620018448151809281855285808601910162001804565b601f01601f1916010190565b604051906200185f826200166d565b60128252714d41535445525f44414f5f464143544f525960701b6020830152565b604051906200188f826200166d565b600682526555504441544560d01b6020830152565b9081602091031262000ecf5751801515810362000ecf5790565b6001600160a01b039091168152604060208201819052620017d09291019062001829565b15620018ea57565b60405162461bcd60e51b815260206004820152604160248201527f5b5147444b2d3030313030315d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f207570646174652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b604051906200196e826200166d565b600682526543524541544560d01b6020830152565b156200198b57565b60405162461bcd60e51b815260206004820152604160248201527f5b5147444b2d3030313030305d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f206372656174652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b1562001a0857565b60405162461bcd60e51b815260206004820152602d60248201527f436f6e74726163747352656769737472793a2074686973206d617070696e672060448201526c191bd95cdb89dd08195e1a5cdd609a1b6064820152608490fd5b602062001a7a604051928381519384920162001804565b60019082019081528190036020019020546001600160a01b0316620017d081151562001a00565b1562001aa957565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1562001b0b57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b1562001b6d57565b60405162461bcd60e51b815260206004820152602760248201527f436f6e74726163747352656769737472793a206e6f7420612070726f787920636044820152661bdb9d1c9858dd60ca1b6064820152608490fd5b9081602091031262000ecf57516001600160a01b038116810362000ecf5790565b6040519062001bf2826200166d565b60168252752220a7afa822a926a4a9a9a4a7a72fa6a0a720a3a2a960511b6020830152565b6001600160401b0381116200163b5760051b60200190565b805182101562001c445760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b1562001c6257565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b1562001cc357565b60405162461bcd60e51b815260206004820152602c60248201527f436f6e74726163747352656769737472793a207a65726f20616464726573732060448201526b34b9903337b93134b23232b760a11b6064820152608490fd5b9162001d3760409295949560608552606085019062001829565b6001600160a01b0391821660208501529416910152565b909291906001600160a01b0362001d69818616151562001cbb565b60009281845460101c169060405191610c39808401908482106001600160401b0383111762001e4357918985949262001da8946200217e873962001e57565b039084f0801562001e385794604062001e33927f10e75df11debcdd8425769babc76babb1b082c13be22ba626bfc8e6de393c4c5969716948151602081875162001df68183858c0162001804565b81016001815203019020866001600160601b0360a01b825416179055858152600260205220600160ff198254161790556040519384938462001d1d565b0390a1565b6040513d85823e3d90fd5b634e487b7160e01b88526041600452602488fd5b6001600160a01b03918216815291166020820152606060408201819052620017d09291019062001829565b9062001e9c60209194939460408452604084019062001829565b6001600160a01b03909416910152565b929192604051815162001ec481836020860162001804565b60019082019081528190036020019020546001600160a01b039081169062001eee82151562001a00565b6000958691838352600260205262001f0d60ff60408520541662001b65565b825460101c16803b156200020557858362001f40956040519687958694859363a745e3df60e01b85526004850162001e57565b03925af1801562001f99577f0ade5313c9e16e7e06de9ab0edde476cc9a6fd51b973b8685c6c5026028a39d294955062001f87575b5062001e336040519283928362001e82565b62001f929062001627565b3862001f75565b6040513d87823e3d90fd5b60405190606082018281106001600160401b038211176200163b5760405260278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b803b1562002035576000805160206200321483398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080620017d09493602081519101845af43d15620020d6573d91620020b683620016ab565b92620020c6604051948562001689565b83523d6000602085013e620020da565b6060915b919290156200213f5750815115620020f0575090565b3b15620020fa5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620021535750805190602001fd5b60405162461bcd60e51b8152602060048201529081906200217990602483019062001829565b0390fdfe60406080815262000c398038038062000018816200030b565b9283398101906060818303126200030657620000348162000347565b916020926200004584840162000347565b8584015190936001600160401b0391908282116200030657019280601f850112156200030657835193620000836200007d866200035c565b6200030b565b948086528786019288828401011162000306578288620000a4930162000378565b823b15620002ac577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081166001600160a01b0386811691821790935590959194600093909290917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2805115801590620002a4575b620001f5575b50505050507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103937f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f86865493815196818616885216958684820152a18315620001a3575016179055516107e29081620004578239f35b60849086519062461bcd60e51b82526004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b895194606086019081118682101762000290578a52602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c89860152660819985a5b195960ca1b8a860152516200027a9493929183918291845af4903d1562000286573d6200026a6200007d826200035c565b90815280938a3d92013e6200039d565b5038808080806200012d565b606092506200039d565b634e487b7160e01b85526041600452602485fd5b508362000127565b865162461bcd60e51b815260048101879052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200033157604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200030657565b6001600160401b0381116200033157601f01601f191660200190565b60005b8381106200038c5750506000910152565b81810151838201526020016200037b565b91929015620004025750815115620003b3575090565b3b15620003bd5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015620004165750805190602001fd5b6044604051809262461bcd60e51b82526020600483015262000448815180928160248601526020868601910162000378565b601f01601f19168101030190fdfe60806040523661012e57600080516020610796833981519152546001600160a01b03163303610129576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c61047e565b602081519101f35b63278f794360e11b8103610070575061006b6103ed565b61004c565b6308f2839760e41b8103610087575061006b610317565b6303e1469160e61b810361009e575061006b610275565b635c60da1b60e01b036100b35761006b61023c565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a490fd5b610171565b600080516020610796833981519152546001600160a01b03163303610171576000356001600160e01b031916631b2ce7f360e11b8103610054575061004c61047e565b6000805160206107b683398151915254600090819081906001600160a01b0316368280378136915af43d82803e156101a7573d90f35b3d90fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176101dd57604052565b6101ab565b6020810190811067ffffffffffffffff8211176101dd57604052565b6060810190811067ffffffffffffffff8211176101dd57604052565b90601f8019910116810190811067ffffffffffffffff8211176101dd57604052565b61024461059f565b60018060a01b036000805160206107b6833981519152541660405190602082015260208152610272816101c1565b90565b61027d61059f565b60018060a01b03600080516020610796833981519152541660405190602082015260208152610272816101c1565b600435906001600160a01b03821682036102c157565b600080fd5b60209060031901126102c1576004356001600160a01b03811681036102c15790565b67ffffffffffffffff81116101dd57601f01601f191660200190565b60405190610311826101e2565b60008252565b61031f61059f565b366004116102c1576001600160a01b0380610339366102c6565b16600080516020610796833981519152917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f604084549281519084168152846020820152a18115610399576001600160a01b031916179055610272610304565b60405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b366004116102c15760403660031901126102c1576104096102ab565b6024359067ffffffffffffffff82116102c157366023830112156102c157816004013590610436826102e8565b91610444604051938461021a565b80835236602482860101116102c1576020816000926024610476970183870137840101526001600160a01b03166105a6565b610272610304565b61048661059f565b366004116102c1576001600160a01b0361049f366102c6565b16604051906104ad826101e2565b60008252803b15610544576000805160206107b683398151915280546001600160a01b03191682179055807fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061053c575b610522575b505060405161051b816101e2565b6000815290565b6105349161052e610627565b91610670565b50388061050d565b506000610508565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b346102c157565b803b15610544576000805160206107b683398151915280546001600160a01b0319166001600160a01b0383169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159061061f575b610610575050565b61061c9161052e610627565b50565b506001610608565b60405190610634826101fe565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b6000806102729493602081519101845af43d156106af573d91610692836102e8565b926106a0604051948561021a565b83523d6000602085013e610703565b606091610703565b156106be57565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156107235750815115610717575090565b610272903b15156106b7565b8251909150156107365750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061077c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061075956feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000818000a60a0806040523461009a57331561003257336080526040516103bd90816100a0823960805181818160b3015261021a0152f35b62461bcd60e51b815260206004820152603360248201527f5065726d616e656e744f776e61626c653a207a65726f2061646472657373206360448201527f616e206e6f7420626520746865206f776e6572000000000000000000000000006064820152608490fd5b600080fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816315ac72ca14610249575080638da5cb5b146102055763a745e3df1461004557600080fd5b346102015760603660031901126102015761005e61036b565b926024916001600160a01b0390833582811691908290036101fd576044359167ffffffffffffffff9384841161015e573660238501121561015e578383013594851161015e573687868601011161015e5733817f000000000000000000000000000000000000000000000000000000000000000016036101a9578798851515600014610162571691823b1561015e57606488959182879389519a8b988997889563278f794360e11b87528601528b8286015282604486015201848401378181018301849052601f01601f191681010301925af1908115610155575061014257505080f35b61014b90610386565b6101525780f35b80fd5b513d84823e3d90fd5b8780fd5b169694959093509150853b156101a5578385519687948593631b2ce7f360e11b85528401525af19081156101555750610199575080f35b6101a290610386565b80f35b8380fd5b855162461bcd60e51b81526020818501526029818901527f5065726d616e656e744f776e61626c653a2063616c6c6572206973206e6f74206044820152683a34329037bbb732b960b91b6064820152608490fd5b8580fd5b5080fd5b828434610201578160031936011261020157517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b838584346102e857602093846003193601126101a5578382819261026b61036b565b635c60da1b60e01b82525afa903d156103635767ffffffffffffffff913d83811161035057845193601f8201601f19908116603f011685019081118582101761033d57855283523d858785013e5b156102ec575083818051810103126102e8578301516001600160a01b0381169290839003610152575051908152f35b8280fd5b825162461bcd60e51b8152908101859052602560248201527f5472616e73706172656e7450726f787955706772616465723a206e6f7420612060448201526470726f787960d81b6064820152608490fd5b634e487b7160e01b875260418452602487fd5b634e487b7160e01b865260418352602486fd5b6060916102b9565b600435906001600160a01b038216820361038157565b600080fd5b67ffffffffffffffff811161039a57604052565b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000818000a360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000818000a", "deployedBytecode": "0x604060808152600490813610156200001657600080fd5b600091823560e01c80631271bd5314620015b95780631adad8cf146200145c5780632cbc1211146200143757806335000d2914620014125780633581777314620013d55780633659cfe614620011715780633e6decde1462000f66578063423c072b1462000f085780634f1ef2861462000c295780635102aad31462000c0657806351dad82c1462000a8a57806352d1902d14620009c45780636b68389614620008c05780636bbe869414620008345780638c22360114620007c3578063925d6ba2146200077c57806397623b58146200058c5780639a06df501462000550578063a54818171462000515578063ac9650d81462000330578063bf5b6016146200023b578063d10611fc14620002095763e0e084f8146200013657600080fd5b3462000205576020620001866200014d366200172b565b60035491949093916001600160a01b0316620001686200195f565b87516384b9a64560e01b8152948593849283929133908401620018be565b03915afa908115620001fb57620001c29491620001ac918791620001c5575b5062001983565b5191620001b98362001651565b84835262001d4e565b80f35b620001ec915060203d602011620001f3575b620001e3818362001689565b810190620018a4565b38620001a5565b503d620001d7565b84513d87823e3d90fd5b8280fd5b50503462000237578160031936011262000237579054905160109190911c6001600160a01b03168152602090f35b5080fd5b503462000205576200024d366200172b565b60035490926001600160a01b03916200028d9160209184166200026f6200195f565b88516384b9a64560e01b8152948593849283929133908401620018be565b03915afa908115620003265791620002d47f8b4ef7d4e5bc8f098e6f637ac0acf4aee47b3f027efea6307264b06b4bc9d298969262000320948991620001c5575062001983565b8416620002e381151562001cbb565b81516020818651620002f98183858b0162001804565b81016001815203019020906001600160601b0360a01b825416179055519283928362001e82565b0390a180f35b85513d88823e3d90fd5b5082903462000237576020918260031936011262000512578135916001600160401b0390818411620002055736602385011215620002055783013590808211620002055760246005923660248260051b880101116200050e5792875191620003988362001651565b85835287830191620003aa8662001c17565b97620003b98b51998a62001689565b868952620003c78762001c17565b601f19018a895b8b838210620004fd5750505050368190036042190191885b8881106200044f578c8c8c8c83519280840190808552835180925280868601968360051b870101940192955b828710620004205785850386f35b9091929382806200043e600193603f198a8203018652885162001829565b960192019601959291909262000412565b8481831b8401013584811215620004f95783018581013590898211620004f5576044018136038113620004f557620004e08f938f8f93948f620004d99284978f928f93620004ba620004c7958760019e51988996888801378501928684019485525193849162001804565b0103808452018262001689565b620004d162001fa4565b903062002090565b9262001c2f565b52620004ed818d62001c2f565b5001620003e6565b8b80fd5b8a80fd5b60609082018301528c9101620003ce565b8480fd5b80fd5b50503462000237578160031936011262000237576200054c906200053862001850565b905191829160208352602083019062001829565b0390f35b50503462000237578160031936011262000237576020906200057b6200057562001be3565b62001a63565b90516001600160a01b039091168152f35b509034620002055760209081600319360112620007785782356001600160401b0381116200050e57620005c39036908501620016c7565b9260018060a01b039062000611848360035416855190620005e4826200166d565b600682526544454c45544560d01b83830152865180809581946384b9a64560e01b835233898401620018be565b03915afa9081156200076e5787916200074c575b5015620006d9575081620006af8462000320937f0c4eafbc12ea2584eb34031bf52952af5909a5880ef4058cb05c627ae39ffda097969551908751918381818b01946200067481838862001804565b8101600181520301902054166200068d81151562001a00565b89526002825283892060ff198154169055835180938192895192839162001804565b810160018152030190206001600160601b0360a01b81541690555192828493845283019062001829565b825162461bcd60e51b8152908101849052604160248201527f5b5147444b2d3030313030325d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f2064656c6574652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b620007679150853d8711620001f357620001e3818362001689565b3862000625565b84513d89823e3d90fd5b8380fd5b5050346200023757816003193601126200023757806200057b60209251620007a4816200166d565b600d81526c544f4b454e5f464143544f525960981b8482015262001a63565b5091346200051257602036600319011262000512578235906001600160401b038211620005125750602092620007fc91369101620016c7565b82620008118351928381519384920162001804565b6001908201908152819003830190205490516001600160a01b0390911615158152f35b50346200020557620008679060206200084d3662001771565b949192909360018060a01b03600354166200026f62001880565b03915afa948515620008b75750620001c2946200088d91879162000893575b50620018e2565b62001eac565b620008b0915060203d602011620001f357620001e3818362001689565b3862000886565b513d87823e3d90fd5b50829034620002375760209283600319360112620002055781356001600160401b0381116200077857620008f89036908401620016c7565b9184806200090f8451958681519384920162001804565b840160018152848260018060a01b039687930301902054166200093481151562001a00565b808652600282526200094c60ff858820541662001b65565b602485875460101c169385519485938492630ad6396560e11b84528301525afa938415620009b9579362000983575b505191168152f35b620009a9919350843d8611620009b1575b620009a0818362001689565b81019062001bc2565b91846200097b565b503d62000994565b8251903d90823e3d90fd5b5082346200051257806003193601126200051257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300362000a225760208251600080516020620032148339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b5034620002055762000ade9062000aa1366200172b565b60035490939192906001600160a01b039081169062000abf6200195f565b875180936384b9a64560e01b825281806020988995338a8401620018be565b03915afa91821562000bfc57849262000aff918a9162000be1575062001983565b60248187169162000b1283151562001cbb565b885184818162000b298b8381519384920162001804565b81016001815203019020836001600160601b0360a01b825416179055828a5260028452888a20600160ff19825416179055895460101c169388519485938492630ad6396560e11b84528301525afa9182156200032657946200032092917f10e75df11debcdd8425769babc76babb1b082c13be22ba626bfc8e6de393c4c596889362000bbd575b5050519384938462001d1d565b62000bd8929350803d10620009b157620009a0818362001689565b90388062000bb0565b620001ec9150843d8611620001f357620001e3818362001689565b87513d8a823e3d90fd5b50503462000237578160031936011262000237576200054c9062000538620017d3565b50829082600319360112620002375762000c4262001714565b906024356001600160401b038111620007785762000c6862000cf29136908401620016c7565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811696919062000ca43089141562001aa1565b62000cc46000805160206200321483398151915298828a54161462001b03565b806003541662000cd36200195f565b845180926384b9a64560e01b825281806020998a95338d8401620018be565b03915afa90811562000efe579062000d1291899162000edc575062001983565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000d4f575050505050620001c291925062001ffe565b85919294969395169684516352d1902d60e01b8152868189818c5afa6000918162000ea2575b5062000dd557855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b97949195929693970362000e4f5750505062000df18262001ffe565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511580159062000e46575b62000e2c57505080f35b62000e429162000e3b62001fa4565b9162002090565b5080f35b50600162000e22565b5162461bcd60e51b815291820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260849150fd5b9091508781813d831162000ed4575b62000ebd818362001689565b8101031262000ecf5751908a62000d75565b600080fd5b503d62000eb1565b62000ef79150863d8811620001f357620001e3818362001689565b8a620001a5565b84513d8a823e3d90fd5b5034620002055762000f3b90602062000f213662001771565b949192909360018060a01b03600354166200026f6200195f565b03915afa948515620008b75750620001c29462000f60918791620001c5575062001983565b62001d4e565b503462000205576020366003190112620002055762000f8462001714565b83549160ff8360081c16159283809462001163575b80156200114a575b15620010f05760ff198116600117865583620010de575b5062000fd660ff865460081c1662000fd08162001c5a565b62001c5a565b83519061045d808301918383106001600160401b03841117620010cb575090829162002db78339039085f0908115620010be57845462010000600160b01b03191660109290921b62010000600160b01b031691909117845562001055906200103d62001be3565b908451916200104c8362001651565b86835262001d4e565b6001600160a01b036200106b6200057562001be3565b166001600160601b0360a01b600354161760035562001088575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a180f35b50505051903d90823e3d90fd5b634e487b7160e01b885260419052602487fd5b61ffff19166101011785553862000fb8565b845162461bcd60e51b8152602081840152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801562000fa15750600160ff82161462000fa1565b50600160ff82161062000f99565b5082903462000237576020908160031936011262000205576200119362001714565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169591939190620011d13088141562001aa1565b620011f16000805160206200321483398151915297828954161462001b03565b62001221838260035416620012056200195f565b90855180809581946384b9a64560e01b8352338c8401620018be565b03915afa908115620013cb579062001241918891620013a9575062001983565b8151906200124f8262001651565b8682527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200128f575050505050620001c291925062001ffe565b85919294969395169684516352d1902d60e01b8152868189818c5afa6000918162001374575b506200131557855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b97949195929693970362000e4f57505050620013318262001ffe565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28151158015906200136b5762000e2c57505080f35b50600062000e22565b9091508781813d8311620013a1575b6200138f818362001689565b8101031262000ecf5751908a620012b5565b503d62001383565b620013c49150853d8711620001f357620001e3818362001689565b89620001a5565b83513d89823e3d90fd5b5091346200051257602036600319011262000512578235906001600160401b038211620005125750620005756020936200057b92369101620016c7565b50503462000237578160031936011262000237576020906200057b62000575620017d3565b50503462000237578160031936011262000237576020906200057b6200057562001850565b509034620002055782602080600319360112620002375783356001600160401b0381116200020557620014939036908601620016c7565b60035490916001600160a01b0391620014d29082908416620014b46200195f565b88516384b9a64560e01b81529384929183918291338e8401620018be565b03915afa908115620015af576200151b9291620014f791879162001594575062001983565b855193620015058562001651565b8585528187519382858094519384920162001804565b8101600181520301902054166200153481151562001a00565b803b1562000205576200156a94838551809781958294636913045160e01b84523090840152886024840152604483019062001829565b03925af19081156200158b575062001580575080f35b620001c29062001627565b513d84823e3d90fd5b620001ec9150833d8511620001f357620001e3818362001689565b86513d87823e3d90fd5b503462000205576020620015ec620015d1366200172b565b60035491949093916001600160a01b03166200016862001880565b03915afa908115620001fb57620001c2949162001611918791620008935750620018e2565b51916200161e8362001651565b84835262001eac565b6001600160401b0381116200163b57604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b038211176200163b57604052565b604081019081106001600160401b038211176200163b57604052565b90601f801991011681019081106001600160401b038211176200163b57604052565b6001600160401b0381116200163b57601f01601f191660200190565b81601f8201121562000ecf57803590620016e182620016ab565b92620016f1604051948562001689565b8284526020838301011162000ecf57816000926020809301838601378301015290565b600435906001600160a01b038216820362000ecf57565b604060031982011262000ecf57600435906001600160401b03821162000ecf576200175991600401620016c7565b906024356001600160a01b038116810362000ecf5790565b606060031982011262000ecf576001600160401b039160043583811162000ecf5782620017a191600401620016c7565b926024356001600160a01b038116810362000ecf579260443591821162000ecf57620017d091600401620016c7565b90565b60405190620017e2826200166d565b60138252724d41535445525f44414f5f524547495354525960681b6020830152565b60005b838110620018185750506000910152565b818101518382015260200162001807565b90602091620018448151809281855285808601910162001804565b601f01601f1916010190565b604051906200185f826200166d565b60128252714d41535445525f44414f5f464143544f525960701b6020830152565b604051906200188f826200166d565b600682526555504441544560d01b6020830152565b9081602091031262000ecf5751801515810362000ecf5790565b6001600160a01b039091168152604060208201819052620017d09291019062001829565b15620018ea57565b60405162461bcd60e51b815260206004820152604160248201527f5b5147444b2d3030313030315d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f207570646174652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b604051906200196e826200166d565b600682526543524541544560d01b6020830152565b156200198b57565b60405162461bcd60e51b815260206004820152604160248201527f5b5147444b2d3030313030305d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f206372656174652c206163636573732064656e6965646064820152601760f91b608482015260a490fd5b1562001a0857565b60405162461bcd60e51b815260206004820152602d60248201527f436f6e74726163747352656769737472793a2074686973206d617070696e