UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

442 lines 55.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "NFTMintingModule", "sourceName": "contracts/presets/NFTMintingModule.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "NFT_MINTING_RESOURCE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" }, { "internalType": "uint256", "name": "startPoint_", "type": "uint256" }, { "internalType": "string", "name": "resource_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__NFTMintingModule_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "address", "name": "token_", "type": "address" }, { "internalType": "uint256", "name": "startPoint_", "type": "uint256" }, { "internalType": "string", "name": "resource_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__NFTMintingModule_initAndSetDeps", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "arbitraryNFTExecute", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "recipients_", "type": "address[]" } ], "name": "batchMintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" }, { "internalType": "string", "name": "permission_", "type": "string" } ], "name": "checkPermission", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInjector", "outputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResource", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResourceRecords", "outputs": [ { "components": [ { "internalType": "string", "name": "existingRole", "type": "string" }, { "internalType": "string", "name": "resource", "type": "string" }, { "internalType": "string[]", "name": "permissions", "type": "string[]" } ], "internalType": "struct IDAOIntegration.ResourceRecords[]", "name": "records_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isModuleNFTOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to_", "type": "address" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "permissionManager", "outputs": [ { "internalType": "contract IPermissionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "setDependencies", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "name": "setInjector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startPoint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "supportedNFT", "outputs": [ { "internalType": "contract ISupportedNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner_", "type": "address" } ], "name": "transferOwnership", "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": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b62000115565b600054610100900460ff16156200005a5760405162461bcd60e51b81526004016200005190620000b3565b60405180910390fd5b60005460ff90811614620000b1576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a89162000105565b60405180910390a15b565b60208082528101620000ff81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000ff565b608051612bfe6200014d6000396000818161061201528181610652015281816106da0152818161071a01526107960152612bfe6000f3fe6080604052600436106101355760003560e01c80636030c508116100ab578063bb65dc831161006f578063bb65dc8314610341578063c43fa29814610356578063cc7a204914610376578063d8ad4e1c14610396578063f13bdd4d146103b6578063f2fde38b146103d857600080fd5b80636030c5081461029f57806369130451146102bf578063755edd17146102df5780638895db0d146102ff5780638cb941cc1461032157600080fd5b80633659cfe6116100fd5780633659cfe6146101f75780633e3b5b19146102175780634f1ef2861461024257806352d1902d146102555780635c33fcfc1461026a5780635c60da1b1461028a57600080fd5b806301ffc9a71461013a57806315632cea146101705780631b12d14a146101855780631eddc9ba146101a857806328eab0b1146101ca575b600080fd5b34801561014657600080fd5b5061015a610155366004611c2d565b6103f8565b6040516101679190611c58565b60405180910390f35b34801561017c57600080fd5b5061015a610465565b34801561019157600080fd5b5061019b60035481565b6040516101679190611c6c565b3480156101b457600080fd5b506101c86101c3366004611d9e565b6104f7565b005b3480156101d657600080fd5b506002546101ea906001600160a01b031681565b6040516101679190611e8e565b34801561020357600080fd5b506101c8610212366004611e9c565b610608565b34801561022357600080fd5b50600080516020612b62833981519152545b6040516101679190611ec6565b6101c8610250366004611ed4565b6106d0565b34801561026157600080fd5b5061019b610789565b34801561027657600080fd5b506101c8610285366004611f2c565b6107e6565b34801561029657600080fd5b506102356108bd565b3480156102ab57600080fd5b506101c86102ba366004612067565b6108cc565b3480156102cb57600080fd5b506101c86102da366004611ed4565b6109f7565b3480156102eb57600080fd5b506101c86102fa366004611e9c565b610a9c565b34801561030b57600080fd5b50610314610b82565b60405161016791906120f8565b34801561032d57600080fd5b506101c861033c366004611e9c565b610c10565b34801561034d57600080fd5b50610314610c2e565b34801561036257600080fd5b50610314610371366004612109565b610cc0565b34801561038257600080fd5b506004546101ea906001600160a01b031681565b3480156103a257600080fd5b5061015a6103b1366004611ed4565b610d04565b3480156103c257600080fd5b506103cb610d83565b604051610167919061226a565b3480156103e457600080fd5b506101c86103f3366004611e9c565b61131d565b60006001600160e01b031982166363c8929f60e01b148061042957506001600160e01b0319821663f13bdd4d60e01b145b8061044457506001600160e01b031982166336e447a160e21b145b8061045f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000306001600160a01b0316600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190612286565b6001600160a01b031614905090565b600054610100900460ff16158080156105175750600054600160ff909116105b806105315750303b158015610531575060005460ff166001145b6105565760405162461bcd60e51b815260040161054d906122f2565b60405180910390fd5b6000805460ff191660011790558015610579576000805461ff0019166101001790555b6040805160008152602081019091526105939087906109f7565b6105a986600080516020612b6283398151915255565b6105b5858585856113a2565b8015610600576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906105f790600190612316565b60405180910390a15b505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106505760405162461bcd60e51b815260040161054d9061236b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106826113c0565b6001600160a01b0316146106a85760405162461bcd60e51b815260040161054d906123c2565b6106b1816113dc565b604080516000808252602082019092526106cd918391906114e0565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107185760405162461bcd60e51b815260040161054d9061236b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661074a6113c0565b6001600160a01b0316146107705760405162461bcd60e51b815260040161054d906123c2565b610779826113dc565b610785828260016114e0565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d35760405162461bcd60e51b815260040161054d9061242a565b50600080516020612b8283398151915290565b600054610100900460ff16158080156108065750600054600160ff909116105b806108205750303b158015610820575060005460ff166001145b61083c5760405162461bcd60e51b815260040161054d906122f2565b6000805460ff19166001179055801561085f576000805461ff0019166101001790555b61086b858585856113a2565b80156108b6576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906108ad90600190612316565b60405180910390a15b5050505050565b60006108c76113c0565b905090565b6108f36040518060400160405280600681526020016543524541544560d01b8152506115c7565b80516003546002546001600160a01b031660005b838110156109ee5760008361091b81612450565b600254909550909150610937906001600160a01b0316826115ed565b156109635760006109516001600160a01b038516836116b5565b905061095e816001612469565b945090505b826001600160a01b0316639f6ed25f8784815181106109845761098461247c565b6020026020010151836040518363ffffffff1660e01b81526004016109aa929190612492565b600060405180830381600087803b1580156109c457600080fd5b505af11580156109d8573d6000803e3d6000fd5b5050505050806109e790612450565b9050610907565b50506003555050565b6109ff611705565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190612286565b600480546001600160a01b0319166001600160a01b03929092169190911790555033600080516020612b62833981519152555050565b610ac36040518060400160405280600681526020016543524541544560d01b8152506115c7565b6003805460009182610ad483612450565b90915550600254909150610af1906001600160a01b0316826115ed565b15610b2257600254600090610b0f906001600160a01b0316836116b5565b9050610b1c816001612469565b60035590505b600254604051639f6ed25f60e01b81526001600160a01b0390911690639f6ed25f90610b549085908590600401612492565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610600573d6000803e3d6000fd5b60018054610b8f906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbb906124d8565b8015610c085780601f10610bdd57610100808354040283529160200191610c08565b820191906000526020600020905b815481529060010190602001808311610beb57829003601f168201915b505050505081565b610c18611705565b6106cd81600080516020612b6283398151915255565b606060018054610c3d906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c69906124d8565b8015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b5050505050905090565b6060610ce96040518060400160405280600681526020016555504441544560d01b8152506115c7565b60025461045f906001600160a01b031683611759565b919050565b60048054604051633ca8e36d60e11b81526000926001600160a01b0390921691637951c6da91610d3b91879160019188910161257e565b602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906125c5565b9392505050565b60408051600380825260808201909252606091816020015b610dbf60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610d9b5790505090506000610e3860405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b81525081525061179d565b90506040518060600160405280610ed860058054610e55906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e81906124d8565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050611816565b600081518110610eea57610eea61247c565b6020026020010151815260200160018054610f04906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610f30906124d8565b8015610f7d5780601f10610f5257610100808354040283529160200191610f7d565b820191906000526020600020905b815481529060010190602001808311610f6057829003601f168201915b505050505081526020018281525082600081518110610f9e57610f9e61247c565b60200260200101819052506000610fe060405180602001604052806040518060400160405280600681526020016511561411549560d21b81525081525061184a565b9050604051806060016040528061108060058054610ffd906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611029906124d8565b80156110765780601f1061104b57610100808354040283529160200191611076565b820191906000526020600020905b81548152906001019060200180831161105957829003601f168201915b505050505061188e565b6000815181106110925761109261247c565b60200260200101518152602001600180546110ac906124d8565b80601f01602080910402602001604051908101604052809291908181526020018280546110d8906124d8565b80156111255780601f106110fa57610100808354040283529160200191611125565b820191906000526020600020905b81548152906001019060200180831161110857829003601f168201915b5050505050815260200182815250836001815181106111465761114661247c565b602002602001018190525060405180606001604052806111ef6005805461116c906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611198906124d8565b80156111e55780601f106111ba576101008083540402835291602001916111e5565b820191906000526020600020905b8154815290600101906020018083116111c857829003601f168201915b50505050506118af565b6000815181106112015761120161247c565b602002602001015181526020016001805461121b906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611247906124d8565b80156112945780601f1061126957610100808354040283529160200191611294565b820191906000526020600020905b81548152906001019060200180831161127757829003601f168201915b505050505081526020016112f760405180604001604052806040518060400160405280600681526020016555504441544560d01b81525081526020016040518060400160405280600681526020016543524541544560d01b81525081525061179d565b8152508360028151811061130d5761130d61247c565b6020026020010181905250505090565b6113446040518060400160405280600681526020016555504441544560d01b8152506115c7565b60025460405163f2fde38b60e01b81526001600160a01b039091169063f2fde38b90611374908490600401611ec6565b600060405180830381600087803b15801561138e57600080fd5b505af11580156108b6573d6000803e3d6000fd5b60056113ae8282612677565b506113ba8484846118d0565b50505050565b600080516020612b82833981519152546001600160a01b031690565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316638412ccd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114559190612756565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190612286565b9050336001600160a01b038216146107855760405162461bcd60e51b815260040161054d906127ba565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115185761151383611922565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611572575060408051601f3d908101601f1916820190925261156f918101906127d5565b60015b61158e5760405162461bcd60e51b815260040161054d9061283f565b600080516020612b8283398151915281146115bb5760405162461bcd60e51b815260040161054d90612893565b50611513838383611978565b6115d13382610d04565b6106cd5760405162461bcd60e51b815260040161054d906128d5565b6000806000846001600160a01b0316636352211e60e01b856040516024016116159190611c6c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116539190612907565b600060405180830381855afa9150503d806000811461168e576040519150601f19603f3d011682016040523d82523d6000602084013e611693565b606091505b50915091508180156116ac57506116a98161291b565b15155b95945050505050565b6000806116c2848461199d565b90505b80831015610d7c5760006116d98483611a02565b90506116e585826115ed565b6116f1578091506116ff565b6116fc816001612469565b93505b506116c5565b600061171d600080516020612b628339815191525490565b90506001600160a01b038116158061173d57506001600160a01b03811633145b6106cd5760405162461bcd60e51b815260040161054d90612983565b6060610d7c838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611a1d565b6040805160028082526060828101909352816020015b60608152602001906001900390816117b3575050825181519192509082906000906117e0576117e061247c565b60209081029190910101528160016020020151816001815181106118065761180661247c565b6020026020010181905250919050565b606061045f6040518060200160405280846040516020016118379190612993565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b6060815260200190600190039081611861575050825181519192509082906000906118065761180661247c565b606061045f60405180602001604052808460405160200161183791906129b5565b606061045f60405180602001604052808460405160200161183791906129ce565b600280546001600160a01b0319166001600160a01b0385161790556000829003611910576119086001600160a01b03841660006116b5565b600355611916565b60038290555b60016113ba8282612677565b6001600160a01b0381163b6119495760405162461bcd60e51b815260040161054d90612a2f565b600080516020612b8283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61198183611abb565b60008251118061198e5750805b15611513576113ba8383611afb565b600081815b6119ac85836115ed565b156119fa576119bc826002612a3f565b6119c7906001612469565b9150600f816119d581612450565b925011156119f55760405162461bcd60e51b815260040161054d90612a94565b6119a2565b509392505050565b6000611a116002848418612aba565b610d7c90848416612469565b606082471015611a3f5760405162461bcd60e51b815260040161054d90612b0f565b600080866001600160a01b03168587604051611a5b9190612907565b60006040518083038185875af1925050503d8060008114611a98576040519150601f19603f3d011682016040523d82523d6000602084013e611a9d565b606091505b5091509150611aae87838387611b20565b925050505b949350505050565b611ac481611922565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610d7c8383604051806060016040528060278152602001612ba260279139611b69565b60608315611b5f578251600003611b58576001600160a01b0385163b611b585760405162461bcd60e51b815260040161054d90612b51565b5081611ab3565b611ab38383611be1565b6060600080856001600160a01b031685604051611b869190612907565b600060405180830381855af49150503d8060008114611bc1576040519150601f19603f3d011682016040523d82523d6000602084013e611bc6565b606091505b5091509150611bd786838387611b20565b9695505050505050565b815115611bf15781518083602001fd5b8060405162461bcd60e51b815260040161054d91906120f8565b6001600160e01b031981165b81146106cd57600080fd5b803561045f81611c0b565b600060208284031215611c4257611c42600080fd5b6000611ab38484611c22565b8015155b82525050565b6020810161045f8284611c4e565b80611c52565b6020810161045f8284611c66565b60006001600160a01b03821661045f565b611c1781611c7a565b803561045f81611c8b565b80611c17565b803561045f81611c9f565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611cec57611cec611cb0565b6040525050565b6000611cfe60405190565b9050610cff8282611cc6565b600067ffffffffffffffff821115611d2457611d24611cb0565b601f19601f83011660200192915050565b82818337506000910152565b6000611d54611d4f84611d0a565b611cf3565b905082815260208101848484011115611d6f57611d6f600080fd5b6119fa848285611d35565b600082601f830112611d8e57611d8e600080fd5b8135611ab3848260208601611d41565b600080600080600060a08688031215611db957611db9600080fd5b6000611dc58888611c94565b9550506020611dd688828901611c94565b9450506040611de788828901611ca5565b935050606086013567ffffffffffffffff811115611e0757611e07600080fd5b611e1388828901611d7a565b925050608086013567ffffffffffffffff811115611e3357611e33600080fd5b611e3f88828901611d7a565b9150509295509295909350565b600061045f6001600160a01b038316611e63565b90565b6001600160a01b031690565b600061045f82611e4c565b600061045f82611e6f565b611c5281611e7a565b6020810161045f8284611e85565b600060208284031215611eb157611eb1600080fd5b6000611ab38484611c94565b611c5281611c7a565b6020810161045f8284611ebd565b60008060408385031215611eea57611eea600080fd5b6000611ef68585611c94565b925050602083013567ffffffffffffffff811115611f1657611f16600080fd5b611f2285828601611d7a565b9150509250929050565b60008060008060808587031215611f4557611f45600080fd5b6000611f518787611c94565b9450506020611f6287828801611ca5565b935050604085013567ffffffffffffffff811115611f8257611f82600080fd5b611f8e87828801611d7a565b925050606085013567ffffffffffffffff811115611fae57611fae600080fd5b611fba87828801611d7a565b91505092959194509250565b600067ffffffffffffffff821115611fe057611fe0611cb0565b5060209081020190565b6000611ff8611d4f84611fc6565b8381529050602080820190840283018581111561201757612017600080fd5b835b818110156120395761202b8782611c94565b835260209283019201612019565b5050509392505050565b600082601f83011261205757612057600080fd5b8135611ab3848260208601611fea565b60006020828403121561207c5761207c600080fd5b813567ffffffffffffffff81111561209657612096600080fd5b611ab384828501612043565b60005b838110156120bd5781810151838201526020016120a5565b50506000910152565b60006120d0825190565b8084526020840193506120e78185602086016120a2565b601f01601f19169290920192915050565b60208082528101610d7c81846120c6565b60006020828403121561211e5761211e600080fd5b813567ffffffffffffffff81111561213857612138600080fd5b611ab384828501611d7a565b6000610d7c83836120c6565b60200190565b6000612160825190565b8084526020840193508360208202850161217a8560200190565b60005b848110156121ae57838303885281516121968482612144565b9350506020820160209890980197915060010161217d565b50909695505050505050565b80516060808452600091908401906121d282826120c6565b915050602083015184820360208601526121ec82826120c6565b915050604083015184820360408601526116ac8282612156565b6000610d7c83836121ba565b600061221c825190565b808452602084019350836020820285016122368560200190565b60005b848110156121ae57838303885281516122528482612206565b93505060208201602098909801979150600101612239565b60208082528101610d7c8184612212565b805161045f81611c8b565b60006020828403121561229b5761229b600080fd5b6000611ab3848461227b565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015290505b60400190565b6020808252810161045f816122a7565b600060ff821661045f565b611c5281612302565b6020810161045f828461230d565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290506122ec565b6020808252810161045f81612324565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b602082015290506122ec565b6020808252810161045f8161237b565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015290506122ec565b6020808252810161045f816123d2565b634e487b7160e01b600052601160045260246000fd5b6000600182016124625761246261243a565b5060010190565b8082018082111561045f5761045f61243a565b634e487b7160e01b600052603260045260246000fd5b606081016124a08285611ebd565b6124ad6020830184611c66565b81810360408301526000815260208101611ab3565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806124ec57607f821691505b6020821081036124fe576124fe6124c2565b50919050565b60008154612511816124d8565b808552602085019450600182168015612531576001811461254757612575565b60ff198316865260208215150286019350612575565b60008581526020902060005b8381101561256f57815488820152600190910190602001612553565b87019450505b50505092915050565b6060810161258c8286611ebd565b818103602083015261259e8185612504565b905081810360408301526116ac81846120c6565b801515611c17565b805161045f816125b2565b6000602082840312156125da576125da600080fd5b6000611ab384846125ba565b600061045f611e608381565b6125fb836125e6565b815460001960089490940293841b1916921b91909117905550565b60006115138184846125f2565b8181101561078557612636600082612616565b600101612623565b601f821115611513576000818152602090206020601f850104810160208510156126655750805b6108b66020601f860104830182612623565b815167ffffffffffffffff81111561269157612691611cb0565b61269b82546124d8565b6126a682828561263e565b506020601f8211600181146126db57600083156126c35750848201515b600019600885021c19811660028502178555506108b6565b600084815260208120601f198516915b8281101561270b57878501518255602094850194600190920191016126eb565b50848210156127285783870151600019601f87166008021c191681555b50505050600202600101905550565b600061045f82611c7a565b611c1781612737565b805161045f81612742565b60006020828403121561276b5761276b600080fd5b6000611ab3848461274b565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b602082015290506122ec565b6020808252810161045f81612777565b805161045f81611c9f565b6000602082840312156127ea576127ea600080fd5b6000611ab384846127ca565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b602082015290506122ec565b6020808252810161045f816127f6565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b602082015290506122ec565b6020808252810161045f8161284f565b601e8152602081017f4e46544d696e74696e673a207065726d697373696f6e2064656e6965642e000081529050612150565b6020808252810161045f816128a3565b60006128ef825190565b6128fd8185602086016120a2565b9290920192915050565b61045f81836128e5565b600061045f825190565b6000612925825190565b6020830161293281612911565b92505060208110156124fe576000196020919091036008021b16919050565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f7200000000000081529050612150565b6020808252810161045f81612951565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e0161045f81836128e5565b6d2220a7a2bc3832b93a2937b6329d60911b81526129a8565b6d2220a7ab37ba34b733a937b6329d60911b81526129a8565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015290506122ec565b6020808252810161045f816129e7565b818102811582820484141761045f5761045f61243a565b60238152602081017f4e46544d696e74696e673a204e6f206672656520746f6b656e2069647320666f8152621d5b9960ea1b602082015290506122ec565b6020808252810161045f81612a56565b634e487b7160e01b600052601260045260246000fd5b600082612ac957612ac9612aa4565b500490565b60268152602081017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b602082015290506122ec565b6020808252810161045f81612ace565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050612150565b6020808252810161045f81612b1f56fe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dcfa430e26fe6d523ad0782b8b4a4777f592ef54da449887ce4a0dfb5e777b7364736f6c63430008140033", "deployedBytecode": "0x6080604052600436106101355760003560e01c80636030c508116100ab578063bb65dc831161006f578063bb65dc8314610341578063c43fa29814610356578063cc7a204914610376578063d8ad4e1c14610396578063f13bdd4d146103b6578063f2fde38b146103d857600080fd5b80636030c5081461029f57806369130451146102bf578063755edd17146102df5780638895db0d146102ff5780638cb941cc1461032157600080fd5b80633659cfe6116100fd5780633659cfe6146101f75780633e3b5b19146102175780634f1ef2861461024257806352d1902d146102555780635c33fcfc1461026a5780635c60da1b1461028a57600080fd5b806301ffc9a71461013a57806315632cea146101705780631b12d14a146101855780631eddc9ba146101a857806328eab0b1146101ca575b600080fd5b34801561014657600080fd5b5061015a610155366004611c2d565b6103f8565b6040516101679190611c58565b60405180910390f35b34801561017c57600080fd5b5061015a610465565b34801561019157600080fd5b5061019b60035481565b6040516101679190611c6c565b3480156101b457600080fd5b506101c86101c3366004611d9e565b6104f7565b005b3480156101d657600080fd5b506002546101ea906001600160a01b031681565b6040516101679190611e8e565b34801561020357600080fd5b506101c8610212366004611e9c565b610608565b34801561022357600080fd5b50600080516020612b62833981519152545b6040516101679190611ec6565b6101c8610250366004611ed4565b6106d0565b34801561026157600080fd5b5061019b610789565b34801561027657600080fd5b506101c8610285366004611f2c565b6107e6565b34801561029657600080fd5b506102356108bd565b3480156102ab57600080fd5b506101c86102ba366004612067565b6108cc565b3480156102cb57600080fd5b506101c86102da366004611ed4565b6109f7565b3480156102eb57600080fd5b506101c86102fa366004611e9c565b610a9c565b34801561030b57600080fd5b50610314610b82565b60405161016791906120f8565b34801561032d57600080fd5b506101c861033c366004611e9c565b610c10565b34801561034d57600080fd5b50610314610c2e565b34801561036257600080fd5b50610314610371366004612109565b610cc0565b34801561038257600080fd5b506004546101ea906001600160a01b031681565b3480156103a257600080fd5b5061015a6103b1366004611ed4565b610d04565b3480156103c257600080fd5b506103cb610d83565b604051610167919061226a565b3480156103e457600080fd5b506101c86103f3366004611e9c565b61131d565b60006001600160e01b031982166363c8929f60e01b148061042957506001600160e01b0319821663f13bdd4d60e01b145b8061044457506001600160e01b031982166336e447a160e21b145b8061045f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000306001600160a01b0316600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190612286565b6001600160a01b031614905090565b600054610100900460ff16158080156105175750600054600160ff909116105b806105315750303b158015610531575060005460ff166001145b6105565760405162461bcd60e51b815260040161054d906122f2565b60405180910390fd5b6000805460ff191660011790558015610579576000805461ff0019166101001790555b6040805160008152602081019091526105939087906109f7565b6105a986600080516020612b6283398151915255565b6105b5858585856113a2565b8015610600576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906105f790600190612316565b60405180910390a15b505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106505760405162461bcd60e51b815260040161054d9061236b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106826113c0565b6001600160a01b0316146106a85760405162461bcd60e51b815260040161054d906123c2565b6106b1816113dc565b604080516000808252602082019092526106cd918391906114e0565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107185760405162461bcd60e51b815260040161054d9061236b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661074a6113c0565b6001600160a01b0316146107705760405162461bcd60e51b815260040161054d906123c2565b610779826113dc565b610785828260016114e0565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d35760405162461bcd60e51b815260040161054d9061242a565b50600080516020612b8283398151915290565b600054610100900460ff16158080156108065750600054600160ff909116105b806108205750303b158015610820575060005460ff166001145b61083c5760405162461bcd60e51b815260040161054d906122f2565b6000805460ff19166001179055801561085f576000805461ff0019166101001790555b61086b858585856113a2565b80156108b6576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906108ad90600190612316565b60405180910390a15b5050505050565b60006108c76113c0565b905090565b6108f36040518060400160405280600681526020016543524541544560d01b8152506115c7565b80516003546002546001600160a01b031660005b838110156109ee5760008361091b81612450565b600254909550909150610937906001600160a01b0316826115ed565b156109635760006109516001600160a01b038516836116b5565b905061095e816001612469565b945090505b826001600160a01b0316639f6ed25f8784815181106109845761098461247c565b6020026020010151836040518363ffffffff1660e01b81526004016109aa929190612492565b600060405180830381600087803b1580156109c457600080fd5b505af11580156109d8573d6000803e3d6000fd5b5050505050806109e790612450565b9050610907565b50506003555050565b6109ff611705565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190612286565b600480546001600160a01b0319166001600160a01b03929092169190911790555033600080516020612b62833981519152555050565b610ac36040518060400160405280600681526020016543524541544560d01b8152506115c7565b6003805460009182610ad483612450565b90915550600254909150610af1906001600160a01b0316826115ed565b15610b2257600254600090610b0f906001600160a01b0316836116b5565b9050610b1c816001612469565b60035590505b600254604051639f6ed25f60e01b81526001600160a01b0390911690639f6ed25f90610b549085908590600401612492565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610600573d6000803e3d6000fd5b60018054610b8f906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbb906124d8565b8015610c085780601f10610bdd57610100808354040283529160200191610c08565b820191906000526020600020905b815481529060010190602001808311610beb57829003601f168201915b505050505081565b610c18611705565b6106cd81600080516020612b6283398151915255565b606060018054610c3d906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c69906124d8565b8015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b5050505050905090565b6060610ce96040518060400160405280600681526020016555504441544560d01b8152506115c7565b60025461045f906001600160a01b031683611759565b919050565b60048054604051633ca8e36d60e11b81526000926001600160a01b0390921691637951c6da91610d3b91879160019188910161257e565b602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906125c5565b9392505050565b60408051600380825260808201909252606091816020015b610dbf60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610d9b5790505090506000610e3860405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b81525081525061179d565b90506040518060600160405280610ed860058054610e55906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e81906124d8565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050611816565b600081518110610eea57610eea61247c565b6020026020010151815260200160018054610f04906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610f30906124d8565b8015610f7d5780601f10610f5257610100808354040283529160200191610f7d565b820191906000526020600020905b815481529060010190602001808311610f6057829003601f168201915b505050505081526020018281525082600081518110610f9e57610f9e61247c565b60200260200101819052506000610fe060405180602001604052806040518060400160405280600681526020016511561411549560d21b81525081525061184a565b9050604051806060016040528061108060058054610ffd906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611029906124d8565b80156110765780601f1061104b57610100808354040283529160200191611076565b820191906000526020600020905b81548152906001019060200180831161105957829003601f168201915b505050505061188e565b6000815181106110925761109261247c565b60200260200101518152602001600180546110ac906124d8565b80601f01602080910402602001604051908101604052809291908181526020018280546110d8906124d8565b80156111255780601f106110fa57610100808354040283529160200191611125565b820191906000526020600020905b81548152906001019060200180831161110857829003601f168201915b5050505050815260200182815250836001815181106111465761114661247c565b602002602001018190525060405180606001604052806111ef6005805461116c906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611198906124d8565b80156111e55780601f106111ba576101008083540402835291602001916111e5565b820191906000526020600020905b8154815290600101906020018083116111c857829003601f168201915b50505050506118af565b6000815181106112015761120161247c565b602002602001015181526020016001805461121b906124d8565b80601f0160208091040260200160405190810160405280929190818152602001828054611247906124d8565b80156112945780601f1061126957610100808354040283529160200191611294565b820191906000526020600020905b81548152906001019060200180831161127757829003601f168201915b505050505081526020016112f760405180604001604052806040518060400160405280600681526020016555504441544560d01b81525081526020016040518060400160405280600681526020016543524541544560d01b81525081525061179d565b8152508360028151811061130d5761130d61247c565b6020026020010181905250505090565b6113446040518060400160405280600681526020016555504441544560d01b8152506115c7565b60025460405163f2fde38b60e01b81526001600160a01b039091169063f2fde38b90611374908490600401611ec6565b600060405180830381600087803b15801561138e57600080fd5b505af11580156108b6573d6000803e3d6000fd5b60056113ae8282612677565b506113ba8484846118d0565b50505050565b600080516020612b82833981519152546001600160a01b031690565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316638412ccd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114559190612756565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190612286565b9050336001600160a01b038216146107855760405162461bcd60e51b815260040161054d906127ba565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115185761151383611922565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611572575060408051601f3d908101601f1916820190925261156f918101906127d5565b60015b61158e5760405162461bcd60e51b815260040161054d9061283f565b600080516020612b8283398151915281146115bb5760405162461bcd60e51b815260040161054d90612893565b50611513838383611978565b6115d13382610d04565b6106cd5760405162461bcd60e51b815260040161054d906128d5565b6000806000846001600160a01b0316636352211e60e01b856040516024016116159190611c6c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116539190612907565b600060405180830381855afa9150503d806000811461168e576040519150601f19603f3d011682016040523d82523d6000602084013e611693565b606091505b50915091508180156116ac57506116a98161291b565b15155b95945050505050565b6000806116c2848461199d565b90505b80831015610d7c5760006116d98483611a02565b90506116e585826115ed565b6116f1578091506116ff565b6116fc816001612469565b93505b506116c5565b600061171d600080516020612b628339815191525490565b90506001600160a01b038116158061173d57506001600160a01b03811633145b6106cd5760405162461bcd60e51b815260040161054d90612983565b6060610d7c838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611a1d565b6040805160028082526060828101909352816020015b60608152602001906001900390816117b3575050825181519192509082906000906117e0576117e061247c565b60209081029190910101528160016020020151816001815181106118065761180661247c565b6020026020010181905250919050565b606061045f6040518060200160405280846040516020016118379190612993565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b6060815260200190600190039081611861575050825181519192509082906000906118065761180661247c565b606061045f60405180602001604052808460405160200161183791906129b5565b606061045f60405180602001604052808460405160200161183791906129ce565b600280546001600160a01b0319166001600160a01b0385161790556000829003611910576119086001600160a01b03841660006116b5565b600355611916565b60038290555b60016113ba8282612677565b6001600160a01b0381163b6119495760405162461bcd60e51b815260040161054d90612a2f565b600080516020612b8283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61198183611abb565b60008251118061198e5750805b15611513576113ba8383611afb565b600081815b6119ac85836115ed565b156119fa576119bc826002612a3f565b6119c7906001612469565b9150600f816119d581612450565b925011156119f55760405162461bcd60e51b815260040161054d90612a94565b6119a2565b509392505050565b6000611a116002848418612aba565b610d7c90848416612469565b606082471015611a3f5760405162461bcd60e51b815260040161054d90612b0f565b600080866001600160a01b03168587604051611a5b9190612907565b60006040518083038185875af1925050503d8060008114611a98576040519150601f19603f3d011682016040523d82523d6000602084013e611a9d565b606091505b5091509150611aae87838387611b20565b925050505b949350505050565b611ac481611922565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610d7c8383604051806060016040528060278152602001612ba260279139611b69565b60608315611b5f578251600003611b58576001600160a01b0385163b611b585760405162461bcd60e51b815260040161054d90612b51565b5081611ab3565b611ab38383611be1565b6060600080856001600160a01b031685604051611b869190612907565b600060405180830381855af49150503d8060008114611bc1576040519150601f19603f3d011682016040523d82523d6000602084013e611bc6565b606091505b5091509150611bd786838387611b20565b9695505050505050565b815115611bf15781518083602001fd5b8060405162461bcd60e51b815260040161054d91906120f8565b6001600160e01b031981165b81146106cd57600080fd5b803561045f81611c0b565b600060208284031215611c4257611c42600080fd5b6000611ab38484611c22565b8015155b82525050565b6020810161045f8284611c4e565b80611c52565b6020810161045f8284611c66565b60006001600160a01b03821661045f565b611c1781611c7a565b803561045f81611c8b565b80611c17565b803561045f81611c9f565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611cec57611cec611cb0565b6040525050565b6000611cfe60405190565b9050610cff8282611cc6565b600067ffffffffffffffff821115611d2457611d24611cb0565b601f19601f83011660200192915050565b82818337506000910152565b6000611d54611d4f84611d0a565b611cf3565b905082815260208101848484011115611d6f57611d6f600080fd5b6119fa848285611d35565b600082601f830112611d8e57611d8e600080fd5b8135611ab3848260208601611d41565b600080600080600060a08688031215611db957611db9600080fd5b6000611dc58888611c94565b9550506020611dd688828901611c94565b9450506040611de788828901611ca5565b935050606086013567ffffffffffffffff811115611e0757611e07600080fd5b611e1388828901611d7a565b925050608086013567ffffffffffffffff811115611e3357611e33600080fd5b611e3f88828901611d7a565b9150509295509295909350565b600061045f6001600160a01b038316611e63565b90565b6001600160a01b031690565b600061045f82611e4c565b600061045f82611e6f565b611c5281611e7a565b6020810161045f8284611e85565b600060208284031215611eb157611eb1600080fd5b6000611ab38484611c94565b611c5281611c7a565b6020810161045f8284611ebd565b60008060408385031215611eea57611eea600080fd5b6000611ef68585611c94565b925050602083013567ffffffffffffffff811115611f1657611f16600080fd5b611f2285828601611d7a565b9150509250929050565b60008060008060808587031215611f4557611f45600080fd5b6000611f518787611c94565b9450506020611f6287828801611ca5565b935050604085013567ffffffffffffffff811115611f8257611f82600080fd5b611f8e87828801611d7a565b925050606085013567ffffffffffffffff811115611fae57611fae600080fd5b611fba87828801611d7a565b91505092959194509250565b600067ffffffffffffffff821115611fe057611fe0611cb0565b5060209081020190565b6000611ff8611d4f84611fc6565b8381529050602080820190840283018581111561201757612017600080fd5b835b818110156120395761202b8782611c94565b835260209283019201612019565b5050509392505050565b600082601f83011261205757612057600080fd5b8135611ab3848260208601611fea565b60006020828403121561207c5761207c600080fd5b813567ffffffffffffffff81111561209657612096600080fd5b611ab384828501612043565b60005b838110156120bd5781810151838201526020016120a5565b50506000910152565b60006120d0825190565b8084526020840193506120e78185602086016120a2565b601f01601f19169290920192915050565b60208082528101610d7c81846120c6565b60006020828403121561211e5761211e600080fd5b813567ffffffffffffffff81111561213857612138600080fd5b611ab384828501611d7a565b6000610d7c83836120c6565b60200190565b6000612160825190565b8084526020840193508360208202850161217a8560200190565b60005b848110156121ae57838303885281516121968482612144565b9350506020820160209890980197915060010161217d565b50909695505050505050565b80516060808452600091908401906121d282826120c6565b915050602083015184820360208601526121ec82826120c6565b915050604083015184820360408601526116ac8282612156565b6000610d7c83836121