0 txs
2 calls
constructor
No constructor.
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
i_pyramid
viewfunction i_pyramid() view returns (address)
s_escrow_admin
viewfunction s_escrow_admin(bytes32) view returns (address)
s_escrows
viewfunction s_escrows(bytes32) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addTokenToWhitelist
nonpayablefunction addTokenToWhitelist(bytes32 questId, address token)
createEscrow
nonpayablefunction createEscrow(bytes32 questId, address admin, address[] whitelistedTokens, address treasury)
distributeRewards
nonpayablefunction distributeRewards(bytes32 questId, address token, address to, uint256 amount, uint256 rewardTokenId, uint8 tokenType, uint256 rakeBps)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address pyramid)
removeTokenFromWhitelist
nonpayablefunction removeTokenFromWhitelist(bytes32 questId, address token)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
updateEscrowAdmin
nonpayablefunction updateEscrowAdmin(bytes32 questId, address newAdmin)
withdrawFunds
nonpayablefunction withdrawFunds(bytes32 questId, address to, address token, uint256 tokenId, uint8 tokenType)
events
EscrowAdminUpdated
event EscrowAdminUpdated(address indexed updater, bytes32 indexed questId, address indexed newAdmin)
EscrowRegistered
event EscrowRegistered(address indexed registror, address indexed escrowAddress, bytes32 indexed questId)
EscrowWithdrawal
event EscrowWithdrawal(address indexed caller, address indexed receiver, address indexed tokenAddress, uint256 tokenId, uint256 amount, uint8 tokenType, bytes32 questId)
Initialized
event Initialized(uint64 version)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TokenPayout
event TokenPayout(address indexed receiver, address indexed tokenAddress, uint256 indexed tokenId, uint256 amount, uint8 tokenType, bytes32 questId)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
Factory__EscrowAlreadyExists
error Factory__EscrowAlreadyExists()
Factory__NoQuestEscrowFound
error Factory__NoQuestEscrowFound()
Factory__OnlyCallableByAdmin
error Factory__OnlyCallableByAdmin()
Factory__OnlyCallableByPYRAMID
error Factory__OnlyCallableByPYRAMID()
Factory__PYRAMIDQuestIsActive
error Factory__PYRAMIDQuestIsActive()
Factory__ZeroAddress
error Factory__ZeroAddress()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
creation bytecode
0x608060405234801561001057600080fd5b50612daa806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001215760003560e01c8063a217fddf11620000af578063d43c09b6116200007a578063d43c09b61462000252578063d547741f146200027f578063daf8ee551462000296578063dea3202714620002c2578063ff02f4c414620002ee57600080fd5b8063a217fddf1462000204578063a412ee88146200020d578063b0e2f8881462000224578063c152f363146200023b57600080fd5b8063485cc95511620000f0578063485cc95514620001a85780636fcd49c914620001bf5780638644041614620001d657806391d1485414620001ed57600080fd5b806301ffc9a71462000126578063248a9ca314620001525780632f2ff15d146200017857806336568abe1462000191575b600080fd5b6200013d62000137366004620013d3565b62000305565b60405190151581526020015b60405180910390f35b620001696200016336600462001406565b62000318565b60405190815260200162000149565b6200018f620001893660046200143d565b6200033b565b005b6200018f620001a23660046200143d565b62000363565b6200018f620001b93660046200146c565b6200039e565b6200018f620001d03660046200149b565b62000506565b6200018f620001e73660046200143d565b6200061c565b6200013d620001fe3660046200143d565b6200070a565b62000169600081565b6200018f6200021e3660046200143d565b62000743565b6200018f620002353660046200143d565b620007fc565b6200018f6200024c36600462001555565b620008b6565b60005462000266906001600160a01b031681565b6040516001600160a01b03909116815260200162000149565b6200018f620002903660046200143d565b62000de3565b62000266620002a736600462001406565b6002602052600090815260409020546001600160a01b031681565b62000266620002d336600462001406565b6001602052600090815260409020546001600160a01b031681565b6200018f620002ff366004620015a7565b62000e05565b60006200031282620011b8565b92915050565b600090815260008051602062002d55833981519152602052604090206001015490565b620003468262000318565b6200035181620011ef565b6200035d8383620011fe565b50505050565b6001600160a01b03811633146200038d5760405163334bd91960e11b815260040160405180910390fd5b620003998282620012aa565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015620003e55750825b905060008267ffffffffffffffff166001148015620004035750303b155b90508115801562000412575080155b15620004315760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200045c57845460ff60401b1916600160401b1785555b6001600160a01b0387166200048457604051634b46d9cd60e11b815260040160405180910390fd5b6200048e6200132b565b600080546001600160a01b0319166001600160a01b038816178155620004b59088620011fe565b508315620004fd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60006200051381620011ef565b6000868152600160205260409020546001600160a01b0316156200054a5760405163cb774efd60e01b815260040160405180910390fd5b60008681526002602052604080822080546001600160a01b0319166001600160a01b03891617905551879030908790879087906200058890620013c5565b62000597949392919062001618565b8190604051809103906000f5905080158015620005b8573d6000803e3d6000fd5b5060008881526001602052604080822080546001600160a01b0319166001600160a01b03851690811790915590519293508992909133917f0d5edc43735accf332597185141e60ad45d12c63420596be69ad0af38ec259f69190a450505050505050565b60008281526002602052604090205482906001600160a01b031633148015906200065057506200064e6000336200070a565b155b156200066f5760405163207abc0d60e21b815260040160405180910390fd5b6000838152600160205260409020546001600160a01b031680620006a657604051638ff3400560e01b815260040160405180910390fd5b604051631b09836760e31b81526001600160a01b03848116600483015282169063d84c1b38906024015b600060405180830381600087803b158015620006eb57600080fd5b505af115801562000700573d6000803e3d6000fd5b5050505050505050565b600091825260008051602062002d55833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526002602052604090205482906001600160a01b03163314801590620007775750620007756000336200070a565b155b15620007965760405163207abc0d60e21b815260040160405180910390fd5b6000838152600160205260409020546001600160a01b031680620007cd57604051638ff3400560e01b815260040160405180910390fd5b6040516318313adf60e11b81526001600160a01b03848116600483015282169063306275be90602401620006d0565b6000828152600260205260409020546001600160a01b03163314620008345760405163207abc0d60e21b815260040160405180910390fd5b6001600160a01b0381166200085c57604051634b46d9cd60e11b815260040160405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b03851690811790915590519091849133917f36b9552ba5b53688d8ffc737bc397e3493c4016d0368c03a6eb3d2aa715096eb91a45050565b60008581526002602052604090205485906001600160a01b03163314801590620008ea5750620008e86000336200070a565b155b15620009095760405163207abc0d60e21b815260040160405180910390fd5b6000868152600160205260409020546001600160a01b0316806200094057604051638ff3400560e01b815260040160405180910390fd5b600383600381111562000957576200095762001682565b0362000a2e57604051631532953360e31b81526001600160a01b0387811660048301528216803160248301819052600060448401529163a994a99890606401600060405180830381600087803b158015620009b157600080fd5b505af1158015620009c6573d6000803e3d6000fd5b506000925050506001600160a01b0388163360008051602062002d358339815191528385896003811115620009ff57620009ff62001682565b60408051938452602084019290925260ff1690820152606081018d905260800160405180910390a450620004fd565b600083600381111562000a455762000a4562001682565b0362000b6e5760405163031f6b3160e31b81526001600160a01b038681166004830152600091908316906318fb598890602401602060405180830381865afa15801562000a96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000abc919062001698565b60405163a93a4af960e01b81529091506001600160a01b0383169063a93a4af99062000af49089908b908690600090600401620016b2565b600060405180830381600087803b15801562000b0f57600080fd5b505af115801562000b24573d6000803e3d6000fd5b50505050856001600160a01b0316876001600160a01b0316336001600160a01b031660008051602062002d35833981519152600085896003811115620009ff57620009ff62001682565b600183600381111562000b855762000b8562001682565b0362000c6b57604051632012ff5960e11b81526001600160a01b038681166004830152878116602483015260448201869052821690634025feb290606401600060405180830381600087803b15801562000bde57600080fd5b505af115801562000bf3573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316336001600160a01b031660008051602062002d3583398151915287600188600381111562000c3d5762000c3d62001682565b60408051938452602084019290925260ff1690820152606081018c905260800160405180910390a4620004fd565b600283600381111562000c825762000c8262001682565b03620004fd576040516326bc364360e11b81526001600160a01b0386811660048301526024820186905260009190831690634d786c8690604401602060405180830381865afa15801562000cda573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d00919062001698565b60405163a0edb48b60e01b81529091506001600160a01b0383169063a0edb48b9062000d379089908b9086908b90600401620016b2565b600060405180830381600087803b15801562000d5257600080fd5b505af115801562000d67573d6000803e3d6000fd5b50505050856001600160a01b0316876001600160a01b0316336001600160a01b031660008051602062002d35833981519152888589600381111562000db05762000db062001682565b60408051938452602084019290925260ff1690820152606081018d90526080015b60405180910390a45050505050505050565b62000dee8262000318565b62000df981620011ef565b6200035d8383620012aa565b6000546001600160a01b0316331462000e3157604051633ccba0c160e21b815260040160405180910390fd5b6000878152600160205260409020546001600160a01b03168062000e6857604051638ff3400560e01b815260040160405180910390fd5b600383600381111562000e7f5762000e7f62001682565b0362000f5357604051631532953360e31b81526001600160a01b038781166004830152602482018790526044820184905282169063a994a99890606401600060405180830381600087803b15801562000ed757600080fd5b505af115801562000eec573d6000803e3d6000fd5b505050506000806001600160a01b0316876001600160a01b031660008051602062002d158339815191528887600381111562000f2c5762000f2c62001682565b6040805192835260ff909116602083015281018d905260600160405180910390a462000700565b600083600381111562000f6a5762000f6a62001682565b03620010145760405163a93a4af960e01b81526001600160a01b0382169063a93a4af99062000fa4908a908a908a908890600401620016b2565b600060405180830381600087803b15801562000fbf57600080fd5b505af115801562000fd4573d6000803e3d6000fd5b505050506000876001600160a01b0316876001600160a01b031660008051602062002d158339815191528887600381111562000f2c5762000f2c62001682565b60018360038111156200102b576200102b62001682565b03620010d957604051632012ff5960e11b81526001600160a01b038881166004830152878116602483015260448201869052821690634025feb290606401600060405180830381600087803b1580156200108457600080fd5b505af115801562001099573d6000803e3d6000fd5b5050505083876001600160a01b0316876001600160a01b031660008051602062002d15833981519152600187600381111562000f2c5762000f2c62001682565b6002836003811115620010f057620010f062001682565b03620007005760405163a0edb48b60e01b81526001600160a01b0382169063a0edb48b906200112a908a908a908a908a90600401620016b2565b600060405180830381600087803b1580156200114557600080fd5b505af11580156200115a573d6000803e3d6000fd5b5050505083876001600160a01b0316876001600160a01b031660008051602062002d158339815191528887600381111562001199576200119962001682565b6040805192835260ff909116602083015281018d905260600162000dd1565b60006001600160e01b03198216637965db0b60e01b14806200031257506301ffc9a760e01b6001600160e01b031983161462000312565b620011fb813362001337565b50565b600060008051602062002d558339815191526200121c84846200070a565b6200129f576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055620012543390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505062000312565b600091505062000312565b600060008051602062002d55833981519152620012c884846200070a565b156200129f576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505062000312565b620013356200137b565b565b6200134382826200070a565b620013775760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200133557604051631afcd79f60e31b815260040160405180910390fd5b61163980620016dc83390190565b600060208284031215620013e657600080fd5b81356001600160e01b031981168114620013ff57600080fd5b9392505050565b6000602082840312156200141957600080fd5b5035919050565b80356001600160a01b03811681146200143857600080fd5b919050565b600080604083850312156200145157600080fd5b82359150620014636020840162001420565b90509250929050565b600080604083850312156200148057600080fd5b6200148b8362001420565b9150620014636020840162001420565b600080600080600060808688031215620014b457600080fd5b85359450620014c66020870162001420565b9350604086013567ffffffffffffffff80821115620014e457600080fd5b818801915088601f830112620014f957600080fd5b8135818111156200150957600080fd5b8960208260051b85010111156200151f57600080fd5b602083019550809450505050620015396060870162001420565b90509295509295909350565b8035600481106200143857600080fd5b600080600080600060a086880312156200156e57600080fd5b85359450620015806020870162001420565b9350620015906040870162001420565b925060608601359150620015396080870162001545565b600080600080600080600060e0888a031215620015c357600080fd5b87359650620015d56020890162001420565b9550620015e56040890162001420565b945060608801359350608088013592506200160360a0890162001545565b915060c0880135905092959891949750929550565b6001600160a01b03858116825260606020808401829052908301859052600091869160808501845b88811015620016695783620016558662001420565b168252938201939082019060010162001640565b5080945050508085166040850152505095945050505050565b634e487b7160e01b600052602160045260246000fd5b600060208284031215620016ab57600080fd5b5051919050565b6001600160a01b039485168152929093166020830152604082015260608101919091526080019056fe60a06040523480156200001157600080fd5b50604051620016393803806200163983398101604081905262000034916200018d565b826001600160a01b0381166200006457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006f81620000ec565b506001600160a01b038116608052815160005b81811015620000e157600160026000868481518110620000a657620000a662000288565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000082565b50505050506200029e565b600180546001600160a01b031916905562000107816200010a565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200017257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215620001a357600080fd5b620001ae846200015a565b602085810151919450906001600160401b0380821115620001ce57600080fd5b818701915087601f830112620001e357600080fd5b815181811115620001f857620001f862000177565b8060051b604051601f19603f8301168101818110858211171562000220576200022062000177565b60405291825284820192508381018501918a8311156200023f57600080fd5b938501935b82851015620002685762000258856200015a565b8452938501939285019262000244565b8097505050505050506200027f604085016200015a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b608051611363620002d6600039600081816102d3015281816108be015281816109ad01528181610aed0152610cb101526113636000f3fe6080604052600436106101225760003560e01c80638da5cb5b116100a5578063bc197c811161006c578063bc197c8114610335578063d84c1b3814610361578063e263ebdb14610381578063e30c3978146103b1578063f23a6e61146103cf578063f2fde38b146103fb57005b80638da5cb5b1461026f578063a0edb48b146102a1578063a89f50ca146102c1578063a93a4af9146102f5578063a994a9981461031557005b80634025feb2116100e95780634025feb2146102055780634d786c8614610225578063715018a61461024557806379ba50971461025a5780637b585a0f146101a457005b806301ffc9a71461012b578063150b7a021461016057806318fb5988146101a4578063306275be146101d25780633b9c912c146101f257005b3661012957005b005b34801561013757600080fd5b5061014b610146366004610e77565b61041b565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061018b61017b366004610f74565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610157565b3480156101b057600080fd5b506101c46101bf366004610fdc565b61042c565b604051908152602001610157565b3480156101de57600080fd5b506101296101ed366004610fdc565b610497565b3480156101fe57600080fd5b50476101c4565b34801561021157600080fd5b50610129610220366004610ff7565b6104e8565b34801561023157600080fd5b506101c4610240366004611033565b6105e3565b34801561025157600080fd5b5061012961065a565b34801561026657600080fd5b50610129610664565b34801561027b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610157565b3480156102ad57600080fd5b506101296102bc36600461105d565b6106ad565b3480156102cd57600080fd5b506102897f000000000000000000000000000000000000000000000000000000000000000081565b34801561030157600080fd5b5061012961031036600461105d565b6107b9565b34801561032157600080fd5b5061012961033036600461109f565b610915565b34801561034157600080fd5b5061018b610350366004611152565b63bc197c8160e01b95945050505050565b34801561036d57600080fd5b5061012961037c366004610fdc565b610b44565b34801561038d57600080fd5b5061014b61039c366004610fdc565b60026020526000908152604090205460ff1681565b3480156103bd57600080fd5b506001546001600160a01b0316610289565b3480156103db57600080fd5b5061018b6103ea3660046111fc565b63f23a6e6160e01b95945050505050565b34801561040757600080fd5b50610129610416366004610fdc565b610bbf565b600061042682610c30565b92915050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104269190611261565b61049f610c65565b6001600160a01b038116600081815260026020526040808220805460ff19169055517fdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d9179190a250565b6104f0610c65565b6001600160a01b03831660009081526002602052604090205460ff166105295760405163047f4ba160e51b815260040160405180910390fd5b604051632142170760e11b81523060048201526001600160a01b038381166024830152604482018390528416906342842e0e90606401600060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b50505050816001600160a01b0316836001600160a01b03167f1bc448835df1a7a23cf40ba2717551720e93285eaa37fb13cff10c45a8d3a4c4836040516105d691815260200190565b60405180910390a3505050565b604051627eeac760e11b8152306004820152602481018290526000906001600160a01b0384169062fdd58e90604401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611261565b9392505050565b610662610c65565b565b60015433906001600160a01b031681146106a15760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b6106aa81610c92565b50565b6106b5610c65565b6001600160a01b03841660009081526002602052604090205460ff166106ee5760405163047f4ba160e51b815260040160405180910390fd5b604051637921219560e11b81523060048201526001600160a01b038481166024830152604482018390526064820184905260a06084830152600060a483015285169063f242432a9060c401600060405180830381600087803b15801561075357600080fd5b505af1158015610767573d6000803e3d6000fd5b505060408051858152602081018590526001600160a01b038088169450881692507f041ccca43be08a22a885b797e1206a98d1b4cd84f247260b5419c865a8118459910160405180910390a350505050565b6107c1610c65565b6001600160a01b03841660009081526002602052604090205460ff166107fa5760405163047f4ba160e51b815260040160405180910390fd5b6108038461042c565b8211156108235760405163128cc8cb60e31b815260040160405180910390fd5b61271081111561084657604051632355aba360e11b815260040160405180910390fd5b60006127106108558385611290565b61085f91906112a7565b90508015610871576108718582610cab565b610885858561088084876112c9565b610cda565b836001600160a01b0316856001600160a01b03167f08862f7a12731744ea146764f13272f780dc8787f221a7a6e5a79dd375f6fc9685847f00000000000000000000000000000000000000000000000000000000000000006040516109069392919092835260208301919091526001600160a01b0316604082015260600190565b60405180910390a35050505050565b61091d610c65565b4782111561093e5760405163128cc8cb60e31b815260040160405180910390fd5b6001600160a01b03831661096557604051637d8e84fb60e11b815260040160405180910390fd5b61271081111561098857604051632355aba360e11b815260040160405180910390fd5b60006127106109978385611290565b6109a191906112a7565b90508015610a3f5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a16576040519150601f19603f3d011682016040523d82523d6000602084013e610a1b565b606091505b5050905080610a3d57604051630467ee4160e31b815260040160405180910390fd5b505b60006001600160a01b038516610a5583866112c9565b6040516188b891906000818181858888f193505050503d8060008114610a97576040519150601f19603f3d011682016040523d82523d6000602084013e610a9c565b606091505b5050905080610abe57604051638ab11ebf60e01b815260040160405180910390fd5b846001600160a01b03167f0979277f47787ecf7a1b4e528bfba14b97995bbb72c658f5f7e7a9f06717e72385847f0000000000000000000000000000000000000000000000000000000000000000604051610b359392919092835260208301919091526001600160a01b0316604082015260600190565b60405180910390a25050505050565b610b4c610c65565b6001600160a01b038116610b7357604051637d8e84fb60e11b815260040160405180910390fd5b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f6a65f90b1a644d2faac467a21e07e50e3f8fa5846e26231d30ae79a417d3d2629190a250565b610bc7610c65565b600180546001600160a01b0383166001600160a01b03199091168117909155610bf86000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160e01b03198216630271189760e51b148061042657506301ffc9a760e01b6001600160e01b0319831614610426565b6000546001600160a01b031633146106625760405163118cdaa760e01b8152336004820152602401610698565b600180546001600160a01b03191690556106aa81610e27565b610cd6827f000000000000000000000000000000000000000000000000000000000000000083610cda565b5050565b826001600160a01b03163b600003610d0557604051636327795d60e11b815260040160405180910390fd5b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291516000928392871691610d9191906112dc565b6000604051808303816000865af19150503d8060008114610dce576040519150601f19603f3d011682016040523d82523d6000602084013e610dd3565b606091505b5091509150811580610e02575060008151118015610e02575080806020019051810190610e00919061130b565b155b15610e205760405163246ff59760e11b815260040160405180910390fd5b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610e8957600080fd5b81356001600160e01b03198116811461065357600080fd5b80356001600160a01b0381168114610eb857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610efc57610efc610ebd565b604052919050565b600082601f830112610f1557600080fd5b813567ffffffffffffffff811115610f2f57610f2f610ebd565b610f42601f8201601f1916602001610ed3565b818152846020838601011115610f5757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610f8a57600080fd5b610f9385610ea1565b9350610fa160208601610ea1565b925060408501359150606085013567ffffffffffffffff811115610fc457600080fd5b610fd087828801610f04565b91505092959194509250565b600060208284031215610fee57600080fd5b61065382610ea1565b60008060006060848603121561100c57600080fd5b61101584610ea1565b925061102360208501610ea1565b9150604084013590509250925092565b6000806040838503121561104657600080fd5b61104f83610ea1565b946020939093013593505050565b6000806000806080858703121561107357600080fd5b61107c85610ea1565b935061108a60208601610ea1565b93969395505050506040820135916060013590565b6000806000606084860312156110b457600080fd5b6110bd84610ea1565b95602085013595506040909401359392505050565b600082601f8301126110e357600080fd5b8135602067ffffffffffffffff8211156110ff576110ff610ebd565b8160051b61110e828201610ed3565b928352848101820192828101908785111561112857600080fd5b83870192505b848310156111475782358252918301919083019061112e565b979650505050505050565b600080600080600060a0868803121561116a57600080fd5b61117386610ea1565b945061118160208701610ea1565b9350604086013567ffffffffffffffff8082111561119e57600080fd5b6111aa89838a016110d2565b945060608801359150808211156111c057600080fd5b6111cc89838a016110d2565b935060808801359150808211156111e257600080fd5b506111ef88828901610f04565b9150509295509295909350565b600080600080600060a0868803121561121457600080fd5b61121d86610ea1565b945061122b60208701610ea1565b93506040860135925060608601359150608086013567ffffffffffffffff81111561125557600080fd5b6111ef88828901610f04565b60006020828403121561127357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104265761042661127a565b6000826112c457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104265761042661127a565b6000825160005b818110156112fd57602081860181015185830152016112e3565b506000920191825250919050565b60006020828403121561131d57600080fd5b8151801515811461065357600080fdfea2646970667358221220cb1afbc98bdc729f401ed56098e26e45b466a4381b8b90c8175963972d91b4c564736f6c634300081600331b51b1ba90bcc2df7301015bf6f44fcb858ea70ba50e962fc962feea59de69dd28e278fd062aff7491afa6939d077537dfb05739e466d81602ff924f3206f52602dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220d3f7158a7a617255c38e965c015e05fd683fd44791cf74f43fbe9cc1df91ca3864736f6c63430008160033