0 txs
100 calls
constructor
No constructor.
functions
an1SaleAddress
viewfunction an1SaleAddress() view returns (address)
erc20
viewfunction erc20() view returns (address)
getAllowance
viewfunction getAllowance() view returns (uint256)
getLatestPrice
viewfunction getLatestPrice(uint256 _salePeriodIndex) view returns (uint256)
getRedemptionInformation
viewfunction getRedemptionInformation(address _userAddress) view returns (tuple)
getSaleInformation
viewfunction getSaleInformation(address _userAddress, uint256 _salePeriodIndex) view returns (tuple)
isOperator
viewfunction isOperator(address _account) view returns (bool)
listSalePeriods
viewfunction listSalePeriods() view returns (tuple[])
owner
viewfunction owner() view returns (address)
payee
viewfunction payee(uint256 index) view returns (address)
priceFeed
viewfunction priceFeed() view returns (address)
releasable
viewfunction releasable(address account) view returns (uint256)
releasable
viewfunction releasable(address token, address account) view returns (uint256)
released
viewfunction released(address account) view returns (uint256)
released
viewfunction released(address token, address account) view returns (uint256)
salePeriods
viewfunction salePeriods(uint256) view returns (uint8 saleType, uint256 timeFrom, uint256 timeTo, bytes32 merkleRoot, uint256 maxAllocation, uint256 totalMinted, uint256 maxPerMint, uint256 maxPerPeriod, uint256 price, bool isValid)
saleStatus
viewfunction saleStatus() view returns (uint8)
shares
viewfunction shares(address account) view returns (uint256)
totalReleased
viewfunction totalReleased() view returns (uint256)
totalReleased
viewfunction totalReleased(address token) view returns (uint256)
totalShares
viewfunction totalShares() view returns (uint256)
__DefaultAN1Sale_initialize_unchained
nonpayablefunction __DefaultAN1Sale_initialize_unchained(address _an1SaleAddress, tuple[] _salePeriods, address _eRC20address, address _priceFeedAddress)
__DefaultAN1Sale_initialize
nonpayablefunction __DefaultAN1Sale_initialize(address _owner, address _an1SaleAddress, tuple[] _salePeriods, address _eRC20address, address _priceFeedAddress, address[] payees, uint256[] shares_)
addOperator
nonpayablefunction addOperator(address _operator)
addOperators
nonpayablefunction addOperators(address[] _operators)
addSalePeriods
nonpayablefunction addSalePeriods(tuple[] _salePeriods)
changeSaleStatus
nonpayablefunction changeSaleStatus(uint8 _saleStatus)
disableSalePeriods
nonpayablefunction disableSalePeriods(uint256[] _indexes)
mint
payablefunction mint(uint256 _salePeriodIndex, uint256 _quantity, bytes32[] _merkleProof, bool _payWithMatic) payable
mintTo
payablefunction mintTo(uint256 _salePeriodIndex, address _beneficiary, uint256 _quantity, bytes32[] _merkleProof, bool _payWithMatic) payable
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256 tokenId, bytes) returns (bytes4)
release
nonpayablefunction release(address account)
release
nonpayablefunction release(address token, address account)
removeOperator
nonpayablefunction removeOperator(address _operator)
renounceOwnership
nonpayablefunction renounceOwnership()
requestRedemption
payablefunction requestRedemption(uint256 _tokenId, bool _payWithMatic, tuple _cred) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateSalePeriods
nonpayablefunction updateSalePeriods(uint256[] _indexes, tuple[] _salePeriods)
events
ERC20PaymentReleased
event ERC20PaymentReleased(address indexed token, address to, uint256 amount)
Initialized
event Initialized(uint8 version)
OperatorAccessChanged
event OperatorAccessChanged(address indexed operator, bool indexed status)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PayeeAdded
event PayeeAdded(address account, uint256 shares)
PaymentReceived
event PaymentReceived(address from, uint256 amount)
PaymentReleased
event PaymentReleased(address to, uint256 amount)
SalePeriodCreated
event SalePeriodCreated(uint256 indexed _index, uint8 indexed _saleType, uint256 _from, uint256 _to)
SalePeriodUpdated
event SalePeriodUpdated(uint256 indexed _index)
SaleStatusChanged
event SaleStatusChanged(uint8 _previous, uint8 _current)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615003806100206000396000f3fe6080604052600436106102295760003560e01c806379197fa811610123578063ac8a584a116100ab578063d79779b21161006f578063d79779b2146107ae578063e33b7de3146107e4578063f2fde38b146107f9578063f9020e3314610819578063fa4c3f2b1461084057600080fd5b8063ac8a584a146106e2578063b94fe91714610702578063c45ac05014610722578063c97d0f2d14610742578063ce7c2ac21461077857600080fd5b80639852595c116100f25780639852595c1461062c5780639870d7fe14610662578063a07aea1c14610682578063a100dec5146106a2578063a3f8eace146106c257600080fd5b806379197fa8146105b45780638b83209b146105d95780638da5cb5b146105f9578063973e9b8b1461061757600080fd5b806348b75044116101b15780636d70f7ae116101755780636d70f7ae146104715780636f94dbea146104ba578063715018a614610547578063741bef1a1461055c578063785e9e861461059457600080fd5b806348b75044146103de5780634aaf4946146103fe5780635b344c6f1461041e57806367dabf8c1461043e5780636b4b9a8a1461045e57600080fd5b8063300a6882116101f8578063300a68821461035957806337b0ee141461036c5780633a98ef391461038c578063406072a9146103ab5780634487a8d8146103cb57600080fd5b8063150b7a0214610277578063155e0ede146102b557806319165587146103175780632cd35e351461033957600080fd5b36610272577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561028357600080fd5b50610297610292366004614538565b610862565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156102c157600080fd5b506102d56102d0366004614436565b610a69565b6040516102ac9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561032357600080fd5b50610337610332366004614436565b610cca565b005b34801561034557600080fd5b50610337610354366004614788565b610dc1565b610337610367366004614831565b611053565b34801561037857600080fd5b506103376103873660046146a2565b611069565b34801561039857600080fd5b506098545b6040519081526020016102ac565b3480156103b757600080fd5b5061039d6103c6366004614750565b611436565b6103376103d93660046148aa565b611463565b3480156103ea57600080fd5b506103376103f9366004614750565b611659565b34801561040a57600080fd5b506103376104193660046146d4565b611779565b34801561042a57600080fd5b50610337610439366004614670565b611e29565b34801561044a57600080fd5b506103376104593660046145a1565b611f29565b61033761046c366004614971565b61207d565b34801561047d57600080fd5b506104aa61048c366004614436565b6001600160a01b031660009081526065602052604090205460ff1690565b60405190151581526020016102ac565b3480156104c657600080fd5b506104da6104d5366004614613565b61208b565b6040516102ac9190600061012082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b34801561055357600080fd5b506103376123a8565b34801561056857600080fd5b5060cb5461057c906001600160a01b031681565b6040516001600160a01b0390911681526020016102ac565b3480156105a057600080fd5b5060ca5461057c906001600160a01b031681565b3480156105c057600080fd5b5060cd5461057c9061010090046001600160a01b031681565b3480156105e557600080fd5b5061057c6105f4366004614801565b6123bc565b34801561060557600080fd5b506033546001600160a01b031661057c565b34801561062357600080fd5b5061039d6123fa565b34801561063857600080fd5b5061039d610647366004614436565b6001600160a01b03166000908152609b602052604090205490565b34801561066e57600080fd5b5061033761067d366004614436565b612481565b34801561068e57600080fd5b5061033761069d36600461463e565b612495565b3480156106ae57600080fd5b506103376106bd36600461446e565b61253d565b3480156106ce57600080fd5b5061039d6106dd366004614436565b612635565b3480156106ee57600080fd5b506103376106fd366004614436565b61267d565b34801561070e57600080fd5b5061039d61071d366004614801565b6126d2565b34801561072e57600080fd5b5061039d61073d366004614750565b6127cf565b34801561074e57600080fd5b5061076261075d366004614801565b612884565b6040516102ac9a99989796959493929190614b69565b34801561078457600080fd5b5061039d610793366004614436565b6001600160a01b03166000908152609a602052604090205490565b3480156107ba57600080fd5b5061039d6107c9366004614436565b6001600160a01b03166000908152609d602052604090205490565b3480156107f057600080fd5b5060995461039d565b34801561080557600080fd5b50610337610814366004614436565b6128ee565b34801561082557600080fd5b5060cd546108339060ff1681565b6040516102ac9190614b40565b34801561084c57600080fd5b50610855612964565b6040516102ac9190614a94565b60cd5460009061010090046001600160a01b0316331461090d5760405162461bcd60e51b815260206004820152605560248201527f44656661756c74414e3153616c653a3a6f6e455243373231526563656976656460448201527f3a2053616c6520636f6e7472616374206f6e6c792061636365707473207468656064820152741027232a103a37b5b2b7399034ba1039b2b636399760591b608482015260a4015b60405180910390fd5b60cd546040516331a9108f60e11b815260048101859052309161010090046001600160a01b031690636352211e9060240160206040518083038186803b15801561095657600080fd5b505afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e9190614452565b6001600160a01b031614610a265760405162461bcd60e51b815260206004820152605360248201527f44656661756c74414e3153616c653a3a6f6e455243373231526563656976656460448201527f3a2053616c6520636f6e7472616374206973206e6f7420746865206f776e65726064820152721037b3103830b9b9b2b2103a37b5b2b724b21760691b608482015260a401610904565b505060cf80546001810182556000919091527facb8d954e2cfef495862221e91bd7523613cf8808827cb33edfe4904cc51bf29015550630a85bd0160e11b919050565b610a9b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60cd546040805160a0810182526001600160a01b038581168031835260ca5493516370a0823160e01b81526004810191909152610100909404811693919260208401929116906370a082319060240160206040518083038186803b158015610b0257600080fd5b505afa158015610b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3a9190614819565b815260ca54604051636eb1769f60e11b81526001600160a01b0387811660048301523060248301526020909301929091169063dd62ed3e9060440160206040518083038186803b158015610b8d57600080fd5b505afa158015610ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc59190614819565b8152602001610c47836001600160a01b031663c09ed3c06040518163ffffffff1660e01b815260040160606040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e91906147a7565b60400151612a73565b8152602001826001600160a01b031663c09ed3c06040518163ffffffff1660e01b815260040160606040518083038186803b158015610c8557600080fd5b505afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd91906147a7565b6040015190529392505050565b6001600160a01b0381166000908152609a6020526040902054610cff5760405162461bcd60e51b815260040161090490614c2e565b6000610d0a82612635565b905080610d295760405162461bcd60e51b815260040161090490614c74565b6001600160a01b0382166000908152609b602052604081208054839290610d51908490614e78565b925050819055508060996000828254610d6a9190614e78565b90915550610d7a90508282612a9a565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05691015b60405180910390a15050565b610dca3361048c565b610de65760405162461bcd60e51b815260040161090490614bd1565b600360cd5460ff166003811115610e0d57634e487b7160e01b600052602160045260246000fd5b1415610e755760405162461bcd60e51b815260206004820152603160248201527f44656661756c74414e3153616c653a3a6368616e676553616c655374617475736044820152701d1029b0b632903430b99032b73232b21760791b6064820152608401610904565b6000816003811115610e9757634e487b7160e01b600052602160045260246000fd5b1415610f175760405162461bcd60e51b815260206004820152604360248201527f44656661756c74414e3153616c653a3a6368616e676553616c6553746174757360448201527f3a204e6577207374617475732063616e6e6f74206265206e6f6e20737461727460648201526232b21760e91b608482015260a401610904565b806003811115610f3757634e487b7160e01b600052602160045260246000fd5b60cd5460ff166003811115610f5c57634e487b7160e01b600052602160045260246000fd5b1415610fdf5760405162461bcd60e51b815260206004820152604660248201527f44656661756c74414e3153616c653a3a6368616e676553616c6553746174757360448201527f3a2053746174757320746f206368616e67652063616e6e6f74206265207468656064820152651039b0b6b29760d11b608482015260a401610904565b60cd805482919060ff1916600183600381111561100c57634e487b7160e01b600052602160045260246000fd5b021790555060cd546040517f0a6bffa592ee188ea793c53a6194eeace6d84cdbb9d095e3fffc951b644c9f0d9161104891849160ff1690614b4e565b60405180910390a150565b611061868686868686612bb3565b505050505050565b6110723361048c565b61108e5760405162461bcd60e51b815260040161090490614bd1565b600360cd5460ff1660038111156110b557634e487b7160e01b600052602160045260246000fd5b141561111e5760405162461bcd60e51b815260206004820152603260248201527f44656661756c74414e3153616c653a3a64697361626c6553616c65506572696f604482015271321d1029b0b632903430b99032b73232b21760711b6064820152608401610904565b60005b81518110156114325781818151811061114a57634e487b7160e01b600052603260045260246000fd5b602002602001015160cc80549050116111cb5760405162461bcd60e51b815260206004820152603960248201527f44656661756c74414e3153616c653a3a64697361626c6553616c65506572696f60448201527f643a2053616c6520706572696f64206e6f7420666f756e642e000000000000006064820152608401610904565b600060cc8383815181106111ef57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061121557634e487b7160e01b600052603260045260246000fd5b60009182526020909120604080516101408101909152600a909202018054829060ff16600181111561125757634e487b7160e01b600052602160045260246000fd5b600181111561127657634e487b7160e01b600052602160045260246000fd5b81526001820154602082015260028201546040808301919091526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e0830152600883015461010083015260099092015460ff1615156101209091015281015190915042106113595760405162461bcd60e51b815260206004820152603e60248201527f44656661756c74414e3153616c653a3a64697361626c6553616c65506572696f60448201527f643a20506572696f6420697320616c726561647920696e6163746976652e00006064820152608401610904565b600060cc84848151811061137d57634e487b7160e01b600052603260045260246000fd5b6020026020010151815481106113a357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160090160006101000a81548160ff0219169083151502179055508282815181106113eb57634e487b7160e01b600052603260045260246000fd5b60200260200101517fbfd2b17775a0e2346572fd8f57402f7c6093934c45dbcbef39af649be89f34c660405160405180910390a2508061142a81614f2d565b915050611121565b5050565b6001600160a01b038083166000908152609e60209081526040808320938516835292905220545b92915050565b60cd546040516331a9108f60e11b8152600481018590526101009091046001600160a01b03169033908290636352211e9060240160206040518083038186803b1580156114af57600080fd5b505afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190614452565b6001600160a01b0316146115725760405162461bcd60e51b815260206004820152604660248201527f44656661756c74414e3153616c653a3a72657175657374526564656d7074696f60448201527f6e3a2043616c6c6572206d757374206f776e207468652072656465656d6564206064820152653a37b5b2b71760d11b608482015260a401610904565b6115f0816001600160a01b031663c09ed3c06040518163ffffffff1660e01b815260040160606040518083038186803b1580156115ae57600080fd5b505afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e691906147a7565b6040015184613402565b60405163040b3ba560e01b81526001600160a01b0382169063040b3ba5906116219087906001908790600401614d58565b600060405180830381600087803b15801561163b57600080fd5b505af115801561164f573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0381166000908152609a602052604090205461168e5760405162461bcd60e51b815260040161090490614c2e565b600061169a83836127cf565b9050806116b95760405162461bcd60e51b815260040161090490614c74565b6001600160a01b038084166000908152609e60209081526040808320938616835292905290812080548392906116f0908490614e78565b90915550506001600160a01b0383166000908152609d60205260408120805483929061171d908490614e78565b9091555061172e90508383836136f2565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6117823361048c565b61179e5760405162461bcd60e51b815260040161090490614bd1565b600360cd5460ff1660038111156117c557634e487b7160e01b600052602160045260246000fd5b141561181c5760405162461bcd60e51b81526020600482015260326024820152600080516020614fae833981519152604482015271399d1029b0b632903430b99032b73232b21760711b6064820152608401610904565b60005b8251811015611e2457600082828151811061184a57634e487b7160e01b600052603260045260246000fd5b6020026020010151905083828151811061187457634e487b7160e01b600052603260045260246000fd5b602002602001015160cc80549050116118e35760405162461bcd60e51b81526020600482015260396024820152600080516020614fae83398151915260448201527f733a2053616c6520706572696f64206e6f7420666f756e642e000000000000006064820152608401610904565b60cc84838151811061190557634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061192b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206009600a90920201015460ff166119a25760405162461bcd60e51b81526020600482015260376024820152600080516020614fae83398151915260448201527f733a20506572696f64206973206e6f742076616c69642e0000000000000000006064820152608401610904565b42816040015111611a185760405162461bcd60e51b81526020600482015260466024820152600080516020614fae83398151915260448201527f733a204e657720706572696f642073686f756c6420686176652076616c6964206064820152653230ba32b99760d11b608482015260a401610904565b806080015160cc858481518110611a3f57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611a6557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600501541115611b0e5760405162461bcd60e51b81526020600482015260666024820152600080516020614fae83398151915260448201527f733a204e657720706572696f6420616c6c6f636174696f6e2073686f756c642060648201527f62652067726561746572206f7220657175616c207468616e20746f74616c206d60848201526534b73a32b21760d11b60a482015260c401610904565b806020015160cc858481518110611b3557634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611b5b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010181905550806040015160cc858481518110611b9757634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611bbd57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160020181905550806060015160cc858481518110611bf957634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611c1f57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160030181905550806080015160cc858481518110611c5b57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611c8157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600401819055508060c0015160cc858481518110611cbd57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611ce357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600601819055508060e0015160cc858481518110611d1f57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611d4557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016007018190555080610100015160cc858481518110611d8257634e487b7160e01b600052603260045260246000fd5b602002602001015181548110611da857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160080181905550838281518110611ddd57634e487b7160e01b600052603260045260246000fd5b60200260200101517fbfd2b17775a0e2346572fd8f57402f7c6093934c45dbcbef39af649be89f34c660405160405180910390a25080611e1c81614f2d565b91505061181f565b505050565b611e323361048c565b611e4e5760405162461bcd60e51b815260040161090490614bd1565b600360cd5460ff166003811115611e7557634e487b7160e01b600052602160045260246000fd5b1415611edb5760405162461bcd60e51b815260206004820152602f60248201527f44656661756c74414e3153616c653a3a61646453616c65506572696f64733a2060448201526e29b0b632903430b99032b73232b21760891b6064820152608401610904565b60005b815181101561143257611f17828281518110611f0a57634e487b7160e01b600052603260045260246000fd5b6020026020010151613744565b80611f2181614f2d565b915050611ede565b600054610100900460ff1615808015611f495750600054600160ff909116105b80611f635750303b158015611f63575060005460ff166001145b611f7f5760405162461bcd60e51b815260040161090490614cbf565b6000805460ff191660011790558015611fa2576000805461ff0019166101001790555b60ca80546001600160a01b038086166001600160a01b03199283161790925560cb8054858416921691909117905560cd805491871661010002610100600160a81b031990921691909117905560005b845181101561202f5761201d858281518110611f0a57634e487b7160e01b600052603260045260246000fd5b8061202781614f2d565b915050611ff1565b508015612076576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b612076853386868686612bb3565b6120da6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60cd5460408051610120810182526001600160a01b038681168031835260ca5493516370a0823160e01b81526004810191909152610100909404811693919260208401929116906370a082319060240160206040518083038186803b15801561214257600080fd5b505afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a9190614819565b815260ca54604051636eb1769f60e11b81526001600160a01b0388811660048301523060248301526020909301929091169063dd62ed3e9060440160206040518083038186803b1580156121cd57600080fd5b505afa1580156121e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122059190614819565b81526001600160a01b038616600090815260ce60209081526040808320888452825291829020549083015260cc80549190920191908690811061225857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600501548152602001826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122a857600080fd5b505afa1580156122bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e09190614819565b8152602001826001600160a01b031663996517cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561231e57600080fd5b505afa158015612332573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123569190614819565b8152602001612364856126d2565b815260200160cc858154811061238a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016008015481525091505092915050565b6123b061392e565b6123ba6000613988565b565b6000609c82815481106123df57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031692915050565b60ca54604051636eb1769f60e11b81523360048201523060248201526000916001600160a01b03169063dd62ed3e9060440160206040518083038186803b15801561244457600080fd5b505afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c9190614819565b905090565b61248961392e565b612492816139da565b50565b61249d61392e565b60005b81518110156114325760008282815181106124cb57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b038116600081815260659093526040808420805460ff1916600190811790915590519294509290917f1a2c385855a8f638e1b756a8eb477b4af53df30443ec505a9d5f25a0fd3db7709190a3508061253581614f2d565b9150506124a0565b600054610100900460ff161580801561255d5750600054600160ff909116105b806125775750303b158015612577575060005460ff166001145b6125935760405162461bcd60e51b815260040161090490614cbf565b6000805460ff1916600117905580156125b6576000805461ff0019166101001790555b6125bf88613a2c565b6125c98383613a5c565b6125d1613bb6565b6125da88613988565b6125e687878787611f29565b801561164f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b60008061264160995490565b61264b9047614e78565b90506126768382612671866001600160a01b03166000908152609b602052604090205490565b613be6565b9392505050565b61268561392e565b6001600160a01b038116600081815260656020526040808220805460ff19169055519091907f1a2c385855a8f638e1b756a8eb477b4af53df30443ec505a9d5f25a0fd3db770908390a350565b60008060cc83815481106126f657634e487b7160e01b600052603260045260246000fd5b60009182526020909120604080516101408101909152600a909202018054829060ff16600181111561273857634e487b7160e01b600052602160045260246000fd5b600181111561275757634e487b7160e01b600052602160045260246000fd5b815260018201546020820152600282015460408201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008083019190915260099092015460ff1615156101209091015281015190915061267690612a73565b6001600160a01b0382166000908152609d602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a082319060240160206040518083038186803b15801561282957600080fd5b505afa15801561283d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128619190614819565b61286b9190614e78565b905061287c83826126718787611436565b949350505050565b60cc818154811061289457600080fd5b60009182526020909120600a9091020180546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015460ff9889169a50969895979496939592949193909291168a565b6128f661392e565b6001600160a01b03811661295b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610904565b61249281613988565b606060cc805480602002602001604051908101604052809291908181526020016000905b82821015612a6a57600084815260209020604080516101408101909152600a84029091018054829060ff1660018111156129d257634e487b7160e01b600052602160045260246000fd5b60018111156129f157634e487b7160e01b600052602160045260246000fd5b8152600182810154602080840191909152600284015460408401526003840154606084015260048401546080840152600584015460a0840152600684015460c0840152600784015460e0840152600884015461010084015260099093015460ff1615156101209092019190915291835292019101612988565b50505050905090565b6000612a7d613c24565b612a908368056bc75e2d63100000614eb0565b61145d9190614e90565b80471015612aea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610904565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612b37576040519150601f19603f3d011682016040523d82523d6000602084013e612b3c565b606091505b5050905080611e245760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610904565b600160cd5460ff166003811115612bda57634e487b7160e01b600052602160045260246000fd5b14612c3b5760405162461bcd60e51b815260206004820152602b60248201527f44656661756c74414e3153616c653a3a6d696e743a2053616c6520686173206e60448201526a37ba1039ba30b93a32b21760a91b6064820152608401610904565b60008411612caa5760405162461bcd60e51b815260206004820152603660248201527f44656661756c74414e3153616c653a3a6d696e743a205175616e74697479206d6044820152753ab9ba1031329033b932b0ba32b9103a3430b710181760511b6064820152608401610904565b60cc548610612d105760405162461bcd60e51b815260206004820152602c60248201527f44656661756c74414e3153616c653a3a6d696e743a2053616c6520706572696f60448201526b32103737ba103337bab7321760a11b6064820152608401610904565b600060cc8781548110612d3357634e487b7160e01b600052603260045260246000fd5b60009182526020909120604080516101408101909152600a909202018054829060ff166001811115612d7557634e487b7160e01b600052602160045260246000fd5b6001811115612d9457634e487b7160e01b600052602160045260246000fd5b81526001820154602082015260028201546040808301919091526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e0830152600883015461010083015260099092015460ff161515610120909101528101519091504210612e6c5760405162461bcd60e51b815260206004820152603260248201527f44656661756c74414e3153616c653a3a6d696e743a2073616c6520706572696f604482015271321034b99030b63932b0b23c9037bb32b91760711b6064820152608401610904565b42816020015110612ed95760405162461bcd60e51b815260206004820152603160248201527f44656661756c74414e3153616c653a3a6d696e743a2073616c6520706572696f60448201527032103430b9b713ba1039ba30b93a32b21760791b6064820152608401610904565b612ef385826101000151612eed9190614eb0565b83613402565b8060c00151851115612f6d5760405162461bcd60e51b815260206004820152603e60248201527f44656661756c74414e3153616c653a3a6d696e743a204d757374206d696e742060448201527f657175616c206f72206c657373207468616e206d61785065724d696e742e00006064820152608401610904565b848160a00151612f7d9190614e78565b81608001511015612fef5760405162461bcd60e51b815260206004820152603660248201527f44656661756c74414e3153616c653a3a6d696e743a20506572696f6420616c6c60448201527537b1b0ba34b7b71034b9903737ba1032b737bab3b41760511b6064820152608401610904565b6001600160a01b038616600090815260ce602090815260408083208a845290915290205461301d9086614e78565b8160e0015110156130b45760405162461bcd60e51b815260206004820152605560248201527f44656661756c74414e3153616c653a3a6d696e743a204164647265737320776f60448201527f756c64206265206d696e74696e67206d6f7265207468616e206d617820616c6c60648201527437bbb2b2103337b9103a3434b9903832b934b7b21760591b608482015260a401610904565b6000815160018111156130d757634e487b7160e01b600052602160045260246000fd5b14156131cb576040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050613157858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505050606084015183613cb8565b6131c95760405162461bcd60e51b815260206004820152603c60248201527f44656661756c74414e3153616c653a3a6d696e743a20496e76616c6964206d6560448201527f726b6c652070726f6f6620666f7220505249564154452073616c652e000000006064820152608401610904565b505b8460cc88815481106131ed57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600501600082825461320d9190614e78565b90915550506001600160a01b038616600090815260ce602090815260408083208a845290915281208054879290613245908490614e78565b909155505060cd5460cf546101009091046001600160a01b03169086901561338e5760cf5460009088111561327c5760cf5461327e565b875b905060005b8181101561338b5760cf80546000919061329f90600190614ecf565b815481106132bd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905060cf8054806132e957634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055838061330a90614f16565b604051632142170760e11b81523060048201526001600160a01b038e811660248301526044820185905291965090871691506342842e0e90606401600060405180830381600087803b15801561335f57600080fd5b505af1158015613373573d6000803e3d6000fd5b5050505050808061338390614f2d565b915050613283565b50505b80156133f75760405163080571eb60e01b81526001600160a01b0389811660048301526024820183905283169063080571eb90604401600060405180830381600087803b1580156133de57600080fd5b505af11580156133f2573d6000803e3d6000fd5b505050505b505050505050505050565b801561349857600061341383612a73565b90506134216103e882614e90565b61342d906103e3614eb0565b905080341015611e245760405162461bcd60e51b815260206004820152603060248201527f44656661756c74414e3153616c653a3a6d696e743a2056616c75652073656e7460448201526f081a5cc81a5b9cdd59999a58da595b9d60821b6064820152608401610904565b60ca546040516370a0823160e01b815233600482015283916001600160a01b0316906370a082319060240160206040518083038186803b1580156134db57600080fd5b505afa1580156134ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135139190614819565b101561357c5760405162461bcd60e51b815260206004820152603260248201527f44656661756c74414e3153616c653a3a6d696e743a20555344542062616c616e60448201527118d9481a5cc81a5b9cdd59999a58da595b9d60721b6064820152608401610904565b60ca54604051636eb1769f60e11b815233600482015230602482015283916001600160a01b03169063dd62ed3e9060440160206040518083038186803b1580156135c557600080fd5b505afa1580156135d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135fd9190614819565b10156136685760405162461bcd60e51b815260206004820152603460248201527f44656661756c74414e3153616c653a3a6d696e743a205553445420616c6c6f77604482015273185b98d9481a5cc81a5b9cdd59999a58da595b9d60621b6064820152608401610904565b60ca546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401602060405180830381600087803b1580156136ba57600080fd5b505af11580156136ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e249190614734565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611e24908490613cce565b428160400151116137c95760405162461bcd60e51b815260206004820152604360248201527f44656661756c74414e3153616c653a3a61646453616c65506572696f64733a2060448201527f43616e6e6f7420637265617465206120706572696f6420696e2074686520706160648201526239ba1760e91b608482015260a401610904565b60016101208201819052600060a0830181905260cc8054808401825591528251600a9091027f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0180548493919291839160ff191690838181111561383d57634e487b7160e01b600052602160045260246000fd5b0217905550602082015160018281019190915560408301516002830155606083015160038301556080830151600483015560a0830151600583015560c0830151600683015560e083015160078301556101008301516008830155610120909201516009909101805460ff19169115159190911790558151908111156138d257634e487b7160e01b600052602160045260246000fd5b60cc546138e190600190614ecf565b7fd53b97667a7b03e6c9b1b8d50c4a165e79b9a41512abb7695fd74830b93f46c483602001518460400151604051613923929190918252602082015260400190565b60405180910390a350565b6033546001600160a01b031633146123ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610904565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116600081815260656020526040808220805460ff1916600190811790915590519092917f1a2c385855a8f638e1b756a8eb477b4af53df30443ec505a9d5f25a0fd3db77091a350565b600054610100900460ff16613a535760405162461bcd60e51b815260040161090490614d0d565b61248981613988565b600054610100900460ff16613a835760405162461bcd60e51b815260040161090490614d0d565b8051825114613aef5760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b6064820152608401610904565b6000825111613b405760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f207061796565730000000000006044820152606401610904565b60005b8251811015611e2457613ba4838281518110613b6f57634e487b7160e01b600052603260045260246000fd5b6020026020010151838381518110613b9757634e487b7160e01b600052603260045260246000fd5b6020026020010151613da0565b80613bae81614f2d565b915050613b43565b600054610100900460ff16613bdd5760405162461bcd60e51b815260040161090490614d0d565b6123ba33613988565b6098546001600160a01b0384166000908152609a602052604081205490918391613c109086614eb0565b613c1a9190614e90565b61287c9190614ecf565b60008060cb60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015613c7557600080fd5b505afa158015613c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cad91906149d9565b509195945050505050565b600082613cc58584613f7f565b14949350505050565b6000613d23826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613fda9092919063ffffffff16565b805190915015611e245780806020019051810190613d419190614734565b611e245760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610904565b6001600160a01b038216613e0b5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401610904565b60008111613e5b5760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401610904565b6001600160a01b0382166000908152609a602052604090205415613ed55760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401610904565b609c8054600181019091557faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c0180546001600160a01b0319166001600160a01b0384169081179091556000908152609a60205260409020819055609854613f3d908290614e78565b609855604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac9101610db5565b600081815b8451811015613fd257613fbe82868381518110613fb157634e487b7160e01b600052603260045260246000fd5b6020026020010151613fe9565b915080613fca81614f2d565b915050613f84565b509392505050565b606061287c8484600085614015565b6000818310614005576000828152602084905260409020612676565b5060009182526020526040902090565b6060824710156140765760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610904565b6001600160a01b0385163b6140cd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610904565b600080866001600160a01b031685876040516140e99190614a78565b60006040518083038185875af1925050503d8060008114614126576040519150601f19603f3d011682016040523d82523d6000602084013e61412b565b606091505b509150915061413b828286614146565b979650505050505050565b60608315614155575081612676565b8251156141655782518084602001fd5b8160405162461bcd60e51b81526004016109049190614bbe565b803561418a81614f8a565b919050565b600082601f83011261419f578081fd5b813560206141b46141af83614e55565b614e25565b80838252828201915082860187848660051b89010111156141d3578586fd5b855b858110156141fa5781356141e881614f8a565b845292840192908401906001016141d5565b5090979650505050505050565b60008083601f840112614218578182fd5b5081356001600160401b0381111561422e578182fd5b6020830191508360208260051b850101111561424957600080fd5b9250929050565b600082601f830112614260578081fd5b813560206142706141af83614e55565b828152818101908583016101408086028801850189101561428f578687fd5b865b8681101561432d5781838b0312156142a7578788fd5b6142af614dda565b6142b88461440d565b8152838701358782015260408085013590820152606080850135908201526080808501359082015260a0808501359082015260c0808501359082015260e080850135908201526101008085013590820152610120614317818601614398565b9082015285529385019391810191600101614291565b509198975050505050505050565b600082601f83011261434b578081fd5b8135602061435b6141af83614e55565b80838252828201915082860187848660051b890101111561437a578586fd5b855b858110156141fa5781358452928401929084019060010161437c565b803561418a81614f9f565b600082601f8301126143b3578081fd5b81356001600160401b038111156143cc576143cc614f74565b6143df601f8201601f1916602001614e25565b8181528460208386010111156143f3578283fd5b816020850160208301379081016020019190915292915050565b80356002811061418a57600080fd5b805169ffffffffffffffffffff8116811461418a57600080fd5b600060208284031215614447578081fd5b813561267681614f8a565b600060208284031215614463578081fd5b815161267681614f8a565b600080600080600080600060e0888a031215614488578283fd5b873561449381614f8a565b965060208801356144a381614f8a565b955060408801356001600160401b03808211156144be578485fd5b6144ca8b838c01614250565b96506144d860608b0161417f565b95506144e660808b0161417f565b945060a08a01359150808211156144fb578384fd5b6145078b838c0161418f565b935060c08a013591508082111561451c578283fd5b506145298a828b0161433b565b91505092959891949750929550565b6000806000806080858703121561454d578182fd5b843561455881614f8a565b9350602085013561456881614f8a565b92506040850135915060608501356001600160401b03811115614589578182fd5b614595878288016143a3565b91505092959194509250565b600080600080608085870312156145b6578182fd5b84356145c181614f8a565b935060208501356001600160401b038111156145db578283fd5b6145e787828801614250565b93505060408501356145f881614f8a565b9150606085013561460881614f8a565b939692955090935050565b60008060408385031215614625578182fd5b823561463081614f8a565b946020939093013593505050565b60006020828403121561464f578081fd5b81356001600160401b03811115614664578182fd5b61287c8482850161418f565b600060208284031215614681578081fd5b81356001600160401b03811115614696578182fd5b61287c84828501614250565b6000602082840312156146b3578081fd5b81356001600160401b038111156146c8578182fd5b61287c8482850161433b565b600080604083850312156146e6578182fd5b82356001600160401b03808211156146fc578384fd5b6147088683870161433b565b9350602085013591508082111561471d578283fd5b5061472a85828601614250565b9150509250929050565b600060208284031215614745578081fd5b815161267681614f9f565b60008060408385031215614762578182fd5b823561476d81614f8a565b9150602083013561477d81614f8a565b809150509250929050565b600060208284031215614799578081fd5b813560048110612676578182fd5b6000606082840312156147b8578081fd5b604051606081018181106001600160401b03821117156147da576147da614f74565b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215614812578081fd5b5035919050565b60006020828403121561482a578081fd5b5051919050565b60008060008060008060a08789031215614849578384fd5b86359550602087013561485b81614f8a565b94506040870135935060608701356001600160401b0381111561487c578283fd5b61488889828a01614207565b909450925050608087013561489c81614f9f565b809150509295509295509295565b6000806000606084860312156148be578081fd5b8335925060208401356148d081614f9f565b915060408401356001600160401b03808211156148eb578283fd5b9085019060a082880312156148fe578283fd5b614906614e03565b823582811115614914578485fd5b614920898286016143a3565b825250602083013560208201526040830135604082015260608301356060820152608083013582811115614952578485fd5b61495e898286016143a3565b6080830152508093505050509250925092565b600080600080600060808688031215614988578283fd5b853594506020860135935060408601356001600160401b038111156149ab578384fd5b6149b788828901614207565b90945092505060608601356149cb81614f9f565b809150509295509295909350565b600080600080600060a086880312156149f0578283fd5b6149f98661441c565b9450602086015193506040860151925060608601519150614a1c6080870161441c565b90509295509295909350565b60008151808452614a40816020860160208601614ee6565b601f01601f19169290920160200192915050565b60048110614a6457614a64614f5e565b9052565b60028110614a6457614a64614f5e565b60008251614a8a818460208701614ee6565b9190910192915050565b602080825282518282018190526000919060409081850190868401855b82811015614b33578151614ac6858251614a68565b80870151858801528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e080820151908601526101008082015190860152610120908101511515908501526101409093019290850190600101614ab1565b5091979650505050505050565b6020810161145d8284614a54565b60408101614b5c8285614a54565b6126766020830184614a54565b6101408101614b78828d614a68565b602082019a909a5260408101989098526060880196909652608087019490945260a086019290925260c085015260e0840152610100830152151561012090910152919050565b6020815260006126766020830184614a28565b6020808252603e908201527f4f70657261746f72416363657373436f6e74726f6c3a3a6f6e6c794f7065726160408201527f746f723a2063616c6c6572206973206e6f742061206f70657261746f722e0000606082015260800190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b838152600060058410614d6d57614d6d614f5e565b8360208301526080604083015280608083015260a06060830152825160a080840152614d9d610140840182614a28565b9050602084015160c0840152604084015160e084015260608401516101008401526080840151609f198483030161012085015261413b8282614a28565b60405161014081016001600160401b0381118282101715614dfd57614dfd614f74565b60405290565b60405160a081016001600160401b0381118282101715614dfd57614dfd614f74565b604051601f8201601f191681016001600160401b0381118282101715614e4d57614e4d614f74565b604052919050565b60006001600160401b03821115614e6e57614e6e614f74565b5060051b60200190565b60008219821115614e8b57614e8b614f48565b500190565b600082614eab57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614eca57614eca614f48565b500290565b600082821015614ee157614ee1614f48565b500390565b60005b83811015614f01578181015183820152602001614ee9565b83811115614f10576000848401525b50505050565b600081614f2557614f25614f48565b506000190190565b6000600019821415614f4157614f41614f48565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461249257600080fd5b801515811461249257600080fdfe44656661756c74414e3153616c653a3a75706461746553616c65506572696f64a26469706673582212201b869d281ba9fc35056fecb73b90ede3933542bead04e4fa04e88b6a4d818e9464736f6c63430008040033