0 txs
3.9k calls
constructor
constructor()
functions
getArt
viewfunction getArt() view returns (address[])
getArtAt
viewfunction getArtAt(uint256 index) view returns (address)
getArtMinters
viewfunction getArtMinters(address art) view returns (address[], uint256[])
getArtMintersAt
viewfunction getArtMintersAt(address art, uint256 index) view returns (address, uint256)
getFactories
viewfunction getFactories() view returns (address[])
getFactoryAt
viewfunction getFactoryAt(uint256 index) view returns (address)
getNumArt
viewfunction getNumArt() view returns (uint256)
getNumArtMinters
viewfunction getNumArtMinters(address art) view returns (uint256)
getNumFactories
viewfunction getNumFactories() view returns (uint256)
getNumUserCreated
viewfunction getNumUserCreated(address user) view returns (uint256)
getNumUserMinted
viewfunction getNumUserMinted(address user) view returns (uint256)
getUserCreated
viewfunction getUserCreated(address user) view returns (address[], uint256[])
getUserCreatedAt
viewfunction getUserCreatedAt(address user, uint256 index) view returns (address, uint256)
getUserMinted
viewfunction getUserMinted(address user) view returns (address[], uint256[])
getUserMintedAt
viewfunction getUserMintedAt(address user, uint256 index) view returns (address, uint256)
hasUserCreated
viewfunction hasUserCreated(address user, address art) view returns (bool)
hasUserMinted
viewfunction hasUserMinted(address user, address art) view returns (bool)
isArt
viewfunction isArt(address art) view returns (bool)
isFactory
viewfunction isFactory(address factory) view returns (bool)
owner
viewfunction owner() view returns (address)
addFactory
nonpayablefunction addFactory(address factory)
onCreate
nonpayablefunction onCreate(address user, address art)
onMint
nonpayablefunction onMint(address user)
removeFactory
nonpayablefunction removeFactory(address factory)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Create
event Create(address indexed user, address indexed art, uint256 timestamp)
Mint
event Mint(address indexed user, address indexed art, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b506100193361006d565b5f303360405161002890610125565b6001600160a01b03928316815291166020820152604001604051809103905ff080158015610058573d5f803e3d5ffd5b5090506100666006826100bc565b5050610132565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6100d0836001600160a01b0384166100d9565b90505b92915050565b5f81815260018301602052604081205461011e57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556100d3565b505f6100d3565b6125228061112283390190565b610fe38061013f5f395ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c80637e6cbb6a116100d9578063c3e38a2f11610093578063e38fb8661161006e578063e38fb86614610375578063f1391f731461037d578063f18da85c14610390578063f2fde38b146103a3575f80fd5b8063c3e38a2f14610347578063d058f5741461035a578063d7b29bf21461036d575f80fd5b80637e6cbb6a146102d357806384b282a5146102e85780638da5cb5b146102fb57806391d0d6231461030b578063a19083761461031e578063a970909914610326575f80fd5b80633a07d2031161014457806350e733961161011f57806350e7339614610292578063643f1ce9146102a5578063715018a6146102b85780637639f9bb146102c0575f80fd5b80633a07d2031461024157806348f8f1001461026c5780634b37c73f1461027f575f80fd5b80630185f9711461018b5780630f04ba67146101b35780631a5afb7c146101c6578063285ad884146101f857806329ce1ec51461020b5780633613ed0114610220575b5f80fd5b61019e610199366004610e1c565b6103b6565b60405190151581526020015b60405180910390f35b61019e6101c1366004610e4d565b6103e0565b6101d96101d4366004610e66565b6103ec565b604080516001600160a01b0390931683526020830191909152016101aa565b61019e610206366004610e1c565b61041a565b61021e610219366004610e4d565b61043b565b005b61023361022e366004610e4d565b610452565b6040519081526020016101aa565b61025461024f366004610e8e565b610472565b6040516001600160a01b0390911681526020016101aa565b61025461027a366004610e8e565b61047e565b61021e61028d366004610e4d565b61048a565b61021e6102a0366004610e4d565b61049d565b6101d96102b3366004610e66565b610584565b61021e6105a7565b6102336102ce366004610e4d565b6105ba565b6102db6105da565b6040516101aa9190610ee8565b6102336102f6366004610e4d565b6105eb565b5f546001600160a01b0316610254565b61019e610319366004610e4d565b61060b565b610233610617565b610339610334366004610e4d565b610622565b6040516101aa929190610efa565b610339610355366004610e4d565b6106f9565b610339610368366004610e4d565b6107ad565b610233610861565b6102db61086c565b61021e61038b366004610e1c565b610878565b6101d961039e366004610e66565b610933565b61021e6103b1366004610e4d565b610956565b6001600160a01b0382165f9081526002602052604081206103d790836109cf565b90505b92915050565b5f6103da6006836109e3565b6001600160a01b0382165f908152600160205260408120819061040f9084610a04565b915091509250929050565b6001600160a01b0382165f9081526001602052604081206103d790836109cf565b610443610a1f565b61044e600682610a78565b5050565b6001600160a01b0381165f9081526001602052604081206103da90610a8c565b5f6103da600683610a96565b5f6103da600483610a96565b610492610a1f565b61044e600682610aa1565b336104a96004826109e3565b6104ed5760405162461bcd60e51b815260206004820152601060248201526f2737ba10309031b7b63632b1ba34b7b760811b60448201526064015b60405180910390fd5b6001600160a01b0382165f90815260026020526040902061050f908242610ab5565b506001600160a01b0381165f908152600360205260409020610532908342610ab5565b50806001600160a01b0316826001600160a01b03167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f84260405161057891815260200190565b60405180910390a35050565b6001600160a01b0382165f908152600260205260408120819061040f9084610a04565b6105af610a1f565b6105b85f610ad2565b565b6001600160a01b0381165f9081526003602052604081206103da90610a8c565b60606105e66006610b21565b905090565b6001600160a01b0381165f9081526002602052604081206103da90610a8c565b5f6103da6004836109e3565b5f6105e66006610b34565b6001600160a01b0381165f90815260026020526040812060609182919061064882610b3d565b90505f815167ffffffffffffffff81111561066557610665610f52565b60405190808252806020026020018201604052801561068e578160200160208202803683370190505b5090505f5b82518110156106ed576106c88382815181106106b1576106b1610f66565b602002602001015185610b4990919063ffffffff16565b8282815181106106da576106da610f66565b6020908102919091010152600101610693565b50909590945092505050565b6001600160a01b0381165f90815260016020526040812060609182919061071f82610b3d565b90505f815167ffffffffffffffff81111561073c5761073c610f52565b604051908082528060200260200182016040528015610765578160200160208202803683370190505b5090505f5b82518110156106ed576107888382815181106106b1576106b1610f66565b82828151811061079a5761079a610f66565b602090810291909101015260010161076a565b6001600160a01b0381165f9081526003602052604081206060918291906107d382610b3d565b90505f815167ffffffffffffffff8111156107f0576107f0610f52565b604051908082528060200260200182016040528015610819578160200160208202803683370190505b5090505f5b82518110156106ed5761083c8382815181106106b1576106b1610f66565b82828151811061084e5761084e610f66565b602090810291909101015260010161081e565b5f6105e66004610b34565b60606105e66004610b21565b6108836006336109e3565b6108bf5760405162461bcd60e51b815260206004820152600d60248201526c4e6f74206120666163746f727960981b60448201526064016104e4565b6001600160a01b0382165f9081526001602052604090206108e1908242610ab5565b506108ed600482610a78565b50806001600160a01b0316826001600160a01b03167f923f1fa2c44c3aec741bc0bb74cfdb2d73d61ea532799cda54b2941d89ab9fc64260405161057891815260200190565b6001600160a01b0382165f908152600360205260408120819061040f9084610a04565b61095e610a1f565b6001600160a01b0381166109c35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e4565b6109cc81610ad2565b50565b5f6103d7836001600160a01b038416610b5d565b6001600160a01b0381165f90815260018301602052604081205415156103d7565b5f808080610a128686610b68565b9097909650945050505050565b5f546001600160a01b031633146105b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e4565b5f6103d7836001600160a01b038416610b91565b5f6103da82610bdd565b5f6103d78383610be7565b5f6103d7836001600160a01b038416610c0d565b5f610aca846001600160a01b03851684610cf0565b949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60605f610b2d83610d0c565b9392505050565b5f6103da825490565b60605f610b2d83610d65565b5f6103d7836001600160a01b038416610d70565b5f6103d78383610ddf565b5f8080610b758585610a96565b5f81815260029690960160205260409095205494959350505050565b5f818152600183016020526040812054610bd657508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556103da565b505f6103da565b5f6103da82610b34565b5f825f018281548110610bfc57610bfc610f66565b905f5260205f200154905092915050565b5f8181526001830160205260408120548015610ce7575f610c2f600183610f7a565b85549091505f90610c4290600190610f7a565b9050818114610ca1575f865f018281548110610c6057610c60610f66565b905f5260205f200154905080875f018481548110610c8057610c80610f66565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610cb257610cb2610f99565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506103da565b5f9150506103da565b5f8281526002840160205260408120829055610aca8484610df6565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610d5957602002820191905f5260205f20905b815481526020019060010190808311610d45575b50505050509050919050565b60606103da82610b21565b5f81815260028301602052604081205480151580610d935750610d938484610b5d565b6103d75760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104e4565b5f81815260018301602052604081205415156103d7565b5f6103d78383610b91565b80356001600160a01b0381168114610e17575f80fd5b919050565b5f8060408385031215610e2d575f80fd5b610e3683610e01565b9150610e4460208401610e01565b90509250929050565b5f60208284031215610e5d575f80fd5b6103d782610e01565b5f8060408385031215610e77575f80fd5b610e8083610e01565b946020939093013593505050565b5f60208284031215610e9e575f80fd5b5035919050565b5f8151808452602084019350602083015f5b82811015610ede5781516001600160a01b0316865260209586019590910190600101610eb7565b5093949350505050565b602081525f6103d76020830184610ea5565b604081525f610f0c6040830185610ea5565b82810360208401528084518083526020830191506020860192505f5b81811015610f46578351835260209384019390920191600101610f28565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156103da57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea26469706673582212201b75b66f27ff585223a908beb180367e0add62c9cc76da5afc0db1b42d68150564736f6c634300081a0033608060405234801561000f575f80fd5b5060405161252238038061252283398101604081905261002e91610131565b610037336100ba565b600180546001600160a01b0319166001600160a01b038416179055604051829061006090610109565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556100b3816100ba565b5050610162565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611d7d806107a583390190565b80516001600160a01b038116811461012c575f80fd5b919050565b5f8060408385031215610142575f80fd5b61014b83610116565b915061015960208401610116565b90509250929050565b6106368061016f5f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063321c48f21461006457806344c29e321461008d578063715018a6146100a25780638da5cb5b146100aa578063f2fde38b146100ba578063fbc1f718146100cd575b5f80fd5b6002546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6100a061009b366004610482565b6100e0565b005b6100a06101e0565b5f546001600160a01b0316610071565b6100a06100c8366004610521565b6101f3565b6100a06100db366004610521565b610271565b5f33600254600380549293505f9261010f926001600160a01b031691846101068361054e565b9091555061029b565b60405163c0b2e07f60e01b81529091506001600160a01b0382169063c0b2e07f90610148908a908a908a9088908b908b906004016105a0565b5f604051808303815f87803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b505060015460405163f1391f7360e01b81526001600160a01b0386811660048301528581166024830152909116925063f1391f7391506044015f604051808303815f87803b1580156101c1575f80fd5b505af11580156101d3573d5f803e3d5ffd5b5050505050505050505050565b6101e861033b565b6101f15f610394565b565b6101fb61033b565b6001600160a01b0381166102655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61026e81610394565b50565b61027961033b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c175f526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760095ff590506001600160a01b0381166103355760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640161025c565b92915050565b5f546001600160a01b031633146101f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161025c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610406575f80fd5b813567ffffffffffffffff811115610420576104206103e3565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561044f5761044f6103e3565b604052818152838201602001851015610466575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215610496575f80fd5b853567ffffffffffffffff8111156104ac575f80fd5b6104b8888289016103f7565b955050602086013567ffffffffffffffff8111156104d4575f80fd5b6104e0888289016103f7565b945050604086013567ffffffffffffffff8111156104fc575f80fd5b610508888289016103f7565b9598949750949560608101359550608001359392505050565b5f60208284031215610531575f80fd5b81356001600160a01b0381168114610547575f80fd5b9392505050565b5f6001820161056b57634e487b7160e01b5f52601160045260245ffd5b5060010190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60c081525f6105b260c0830189610572565b82810360208401526105c48189610572565b905082810360408401526105d88188610572565b6001600160a01b039690961660608401525050608081019290925260a090910152939250505056fea2646970667358221220e491ee0fb91cd9497c55c894ec9b9ead34b986a279f527c6d3837e862615a5b564736f6c634300081a003360a060405234801561000f575f80fd5b50604051611d7d380380611d7d83398101604081905261002e91610075565b60408051602080820183525f80835283519182019093528281529091610054838261013a565b506001610061828261013a565b5050506001600160a01b03166080526101f4565b5f60208284031215610085575f80fd5b81516001600160a01b038116811461009b575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806100ca57607f821691505b6020821081036100e857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561013557805f5260205f20601f840160051c810160208510156101135750805b601f840160051c820191505b81811015610132575f815560010161011f565b50505b505050565b81516001600160401b03811115610153576101536100a2565b6101678161016184546100b6565b846100ee565b6020601f821160018114610199575f83156101825750848201515b5f19600385901b1c1916600184901b178455610132565b5f84815260208120601f198516915b828110156101c857878501518255602094850194600190920191016101a8565b50848210156101e557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b608051611b6a6102135f395f81816107310152610a7b0152611b6a5ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c80634f6ccce7116100b4578063a035b1fe11610079578063a035b1fe14610280578063a22cb46514610288578063b88d4fde1461029b578063c0b2e07f146102ae578063c87b56dd146102c1578063e985e9c5146102d4575f80fd5b80634f6ccce7146102135780634fc35859146102265780636352211e1461025257806370a082311461026557806395d89b4114610278575f80fd5b806318160ddd116100fa57806318160ddd146101c057806323b872dd146101d25780632f745c59146101e5578063325a19f1146101f857806342842e0e14610200575f80fd5b806301ffc9a71461013657806302d05d3f1461015e57806306fdde0314610183578063081812fc14610198578063095ea7b3146101ab575b5f80fd5b6101496101443660046114cf565b61030f565b60405190151581526020015b60405180910390f35b600f546001600160a01b03165b6040516001600160a01b039091168152602001610155565b61018b610339565b604051610155919061151f565b61016b6101a6366004611531565b6103c9565b6101be6101b9366004611563565b6103ee565b005b6008545b604051908152602001610155565b6101be6101e036600461158b565b610507565b6101c46101f3366004611563565b610538565b600e546101c4565b6101be61020e36600461158b565b6105cc565b6101c4610221366004611531565b6105e6565b610239610234366004611650565b610676565b6040516001600160e01b03199091168152602001610155565b61016b610260366004611531565b610825565b6101c46102733660046116c7565b610884565b61018b610908565b600d546101c4565b6101be6102963660046116ed565b610917565b6101be6102a9366004611650565b610926565b6101be6102bc366004611740565b61095e565b61018b6102cf366004611531565b610adc565b6101496102e23660046117f0565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b0319821663780e9d6360e01b1480610333575061033382610b6e565b92915050565b6060600a805461034890611821565b80601f016020809104026020016040519081016040528092919081815260200182805461037490611821565b80156103bf5780601f10610396576101008083540402835291602001916103bf565b820191905f5260205f20905b8154815290600101906020018083116103a257829003601f168201915b5050505050905090565b5f6103d382610bbd565b505f908152600460205260409020546001600160a01b031690565b5f6103f882610825565b9050806001600160a01b0316836001600160a01b03160361046a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610486575061048681336102e2565b6104f85760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610461565b6105028383610c1e565b505050565b6105113382610c8b565b61052d5760405162461bcd60e51b815260040161046190611859565b610502838383610d07565b5f61054283610884565b82106105a45760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610461565b506001600160a01b03919091165f908152600660209081526040808320938352929052205490565b61050283838360405180602001604052805f815250610926565b5f6105f060085490565b82106106535760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610461565b60088281548110610666576106666118a6565b905f5260205f2001549050919050565b5f3373faf54ad35f00dd40ce037e49223e0d1adeef05b5146106ce5760405162461bcd60e51b81526020600482015260116024820152702737ba103830bcb6b2b73a103a37b5b2b760791b6044820152606401610461565b600d5484905f906106df90866118ce565b6010549091505f5b8281101561070c5761070484836106fd816118ed565b9450610e76565b6001016106e7565b50601081905560405163287399cb60e11b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016906350e73396906024015f604051808303815f87803b158015610772575f80fd5b505af1158015610784573d5f803e3d5ffd5b5050600f5460405163a9059cbb60e01b81526001600160a01b0390911660048201526024810189905273faf54ad35f00dd40ce037e49223e0d1adeef05b5925063a9059cbb91506044016020604051808303815f875af11580156107ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080e9190611905565b50634fc3585960e01b93505050505b949350505050565b5f818152600260205260408120546001600160a01b0316806103335760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610461565b5f6001600160a01b0382166108ed5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610461565b506001600160a01b03165f9081526003602052604090205490565b6060600b805461034890611821565b61092233838361100b565b5050565b6109303383610c8b565b61094c5760405162461bcd60e51b815260040161046190611859565b610958848484846110d8565b50505050565b601054156109a45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610461565b5f82116109e35760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b6044820152606401610461565b600a6109ef8782611964565b50600b6109fc8682611964565b50600c610a098582611964565b50600d82905542600e55600f80546001600160a01b0319166001600160a01b03851617905560015f5b82811015610a5057610a4885836106fd816118ed565b600101610a32565b5060108190558115610ad35760405163287399cb60e11b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906350e73396906024015f604051808303815f87803b158015610abc575f80fd5b505af1158015610ace573d5f803e3d5ffd5b505050505b50505050505050565b6060600c8054610aeb90611821565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1790611821565b8015610b625780601f10610b3957610100808354040283529160200191610b62565b820191905f5260205f20905b815481529060010190602001808311610b4557829003601f168201915b50505050509050919050565b5f6001600160e01b031982166380ac58cd60e01b1480610b9e57506001600160e01b03198216635b5e139f60e01b145b8061033357506301ffc9a760e01b6001600160e01b0319831614610333565b5f818152600260205260409020546001600160a01b0316610c1b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610461565b50565b5f81815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610c5282610825565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f80610c9683610825565b9050806001600160a01b0316846001600160a01b03161480610cdc57506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b8061081d5750836001600160a01b0316610cf5846103c9565b6001600160a01b031614949350505050565b826001600160a01b0316610d1a82610825565b6001600160a01b031614610d405760405162461bcd60e51b815260040161046190611a1f565b6001600160a01b038216610da25760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610461565b610daf838383600161110b565b826001600160a01b0316610dc282610825565b6001600160a01b031614610de85760405162461bcd60e51b815260040161046190611a1f565b5f81815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080545f1901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216610ecc5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610461565b5f818152600260205260409020546001600160a01b031615610f305760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610461565b610f3d5f8383600161110b565b5f818152600260205260409020546001600160a01b031615610fa15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610461565b6001600160a01b0382165f81815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b03160361106c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610461565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6110e3848484610d07565b6110ef8484848461123e565b6109585760405162461bcd60e51b815260040161046190611a64565b600181111561117a5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610461565b816001600160a01b0385166111d5576111d081600880545f838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6111f8565b836001600160a01b0316856001600160a01b0316146111f8576111f88582611338565b6001600160a01b0384166112145761120f816113d1565b611237565b846001600160a01b0316846001600160a01b031614611237576112378482611478565b5050505050565b5f6001600160a01b0384163b1561133057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611281903390899088908890600401611ab6565b6020604051808303815f875af19250505080156112bb575060408051601f3d908101601f191682019092526112b891810190611af2565b60015b611316573d8080156112e8576040519150601f19603f3d011682016040523d82523d5f602084013e6112ed565b606091505b5080515f0361130e5760405162461bcd60e51b815260040161046190611a64565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061081d565b50600161081d565b5f600161134484610884565b61134e9190611b0d565b5f8381526007602052604090205490915080821461139f576001600160a01b0384165f9081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b505f9182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008545f906113e290600190611b0d565b5f8381526009602052604081205460088054939450909284908110611409576114096118a6565b905f5260205f20015490508060088381548110611428576114286118a6565b5f91825260208083209091019290925582815260099091526040808220849055858252812055600880548061145f5761145f611b20565b600190038181905f5260205f20015f9055905550505050565b5f61148283610884565b6001600160a01b039093165f908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610c1b575f80fd5b5f602082840312156114df575f80fd5b81356114ea816114ba565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6114ea60208301846114f1565b5f60208284031215611541575f80fd5b5035919050565b80356001600160a01b038116811461155e575f80fd5b919050565b5f8060408385031215611574575f80fd5b61157d83611548565b946020939093013593505050565b5f805f6060848603121561159d575f80fd5b6115a684611548565b92506115b460208501611548565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f8067ffffffffffffffff8411156115f3576115f36115c5565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715611622576116226115c5565b604052838152905080828401851015611639575f80fd5b838360208301375f60208583010152509392505050565b5f805f8060808587031215611663575f80fd5b61166c85611548565b935061167a60208601611548565b925060408501359150606085013567ffffffffffffffff81111561169c575f80fd5b8501601f810187136116ac575f80fd5b6116bb878235602084016115d9565b91505092959194509250565b5f602082840312156116d7575f80fd5b6114ea82611548565b8015158114610c1b575f80fd5b5f80604083850312156116fe575f80fd5b61170783611548565b91506020830135611717816116e0565b809150509250929050565b5f82601f830112611731575f80fd5b6114ea838335602085016115d9565b5f805f805f8060c08789031215611755575f80fd5b863567ffffffffffffffff81111561176b575f80fd5b61177789828a01611722565b965050602087013567ffffffffffffffff811115611793575f80fd5b61179f89828a01611722565b955050604087013567ffffffffffffffff8111156117bb575f80fd5b6117c789828a01611722565b9450506117d660608801611548565b9598949750929560808101359460a0909101359350915050565b5f8060408385031215611801575f80fd5b61180a83611548565b915061181860208401611548565b90509250929050565b600181811c9082168061183557607f821691505b60208210810361185357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826118e857634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016118fe576118fe6118ba565b5060010190565b5f60208284031215611915575f80fd5b81516114ea816116e0565b601f82111561050257805f5260205f20601f840160051c810160208510156119455750805b601f840160051c820191505b81811015611237575f8155600101611951565b815167ffffffffffffffff81111561197e5761197e6115c5565b6119928161198c8454611821565b84611920565b6020601f8211600181146119c4575f83156119ad5750848201515b5f19600385901b1c1916600184901b178455611237565b5f84815260208120601f198516915b828110156119f357878501518255602094850194600190920191016119d3565b5084821015611a1057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90611ae8908301846114f1565b9695505050505050565b5f60208284031215611b02575f80fd5b81516114ea816114ba565b81810381811115610333576103336118ba565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212202bcdc4dc177933f383ee55b14a62746a871935065cf42254692e1b450ec5166164736f6c634300081a0033