0 txs
45 calls
constructor
constructor(address _usdcToken, uint256 _duration, uint256 _reservePrice)
functions
auction
viewfunction auction() view returns (uint256 auctionId, uint256 highestBid, address highestBidder, uint40 startTime, uint40 endTime, bool settled, tuple metadata)
duration
viewfunction duration() view returns (uint256)
getBidderName
viewfunction getBidderName(address _bidder) view returns (string)
isWhitelistedSettler
viewfunction isWhitelistedSettler(address _settler) view returns (bool)
minBidIncrement
viewfunction minBidIncrement() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
reservePrice
viewfunction reservePrice() view returns (uint256)
settings
viewfunction settings() view returns (address treasury, address developer, uint40 duration, uint40 timeBuffer, uint8 minBidIncrement, uint256 reservePrice, bool launched, tuple metadata, address usdcToken)
timeBuffer
viewfunction timeBuffer() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
usdcToken
viewfunction usdcToken() view returns (address)
createBid
nonpayablefunction createBid(uint256 _auctionId, uint256 _amount, string _url, string _name)
overrideAuctionWinner
nonpayablefunction overrideAuctionWinner(address _bidder, string _url, bool _refundOriginalWinner, string _name)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setDuration
nonpayablefunction setDuration(uint256 _duration)
setMinimumBidIncrement
nonpayablefunction setMinimumBidIncrement(uint256 _percentage)
setReservePrice
nonpayablefunction setReservePrice(uint256 _reservePrice)
setTimeBuffer
nonpayablefunction setTimeBuffer(uint256 _timeBuffer)
settleAuction
nonpayablefunction settleAuction()
settleCurrentAndCreateNewAuction
nonpayablefunction settleCurrentAndCreateNewAuction()
setTreasury
nonpayablefunction setTreasury(address _treasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateSettlerWhitelist
nonpayablefunction updateSettlerWhitelist(address _settler, bool _status)
events
AuctionBid
event AuctionBid(uint256 auctionId, address bidder, uint256 amount, bool extended, uint256 endTime, string url, string name)
AuctionCreated
event AuctionCreated(uint256 auctionId, uint256 startTime, uint256 endTime)
AuctionSettled
event AuctionSettled(uint256 auctionId, address winner, uint256 amount, string url, string name)
AuctionWinnerOverridden
event AuctionWinnerOverridden(uint256 auctionId, address originalWinner, address newWinner, uint256 amount, bool refunded, string name)
DurationUpdated
event DurationUpdated(uint256 duration)
MinBidIncrementPercentageUpdated
event MinBidIncrementPercentageUpdated(uint256 minBidIncrementPercentage)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RefundFailed
event RefundFailed(address indexed to, uint256 amount, string reason)
ReservePriceUpdated
event ReservePriceUpdated(uint256 reservePrice)
SettlerWhitelistUpdated
event SettlerWhitelistUpdated(address indexed settler, bool status)
TimeBufferUpdated
event TimeBufferUpdated(uint256 timeBuffer)
TreasuryUpdated
event TreasuryUpdated(address newTreasury)
Unpaused
event Unpaused(address account)
errors
AUCTION_ACTIVE
error AUCTION_ACTIVE()
AUCTION_CREATE_FAILED_TO_LAUNCH
error AUCTION_CREATE_FAILED_TO_LAUNCH()
AUCTION_NOT_STARTED
error AUCTION_NOT_STARTED()
AUCTION_OVER
error AUCTION_OVER()
AUCTION_SETTLED
error AUCTION_SETTLED()
CANNOT_CREATE_AUCTION
error CANNOT_CREATE_AUCTION()
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
INSOLVENT
error INSOLVENT()
INVALID_BIDDER_TO_PROMOTE
error INVALID_BIDDER_TO_PROMOTE()
INVALID_TOKEN_ID
error INVALID_TOKEN_ID()
MIN_BID_INCREMENT_TOO_LOW
error MIN_BID_INCREMENT_TOO_LOW()
MINIMUM_BID_NOT_MET
error MINIMUM_BID_NOT_MET()
NOT_WHITELISTED_SETTLER
error NOT_WHITELISTED_SETTLER()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
RESERVE_PRICE_NOT_MET
error RESERVE_PRICE_NOT_MET()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
USDC_TOKEN_TRANSFER_FAILED
error USDC_TOKEN_TRANSFER_FAILED()
creation bytecode
0x60c060405261012c64ffffffffff1660809064ffffffffff16815250600a60ff1660a09060ff168152503480156200003657600080fd5b506040516200469e3803806200469e83398181016040528101906200005c919062000561565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000d25760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c99190620005ce565b60405180910390fd5b620000e381620002bf60201b60201c565b506001808190555082600260060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000140826200038360201b60201c565b600260010160146101000a81548164ffffffffff021916908364ffffffffff16021790555080600280018190555033600260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550608051600260010160196101000a81548164ffffffffff021916908364ffffffffff16021790555060a0516002600101601e6101000a81548160ff021916908360ff1602179055506001600f60000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fb5853e81e340898455a75d3e328cd81cf92f70bf88352a7f42d67c7af5f7586160016040516200029e919062000608565b60405180910390a2620002b6620003df60201b60201c565b505050620006bd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600064ffffffffff8016821115620003d7576028826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401620003ce92919062000690565b60405180910390fd5b819050919050565b620003ef6200045460201b60201c565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200043b6200049e60201b60201c565b6040516200044a9190620005ce565b60405180910390a1565b62000464620004a660201b60201c565b156200049c576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b60008060149054906101000a900460ff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004ee82620004c1565b9050919050565b6200050081620004e1565b81146200050c57600080fd5b50565b6000815190506200052081620004f5565b92915050565b6000819050919050565b6200053b8162000526565b81146200054757600080fd5b50565b6000815190506200055b8162000530565b92915050565b6000806000606084860312156200057d576200057c620004bc565b5b60006200058d868287016200050f565b9350506020620005a0868287016200054a565b9250506040620005b3868287016200054a565b9150509250925092565b620005c881620004e1565b82525050565b6000602082019050620005e56000830184620005bd565b92915050565b60008115159050919050565b6200060281620005eb565b82525050565b60006020820190506200061f6000830184620005f7565b92915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b600062000667620006616200065b8462000625565b6200063c565b6200062f565b9050919050565b620006798162000646565b82525050565b6200068a8162000526565b82525050565b6000604082019050620006a760008301856200066e565b620006b660208301846200067f565b9392505050565b60805160a051613fc1620006dd6000396000505060005050613fc16000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638456cb59116100de578063ea1dcd8411610097578063f25efffc11610071578063f25efffc146103fd578063f2fde38b14610407578063f6be71d114610423578063f71cfcb51461043f5761018e565b8063ea1dcd84146103a7578063ec91f2a4146103c3578063f0f44260146103e15761018e565b80638456cb59146103155780638da5cb5b1461031f578063a4d0a17e1461033d578063ce9c7c0d14610347578063db2e1eed14610363578063e06174e4146103815761018e565b80637120334b1161014b57806374ecaa7d1161012557806374ecaa7d146102755780637c4374aa146102915780637d9f6db5146102c157806383483f95146102e55761018e565b80637120334b14610233578063712ffafe1461024f578063715018a61461026b5761018e565b80630fb5a6b41461019357806311eac855146101b1578063335b115e146101cf5780633f4ba83a146101ed5780635c975abb146101f757806361d027b314610215575b600080fd5b61019b61045b565b6040516101a89190612bd4565b60405180910390f35b6101b9610480565b6040516101c69190612c30565b60405180910390f35b6101d76104ad565b6040516101e49190612bd4565b60405180910390f35b6101f56104ca565b005b6101ff610577565b60405161020c9190612c66565b60405180910390f35b61021d61058d565b60405161022a9190612c30565b60405180910390f35b61024d60048036038101906102489190612cc1565b6105ba565b005b61026960048036038101906102649190612d53565b610632565b005b610273611061565b005b61028f600480360381019061028a9190612cc1565b611075565b005b6102ab60048036038101906102a69190612e26565b61111f565b6040516102b89190612c66565b60405180910390f35b6102c9611178565b6040516102dc9796959493929190612f4f565b60405180910390f35b6102ff60048036038101906102fa9190612e26565b61129d565b60405161030c919061300f565b60405180910390f35b61031d611371565b005b610327611383565b6040516103349190612c30565b60405180910390f35b6103456113ac565b005b610361600480360381019061035c9190612cc1565b611454565b005b61036b6114a7565b6040516103789190612bd4565b60405180910390f35b6103896114b3565b60405161039e9998979695949392919061304d565b60405180910390f35b6103c160048036038101906103bc919061310d565b611631565b005b6103cb6116e5565b6040516103d89190612bd4565b60405180910390f35b6103fb60048036038101906103f69190612e26565b61170a565b005b610405611798565b005b610421600480360381019061041c9190612e26565b611849565b005b61043d60048036038101906104389190612cc1565b6118cf565b005b6104596004803603810190610454919061327d565b611947565b005b6000600260010160149054906101000a900464ffffffffff1664ffffffffff16905090565b6000600260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006002600101601e9054906101000a900460ff1660ff16905090565b6104d2611bb1565b6104da611c38565b600260030160009054906101000a900460ff16610552576001600260030160006101000a81548160ff021916908315150217905550610517611c9a565b61054d576040517fc4dffaed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610575565b6009600201601e9054906101000a900460ff161561057457610572611c9a565b505b5b565b60008060149054906101000a900460ff16905090565b6000600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105c2611bb1565b6105ca611e65565b6105d381611ea5565b600260010160196101000a81548164ffffffffff021916908364ffffffffff1602179055507f51c05df9b26498d8aacb73705841d08155abf0e88e37a735871e545bc27b38bb816040516106279190612bd4565b60405180910390a150565b61063a611efe565b6000600260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506009600001548714801561068857506009600201601e9054906101000a900460ff16155b80156106b15750600960020160199054906101000a900464ffffffffff1664ffffffffff164210155b15610a71576106be611f44565b6106c6611c9a565b506002800154861015610705576040517f3412a95300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161074292919061331c565b602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610783919061335a565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c09190612c30565b602060405180830381865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610801919061335a565b90508188118061081057508088115b15610847576040517fee578e1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166323b872dd33308c6040518463ffffffff1660e01b815260040161088693929190613387565b6020604051808303816000875af11580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906133d3565b905080610902576040517fee578e1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8585600960050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209182610953929190613617565b508860096001018190555033600960020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508787600960030160010191826109b9929190613617565b50600260010160149054906101000a900464ffffffffff16600960020160199054906101000a900464ffffffffff166109f29190613716565b64ffffffffff166009600301600001819055507f1282b1befc2db368f99c1cf2a1c664ea4194229df47ef36ac5e90e25d21f65c2600960000154338b6000600960020160199054906101000a900464ffffffffff168d8d8d8d604051610a60999897969594939291906137ad565b60405180910390a150505050611051565b8660096000015414610aaf576040517fb49aa3b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009600201601e9054906101000a900460ff1615610af9576040517f59ac355300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600960020160199054906101000a900464ffffffffff1664ffffffffff164210610b4f576040517f169f0a5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008603610b89576040517f9d36655100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600960020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600960010154905060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610bfa92919061331c565b602060405180830381865afa158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b919061335a565b905060008473ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610c789190612c30565b602060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb9919061335a565b9050818a1180610cc85750808a115b15610cff576040517fee578e1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d765760028001548a1015610d71576040517f3412a95300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dee565b600060646002600101601e9054906101000a900460ff1660ff1685610d9b919061382e565b610da5919061389f565b84610db091906138d0565b9050808b1015610dec576040517f9d36655100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60008573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308e6040518463ffffffff1660e01b8152600401610e2d93929190613387565b6020604051808303816000875af1158015610e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7091906133d3565b905080610ea9576040517fee578e1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8787600960050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209182610efa929190613617565b508a60096001018190555033600960020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898960096003016001019182610f60929190613617565b506000600260010160199054906101000a900464ffffffffff1664ffffffffff1642600960020160199054906101000a900464ffffffffff1664ffffffffff16031090508015610ff057600260010160199054906101000a900464ffffffffff1664ffffffffff164201600960020160196101000a81548164ffffffffff021916908364ffffffffff1602179055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561102d5750600085115b1561103d5761103c8686612406565b5b6110498d338e8461266d565b505050505050505b61105961283c565b505050505050565b611069611bb1565b6110736000612845565b565b61107d611bb1565b611085611e65565b600081036110bf576040517fea571c5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c881612909565b6002600101601e6101000a81548160ff021916908360ff1602179055507fcd58fcdd76cd6d79aae18c05de695bcef32879e60ed6f43485e19595dc34c8ab816040516111149190612bd4565b60405180910390a150565b6000600f60000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60098060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900464ffffffffff16908060020160199054906101000a900464ffffffffff169080600201601e9054906101000a900460ff169080600301604051806040016040529081600082015481526020016001820180546112169061343a565b80601f01602080910402602001604051908101604052809291908181526020018280546112429061343a565b801561128f5780601f106112645761010080835404028352916020019161128f565b820191906000526020600020905b81548152906001019060200180831161127257829003601f168201915b505050505081525050905087565b6060600960050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080546112ec9061343a565b80601f01602080910402602001604051908101604052809291908181526020018280546113189061343a565b80156113655780601f1061133a57610100808354040283529160200191611365565b820191906000526020600020905b81548152906001019060200180831161134857829003601f168201915b50505050509050919050565b611379611bb1565b61138161295e565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b4611efe565b6113bc611e65565b600f60000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611442576040517f97216fb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61144a611f44565b61145261283c565b565b61145c611bb1565b611464611e65565b8060028001819055507f5eff5bfbbcd368d29167922a6a1271d4872e0160b274c36bc5f5b5aff168f3718160405161149c9190612bd4565b60405180910390a150565b60006002800154905090565b60028060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900464ffffffffff16908060010160199054906101000a900464ffffffffff169080600101601e9054906101000a900460ff16908060020154908060030160009054906101000a900460ff169080600401604051806040016040529081600082015481526020016001820180546115849061343a565b80601f01602080910402602001604051908101604052809291908181526020018280546115b09061343a565b80156115fd5780601f106115d2576101008083540402835291602001916115fd565b820191906000526020600020905b8154815290600101906020018083116115e057829003601f168201915b505050505081525050908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905089565b611639611bb1565b80600f60000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fb5853e81e340898455a75d3e328cd81cf92f70bf88352a7f42d67c7af5f75861826040516116d99190612c66565b60405180910390a25050565b6000600260010160199054906101000a900464ffffffffff1664ffffffffff16905090565b611712611bb1565b61171a611e65565b80600260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d18160405161178d9190612c30565b60405180910390a150565b6117a0611efe565b6117a86129c1565b600f60000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661182e576040517f97216fb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611836611f44565b61183e611c9a565b5061184761283c565b565b611851611bb1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118c35760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016118ba9190612c30565b60405180910390fd5b6118cc81612845565b50565b6118d7611bb1565b6118df611e65565b6118e881611ea5565b600260010160146101000a81548164ffffffffff021916908364ffffffffff1602179055507f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac58160405161193c9190612bd4565b60405180910390a150565b61194f611efe565b6119576129c1565b600f60000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119dd576040517f97216fb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009600201601e9054906101000a900460ff1615611a27576040517f59ac355300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600960020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006009600101549050838015611a955750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa15750600081115b15611ab157611ab08282612406565b5b85600960020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460096003016001019081611b0a9190613904565b5082600960050160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209081611b5a9190613904565b507ffa10b5193462413a3274814eebd8708a467ab25619b3ba3c0e68091edb81d2006009600001548388848888604051611b99969594939291906139d6565b60405180910390a15050611bab61283c565b50505050565b611bb9612a02565b73ffffffffffffffffffffffffffffffffffffffff16611bd7611383565b73ffffffffffffffffffffffffffffffffffffffff1614611c3657611bfa612a02565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611c2d9190612c30565b60405180910390fd5b565b611c40611e65565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611c83612a02565b604051611c909190612c30565b60405180910390a1565b6000600160096000016000828254611cb291906138d0565b9250508190555060004290506000600260010160149054906101000a900464ffffffffff1664ffffffffff168201905081600960020160146101000a81548164ffffffffff021916908364ffffffffff16021790555080600960020160196101000a81548164ffffffffff021916908364ffffffffff16021790555060006009600101819055506000600960020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009600201601e6101000a81548160ff021916908315150217905550600260010160149054906101000a900464ffffffffff1664ffffffffff1681611dc591906138d0565b6009600301600001819055506040518060400160405280600281526020017f307800000000000000000000000000000000000000000000000000000000000081525060096003016001019081611e1b9190613904565b507fd6eddd1118d71820909c1197aa966dbc15ed6f508554252169cc3d5ccac756ca6009600001548383604051611e5493929190613a3e565b60405180910390a160019250505090565b611e6d610577565b611ea3576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600064ffffffffff8016821115611ef6576028826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611eed929190613ab0565b60405180910390fd5b819050919050565b600260015403611f3a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b6000600990506009600201601e9054906101000a900460ff1615611f94576040517f59ac355300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160020160149054906101000a900464ffffffffff1664ffffffffff1603611fe9576040517e60576d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160199054906101000a900464ffffffffff1664ffffffffff1642101561203f576040517f6a6f657d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016009600201601e6101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121d95760008160010154905060008114612182576000600260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161212b9190612c30565b602060405180830381865afa158015612148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216c919061335a565b905082811061217f5761217e83612a0a565b5b50505b600260010160149054906101000a900464ffffffffff1664ffffffffff16426121ab91906138d0565b60026004016000018190555081600301600101600260040160010190816121d29190613b04565b5050612233565b60006002600401600001819055506040518060400160405280600281526020017f3078000000000000000000000000000000000000000000000000000000000000815250600260040160010190816122319190613904565b505b6000604051806020016040528060008152509050600073ffffffffffffffffffffffffffffffffffffffff168260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461239157600960050160008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080546123109061343a565b80601f016020809104026020016040519081016040528092919081815260200182805461233c9061343a565b80156123895780601f1061235e57610100808354040283529160200191612389565b820191906000526020600020905b81548152906001019060200180831161236c57829003601f168201915b505050505090505b7fb12ca247723723b2ef77684627fb8921da5c3a2c72620339f3958eb15e51e06982600001548360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846001015485600301600101856040516123fa959493929190613c70565b60405180910390a15050565b6000810315612669576000600260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124749190612c30565b602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061335a565b9050828110156124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f190613d1d565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1661c35063a9059cbb60e01b8888604051602401612532929190613d3d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161259c9190613dad565b60006040518083038160008787f1925050503d80600081146125da576040519150601f19603f3d011682016040523d82523d6000602084013e6125df565b606091505b50915091508115806126105750600081511415801561260f57508080602001905181019061260d91906133d3565b155b5b15612664578573ffffffffffffffffffffffffffffffffffffffff167f1469dedbe97a634ed62eda0e28633c10e232f4d2ae037854efce50d9c7bb74a58660405161265b9190613e10565b60405180910390a25b505050505b5050565b60006009905060008160020160199054906101000a900464ffffffffff16905060008260030160010180546126a19061343a565b80601f01602080910402602001604051908101604052809291908181526020018280546126cd9061343a565b801561271a5780601f106126ef5761010080835404028352916020019161271a565b820191906000526020600020905b8154815290600101906020018083116126fd57829003601f168201915b5050505050905060008360050160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805461276f9061343a565b80601f016020809104026020016040519081016040528092919081815260200182805461279b9061343a565b80156127e85780601f106127bd576101008083540402835291602001916127e8565b820191906000526020600020905b8154815290600101906020018083116127cb57829003601f168201915b505050505090507f1282b1befc2db368f99c1cf2a1c664ea4194229df47ef36ac5e90e25d21f65c28888888887878760405161282a9796959493929190613e3e565b60405180910390a15050505050505050565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060ff8016821115612956576008826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161294d929190613ef6565b60405180910390fd5b819050919050565b6129666129c1565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586129aa612a02565b6040516129b79190612c30565b60405180910390a1565b6129c9610577565b15612a00576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b6000810315612bb8576000600260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff1661c35063a9059cbb60e01b600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687604051602401612a9a929190613d3d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612b049190613dad565b60006040518083038160008787f1925050503d8060008114612b42576040519150601f19603f3d011682016040523d82523d6000602084013e612b47565b606091505b5091509150818015612b755750600081511480612b74575080806020019051810190612b7391906133d3565b5b5b612bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bab90613f6b565b60405180910390fd5b5050505b50565b6000819050919050565b612bce81612bbb565b82525050565b6000602082019050612be96000830184612bc5565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1a82612bef565b9050919050565b612c2a81612c0f565b82525050565b6000602082019050612c456000830184612c21565b92915050565b60008115159050919050565b612c6081612c4b565b82525050565b6000602082019050612c7b6000830184612c57565b92915050565b6000604051905090565b600080fd5b600080fd5b612c9e81612bbb565b8114612ca957600080fd5b50565b600081359050612cbb81612c95565b92915050565b600060208284031215612cd757612cd6612c8b565b5b6000612ce584828501612cac565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d1357612d12612cee565b5b8235905067ffffffffffffffff811115612d3057612d2f612cf3565b5b602083019150836001820283011115612d4c57612d4b612cf8565b5b9250929050565b60008060008060008060808789031215612d7057612d6f612c8b565b5b6000612d7e89828a01612cac565b9650506020612d8f89828a01612cac565b955050604087013567ffffffffffffffff811115612db057612daf612c90565b5b612dbc89828a01612cfd565b9450945050606087013567ffffffffffffffff811115612ddf57612dde612c90565b5b612deb89828a01612cfd565b92509250509295509295509295565b612e0381612c0f565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b600060208284031215612e3c57612e3b612c8b565b5b6000612e4a84828501612e11565b91505092915050565b600064ffffffffff82169050919050565b612e6d81612e53565b82525050565b612e7c81612bbb565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ebc578082015181840152602081019050612ea1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ee482612e82565b612eee8185612e8d565b9350612efe818560208601612e9e565b612f0781612ec8565b840191505092915050565b6000604083016000830151612f2a6000860182612e73565b5060208301518482036020860152612f428282612ed9565b9150508091505092915050565b600060e082019050612f64600083018a612bc5565b612f716020830189612bc5565b612f7e6040830188612c21565b612f8b6060830187612e64565b612f986080830186612e64565b612fa560a0830185612c57565b81810360c0830152612fb78184612f12565b905098975050505050505050565b600082825260208201905092915050565b6000612fe182612e82565b612feb8185612fc5565b9350612ffb818560208601612e9e565b61300481612ec8565b840191505092915050565b600060208201905081810360008301526130298184612fd6565b905092915050565b600060ff82169050919050565b61304781613031565b82525050565b600061012082019050613063600083018c612c21565b613070602083018b612c21565b61307d604083018a612e64565b61308a6060830189612e64565b613097608083018861303e565b6130a460a0830187612bc5565b6130b160c0830186612c57565b81810360e08301526130c38185612f12565b90506130d3610100830184612c21565b9a9950505050505050505050565b6130ea81612c4b565b81146130f557600080fd5b50565b600081359050613107816130e1565b92915050565b6000806040838503121561312457613123612c8b565b5b600061313285828601612e11565b9250506020613143858286016130f8565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61318a82612ec8565b810181811067ffffffffffffffff821117156131a9576131a8613152565b5b80604052505050565b60006131bc612c81565b90506131c88282613181565b919050565b600067ffffffffffffffff8211156131e8576131e7613152565b5b6131f182612ec8565b9050602081019050919050565b82818337600083830152505050565b600061322061321b846131cd565b6131b2565b90508281526020810184848401111561323c5761323b61314d565b5b6132478482856131fe565b509392505050565b600082601f83011261326457613263612cee565b5b813561327484826020860161320d565b91505092915050565b6000806000806080858703121561329757613296612c8b565b5b60006132a587828801612e11565b945050602085013567ffffffffffffffff8111156132c6576132c5612c90565b5b6132d28782880161324f565b93505060406132e3878288016130f8565b925050606085013567ffffffffffffffff81111561330457613303612c90565b5b6133108782880161324f565b91505092959194509250565b60006040820190506133316000830185612c21565b61333e6020830184612c21565b9392505050565b60008151905061335481612c95565b92915050565b6000602082840312156133705761336f612c8b565b5b600061337e84828501613345565b91505092915050565b600060608201905061339c6000830186612c21565b6133a96020830185612c21565b6133b66040830184612bc5565b949350505050565b6000815190506133cd816130e1565b92915050565b6000602082840312156133e9576133e8612c8b565b5b60006133f7848285016133be565b91505092915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061345257607f821691505b6020821081036134655761346461340b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026134cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613490565b6134d78683613490565b95508019841693508086168417925050509392505050565b6000819050919050565b600061351461350f61350a84612bbb565b6134ef565b612bbb565b9050919050565b6000819050919050565b61352e836134f9565b61354261353a8261351b565b84845461349d565b825550505050565b600090565b61355761354a565b613562818484613525565b505050565b5b818110156135865761357b60008261354f565b600181019050613568565b5050565b601f8211156135cb5761359c8161346b565b6135a584613480565b810160208510156135b4578190505b6135c86135c085613480565b830182613567565b50505b505050565b600082821c905092915050565b60006135ee600019846008026135d0565b1980831691505092915050565b600061360783836135dd565b9150826002028217905092915050565b6136218383613400565b67ffffffffffffffff81111561363a57613639613152565b5b613644825461343a565b61364f82828561358a565b6000601f83116001811461367e576000841561366c578287013590505b61367685826135fb565b8655506136de565b601f19841661368c8661346b565b60005b828110156136b45784890135825560018201915060208501945060208101905061368f565b868310156136d157848901356136cd601f8916826135dd565b8355505b6001600288020188555050505b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061372182612e53565b915061372c83612e53565b9250828201905064ffffffffff811115613749576137486136e7565b5b92915050565b600061376a61376561376084612e53565b6134ef565b612bbb565b9050919050565b61377a8161374f565b82525050565b600061378c8385612fc5565b93506137998385846131fe565b6137a283612ec8565b840190509392505050565b600060e0820190506137c2600083018c612bc5565b6137cf602083018b612c21565b6137dc604083018a612bc5565b6137e96060830189612c57565b6137f66080830188613771565b81810360a0830152613809818688613780565b905081810360c083015261381e818486613780565b90509a9950505050505050505050565b600061383982612bbb565b915061384483612bbb565b925082820261385281612bbb565b91508282048414831517613869576138686136e7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138aa82612bbb565b91506138b583612bbb565b9250826138c5576138c4613870565b5b828204905092915050565b60006138db82612bbb565b91506138e683612bbb565b92508282019050808211156138fe576138fd6136e7565b5b92915050565b61390d82612e82565b67ffffffffffffffff81111561392657613925613152565b5b613930825461343a565b61393b82828561358a565b600060209050601f83116001811461396e576000841561395c578287015190505b61396685826135fb565b8655506139ce565b601f19841661397c8661346b565b60005b828110156139a45784890151825560018201915060208501945060208101905061397f565b868310156139c157848901516139bd601f8916826135dd565b8355505b6001600288020188555050505b505050505050565b600060c0820190506139eb6000830189612bc5565b6139f86020830188612c21565b613a056040830187612c21565b613a126060830186612bc5565b613a1f6080830185612c57565b81810360a0830152613a318184612fd6565b9050979650505050505050565b6000606082019050613a536000830186612bc5565b613a606020830185612bc5565b613a6d6040830184612bc5565b949350505050565b6000819050919050565b6000613a9a613a95613a9084613a75565b6134ef565b613031565b9050919050565b613aaa81613a7f565b82525050565b6000604082019050613ac56000830185613aa1565b613ad26020830184612bc5565b9392505050565b600081549050613ae88161343a565b9050919050565b60008190508160005260206000209050919050565b818103613b12575050613bea565b613b1b82613ad9565b67ffffffffffffffff811115613b3457613b33613152565b5b613b3e825461343a565b613b4982828561358a565b6000601f831160018114613b785760008415613b66578287015490505b613b7085826135fb565b865550613be3565b601f198416613b8687613aef565b9650613b918661346b565b60005b82811015613bb957848901548255600182019150600185019450602081019050613b94565b86831015613bd65784890154613bd2601f8916826135dd565b8355505b6001600288020188555050505b5050505050505b565b60008154613bf98161343a565b613c038186612fc5565b94506001821660008114613c1e5760018114613c3457613c67565b60ff198316865281151560200286019350613c67565b613c3d8561346b565b60005b83811015613c5f57815481890152600182019150602081019050613c40565b808801955050505b50505092915050565b600060a082019050613c856000830188612bc5565b613c926020830187612c21565b613c9f6040830186612bc5565b8181036060830152613cb18185613bec565b90508181036080830152613cc58184612fd6565b90509695505050505050565b7f496e73756666696369656e7420636f6e74726163742062616c616e6365000000600082015250565b6000613d07601d83612fc5565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b6000604082019050613d526000830185612c21565b613d5f6020830184612bc5565b9392505050565b600081519050919050565b600081905092915050565b6000613d8782613d66565b613d918185613d71565b9350613da1818560208601612e9e565b80840191505092915050565b6000613db98284613d7c565b915081905092915050565b7f5553444320746f6b656e207472616e73666572206661696c6564000000000000600082015250565b6000613dfa601a83612fc5565b9150613e0582613dc4565b602082019050919050565b6000604082019050613e256000830184612bc5565b8181036020830152613e3681613ded565b905092915050565b600060e082019050613e53600083018a612bc5565b613e606020830189612c21565b613e6d6040830188612bc5565b613e7a6060830187612c57565b613e876080830186613771565b81810360a0830152613e998185612fd6565b905081810360c0830152613ead8184612fd6565b905098975050505050505050565b6000819050919050565b6000613ee0613edb613ed684613ebb565b6134ef565b613031565b9050919050565b613ef081613ec5565b82525050565b6000604082019050613f0b6000830185613ee7565b613f186020830184612bc5565b9392505050565b7f5472656173757279207472616e73666572206661696c65640000000000000000600082015250565b6000613f55601883612fc5565b9150613f6082613f1f565b602082019050919050565b60006020820190508181036000830152613f8481613f48565b905091905056fea26469706673582212207d61e7fd471ad48f394f27c63932501c365c464265c0db5ee4043ca16a194f5064736f6c63430008140033000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000f4240