6.6k txs
6.7k calls
constructor
constructor(address _erc20Address, uint256 fee, uint256 cancellationFee, address feeRecipient)
functions
auctionCancellationFee
viewfunction auctionCancellationFee() view returns (uint256)
auctionFee
viewfunction auctionFee() view returns (uint256)
auctionFeeRecipient
viewfunction auctionFeeRecipient() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
erc20Address
viewfunction erc20Address() view returns (address)
getAuction
viewfunction getAuction(string id) view returns (tuple)
getAuctions
viewfunction getAuctions(string[] ids) view returns (tuple[])
getOpenAuctions
viewfunction getOpenAuctions() view returns (string[])
getOpenAuctionsPg
viewfunction getOpenAuctionsPg(uint256 _page, uint256 _size) view returns (string[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
idNonce
viewfunction idNonce() view returns (uint256)
listingOpen
viewfunction listingOpen() view returns (bool)
maxAuctionDuration
viewfunction maxAuctionDuration() view returns (uint256)
minAuctionDuration
viewfunction minAuctionDuration() view returns (uint256)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
STORE_ADMIN_ROLE
viewfunction STORE_ADMIN_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TREASURY_ROLE
viewfunction TREASURY_ROLE() view returns (bytes32)
addNFT
nonpayablefunction addNFT(address _nft)
bid
nonpayablefunction bid(string id, uint256 bidValue)
cancelAllAuctions
nonpayablefunction cancelAllAuctions()
cancelAuction
nonpayablefunction cancelAuction(string id)
createAuction
nonpayablefunction createAuction(bool isErc721, address nftAddress, uint256 tokenId, uint256 amount, uint256 endedAt, uint256 basePrice)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
massSettleAuctions
nonpayablefunction massSettleAuctions(string[] _ids)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
pause
nonpayablefunction pause()
pauseListings
nonpayablefunction pauseListings()
removeNFT
nonpayablefunction removeNFT(address _nft)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resumeListings
nonpayablefunction resumeListings()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAuctionFee
nonpayablefunction setAuctionFee(uint256 fee)
setAuctionFeeRecipient
nonpayablefunction setAuctionFeeRecipient(address recipient)
setCancellationFee
nonpayablefunction setCancellationFee(uint256 fee)
setListingDuration
nonpayablefunction setListingDuration(uint256 min, uint256 max)
settleAuction
nonpayablefunction settleAuction(string id)
unpause
nonpayablefunction unpause()
events
AuctionBid
event AuctionBid(address indexed buyer, uint256 indexed amount, string id)
AuctionCancelled
event AuctionCancelled(string id)
AuctionCreated
event AuctionCreated(bool indexed isErc721, address indexed nftAddress, uint256 indexed tokenId, string id, uint256 amount, uint256 endedAt, uint256 basePrice)
AuctionFeeChanged
event AuctionFeeChanged(uint256 fee)
AuctionSettled
event AuctionSettled(string id)
CancellationFeeChanged
event CancellationFeeChanged(uint256 fee)
ListingDurationChanged
event ListingDurationChanged(uint256 min, uint256 max)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TreasuryChanged
event TreasuryChanged(address treasurer)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a06040526007805460ff191660011790556000600a5561012c600b5562069780600c553480156200003057600080fd5b5060405162003fef38038062003fef8339810160408190526200005391620002ef565b6001805460ff191681556002556001600160a01b038116620000bc5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420526563697069656e7420416464726573730000000000000060448201526064015b60405180910390fd5b6001600160a01b038416620001145760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420546f6b656e206164647265737300000000000000000000006044820152606401620000b3565b6127108310620001675760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642041756374696f6e20466565000000000000000000000000006044820152606401620000b3565b6008839055600d80546001600160a01b0319166001600160a01b038381169190911790915560098390558416608052620001a360003362000231565b620001cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000231565b620001fb7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d33362000231565b620002277fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca93362000231565b505050506200033a565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002ce576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200028d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b0381168114620002ea57600080fd5b919050565b600080600080608085870312156200030657600080fd5b6200031185620002d2565b935060208501519250604085015191506200032f60608601620002d2565b905092959194509250565b608051613c76620003796000396000818161037401528181610f2901528181611c81015281816123f601528181612430015261246b0152613c766000f3fe608060405234801561001057600080fd5b50600436106102d35760003560e01c80638287bfc111610186578063b60e7a3b116100e3578063d547741f11610097578063f23a6e6111610071578063f23a6e6114610666578063f3d6864b1461069e578063f59e754c146106a657600080fd5b8063d547741f1461060c578063e63ab1e91461061f578063edd818491461064657600080fd5b8063c657e299116100c8578063c657e299146105b6578063cb7b9c23146105be578063d11a57ec146105e557600080fd5b8063b60e7a3b1461053a578063bc197c811461054d57600080fd5b806396c0c8101161013a578063a217fddf1161011f578063a217fddf14610517578063aff654151461051f578063b05940f21461053257600080fd5b806396c0c810146104f7578063a13d4e6b1461050457600080fd5b806384d6ea5d1161016b57806384d6ea5d146104a4578063876abfdf146104ad57806391d14854146104c057600080fd5b80638287bfc1146104895780638456cb591461049c57600080fd5b80633bc621b21161023457806354134876116101e85780635f483313116101cd5780635f4833131461045b5780636a3c12e31461046e5780638261ccb51461047657600080fd5b806354134876146104475780635c975abb1461045057600080fd5b80633f4ba83a116102195780633f4ba83a1461042357806348c9581e1461042b5780634c83cc141461043457600080fd5b80633bc621b2146104075780633eac3f851461041057600080fd5b8063276184ae1161028b5780632dd10ad3116102705780632dd10ad3146103ce5780632f2ff15d146103e157806336568abe146103f457600080fd5b8063276184ae1461036f57806327d63be4146103ae57600080fd5b80630ed642d0116102bc5780630ed642d01461032057806314525b6b14610335578063248a9ca31461034c57600080fd5b806301ffc9a7146102d857806302845f8614610300575b600080fd5b6102eb6102e6366004613074565b6106b9565b60405190151581526020015b60405180910390f35b61031361030e3660046131aa565b610752565b6040516102f791906132d6565b61033361032e366004613341565b610864565b005b61033e60085481565b6040519081526020016102f7565b61033e61035a36600461335c565b60009081526020819052604090206001015490565b6103967f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f7565b6103c16103bc366004613375565b6108b0565b6040516102f791906133e7565b6103336103dc36600461335c565b610ab6565b6103336103ef366004613467565b610b1d565b610333610402366004613467565b610b47565b61033e60095481565b61033361041e366004613341565b610bd3565b610333610cb9565b61033e600c5481565b600d54610396906001600160a01b031681565b61033e600b5481565b60015460ff166102eb565b610333610469366004613493565b610cee565b6103336110e1565b610333610484366004613375565b61111b565b610333610497366004613341565b6111dc565b61033361122b565b61033e600a5481565b6103336104bb3660046134e6565b61125d565b6102eb6104ce366004613467565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6007546102eb9060ff1681565b61033361051236600461353d565b6116b4565b61033e600081565b61033361052d3660046131aa565b6118c9565b6103c1611909565b61033361054836600461353d565b6119e2565b61058561055b3660046135d8565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102f7565b610333611d40565b61033e7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d381565b61033e7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca981565b61033361061a366004613467565b611e8e565b61033e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61065961065436600461353d565b611eb3565b6040516102f79190613682565b610585610674366004613691565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b610333611fcf565b6103336106b436600461335c565b612006565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60608060005b835181101561085d5760006003858381518110610777576107776136f6565b602002602001015160405161078c9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff161515928201929092526002820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015490921660e0830152600701546101008201528351909150819084908490811061083f5761083f6136f6565b602090810291909101015250610856816001613770565b9050610758565b5092915050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d361088e816120b6565b506001600160a01b03166000908152600460205260409020805460ff19169055565b6060600083116109075760405162461bcd60e51b815260206004820152601b60248201527f50616765206e6565647320746f2062652031206f722061626f7665000000000060448201526064015b60405180910390fd5b6000826109148582613783565b61091e919061379a565b600654909150158061093d575060065461093a9060019061379a565b81115b1561094c57506060905061074c565b60008367ffffffffffffffff811115610967576109676130b6565b60405190808252806020026020018201604052801561099a57816020015b60608152602001906001900390816109855790505b50905060005b6109aa8686613783565b831015610aad576006546109c09060019061379a565b831015610a8f57600683815481106109da576109da6136f6565b9060005260206000200180546109ef906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1b906137ad565b8015610a685780601f10610a3d57610100808354040283529160200191610a68565b820191906000526020600020905b815481529060010190602001808311610a4b57829003601f168201915b5050505050828281518110610a7f57610a7f6136f6565b6020026020010181905250610a94565b610aad565b80610a9e81613800565b60019094019391506109a09050565b50949350505050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3610ae0816120b6565b60098290556040518281527fd4c022413c9b90dba141b25a18a495d982fc551d9019f9fbed44032fca693e1b906020015b60405180910390a15050565b600082815260208190526040902060010154610b38816120b6565b610b4283836120c0565b505050565b6001600160a01b0381163314610bc55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108fe565b610bcf828261215e565b5050565b7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca9610bfd816120b6565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420526563697069656e7420416464726573730000000000000060448201526064016108fe565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040519081527fc714d22a2f08b695f81e7c707058db484aa5b4d6b4c9fd64beb10fe85832f60890602001610b11565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610ce3816120b6565b610ceb6121dd565b50565b610cf661222f565b610cfe612284565b6000600383604051610d109190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff1615159282019290925260028201546060820152600382015460808201819052600483015460a0830152600583015460c0830152600683015490931660e082015260079091015461010082015291504210610e245760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e2068617320616c726561647920656e6465642e20556e61626c60448201527f6520746f2070726f63657373206269642e2041626f7274696e672e000000000060648201526084016108fe565b60008211610e745760405162461bcd60e51b815260206004820152601960248201527f5a65726f206269647320617265206e6f7420616c6c6f7765640000000000000060448201526064016108fe565b6000610e946101f4836101000151610e8c9190613783565b6127106122db565b905080826101000151610ea79190613770565b831015610f1c5760405162461bcd60e51b815260206004820152603560248201527f42696420697320736d616c6c6572207468616e2074686520726571756972656460448201527f20696e6372656d656e742e2041626f7274696e672e000000000000000000000060648201526084016108fe565b610f516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612313565b60e08201516001600160a01b031615801590610f71575061010082015115155b15610f8b57610f8b8261010001518360e0015160006123c4565b61010082018390523360e08301526040518290600390610fac908790613725565b9081526040805160209281900383018120845181547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b0392831617835594860151600183018054958801519183167fffffffffffffffffffffff00000000000000000000000000000000000000000090961695909517740100000000000000000000000000000000000000009115159190910217909355606085015160028201556080850151600382015560a0850151600482015560c0850151600582015560e085015160068201805490951693169290921790925561010090920151600790920191909155839033907f404d5f135c85f24fa52ef59254b87aaee6e59b6512323e308e5e3c7d997f4bfd906110cd90889061381a565b60405180910390a35050610bcf6001600255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61110b816120b6565b506007805460ff19166001179055565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611145816120b6565b8183106111945760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206475726174696f6e207265737472696374696f6e7300000060448201526064016108fe565b600b839055600c82905560408051848152602081018490527f61364495025201801dba8278a9189f5a623ca2cf81ce8939d40bb3d446a8f814910160405180910390a1505050565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611206816120b6565b506001600160a01b03166000908152600460205260409020805460ff19166001179055565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611255816120b6565b610ceb612492565b61126561222f565b60075460ff16806112a457503360009081527f918634b9d02c6d89079c6cfc37ad480a03e9d52baa7558e174af459066c400dc602052604090205460ff165b6112f05760405162461bcd60e51b815260206004820152601760248201527f4e6577206c697374696e6773206172652070617573656400000000000000000060448201526064016108fe565b6112f8612284565b6000611303856124cd565b61130c846124cd565b611317600a546124cd565b6040516020016113299392919061382d565b604051602081830303815290604052905060038160405161134a9190613725565b9081526020016040518091039020600401546000146113d15760405162461bcd60e51b815260206004820152602e60248201527f41756374696f6e20616c7265616479206578697374656420666f72206375727260448201527f656e742061756374696f6e20496400000000000000000000000000000000000060648201526084016108fe565b6001600160a01b03861660009081526004602052604090205460ff166114395760405162461bcd60e51b815260206004820152601960248201527f4e465420756e617574686f72697a656420666f722073616c650000000000000060448201526064016108fe565b600b546114469042613770565b8311801561145f5750600c5461145c9042613770565b83105b6114ab5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642041756374696f6e204475726174696f6e000000000000000060448201526064016108fe565b6114b8878733888861256d565b600580546001908101909155600a8054909101905560408051610120810182523381526001600160a01b03881660208201528815158183015260608101879052608081018590524260a082015260c08101869052600060e082015261010081018490529051819060039061152d908590613725565b90815260408051918290036020908101909220835181546001600160a01b039182167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178355938501516001808401805495880151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090961692841692909217949094179055606085015160028301556080850151600383015560a0850151600483015560c0850151600583015560e085015160068084018054929093169190951617905561010090930151600790930192909255805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0161165483826138e9565b5085876001600160a01b03168915157f849a7ec157ad4cb8d184fb112dd04d1ad942cd83b2f1e92e60613462f553018e8589898960405161169894939291906139a9565b60405180910390a450506116ac6001600255565b505050505050565b6116bc612284565b60006003826040516116ce9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff1615159282019290925260028201546060820152600382015460808201819052600483015460a0830152600583015460c0830152600683015490931660e082015260079091015461010082015291504211801561177f5750608081015115155b6117f15760405162461bcd60e51b815260206004820152603360248201527f41756374696f6e2063616e277420626520736574746c6564206265666f72652060448201527f697420726561636865732074686520656e642e0000000000000000000000000060648201526084016108fe565b6040810151602082015160c0830151606084015161010085015160e08601516001600160a01b0381166118345761182f8686896000015186886126e8565b611841565b61184186868386886126e8565b6001600160a01b0381161580159061185857508115155b1561186d5761186d82886000015160016123c4565b611876886127aa565b600580546000190190556040517fafdc429d8d197c8769e7a13a5bcd959b9f8dade051086aac5fbcba8e8d7f3a5e906118b0908a9061381a565b60405180910390a150505050505050610ceb6001600255565b60005b8151811015610bcf576118f78282815181106118ea576118ea6136f6565b60200260200101516116b4565b611902816001613770565b90506118cc565b60606006805480602002602001604051908101604052809291908181526020016000905b828210156119d957838290600052602060002001805461194c906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611978906137ad565b80156119c55780601f1061199a576101008083540402835291602001916119c5565b820191906000526020600020905b8154815290600101906020018083116119a857829003601f168201915b50505050508152602001906001019061192d565b50505050905090565b6119ea612284565b60006003826040516119fc9190613725565b9081526040805191829003602090810183206101208401835280546001600160a01b03908116855260018201548082168487015260ff7401000000000000000000000000000000000000000090910481161515868601526002830154606087015260038301546080870152600483015460a0870152600583015460c08701526006830154821660e08701526007909201546101008601523360009081527f918634b9d02c6d89079c6cfc37ad480a03e9d52baa7558e174af459066c400dc90935292909120548351939450169116611b3c5760405162461bcd60e51b815260206004820152602560248201527f41756374696f6e20697320616c726561647920736574746c65642e2041626f7260448201527f74696e672e00000000000000000000000000000000000000000000000000000060648201526084016108fe565b81516001600160a01b0316331480611b515750805b611bc35760405162461bcd60e51b815260206004820152603e60248201527f41756374696f6e2063616e27742062652063616e63656c6c65642c206f6e6c7960448201527f2062792073656c6c6572206f722061646d696e2e2041626f7274696e672e000060648201526084016108fe565b60e08201516001600160a01b03161580611bda5750805b611c4c5760405162461bcd60e51b815260206004820152603560248201527f41756374696f6e2063616e27742062652063616e63656c6c656420776974682060448201527f616374697665206269642e2041626f7274696e672e000000000000000000000060648201526084016108fe565b6040820151602083015160c0840151606085015161010086015160e087015186611cab57600954611cab906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169033903090612313565b611cbc86868a6000015186886126e8565b6001600160a01b03811615801590611cd357508115155b15611ce457611ce4828260006123c4565b60058054600019019055611cf7896127aa565b7f8491f144dda005dc8140735549d904900585c1cbe24e47da9dcbf67a8b7233d589604051611d26919061381a565b60405180910390a15050505050505050610ceb6001600255565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3611d6a816120b6565b60065480611dba5760405162461bcd60e51b815260206004820152601060248201527f4e6f206f70656e2061756374696f6e730000000000000000000000000000000060448201526064016108fe565b6060815b8015611e88576006611dd160018361379a565b81548110611de157611de16136f6565b906000526020600020018054611df6906137ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611e22906137ad565b8015611e6f5780601f10611e4457610100808354040283529160200191611e6f565b820191906000526020600020905b815481529060010190602001808311611e5257829003601f168201915b50505050509150611e7f826119e2565b60001901611dbe565b50505050565b600082815260208190526040902060010154611ea9816120b6565b610b42838361215e565b611f1f60405180610120016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000151581526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081525090565b600382604051611f2f9190613725565b90815260408051602092819003830181206101208201835280546001600160a01b0390811683526001820154808216958401959095527401000000000000000000000000000000000000000090940460ff161515928201929092526002820154606082015260038201546080820152600482015460a0820152600582015460c0820152600682015490921660e08301526007015461010082015292915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611ff9816120b6565b506007805460ff19169055565b7fd33ef51e3959720bc2ec8f81d4fdc2ae7bbab96194e0ea53925409204d8cc6d3612030816120b6565b61271082106120815760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642041756374696f6e204665650000000000000000000000000060448201526064016108fe565b60088290556040518281527fec7394e8821e6f8bc7f15d16250718803f808e06e4627ebba8b48fa6413aec4790602001610b11565b610ceb813361296c565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610bcf576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561211a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610bcf576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6121e56129df565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60015460ff16156122825760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016108fe565b565b60028054036122d55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108fe565b60028055565b6000821561230957816122ef60018561379a565b6122f991906139d8565b612304906001613770565b61230c565b60005b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611e889085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612a31565b6000612710600854856123d79190613783565b6123e191906139d8565b9050811561245e5761241f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684838703612b19565b600d54612459906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683612b19565b611e88565b611e886001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486612b19565b61249a61222f565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612212565b606060006124da83612b62565b600101905060008167ffffffffffffffff8111156124fa576124fa6130b6565b6040519080825280601f01601f191660200182016040528015612524576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461252e57509392505050565b8461265e57600081116125c25760405162461bcd60e51b815260206004820152601460248201527f496e76616c696420546f6b656e20416d6f756e7400000000000000000000000060448201526064016108fe565b6040517ff242432a0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152306024830152604482018490526064820183905260a06084830152600060a483015285169063f242432a9060c4015b600060405180830381600087803b15801561264157600080fd5b505af1158015612655573d6000803e3d6000fd5b505050506126e1565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152306024830152604482018490528516906323b872dd906064015b600060405180830381600087803b1580156126c857600080fd5b505af11580156126dc573d6000803e3d6000fd5b505050505b5050505050565b84612756576040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018490526064820183905260a06084830152600060a483015285169063f242432a9060c401612627565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152604482018490528516906323b872dd906064016126ae565b60065460005b818110156128c657826040516020016127c99190613725565b60405160208183030381529060405280519060200120600682815481106127f2576127f26136f6565b9060005260206000200160405160200161280c9190613a13565b60405160208183030381529060405280519060200120036128be5761283260018361379a565b811461288a57600661284560018461379a565b81548110612855576128556136f6565b9060005260206000200160068281548110612872576128726136f6565b9060005260206000200190816128889190613a89565b505b600680548061289b5761289b613b5c565b6001900381819060005260206000200160006128b79190613026565b90556128c6565b6001016127b0565b506003826040516128d79190613725565b90815260405190819003602001902080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180547fffffffffffffffffffffff0000000000000000000000000000000000000000001690556000600283018190556003830181905560048301819055600583018190556006830180549092169091556007909101555050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610bcf5761299d81612c44565b6129a8836020612c56565b6040516020016129b9929190613b8b565b60408051601f198184030181529082905262461bcd60e51b82526108fe9160040161381a565b60015460ff166122825760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108fe565b6000612a86826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e7f9092919063ffffffff16565b9050805160001480612aa7575080806020019051810190612aa79190613c0c565b610b425760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016108fe565b6040516001600160a01b038316602482015260448101829052610b429084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401612360565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612bab577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612bd7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612bf557662386f26fc10000830492506010015b6305f5e1008310612c0d576305f5e100830492506008015b6127108310612c2157612710830492506004015b60648310612c33576064830492506002015b600a831061074c5760010192915050565b606061074c6001600160a01b03831660145b60606000612c65836002613783565b612c70906002613770565b67ffffffffffffffff811115612c8857612c886130b6565b6040519080825280601f01601f191660200182016040528015612cb2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612ce957612ce96136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d4c57612d4c6136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d88846002613783565b612d93906001613770565b90505b6001811115612e30577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dd457612dd46136f6565b1a60f81b828281518110612dea57612dea6136f6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e2981613c29565b9050612d96565b50831561230c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108fe565b6060612e8e8484600085612e96565b949350505050565b606082471015612f0e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016108fe565b600080866001600160a01b03168587604051612f2a9190613725565b60006040518083038185875af1925050503d8060008114612f67576040519150601f19603f3d011682016040523d82523d6000602084013e612f6c565b606091505b5091509150612f7d87838387612f88565b979650505050505050565b60608315612ff7578251600003612ff0576001600160a01b0385163b612ff05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108fe565b5081612e8e565b612e8e838381511561300c5781518083602001fd5b8060405162461bcd60e51b81526004016108fe919061381a565b508054613032906137ad565b6000825580601f10613042575050565b601f016020900490600052602060002090810190610ceb91905b80821115613070576000815560010161305c565b5090565b60006020828403121561308657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461230c57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561310e5761310e6130b6565b604052919050565b600067ffffffffffffffff821115613130576131306130b6565b5060051b60200190565b600082601f83011261314b57600080fd5b813567ffffffffffffffff811115613165576131656130b6565b6131786020601f19601f840116016130e5565b81815284602083860101111561318d57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208083850312156131bd57600080fd5b823567ffffffffffffffff808211156131d557600080fd5b818501915085601f8301126131e957600080fd5b81356131fc6131f782613116565b6130e5565b81815260059190911b8301840190848101908883111561321b57600080fd5b8585015b83811015613253578035858111156132375760008081fd5b6132458b89838a010161313a565b84525091860191860161321f565b5098975050505050505050565b6001600160a01b0380825116835280602083015116602084015250604081015115156040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e08101516132c960e08401826001600160a01b03169052565b5061010090810151910152565b6020808252825182820181905260009190848201906040850190845b8181101561331957613305838551613260565b9284019261012092909201916001016132f2565b50909695505050505050565b80356001600160a01b038116811461333c57600080fd5b919050565b60006020828403121561335357600080fd5b61230c82613325565b60006020828403121561336e57600080fd5b5035919050565b6000806040838503121561338857600080fd5b50508035926020909101359150565b60005b838110156133b257818101518382015260200161339a565b50506000910152565b600081518084526133d3816020860160208601613397565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561345a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526134488583516133bb565b9450928501929085019060010161340e565b5092979650505050505050565b6000806040838503121561347a57600080fd5b8235915061348a60208401613325565b90509250929050565b600080604083850312156134a657600080fd5b823567ffffffffffffffff8111156134bd57600080fd5b6134c98582860161313a565b95602094909401359450505050565b8015158114610ceb57600080fd5b60008060008060008060c087890312156134ff57600080fd5b863561350a816134d8565b955061351860208801613325565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60006020828403121561354f57600080fd5b813567ffffffffffffffff81111561356657600080fd5b612e8e8482850161313a565b600082601f83011261358357600080fd5b813560206135936131f783613116565b82815260059290921b840181019181810190868411156135b257600080fd5b8286015b848110156135cd57803583529183019183016135b6565b509695505050505050565b600080600080600060a086880312156135f057600080fd5b6135f986613325565b945061360760208701613325565b9350604086013567ffffffffffffffff8082111561362457600080fd5b61363089838a01613572565b9450606088013591508082111561364657600080fd5b61365289838a01613572565b9350608088013591508082111561366857600080fd5b506136758882890161313a565b9150509295509295909350565b610120810161074c8284613260565b600080600080600060a086880312156136a957600080fd5b6136b286613325565b94506136c060208701613325565b93506040860135925060608601359150608086013567ffffffffffffffff8111156136ea57600080fd5b6136758882890161313a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251613737818460208701613397565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561074c5761074c613741565b808202811582820484141761074c5761074c613741565b8181038181111561074c5761074c613741565b600181811c908216806137c157607f821691505b6020821081036137fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000600019820361381357613813613741565b5060010190565b60208152600061230c60208301846133bb565b6000845161383f818460208901613397565b80830190507f2300000000000000000000000000000000000000000000000000000000000000808252855161387b816001850160208a01613397565b60019201918201528351613896816002840160208801613397565b0160020195945050505050565b601f821115610b4257600081815260208120601f850160051c810160208610156138ca5750805b601f850160051c820191505b818110156116ac578281556001016138d6565b815167ffffffffffffffff811115613903576139036130b6565b6139178161391184546137ad565b846138a3565b602080601f83116001811461394c57600084156139345750858301515b600019600386901b1c1916600185901b1785556116ac565b600085815260208120601f198616915b8281101561397b5788860151825594840194600190910190840161395c565b50858210156139995787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080815260006139bc60808301876133bb565b6020830195909552506040810192909252606090910152919050565b600082613a0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354613a21816137ad565b60018281168015613a395760018114613a4e57613a7d565b60ff1984168752821515830287019450613a7d565b8760005260208060002060005b85811015613a745781548a820152908401908201613a5b565b50505082870194505b50929695505050505050565b818103613a94575050565b613a9e82546137ad565b67ffffffffffffffff811115613ab657613ab66130b6565b613ac48161391184546137ad565b6000601f821160018114613af85760008315613ae05750848201545b600019600385901b1c1916600184901b1784556126e1565b600085815260209020601f19841690600086815260209020845b83811015613b325782860154825560019586019590910190602001613b12565b50858310156139995793015460001960f8600387901b161c19169092555050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613bc3816017850160208801613397565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613c00816028840160208801613397565b01602801949350505050565b600060208284031215613c1e57600080fd5b815161230c816134d8565b600081613c3857613c38613741565b50600019019056fea264697066735822122076de165c52a203c108fcdee8d53e26968abca9775ebca956706e08b3c27d5c6a64736f6c6343000813003300000000000000000000000093ea2a6508d410490f2094fc68625522ddc5cd9f00000000000000000000000000000000000000000000000000000000000005dc00000000000000000000000000000000000000000000001043561a8829300000000000000000000000000000df11c9bbd8a0956ad881f50d0901987fa157c5c6