0 txs
0 calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
depositHelperMgp
viewfunction depositHelperMgp() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
liquidationValue
viewfunction liquidationValue() view returns (uint256)
lp
viewfunction lp() view returns (address)
masterMgp
viewfunction masterMgp() view returns (address)
navSlippageBP
viewfunction navSlippageBP() view returns (uint256)
netAssetValue
viewfunction netAssetValue() view returns (uint256)
oracleWstEthEth
viewfunction oracleWstEthEth() view returns (address)
pendle
viewfunction pendle() view returns (address)
pendleRouter
viewfunction pendleRouter() view returns (address)
pendleStaking
viewfunction pendleStaking() view returns (address)
pnp
viewfunction pnp() view returns (address)
PORTFOLIO_AGENT_ROLE
viewfunction PORTFOLIO_AGENT_ROLE() view returns (bytes32)
PORTFOLIO_MANAGER
viewfunction PORTFOLIO_MANAGER() view returns (bytes32)
portfolioManager
viewfunction portfolioManager() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
pt
viewfunction pt() view returns (address)
ptOracle
viewfunction ptOracle() view returns (address)
stakeSlippageBP
viewfunction stakeSlippageBP() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapSlippageBP
viewfunction swapSlippageBP() view returns (uint256)
sy
viewfunction sy() view returns (address)
thresholdBalancePercent
viewfunction thresholdBalancePercent() view returns (uint256)
uniswapV3Router
viewfunction uniswapV3Router() view returns (address)
weth
viewfunction weth() view returns (address)
wstEth
viewfunction wstEth() view returns (address)
yt
viewfunction yt() view returns (address)
claimRewards
nonpayablefunction claimRewards(address _to) returns (uint256)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setParams
nonpayablefunction setParams(tuple params)
setPortfolioManager
nonpayablefunction setPortfolioManager(address _value)
setSlippages
nonpayablefunction setSlippages(uint256 _swapSlippageBP, uint256 _navSlippageBP, uint256 _stakeSlippageBP)
stake
nonpayablefunction stake(address _asset, uint256 _amount)
unstake
nonpayablefunction unstake(address _asset, uint256 _amount, address _beneficiary, bool _targetIsZero) returns (uint256)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
PortfolioManagerUpdated
event PortfolioManagerUpdated(address value)
Reward
event Reward(uint256 amount)
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)
SlippagesUpdated
event SlippagesUpdated(uint256 swapSlippageBP, uint256 navSlippageBP, uint256 stakeSlippageBP)
Stake
event Stake(uint256 amount)
StrategyUpdatedParams
event StrategyUpdatedParams()
Unstake
event Unstake(uint256 amount, uint256 amountReceived)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b50600054610100900460ff1615808015620000375750600054600160ff909116105b8062000067575062000054306200014160201b62001a841760201c565b15801562000067575060005460ff166001145b620000cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f3576000805461ff0019166101001790555b80156200013a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000150565b6001600160a01b03163b151590565b608051614e356200018860003960008181610871015281816108b101528181610950015281816109900152610a1f0152614e356000f3fe6080604052600436106102465760003560e01c80636866afe311610139578063a440b21a116100b6578063c6fea47c1161007a578063c6fea47c146106af578063d547741f146106d0578063dc263022146106f0578063e71c47cf14610711578063ef5cfb8c14610732578063f6f6b8811461075257600080fd5b8063a440b21a14610618578063adc9772e14610638578063ae30c11014610658578063bf52e08014610678578063c54405701461068e57600080fd5b806391d14854116100fd57806391d148541461058c57806394eea12d146105ac578063a217fddf146105cd578063a2c530da146105e2578063a3673b381461060357600080fd5b80636866afe3146104f25780636a89d8ea146105135780637d5f5802146105345780638129fc1c1461055657806391815a981461056b57600080fd5b806336568abe116101c75780635ca558f81161018b5780635ca558f8146104515780635dbd733a14610467578063620b75df1461049b57806365074234146104bb57806368370317146104db57600080fd5b806336568abe146103c85780633659cfe6146103e85780633fc8cef3146104085780634f1ef2861461042957806352d1902d1461043c57600080fd5b8063248a9ca31161020e578063248a9ca31461031f5780632576e65a1461034f5780632c76d7a6146103645780632f2ff15d14610385578063313c06a0146103a757600080fd5b806301ffc9a71461024b57806305d7b9a214610280578063119cd879146102b9578063181cc05b146102dd578063206aeab3146102fe575b600080fd5b34801561025757600080fd5b5061026b6102663660046144b3565b610772565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b50610134546102a1906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b3480156102c557600080fd5b506102cf60fd5481565b604051908152602001610277565b3480156102e957600080fd5b50610131546102a1906001600160a01b031681565b34801561030a57600080fd5b50610133546102a1906001600160a01b031681565b34801561032b57600080fd5b506102cf61033a3660046144dd565b60009081526065602052604090206001015490565b34801561035b57600080fd5b506102cf6107a9565b34801561037057600080fd5b50610138546102a1906001600160a01b031681565b34801561039157600080fd5b506103a56103a036600461450d565b6107ba565b005b3480156103b357600080fd5b50610132546102a1906001600160a01b031681565b3480156103d457600080fd5b506103a56103e336600461450d565b6107e4565b3480156103f457600080fd5b506103a5610403366004614539565b610867565b34801561041457600080fd5b5061012d546102a1906001600160a01b031681565b6103a561043736600461459b565b610946565b34801561044857600080fd5b506102cf610a12565b34801561045d57600080fd5b506102cf60fe5481565b34801561047357600080fd5b506102cf7fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913781565b3480156104a757600080fd5b5060fb546102a1906001600160a01b031681565b3480156104c757600080fd5b506103a56104d6366004614641565b610ac5565b3480156104e757600080fd5b506102cf61013c5481565b3480156104fe57600080fd5b50610137546102a1906001600160a01b031681565b34801561051f57600080fd5b5061013a546102a1906001600160a01b031681565b34801561054057600080fd5b506102cf600080516020614d9983398151915281565b34801561056257600080fd5b506103a5611191565b34801561057757600080fd5b5061012e546102a1906001600160a01b031681565b34801561059857600080fd5b5061026b6105a736600461450d565b61125b565b3480156105b857600080fd5b50610139546102a1906001600160a01b031681565b3480156105d957600080fd5b506102cf600081565b3480156105ee57600080fd5b5061013b546102a1906001600160a01b031681565b34801561060f57600080fd5b506102cf611286565b34801561062457600080fd5b506103a5610633366004614539565b611292565b34801561064457600080fd5b506103a561065336600461465a565b6113c1565b34801561066457600080fd5b506103a5610673366004614684565b6115c4565b34801561068457600080fd5b506102cf60fc5481565b34801561069a57600080fd5b50610130546102a1906001600160a01b031681565b3480156106bb57600080fd5b50610135546102a1906001600160a01b031681565b3480156106dc57600080fd5b506103a56106eb36600461450d565b61172a565b3480156106fc57600080fd5b5061012f546102a1906001600160a01b031681565b34801561071d57600080fd5b50610136546102a1906001600160a01b031681565b34801561073e57600080fd5b506102cf61074d366004614539565b61174f565b34801561075e57600080fd5b506102cf61076d3660046146be565b6117d4565b60006001600160e01b03198216637965db0b60e01b14806107a357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006107b56000611a93565b905090565b6000828152606560205260409020600101546107d581611d7d565b6107df8383611d87565b505050565b6001600160a01b03811633146108595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108638282611e0d565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108af5760405162461bcd60e51b81526004016108509061470d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108f8600080516020614db9833981519152546001600160a01b031690565b6001600160a01b03161461091e5760405162461bcd60e51b815260040161085090614759565b61092781611e74565b6040805160008082526020820190925261094391839190611e7f565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361098e5760405162461bcd60e51b81526004016108509061470d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109d7600080516020614db9833981519152546001600160a01b031690565b6001600160a01b0316146109fd5760405162461bcd60e51b815260040161085090614759565b610a0682611e74565b61086382826001611e7f565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b50600080516020614db983398151915290565b610ad060003361125b565b610b135760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b6044820152606401610850565b610b206020820182614539565b61012d80546001600160a01b0319166001600160a01b0392909216919091179055610b516040820160208301614539565b61012e80546001600160a01b0319166001600160a01b0392909216919091179055610b826060820160408301614539565b61012f80546001600160a01b0319166001600160a01b0392909216919091179055610bb36080820160608301614539565b61013080546001600160a01b0319166001600160a01b0392909216919091179055610be460a0820160808301614539565b61013180546001600160a01b0319166001600160a01b0392909216919091179055610c1560c0820160a08301614539565b61013280546001600160a01b0319166001600160a01b0392909216919091179055610c4660e0820160c08301614539565b61013380546001600160a01b0319166001600160a01b0392909216919091179055610c78610100820160e08301614539565b61013480546001600160a01b0319166001600160a01b0392909216919091179055610cab61012082016101008301614539565b61013580546001600160a01b0319166001600160a01b0392909216919091179055610cde61014082016101208301614539565b61013680546001600160a01b0319166001600160a01b0392909216919091179055610d1161016082016101408301614539565b61013780546001600160a01b0319166001600160a01b0392909216919091179055610d4461018082016101608301614539565b61013880546001600160a01b0319166001600160a01b0392909216919091179055610d776101e082016101c08301614539565b61013980546001600160a01b0319166001600160a01b0392909216919091179055610daa6101a082016101808301614539565b61013a80546001600160a01b0319166001600160a01b0392909216919091179055610ddd6101c082016101a08301614539565b61013b80546001600160a01b0319166001600160a01b039283161790556101e082013561013c5561012e546101315460405163095ea7b360e01b8152600019939283169263095ea7b392610e389291169085906004016147a5565b6020604051808303816000875af1158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b91906147be565b5061012e546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610eb49291169085906004016147a5565b6020604051808303816000875af1158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef791906147be565b50610131546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610f309291169085906004016147a5565b6020604051808303816000875af1158015610f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7391906147be565b5061012f546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610fac9291169085906004016147a5565b6020604051808303816000875af1158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef91906147be565b50610130546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926110289291169085906004016147a5565b6020604051808303816000875af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b91906147be565b50610132546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926110a49291169085906004016147a5565b6020604051808303816000875af11580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e791906147be565b50610132546101355460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926111209291169085906004016147a5565b6020604051808303816000875af115801561113f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116391906147be565b506040517fea5646eb3528e525944447a4a97de700dd472298626e5c0481d1c82c3da86ea590600090a15050565b600054610100900460ff16158080156111b15750600054600160ff909116105b806111cb5750303b1580156111cb575060005460ff166001145b6111e75760405162461bcd60e51b8152600401610850906147db565b6000805460ff19166001179055801561120a576000805461ff0019166101001790555b611212611fea565b8015610943576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006107b56001611a93565b61129d60003361125b565b6112e05760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b6044820152606401610850565b6001600160a01b0381166113365760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610850565b60fb5461135b90600080516020614d99833981519152906001600160a01b031661172a565b611373600080516020614d99833981519152826107ba565b60fb80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff7b449fcd5cfb7379dcd34cb69428dd9f882033b15be33d83b42d91daa28eeb790602001611250565b6113d9600080516020614d998339815191523361125b565b6113f55760405162461bcd60e51b815260040161085090614829565b6000611464306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145c9190614860565b60fd546120cf565b6040516370a0823160e01b81523060048201529091506114da9084906001600160a01b038216906370a0823190602401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d59190614860565b6120f9565b80306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190614860565b101561158b5760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e206578706563746564006044820152606401610850565b6040518281527f227a473b70d2f893cc7659219575c030a63b5743024fe1e0c1a680e708b1525a906020015b60405180910390a1505050565b6115ee7fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde91373361125b565b80611686575060fb54604051632474521560e21b81527fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913760048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168691906147be565b6116dd5760405162461bcd60e51b815260206004820152602260248201527f5265737472696374656420746f20504f5254464f4c494f5f4147454e545f524f6044820152614c4560f01b6064820152608401610850565b60fc83905560fd82905560fe81905560408051848152602081018490529081018290527f116fbf1e97a2be629ad98abfb6c332733c8996c2dfb174dd2efe8440df381d1a906060016115b7565b60008281526065602052604090206001015461174581611d7d565b6107df8383611e0d565b6000611769600080516020614d998339815191523361125b565b6117855760405162461bcd60e51b815260040161085090614829565b600061179083612823565b905080156117cc576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a15b90505b919050565b60006117ee600080516020614d998339815191523361125b565b61180a5760405162461bcd60e51b815260040161085090614829565b600061184d306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611438573d6000803e3d6000fd5b905060008084156118745761186186612823565b905061186d8887612a8a565b91506118e3565b61187f888888612b7c565b9150868210156118e35760405162461bcd60e51b815260206004820152602960248201527f52657475726e65642076616c7565206c657373207468616e2072657175657374604482015268195908185b5bdd5b9d60ba1b6064820152608401610850565b82306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119469190614860565b10156119945760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e206578706563746564006044820152606401610850565b60405163a9059cbb60e01b81526001600160a01b0389169063a9059cbb906119c290899086906004016147a5565b6020604051808303816000875af11580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0591906147be565b5060408051888152602081018490527f9045c2ac9b2026de8075f2701bbdde882cd5e830b3b1ead9a15b22f2b5b93742910160405180910390a18015611a79576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a15b509695505050505050565b6001600160a01b03163b151590565b61012d546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b059190614860565b61012e546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b789190614860565b9050600080611b85612c16565b610131546040516370a0823160e01b81523060048201529294509092506001600160a01b0316906370a0823190602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf69190614860565b611c00908361488f565b61012f546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa158015611c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6e9190614860565b611c78908261488f565b610130546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb9190614860565b9050611cf7838561488f565b93506000611d0483612e57565b90506000611d1183612eea565b9050611d1d818361488f565b611d27908861488f565b96508515611d70578815611d4f57611d3e86612f88565b611d48908861488f565b9650611d70565b611d63611d5b87612f88565b60fc546120cf565b611d6d908861488f565b96505b5094979650505050505050565b6109438133612fbf565b611d91828261125b565b6108635760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611dc93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611e17828261125b565b156108635760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061086381611d7d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611eb2576107df83613018565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f0c575060408051601f3d908101601f19168201909252611f0991810190614860565b60015b611f6f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b600080516020614db98339815191528114611fde5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b506107df8383836130b4565b600054610100900460ff161580801561200a5750600054600160ff909116105b806120245750303b158015612024575060005460ff166001145b6120405760405162461bcd60e51b8152600401610850906147db565b6000805460ff191660011790558015612063576000805461ff0019166101001790555b61206b6130df565b6120736130df565b61207e600033611d87565b601460fc81905560fd55600460fe558015610943576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611250565b60006127106120de83826148a2565b6120e890856148b5565b6120f291906148cc565b9392505050565b61012d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612143573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121679190614860565b6101385461012d5461012e549293506121a0926001600160a01b039283169291821691166064308661219b611d5b8261314c565b61317c565b5061012e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f9190614860565b610131546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561225e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122829190614860565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b031663c3fb90d66040518163ffffffff1660e01b815260040160c060405180830381865afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe9190614912565b9050600081602001516001600160801b03169050600061233261232d84600001516001600160801b0316612e57565b61314c565b610134546101325460405163abca0eab60e01b81529293506000926001600160a01b039283169263abca0eab92612371929116906032906004016149c4565b602060405180830381865afa15801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b29190614860565b905060006123c883670de0b6b3a76400006148b5565b6123d283866148b5565b6123dc919061488f565b826123e7868a6148b5565b6123f191906148b5565b6123fb91906148cc565b6101315461012e546040516320e8c56560e01b81529293506001600160a01b03918216926320e8c5659261243b92309291169086906000906004016149e3565b6020604051808303816000875af115801561245a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247e9190614860565b506124ab604080516080810190915280600081526000602082018190526060604083018190529091015290565b6040805160c08101825261012e546001600160a01b031680825291516370a0823160e01b815230600482015260009260208301916370a0823190602401602060405180830381865afa158015612505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125299190614860565b815261012e546001600160a01b039081166020830152600060408084018290526060840182905260809093018690526101335461013054935163237596db60e11b81529495508216936346eb2db69361258b9330939116918790600401614b0d565b6020604051808303816000875af11580156125aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ce9190614860565b506101335461013254610131546040516370a0823160e01b815230600482018190526001600160a01b03948516946397ee279e949193918116929116906370a0823190602401602060405180830381865afa158015612631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126559190614860565b61012f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561269e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c29190614860565b6040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201526000608482015260a4016060604051808303816000875af1158015612722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127469190614b4a565b505061013654610132546040516370a0823160e01b81523060048201526001600160a01b03928316935063bad55ca1929091169081906370a0823190602401602060405180830381865afa1580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614860565b6040518363ffffffff1660e01b81526004016127e39291906147a5565b600060405180830381600087803b1580156127fd57600080fd5b505af1158015612811573d6000803e3d6000fd5b50505050505050505050505050505050565b610136546101325460405163018ee9b760e01b81526000926001600160a01b039081169263018ee9b79261285f929091169085906004016147a5565b600060405180830381600087803b15801561287957600080fd5b505af115801561288d573d6000803e3d6000fd5b505050506128996132e5565b6128a1613489565b61013a546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156128ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129139190614860565b90508015612954576101385461013a5461012d54612947926001600160a01b0390811692811691166127103086600061317c565b612951908361488f565b91505b61013b546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561299e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c29190614860565b90508015612a03576101385461013b5461012d546129f6926001600160a01b039081169281169116610bb83086600061317c565b612a00908461488f565b92505b8215612a815761012d5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90612a3c90889087906004016147a5565b6020604051808303816000875af1158015612a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7f91906147be565b505b50909392505050565b610136546101325460405163b203bb9960e01b81526001600160a01b039182166004820152306024820152600092612b0f92169063b203bb9990604401602060405180830381865afa158015612ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b089190614860565b6001613642565b61012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612b58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f29190614860565b600080612b93612b8e8560fe54613bbd565b613bcc565b9050612ba0816000613642565b61012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0d9190614860565b95945050505050565b600080600061013260009054906101000a90046001600160a01b03166001600160a01b031663c3fb90d66040518163ffffffff1660e01b815260040160c060405180830381865afa158015612c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c939190614912565b60208101518151610136546101325460405163b203bb9960e01b81526001600160a01b0391821660048201523060248201529495506001600160801b039384169493909216926000929091169063b203bb9990604401602060405180830381865afa158015612d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2a9190614860565b610132546040516370a0823160e01b81523060048201529192506001600160a01b0316906370a0823190602401602060405180830381865afa158015612d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d989190614860565b612da2908261488f565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1e9190614860565b905080612e2b83866148b5565b612e3591906148cc565b965080612e4283856148b5565b612e4c91906148cc565b955050505050509091565b610134546101325460405163abca0eab60e01b815260009283926001600160a01b039182169263abca0eab92612e949216906032906004016149c4565b602060405180830381865afa158015612eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed59190614860565b9050670de0b6b3a76400006120e884836148b5565b610134546101325460405163abca0eab60e01b815260009283926001600160a01b039182169263abca0eab92612f279216906032906004016149c4565b602060405180830381865afa158015612f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f689190614860565b9050670de0b6b3a764000083612f7e83836148a2565b6120e891906148b5565b61013954600090670de0b6b3a764000090612fab906001600160a01b0316613da6565b612fb590846148b5565b6107a391906148cc565b612fc9828261125b565b61086357612fd681613ebb565b612fe1836020613ecd565b604051602001612ff2929190614b78565b60408051601f198184030181529082905262461bcd60e51b825261085091600401614bed565b6001600160a01b0381163b6130855760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b600080516020614db983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6130bd83614069565b6000825111806130ca5750805b156107df576130d983836140a9565b50505050565b600054610100900460ff1661314a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610850565b565b610139546000908190613167906001600160a01b0316613da6565b9050806120e884670de0b6b3a76400006148b5565b60405163095ea7b360e01b81526000906001600160a01b0388169063095ea7b3906131ad908b9087906004016147a5565b6020604051808303816000875af11580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f091906147be565b506040805160e0810182526001600160a01b0389811682528881166020830190815262ffffff89811684860190815289841660608601908152608086018a815260a087018a8152600060c0890190815298516304e45aaf60e01b8152885188166004820152955187166024870152925190931660448501525184166064840152905160848301525160a48201529251811660c48401529091908a16906304e45aaf9060e4016020604051808303816000875af11580156132b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d89190614860565b9998505050505050505050565b6040805160018082528183019092526000916020808301908036833750506101325482519293506001600160a01b03169183915060009061332857613328614c00565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337505061013a5482519293506001600160a01b03169183915060009061338457613384614c00565b6001600160a01b03928316602091820292909201015261013b548251911690829060019081106133b6576133b6614c00565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60608152602001906001900390816133e6579050509050818160008151811061341157613411614c00565b60209081029190910101526101375460405163073a7d6160e51b81526001600160a01b039091169063e74fac20906134529086908590600190600401614c5a565b600060405180830381600087803b15801561346c57600080fd5b505af1158015613480573d6000803e3d6000fd5b50505050505050565b60006134956001611a93565b905060006134a1612c16565b61012f546040516370a0823160e01b81523060048201529193506001600160a01b031691506370a0823190602401602060405180830381865afa1580156134ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135109190614860565b61351a908261488f565b610130546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358d9190614860565b9050600061359a83612e57565b905060006135a783612eea565b9050808211156135f85760006135bd82846148a2565b9050606461013c54876135d091906148b5565b6135da91906148cc565b8111156135f2576135f26135ed82614194565b614212565b5061363b565b600061360483836148a2565b9050606461013c548761361791906148b5565b61362191906148cc565b8111156136395761363961363482614313565b6143b7565b505b5050505050565b61013654610132546040516310ee444960e01b81526001600160a01b03928316926310ee44499261367a9291169086906004016147a5565b600060405180830381600087803b15801561369457600080fd5b505af11580156136a8573d6000803e3d6000fd5b5050610133546101325460405163b7d75b8b60e01b81523060048201526001600160a01b0391821660248201526044810187905260006064820181905260848201529116925063b7d75b8b915060a40160408051808303816000875af1158015613716573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373a9190614cd7565b505061012f546040516370a0823160e01b81523060048201526000916137b5916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561378c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b09190614860565b612e57565b610130546040516370a0823160e01b8152306004820152919250600091613830916001600160a01b0316906370a08231906024015b602060405180830381865afa158015613807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382b9190614860565b612eea565b905060008183106138415781613843565b825b9050801561393257613877604080516080810190915280600081526000602082018190526060604083018190529091015290565b6040805160c08101825261012e546001600160a01b039081168083526000602084018190528385019190915260608301819052608083015260a082018490526101335461013054935163527df19960e01b815292939082169263527df199926138eb92309291169088908790600401614b0d565b6020604051808303816000875af115801561390a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392e9190614860565b5050505b8315613a165761012f546040516370a0823160e01b81523060048201526139a7916001600160a01b0316906370a0823190602401602060405180830381865afa158015613983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ed9190614860565b610130546040516370a0823160e01b8152306004820152613a16916001600160a01b0316906370a0823190602401602060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136349190614860565b610131546040516370a0823160e01b815230600482018190526001600160a01b039092169163769f8e5d9183906370a0823190602401602060405180830381865afa158015613a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8d9190614860565b61012e5460405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252919091166044820152600060648201819052608482015260a4016020604051808303816000875af1158015613af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1a9190614860565b5061012e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b899190614860565b6101385461012e5461012d54929350613480926001600160a01b039283169291821691166064308661219b611d5b82612f88565b60006127106120de838261488f565b60008061013260009054906101000a90046001600160a01b03166001600160a01b031663c3fb90d66040518163ffffffff1660e01b815260040160c060405180830381865afa158015613c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c479190614912565b90506000613c6182602001516001600160801b0316612f88565b90506000613c7b83600001516001600160801b0316612e57565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cf79190614860565b90506000613d05838561488f565b613d0f83896148b5565b613d1991906148cc565b610130546040516370a0823160e01b8152306004820152919250600091613d52916001600160a01b0316906370a08231906024016137ea565b905080881115613d975760008584613d6a848c6148a2565b613d7491906148b5565b613d7e91906148cc565b9050808311613d8d5780613d8f565b825b975050613d9b565b8196505b505050505050919050565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015613dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e109190614d15565b9450945050935093508369ffffffffffffffffffff168169ffffffffffffffffffff161015613e6c5760405162461bcd60e51b81526020600482015260086024820152674f6c64206461746160c01b6044820152606401610850565b60008211613eb15760405162461bcd60e51b8152602060048201526012602482015271526f756e64206e6f7420636f6d706c65746560701b6044820152606401610850565b5090949350505050565b60606107a36001600160a01b03831660145b60606000613edc8360026148b5565b613ee790600261488f565b67ffffffffffffffff811115613eff57613eff614554565b6040519080825280601f01601f191660200182016040528015613f29576020820181803683370190505b509050600360fc1b81600081518110613f4457613f44614c00565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f7357613f73614c00565b60200101906001600160f81b031916908160001a9053506000613f978460026148b5565b613fa290600161488f565b90505b600181111561401a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613fd657613fd6614c00565b1a60f81b828281518110613fec57613fec614c00565b60200101906001600160f81b031916908160001a90535060049490941c9361401381614d65565b9050613fa5565b5083156120f25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b61407281613018565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6141115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610850565b600080846001600160a01b03168460405161412c9190614d7c565b600060405180830381855af49150503d8060008114614167576040519150601f19603f3d011682016040523d82523d6000602084013e61416c565b606091505b5091509150612c0d8282604051806060016040528060278152602001614dd960279139614475565b610134546101325460405163abca0eab60e01b815260009283926001600160a01b039182169263abca0eab926141d19216906032906004016149c4565b602060405180830381865afa1580156141ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131679190614860565b60008111801561428e575061012f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015614266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061428a9190614860565b8111155b15610943576101335461013254604051632032aecd60e01b81526001600160a01b0392831692632032aecd926142d19230929091169086906000906004016149e3565b60408051808303816000875af11580156142ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190614cd7565b610134546101325460405163abca0eab60e01b815260009283926001600160a01b039182169263abca0eab926143509216906032906004016149c4565b602060405180830381865afa15801561436d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143919190614860565b90506143a581670de0b6b3a76400006148a2565b6120e884670de0b6b3a76400006148b5565b6000811180156144335750610130546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561440b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061442f9190614860565b8111155b1561094357610133546101325460405162d5f59560e61b81526001600160a01b039283169263357d6540926142d19230929091169086906000906004016149e3565b606083156144845750816120f2565b6120f283838151156144995781518083602001fd5b8060405162461bcd60e51b81526004016108509190614bed565b6000602082840312156144c557600080fd5b81356001600160e01b0319811681146120f257600080fd5b6000602082840312156144ef57600080fd5b5035919050565b80356001600160a01b03811681146117cf57600080fd5b6000806040838503121561452057600080fd5b82359150614530602084016144f6565b90509250929050565b60006020828403121561454b57600080fd5b6120f2826144f6565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561459357614593614554565b604052919050565b600080604083850312156145ae57600080fd5b6145b7836144f6565b915060208084013567ffffffffffffffff808211156145d557600080fd5b818601915086601f8301126145e957600080fd5b8135818111156145fb576145fb614554565b61460d601f8201601f1916850161456a565b9150808252878482850101111561462357600080fd5b80848401858401376000848284010152508093505050509250929050565b6000610200828403121561465457600080fd5b50919050565b6000806040838503121561466d57600080fd5b614676836144f6565b946020939093013593505050565b60008060006060848603121561469957600080fd5b505081359360208301359350604090920135919050565b801515811461094357600080fd5b600080600080608085870312156146d457600080fd5b6146dd856144f6565b9350602085013592506146f2604086016144f6565b91506060850135614702816146b0565b939692955090935050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b03929092168252602082015260400190565b6000602082840312156147d057600080fd5b81516120f2816146b0565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601f908201527f5265737472696374656420746f20504f5254464f4c494f5f4d414e4147455200604082015260600190565b60006020828403121561487257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107a3576107a3614879565b818103818111156107a3576107a3614879565b80820281158282048414176107a3576107a3614879565b6000826148e957634e487b7160e01b600052601260045260246000fd5b500490565b8051600f81900b81146117cf57600080fd5b805161ffff811681146117cf57600080fd5b600060c0828403121561492457600080fd5b60405160c0810181811067ffffffffffffffff8211171561494757614947614554565b604052614953836148ee565b8152614961602084016148ee565b602082015260408301516bffffffffffffffffffffffff8116811461498557600080fd5b604082015261499660608401614900565b60608201526149a760808401614900565b60808201526149b860a08401614900565b60a08201529392505050565b6001600160a01b0392909216825263ffffffff16602082015260400190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b60005b83811015614a27578181015183820152602001614a0f565b50506000910152565b60008151808452614a48816020860160208601614a0c565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152805160048110614ac557634e487b7160e01b600052602160045260246000fd5b60c0860152602081015190911660e08501526040810151608061010086015290614af3610140860183614a30565b915060608101511515610120860152508091505092915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614b4090830184614a5c565b9695505050505050565b600080600060608486031215614b5f57600080fd5b8351925060208401519150604084015190509250925092565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614bb0816017850160208801614a0c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614be1816028840160208801614a0c565b01602801949350505050565b6020815260006120f26020830184614a30565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015614c4f5781516001600160a01b031687529582019590820190600101614c2a565b509495945050505050565b606081526000614c6d6060830186614c16565b6020838203818501528186518084528284019150828160051b85010183890160005b83811015614cbd57601f19878403018552614cab838351614c16565b94860194925090850190600101614c8f565b505080955050505050508215156040830152949350505050565b60008060408385031215614cea57600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff811681146117cf57600080fd5b600080600080600060a08688031215614d2d57600080fd5b614d3686614cfb565b9450602086015193506040860151925060608601519150614d5960808701614cfb565b90509295509295909350565b600081614d7457614d74614879565b506000190190565b60008251614d8e818460208701614a0c565b919091019291505056fe90c2aa7471c04182221f68e80c07ab1e5946e4c63f8693e14ca40385d529f051360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207d2a224fae78e90cfa444c8cbefb1878e4d4b314aa36d0480e83cd21b2cd543c64736f6c63430008110033