UNPKG

@credenza-web3/contracts

Version:

Credenza Contracts

586 lines (585 loc) 37.4 kB
{ "_format": "hh-sol-artifact-1", "contractName": "Multicall3", "sourceName": "contracts/multicall/Multicall3.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "aggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes[]", "name": "returnData", "type": "bytes[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call3[]", "name": "calls", "type": "tuple[]" } ], "name": "aggregate3", "outputs": [ { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall3.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call3Value[]", "name": "calls", "type": "tuple[]" } ], "name": "aggregate3Value", "outputs": [ { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall3.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "blockAndAggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" }, { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall3.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "clearOwners", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getBasefee", "outputs": [ { "internalType": "uint256", "name": "basefee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getBlockHash", "outputs": [ { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlockNumber", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getChainId", "outputs": [ { "internalType": "uint256", "name": "chainid", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockCoinbase", "outputs": [ { "internalType": "address", "name": "coinbase", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockDifficulty", "outputs": [ { "internalType": "uint256", "name": "difficulty", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockGasLimit", "outputs": [ { "internalType": "uint256", "name": "gaslimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockTimestamp", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDescription", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getEthBalance", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastBlockHash", "outputs": [ { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTrustedForwarder", "outputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "setDescription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_forwarder", "type": "address" } ], "name": "setTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "requireSuccess", "type": "bool" }, { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "tryAggregate", "outputs": [ { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall3.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "requireSuccess", "type": "bool" }, { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall3.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "tryBlockAndAggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" }, { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall3.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506117b8806100206000396000f3fe6080604052600436106101815760003560e01c8063572b6c05116100d1578063a0e67e2b1161008a578063c3077fa911610064578063c3077fa91461042a578063ce1b815f1461043d578063da7422281461045b578063ee82ac5e1461047b57600080fd5b8063a0e67e2b146103ce578063a8b0574e146103f0578063bce38bd71461041757600080fd5b8063572b6c05146103265780637065cb481461035557806372425d9d1461037557806382ad56cb1461038857806386d516e81461039b57806390c3f38f146103ae57600080fd5b80632f54bf6e1161013e5780633e64a696116101185780633e64a696146102c357806342cbb15c146102d65780634d2301cc146102e95780635260f5e61461031157600080fd5b80632f54bf6e146102455780633408e4701461028e578063399542e9146102a157600080fd5b80630f28c97d14610186578063173825d9146101a8578063174dea71146101ca5780631a092541146101ea578063252dba421461020c57806327e86d6e1461022d575b600080fd5b34801561019257600080fd5b50425b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101c86101c3366004611239565b61049a565b005b6101dd6101d83660046112b5565b61056a565b60405161019f91906113af565b3480156101f657600080fd5b506101ff610785565b60405161019f91906113c2565b61021f61021a3660046112b5565b610817565b60405161019f9291906113d5565b34801561023957600080fd5b50436000190140610195565b34801561025157600080fd5b5061027e610260366004611239565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161019f565b34801561029a57600080fd5b5046610195565b6102b46102af36600461143f565b6109c2565b60405161019f93929190611499565b3480156102cf57600080fd5b5048610195565b3480156102e257600080fd5b5043610195565b3480156102f557600080fd5b50610195610304366004611239565b6001600160a01b03163190565b34801561031d57600080fd5b506101c8610a18565b34801561033257600080fd5b5061027e610341366004611239565b6003546001600160a01b0391821691161490565b34801561036157600080fd5b506101c8610370366004611239565b610ac3565b34801561038157600080fd5b5044610195565b6101dd6103963660046112b5565b610b7b565b3480156103a757600080fd5b5045610195565b3480156103ba57600080fd5b506101c86103c93660046114d7565b610d2f565b3480156103da57600080fd5b506103e3610d77565b60405161019f9190611588565b3480156103fc57600080fd5b50415b6040516001600160a01b03909116815260200161019f565b6101dd61042536600461143f565b610dd8565b6102b46104383660046112b5565b610f9d565b34801561044957600080fd5b506003546001600160a01b03166103ff565b34801561046757600080fd5b506101c8610476366004611239565b610ff0565b34801561048757600080fd5b506101956104963660046115d5565b4090565b60015415806104af57506104af61026061103f565b6104d45760405162461bcd60e51b81526004016104cb906115ee565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff1661053c5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016104cb565b6001600160a01b0381166000908152602081905260409020805460ff19169055610567600182611073565b50565b6001546060901580610582575061058261026061103f565b61059e5760405162461bcd60e51b81526004016104cb906115ee565b6000828067ffffffffffffffff8111156105ba576105ba6114c1565b60405190808252806020026020018201604052801561060057816020015b6040805180820190915260008152606060208201528152602001906001900390816105d85790505b5092503660005b8281101561072c57600085828151811061062357610623611630565b6020026020010151905087878381811061063f5761063f611630565b90506020028101906106519190611646565b60408101359586019590935061066a6020850185611239565b6001600160a01b0316816106816060870187611666565b60405161068f9291906116ad565b60006040518083038185875af1925050503d80600081146106cc576040519150601f19603f3d011682016040523d82523d6000602084013e6106d1565b606091505b5060208085019190915290151580845290850135176107225762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260846000fd5b5050600101610607565b5082341461077c5760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064016104cb565b50505092915050565b606060028054610794906116bd565b80601f01602080910402602001604051908101604052809291908181526020018280546107c0906116bd565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6001546000906060901580610832575061083261026061103f565b61084e5760405162461bcd60e51b81526004016104cb906115ee565b439150828067ffffffffffffffff81111561086b5761086b6114c1565b60405190808252806020026020018201604052801561089e57816020015b60608152602001906001900390816108895790505b5091503660005b828110156109b85760008787838181106108c1576108c1611630565b90506020028101906108d391906116f8565b92506108e26020840184611239565b6001600160a01b03166108f86020850185611666565b6040516109069291906116ad565b6000604051808303816000865af19150503d8060008114610943576040519150601f19603f3d011682016040523d82523d6000602084013e610948565b606091505b5086848151811061095b5761095b611630565b60209081029190910101529050806109af5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60448201526064016104cb565b506001016108a5565b5050509250929050565b600154600090819060609015806109df57506109df61026061103f565b6109fb5760405162461bcd60e51b81526004016104cb906115ee565b43925043409150610a0d868686610dd8565b905093509350939050565b6001541580610a2d5750610a2d61026061103f565b610a495760405162461bcd60e51b81526004016104cb906115ee565b60005b600154811015610ab457600080600060018481548110610a6e57610a6e611630565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580610aac81611724565b915050610a4c565b50610ac160016000611182565b565b6001541580610ad85750610ad861026061103f565b610af45760405162461bcd60e51b81526004016104cb906115ee565b6001600160a01b03811660009081526020819052604090205460ff1615610b185750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b6001546060901580610b935750610b9361026061103f565b610baf5760405162461bcd60e51b81526004016104cb906115ee565b818067ffffffffffffffff811115610bc957610bc96114c1565b604051908082528060200260200182016040528015610c0f57816020015b604080518082019091526000815260606020820152815260200190600190039081610be75790505b5091503660005b8281101561077c576000848281518110610c3257610c32611630565b60200260200101519050868683818110610c4e57610c4e611630565b9050602002810190610c60919061173f565b9250610c6f6020840184611239565b6001600160a01b0316610c856040850185611666565b604051610c939291906116ad565b6000604051808303816000865af19150503d8060008114610cd0576040519150601f19603f3d011682016040523d82523d6000602084013e610cd5565b606091505b506020808401919091529015158083529084013517610d265762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260646000fd5b50600101610c16565b6001541580610d445750610d4461026061103f565b610d605760405162461bcd60e51b81526004016104cb906115ee565b8051610d739060029060208401906111a0565b5050565b6060600180548060200260200160405190810160405280929190818152602001828054801561080d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610db1575050505050905090565b6001546060901580610df05750610df061026061103f565b610e0c5760405162461bcd60e51b81526004016104cb906115ee565b818067ffffffffffffffff811115610e2657610e266114c1565b604051908082528060200260200182016040528015610e6c57816020015b604080518082019091526000815260606020820152815260200190600190039081610e445790505b5091503660005b82811015610f93576000848281518110610e8f57610e8f611630565b60200260200101519050868683818110610eab57610eab611630565b9050602002810190610ebd91906116f8565b9250610ecc6020840184611239565b6001600160a01b0316610ee26020850185611666565b604051610ef09291906116ad565b6000604051808303816000865af19150503d8060008114610f2d576040519150601f19603f3d011682016040523d82523d6000602084013e610f32565b606091505b506020830152151581528715610f8a578051610f8a5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60448201526064016104cb565b50600101610e73565b5050509392505050565b60015460009081906060901580610fba5750610fba61026061103f565b610fd65760405162461bcd60e51b81526004016104cb906115ee565b610fe2600186866109c2565b919790965090945092505050565b6001541580611005575061100561026061103f565b6110215760405162461bcd60e51b81526004016104cb906115ee565b600380546001600160a01b0319166001600160a01b03831617905550565b60006014361080159061105c57506003546001600160a01b031633145b1561106e575060131936013560601c90565b503390565b60005b825481101561117d57816001600160a01b031683828154811061109b5761109b611630565b6000918252602090912001546001600160a01b0316141561116b57825483906110c690600190611755565b815481106110d6576110d6611630565b9060005260206000200160009054906101000a90046001600160a01b031683828154811061110657611106611630565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806111445761114461176c565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061117581611724565b915050611076565b505050565b50805460008255906000526020600020908101906105679190611224565b8280546111ac906116bd565b90600052602060002090601f0160209004810192826111ce5760008555611214565b82601f106111e757805160ff1916838001178555611214565b82800160010185558215611214579182015b828111156112145782518255916020019190600101906111f9565b50611220929150611224565b5090565b5b808211156112205760008155600101611225565b60006020828403121561124b57600080fd5b81356001600160a01b038116811461126257600080fd5b9392505050565b60008083601f84011261127b57600080fd5b50813567ffffffffffffffff81111561129357600080fd5b6020830191508360208260051b85010111156112ae57600080fd5b9250929050565b600080602083850312156112c857600080fd5b823567ffffffffffffffff8111156112df57600080fd5b6112eb85828601611269565b90969095509350505050565b6000815180845260005b8181101561131d57602081850181015186830182015201611301565b8181111561132f576000602083870101525b50601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156113a25782840389528151805115158552850151604086860181905261138e818701836112f7565b9a87019a9550505090840190600101611362565b5091979650505050505050565b6020815260006112626020830184611344565b60208152600061126260208301846112f7565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b8281101561143157605f1988870301845261141f8683516112f7565b95509284019290840190600101611403565b509398975050505050505050565b60008060006040848603121561145457600080fd5b8335801515811461146457600080fd5b9250602084013567ffffffffffffffff81111561148057600080fd5b61148c86828701611269565b9497909650939450505050565b8381528260208201526060604082015260006114b86060830184611344565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156114e957600080fd5b813567ffffffffffffffff8082111561150157600080fd5b818401915084601f83011261151557600080fd5b813581811115611527576115276114c1565b604051601f8201601f19908116603f0116810190838211818310171561154f5761154f6114c1565b8160405282815287602084870101111561156857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020808252825182820181905260009190848201906040850190845b818110156115c95783516001600160a01b0316835292840192918401916001016115a4565b50909695505050505050565b6000602082840312156115e757600080fd5b5035919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008235607e1983360301811261165c57600080fd5b9190910192915050565b6000808335601e1984360301811261167d57600080fd5b83018035915067ffffffffffffffff82111561169857600080fd5b6020019150368190038213156112ae57600080fd5b8183823760009101908152919050565b600181811c908216806116d157607f821691505b602082108114156116f257634e487b7160e01b600052602260045260246000fd5b50919050565b60008235603e1983360301811261165c57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117385761173861170e565b5060010190565b60008235605e1983360301811261165c57600080fd5b6000828210156117675761176761170e565b500390565b634e487b7160e01b600052603160045260246000fdfea264697066735822122064a65b51870349f1d6796f5f39d8175b1196e9376dc9db88753609daee74966564736f6c634300080c0033", "deployedBytecode": "0x6080604052600436106101815760003560e01c8063572b6c05116100d1578063a0e67e2b1161008a578063c3077fa911610064578063c3077fa91461042a578063ce1b815f1461043d578063da7422281461045b578063ee82ac5e1461047b57600080fd5b8063a0e67e2b146103ce578063a8b0574e146103f0578063bce38bd71461041757600080fd5b8063572b6c05146103265780637065cb481461035557806372425d9d1461037557806382ad56cb1461038857806386d516e81461039b57806390c3f38f146103ae57600080fd5b80632f54bf6e1161013e5780633e64a696116101185780633e64a696146102c357806342cbb15c146102d65780634d2301cc146102e95780635260f5e61461031157600080fd5b80632f54bf6e146102455780633408e4701461028e578063399542e9146102a157600080fd5b80630f28c97d14610186578063173825d9146101a8578063174dea71146101ca5780631a092541146101ea578063252dba421461020c57806327e86d6e1461022d575b600080fd5b34801561019257600080fd5b50425b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101c86101c3366004611239565b61049a565b005b6101dd6101d83660046112b5565b61056a565b60405161019f91906113af565b3480156101f657600080fd5b506101ff610785565b60405161019f91906113c2565b61021f61021a3660046112b5565b610817565b60405161019f9291906113d5565b34801561023957600080fd5b50436000190140610195565b34801561025157600080fd5b5061027e610260366004611239565b6001600160a01b031660009081526020819052604090205460ff1690565b604051901515815260200161019f565b34801561029a57600080fd5b5046610195565b6102b46102af36600461143f565b6109c2565b60405161019f93929190611499565b3480156102cf57600080fd5b5048610195565b3480156102e257600080fd5b5043610195565b3480156102f557600080fd5b50610195610304366004611239565b6001600160a01b03163190565b34801561031d57600080fd5b506101c8610a18565b34801561033257600080fd5b5061027e610341366004611239565b6003546001600160a01b0391821691161490565b34801561036157600080fd5b506101c8610370366004611239565b610ac3565b34801561038157600080fd5b5044610195565b6101dd6103963660046112b5565b610b7b565b3480156103a757600080fd5b5045610195565b3480156103ba57600080fd5b506101c86103c93660046114d7565b610d2f565b3480156103da57600080fd5b506103e3610d77565b60405161019f9190611588565b3480156103fc57600080fd5b50415b6040516001600160a01b03909116815260200161019f565b6101dd61042536600461143f565b610dd8565b6102b46104383660046112b5565b610f9d565b34801561044957600080fd5b506003546001600160a01b03166103ff565b34801561046757600080fd5b506101c8610476366004611239565b610ff0565b34801561048757600080fd5b506101956104963660046115d5565b4090565b60015415806104af57506104af61026061103f565b6104d45760405162461bcd60e51b81526004016104cb906115ee565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff1661053c5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016104cb565b6001600160a01b0381166000908152602081905260409020805460ff19169055610567600182611073565b50565b6001546060901580610582575061058261026061103f565b61059e5760405162461bcd60e51b81526004016104cb906115ee565b6000828067ffffffffffffffff8111156105ba576105ba6114c1565b60405190808252806020026020018201604052801561060057816020015b6040805180820190915260008152606060208201528152602001906001900390816105d85790505b5092503660005b8281101561072c57600085828151811061062357610623611630565b6020026020010151905087878381811061063f5761063f611630565b90506020028101906106519190611646565b60408101359586019590935061066a6020850185611239565b6001600160a01b0316816106816060870187611666565b60405161068f9291906116ad565b60006040518083038185875af1925050503d80600081146106cc576040519150601f19603f3d011682016040523d82523d6000602084013e6106d1565b606091505b5060208085019190915290151580845290850135176107225762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260846000fd5b5050600101610607565b5082341461077c5760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064016104cb565b50505092915050565b606060028054610794906116bd565b80601f01602080910402602001604051908101604052809291908181526020018280546107c0906116bd565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6001546000906060901580610832575061083261026061103f565b61084e5760405162461bcd60e51b81526004016104cb906115ee565b439150828067ffffffffffffffff81111561086b5761086b6114c1565b60405190808252806020026020018201604052801561089e57816020015b60608152602001906001900390816108895790505b5091503660005b828110156109b85760008787838181106108c1576108c1611630565b90506020028101906108d391906116f8565b92506108e26020840184611239565b6001600160a01b03166108f86020850185611666565b6040516109069291906116ad565b6000604051808303816000865af19150503d8060008114610943576040519150601f19603f3d011682016040523d82523d6000602084013e610948565b606091505b5086848151811061095b5761095b611630565b60209081029190910101529050806109af5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60448201526064016104cb565b506001016108a5565b5050509250929050565b600154600090819060609015806109df57506109df61026061103f565b6109fb5760405162461bcd60e51b81526004016104cb906115ee565b43925043409150610a0d868686610dd8565b905093509350939050565b6001541580610a2d5750610a2d61026061103f565b610a495760405162461bcd60e51b81526004016104cb906115ee565b60005b600154811015610ab457600080600060018481548110610a6e57610a6e611630565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580610aac81611724565b915050610a4c565b50610ac160016000611182565b565b6001541580610ad85750610ad861026061103f565b610af45760405162461bcd60e51b81526004016104cb906115ee565b6001600160a01b03811660009081526020819052604090205460ff1615610b185750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b6001546060901580610b935750610b9361026061103f565b610baf5760405162461bcd60e51b81526004016104cb906115ee565b818067ffffffffffffffff811115610bc957610bc96114c1565b604051908082528060200260200182016040528015610c0f57816020015b604080518082019091526000815260606020820152815260200190600190039081610be75790505b5091503660005b8281101561077c576000848281518110610c3257610c32611630565b60200260200101519050868683818110610c4e57610c4e611630565b9050602002810190610c60919061173f565b9250610c6f6020840184611239565b6001600160a01b0316610c856040850185611666565b604051610c939291906116ad565b6000604051808303816000865af19150503d8060008114610cd0576040519150601f19603f3d011682016040523d82523d6000602084013e610cd5565b606091505b506020808401919091529015158083529084013517610d265762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260646000fd5b50600101610c16565b6001541580610d445750610d4461026061103f565b610d605760405162461bcd60e51b81526004016104cb906115ee565b8051610d739060029060208401906111a0565b5050565b6060600180548060200260200160405190810160405280929190818152602001828054801561080d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610db1575050505050905090565b6001546060901580610df05750610df061026061103f565b610e0c5760405162461bcd60e51b81526004016104cb906115ee565b818067ffffffffffffffff811115610e2657610e266114c1565b604051908082528060200260200182016040528015610e6c57816020015b604080518082019091526000815260606020820152815260200190600190039081610e445790505b5091503660005b82811015610f93576000848281518110610e8f57610e8f611630565b60200260200101519050868683818110610eab57610eab611630565b9050602002810190610ebd91906116f8565b9250610ecc6020840184611239565b6001600160a01b0316610ee26020850185611666565b604051610ef09291906116ad565b6000604051808303816000865af19150503d8060008114610f2d576040519150601f19603f3d011682016040523d82523d6000602084013e610f32565b606091505b506020830152151581528715610f8a578051610f8a5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60448201526064016104cb565b50600101610e73565b5050509392505050565b60015460009081906060901580610fba5750610fba61026061103f565b610fd65760405162461bcd60e51b81526004016104cb906115ee565b610fe2600186866109c2565b919790965090945092505050565b6001541580611005575061100561026061103f565b6110215760405162461bcd60e51b81526004016104cb906115ee565b600380546001600160a01b0319166001600160a01b03831617905550565b60006014361080159061105c57506003546001600160a01b031633145b1561106e575060131936013560601c90565b503390565b60005b825481101561117d57816001600160a01b031683828154811061109b5761109b611630565b6000918252602090912001546001600160a01b0316141561116b57825483906110c690600190611755565b815481106110d6576110d6611630565b9060005260206000200160009054906101000a90046001600160a01b031683828154811061110657611106611630565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828054806111445761114461176c565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061117581611724565b915050611076565b505050565b50805460008255906000526020600020908101906105679190611224565b8280546111ac906116bd565b90600052602060002090601f0160209004810192826111ce5760008555611214565b82601f106111e757805160ff1916838001178555611214565b82800160010185558215611214579182015b828111156112145782518255916020019190600101906111f9565b50611220929150611224565b5090565b5b808211156112205760008155600101611225565b60006020828403121561124b57600080fd5b81356001600160a01b038116811461126257600080fd5b9392505050565b60008083601f84011261127b57600080fd5b50813567ffffffffffffffff81111561129357600080fd5b6020830191508360208260051b85010111156112ae57600080fd5b9250929050565b600080602083850312156112c857600080fd5b823567ffffffffffffffff8111156112df57600080fd5b6112eb85828601611269565b90969095509350505050565b6000815180845260005b8181101561131d57602081850181015186830182015201611301565b8181111561132f576000602083870101525b50601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156113a25782840389528151805115158552850151604086860181905261138e818701836112f7565b9a87019a9550505090840190600101611362565b5091979650505050505050565b6020815260006112626020830184611344565b60208152600061126260208301846112f7565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b8281101561143157605f1988870301845261141f8683516112f7565b95509284019290840190600101611403565b509398975050505050505050565b60008060006040848603121561145457600080fd5b8335801515811461146457600080fd5b9250602084013567ffffffffffffffff81111561148057600080fd5b61148c86828701611269565b9497909650939450505050565b8381528260208201526060604082015260006114b86060830184611344565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156114e957600080fd5b813567ffffffffffffffff8082111561150157600080fd5b818401915084601f83011261151557600080fd5b813581811115611527576115276114c1565b604051601f8201601f19908116603f0116810190838211818310171561154f5761154f6114c1565b8160405282815287602084870101111561156857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020808252825182820181905260009190848201906040850190845b818110156115c95783516001600160a01b0316835292840192918401916001016115a4565b50909695505050505050565b6000602082840312156115e757600080fd5b5035919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008235607e1983360301811261165c57600080fd5b9190910192915050565b6000808335601e1984360301811261167d57600080fd5b83018035915067ffffffffffffffff82111561169857600080fd5b6020019150368190038213156112ae57600080fd5b8183823760009101908152919050565b600181811c908216806116d157607f821691505b602082108114156116f257634e487b7160e01b600052602260045260246000fd5b50919050565b60008235603e1983360301811261165c57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117385761173861170e565b5060010190565b60008235605e1983360301811261165c57600080fd5b6000828210156117675761176761170e565b500390565b634e487b7160e01b600052603160045260246000fdfea264697066735822122064a65b51870349f1d6796f5f39d8175b1196e9376dc9db88753609daee74966564736f6c634300080c0033", "linkReferences": {}, "deployedLinkReferences": {} }