9 txs
6.9k calls
constructor
constructor(address _aaveV3, address _addressProvider, address _addyRegistry)
functions
AAVE_V3_ADDRESS_PROVIDER
viewfunction AAVE_V3_ADDRESS_PROVIDER() view returns (address)
AAVE_V3_POOL
viewfunction AAVE_V3_POOL() view returns (address)
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
assetOpportunities
viewfunction assetOpportunities(address arg0, uint256 arg1) view returns (address)
assets
viewfunction assets(uint256 arg0) view returns (address)
canGovern
viewfunction canGovern(address _address) view returns (bool)
getAccessForLego
viewfunction getAccessForLego(address _user) view returns (address, string, uint256)
getAssetOpportunities
viewfunction getAssetOpportunities(address _asset) view returns (address[])
getAssets
viewfunction getAssets() view returns (address[])
getRegistries
viewfunction getRegistries() view returns (address[])
getUnderlyingAmount
viewfunction getUnderlyingAmount(address _vaultToken, uint256 _vaultTokenAmount) view returns (uint256)
getUnderlyingAsset
viewfunction getUnderlyingAsset(address _vaultToken) view returns (address)
getUnderlyingData
viewfunction getUnderlyingData(address _vaultToken, uint256 _vaultTokenAmount, address _oracleRegistry) view returns (address, uint256, uint256)
getUnderlyingData
viewfunction getUnderlyingData(address _vaultToken, uint256 _vaultTokenAmount) view returns (address, uint256, uint256)
getUsdValueOfVaultToken
viewfunction getUsdValueOfVaultToken(address _vaultToken, uint256 _vaultTokenAmount, address _oracleRegistry) view returns (uint256)
getUsdValueOfVaultToken
viewfunction getUsdValueOfVaultToken(address _vaultToken, uint256 _vaultTokenAmount) view returns (uint256)
getVaultTokenAmount
viewfunction getVaultTokenAmount(address _asset, uint256 _assetAmount, address _vaultToken) view returns (uint256)
govChangeDelay
viewfunction govChangeDelay() view returns (uint256)
governance
viewfunction governance() view returns (address)
hasClaimableRewards
viewfunction hasClaimableRewards(address _user) view returns (bool)
hasPendingGovChange
viewfunction hasPendingGovChange() view returns (bool)
indexOfAsset
viewfunction indexOfAsset(address arg0) view returns (uint256)
indexOfAssetOpportunity
viewfunction indexOfAssetOpportunity(address arg0, address arg1) view returns (uint256)
isActivated
viewfunction isActivated() view returns (bool)
isVaultToken
viewfunction isVaultToken(address _vaultToken) view returns (bool)
legoId
viewfunction legoId() view returns (uint256)
MAX_GOV_CHANGE_DELAY
viewfunction MAX_GOV_CHANGE_DELAY() view returns (uint256)
MIN_GOV_CHANGE_DELAY
viewfunction MIN_GOV_CHANGE_DELAY() view returns (uint256)
numAssetOpportunities
viewfunction numAssetOpportunities(address arg0) view returns (uint256)
numAssets
viewfunction numAssets() view returns (uint256)
pendingGov
viewfunction pendingGov() view returns (tuple)
totalAssets
viewfunction totalAssets(address _vaultToken) view returns (uint256)
totalBorrows
viewfunction totalBorrows(address _vaultToken) view returns (uint256)
vaultToAsset
viewfunction vaultToAsset(address arg0) view returns (address)
activate
nonpayablefunction activate(bool _shouldActivate)
addAssetOpportunity
nonpayablefunction addAssetOpportunity(address _asset) returns (bool)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
claimRewards
nonpayablefunction claimRewards(address _user, address _market, address _rewardToken, uint256 _rewardAmount, bytes32 _proof)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
depositTokens
nonpayablefunction depositTokens(address _asset, uint256 _amount, address _vault, address _recipient, address _oracleRegistry) returns (uint256, address, uint256, uint256, uint256)
depositTokens
nonpayablefunction depositTokens(address _asset, uint256 _amount, address _vault, address _recipient) returns (uint256, address, uint256, uint256, uint256)
recoverFunds
nonpayablefunction recoverFunds(address _asset, address _recipient) returns (bool)
removeAssetOpportunity
nonpayablefunction removeAssetOpportunity(address _asset) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setLegoId
nonpayablefunction setLegoId(uint256 _legoId) returns (bool)
withdrawTokens
nonpayablefunction withdrawTokens(address _asset, uint256 _amount, address _vaultToken, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256)
withdrawTokens
nonpayablefunction withdrawTokens(address _asset, uint256 _amount, address _vaultToken, address _recipient) returns (uint256, uint256, uint256, uint256)
events
AaveV3Activated
event AaveV3Activated(bool isActivated)
AaveV3Deposit
event AaveV3Deposit(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountDeposited, uint256 usdValue, uint256 vaultTokenAmountReceived, address recipient)
AaveV3FundsRecovered
event AaveV3FundsRecovered(address indexed asset, address indexed recipient, uint256 amount)
AaveV3LegoIdSet
event AaveV3LegoIdSet(uint256 legoId)
AaveV3Withdrawal
event AaveV3Withdrawal(address indexed sender, address indexed asset, address indexed vaultToken, uint256 assetAmountReceived, uint256 usdValue, uint256 vaultTokenAmountBurned, address recipient)
AssetOpportunityAdded
event AssetOpportunityAdded(address indexed asset, address indexed vaultToken)
AssetOpportunityRemoved
event AssetOpportunityRemoved(address indexed asset, address indexed vaultToken)
GovChangeCancelled
event GovChangeCancelled(address indexed cancelledGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeConfirmed
event GovChangeConfirmed(address indexed prevGov, address indexed newGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeDelaySet
event GovChangeDelaySet(uint256 delayBlocks)
GovChangeInitiated
event GovChangeInitiated(address indexed prevGov, address indexed newGov, uint256 confirmBlock)
errors
No errors.
creation bytecode
0x6126bf5150346101bb5760206128365f395f518060a01c6101bb576101405260206128565f395f518060a01c6101bb576101605260206128765f395f518060a01c6101bb5761018052610140511561006b5761016051156100655761018051151561006d565b5f61006d565b5f5b156101bb576101405161267f526101605161269f52610180516126bf526001600e555f604052610180516060526040366080376100a86100c2565b6100b06101b9565b61263f6101bf610000396126df610000f35b604051156100d15760016100d7565b60605115155b156101bb57604051156100eb576040516007555b606051156100fa57606051600c555b6040608060c05e60c05161010f576001610114565b60e051155b1561018e57606051156101bb5760605163ed860576610100526020610100600461011c845afa610146573d5f5f3e3d5ffd5b60203d106101bb5761010090505160c05260605163c55728b0610100526020610100600461011c845afa61017c573d5f5f3e3d5ffd5b60203d106101bb5761010090505160e0525b60e05160c05110156101bb5760c05161263f5260e05161265f52606051156101b75760c051600b555b565b565b5f80fd5f3560e01c60026028820660011b6125ef01601e395f51565b636aa06de08118611c22576024361034176125eb576004358060a01c6125eb5760405260026040516020525f5260405f20546060526060516100a157602080608052806080015f5f82525f5f5f600f81116125eb57801561008b57905b5f8160051b602087010152600101818118610075575b505081016020019050905081019050608061016f565b5f6080526001606051806001116125eb57600181039050600f81116125eb578015610113578101905b8061028052608051600e81116125eb575f6040516020525f5260405f2080610280516020525f5260405f209050548160051b60a0015260018101608052506001018181186100ca575b50506020806102805280610280015f6080518083528060051b5f82600f81116125eb57801561015b57905b8060051b60a001518160051b60208801015260010181811861013e575b505082016020019150509050810190506102805bf35b6367e4ac2c811861029d57346125eb576006546040526040516101db57602080606052806060015f5f82525f5f5f601981116125eb5780156101c557905b5f8160051b6020870101526001018181186101af575b505081016020019050905081019050606061029b565b5f6060526001604051806001116125eb57600181039050601981116125eb57801561023f578101905b806103a052606051601881116125eb5760046103a0516020525f5260405f20548160051b608001526001810160605250600101818118610204575b50506020806103a052806103a0015f6060518083528060051b5f82601981116125eb57801561028757905b8060051b608001518160051b60208801015260010181811861026a575b505082016020019150509050810190506103a05bf35b638aadf9ac81186102de5760a4361034176125eb576004358060a01c6125eb576040526024358060a01c6125eb576060526044358060a01c6125eb57608052005b63b6ff49348118611c22576024361034176125eb576004358060a01c6125eb576040525f60605260206060f35b63e8d314e78118610354576044361034176125eb576004358060a01c6125eb576040525f6040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b633f561eff8118611c2257346125eb57600a54151560405260206040f35b636e2882968118611c22576044361034176125eb576004358060a01c6125eb576040526024358060a01c6125eb5760605260016040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b63b2fba7938118611c22576024361034176125eb576004358060a01c6125eb5760405260026040516020525f5260405f205460605260206060f35b63cac7a0258118610440576024361034176125eb576004358060a01c6125eb5760405260036040516020525f5260405f205460605260206060f35b635aa6e675811861045c57346125eb5760075460405260206040f35b6362fb8fb58118611c22576024361034176125eb576004358060a01c6125eb57610260523361016052610490610280611cf7565b61028051156125eb576104a46102a0611f22565b6102a051610280526102805163d2493b6c6102c052610260516102e05260606102c060246102dc845afa6104da573d5f5f3e3d5ffd5b3d606081183d6060100218806102c001610320116125eb576102c0518060a01c6125eb57610340526102e0518060a01c6125eb5761036052610300518060a01c6125eb5761038052506103409050516102a0526102a051156125eb576102605163095ea7b36102c052602061267f6102e0397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103005260206102c060446102dc5f855af161058b573d5f5f3e3d5ffd5b3d6105a257803b156125eb576001610320526105cc565b3d602081183d6020100218806102c0016102e0116125eb576102c0518060011c6125eb5761032052505b610320905051156125eb57610260516080526102a05160a0526105ed6122ec565b60016102c05260206102c0f35b63cf35bdd08118610627576024361034176125eb5760046004356020525f5260405f205460405260206040f35b63252408108118611c2257346125eb57600854604052600954606052600a5460805260606040f35b636a1e31bc811861068a576024361034176125eb576004358060a01c6125eb5760405260056040516020525f5260405f205460605260206060f35b638d7301248118611c22576024361034176125eb576004358060a01c6125eb57613900526106b9613940611f22565b613940516139205260406139006138205e6106d5613960611fd0565b6139605161394052613940516106f4575f613960526020613960610732565b602061392051634d44ac4f6139605261394051613980526020613960602461397c845afa610724573d5f5f3e3d5ffd5b60203d106125eb5761396090505bf35b63a46fe83b811861075057346125eb5760065460405260206040f35b631a606eb381186107ad576064361034176125eb576044358060a01c6125eb57613ba0525b6004358060a01c6125eb57613b80526020613b8051613a0052602435613a2052613ba051613a40526107a8613bc06121fb565b613bc0f35b632a3017538118611c2257346125eb57602061269f60403960206040f35b6353aa43078118610809576024361034176125eb576004358060a01c6125eb576102605260206102605161016052610804610280611cf7565b610280f35b63c797bfe78118611c22576084361034176125eb575f61018052611627565b6399572d6f8118610991576024361034176125eb576004358060a01c6125eb57610160526108576101e0611c26565b6101e0805160208160051b0180836101805e505050335f6101e0525f61018051600281116125eb5780156108ac57905b8060051b6101a0015183186108a15760016101e0526108ac565b600101818118610887575b50506101e0519050156125eb576101605160016101e0525f61018051600281116125eb5780156108fc57905b8060051b6101a0015183186108f1575f6101e0526108fc565b6001018181186108d8575b50506101e0519050156125eb57610160513b156125eb5761091e6101e0611d56565b6101e051156109315761016051156125eb575b43600b548082018281106125eb57905090506101e05261016051600855436009556101e051600a55610160516007547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b636331f17f8118611c22576044361034176125eb576004358060a01c6125eb576138c0526138c051613820526109c86138e0611f79565b6138e0516109d75760016109dc565b602435155b156109f0575f613900526020613900610a0e565b60206138c051604052602435606052610a0a6138e0612072565b6138e05bf35b636e4fd9c88118610aaa57346125eb57600854604052600954606052600a54608052604051156125eb5760805115610a4d57608051431015610a4f565b5f5b156125eb5760405133186125eb5760075460a0526040516007555f6008555f6009555f600a5560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b6359c521208118611c22576064361034176125eb576044358060a01c6125eb57613a20525b6004358060a01c6125eb57613a00526060613a00516139005260243561392052613a205161394052610b02613a4061211f565b613a40f35b63366836cc8118610b9057346125eb573361016052610b27610260611cf7565b61026051156125eb576008546102605260095461028052600a546102a0526102a051156125eb575f6008555f6009555f600a55610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b6359b76fe48118611c2257346125eb57600d5460405260206040f35b63a908dc808118610c43576024361034176125eb57600a546125eb573361016052610bd8610260611cf7565b61026051156125eb57602061263f5f395f516004351015610bf9575f610c08565b602061265f5f395f5160043511155b156125eb57600435600b557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b63c55728b08118611c2257346125eb57602061265f60403960206040f35b63f40b16978118610c7d57346125eb57600b5460405260206040f35b63f3e0ffbf8118610d03576024361034176125eb576004358060a01c6125eb576138c0526138c05161382052610cb46138e0611f79565b6138e051610ccb575f613900526020613900610d01565b60206138c0516318160ddd6138e05260206138e060046138fc845afa610cf3573d5f5f3e3d5ffd5b60203d106125eb576138e090505bf35b6394b51d378118611c2257346125eb5760206126bf60403960206040f35b63ed8605768118611c2257346125eb57602061263f60403960206040f35b6335884e5a8118611c2257346125eb57602080604052806040015f604061267f6101e03960026101c0525f6101c0518084528060051b5f82600a81116125eb578015610da557905b8060051b6101e001518160051b602089010152600101818118610d87575b5050820160200191505090509050810190506040f35b632f7ab0da8118610e1c576024361034176125eb576004358060a01c6125eb5760405260605f60605280608052806060015f81528051806020830101601f825f03163682375050601f19601f825160200101169050810190505f60a0526060f35b63e8689daa8118611c22576024361034176125eb576004358060a01c6125eb576139005260206139005161396052610e55613920611f22565b613920516139805260406139606138205e610e71613940611fd0565b613940f35b63338c4ccb8118610eb4576024361034176125eb576004358060a01c6125eb576138c05260206138c05161382052610eaf6138e0611f79565b6138e0f35b63ce5e84a38118611c22576024361034176125eb576004358060011c6125eb57610260523361016052610ee8610280611cf7565b61028051156125eb5761026051600e557fc284520874192d84259968161a30d2a24882428ff572e68cb2ffa98624e0fdb461026051610280526020610280a1005b63fbddde9c8118610f8b576064361034176125eb576004358060a01c6125eb576040526044358060a01c6125eb5760605260405160036060516020525f5260405f205414610f7e575f60805260206080610f89565b602435608052602060805bf35b6314f5c51c8118610faa576084361034176125eb575f61018052611029565b634a8c1fb48118611c2257346125eb57600e5460405260206040f35b63790613038118611c22576044361034176125eb575f613ba052610775565b63333f17518118611c22576044361034176125eb575f613a2052610acf565b631b7a69e7811861147e5760a4361034176125eb576084358060a01c6125eb57610180525b6004358060a01c6125eb57610120526044358060a01c6125eb57610140526064358060a01c6125eb5761016052600e54156125eb57604061012060405e6110716101c0612233565b6101c0516101a052610120516370a082316101e052306102005260206101e060246101fc845afa6110a4573d5f5f3e3d5ffd5b60203d106125eb576101e09050516101c0526101a0516370a082316102005261016051610220526020610200602461021c845afa6110e4573d5f5f3e3d5ffd5b60203d106125eb576102009050516101e052602435610120516370a082316102205233610240526020610220602461023c845afa611124573d5f5f3e3d5ffd5b60203d106125eb57610220905051808281188284100218905090506102005261020051156125eb57610120516323b872dd610220523361024052306102605261020051610280526020610220606461023c5f855af1611185573d5f5f3e3d5ffd5b3d61119c57803b156125eb5760016102a0526111c6565b3d602081183d60201002188061022001610240116125eb57610220518060011c6125eb576102a052505b6102a0905051156125eb5761020051610120516370a082316102405230610260526020610240602461025c845afa611200573d5f5f3e3d5ffd5b60203d106125eb576102409050518082811882841002189050905061022052602061267f5f395f5163617ba0376102405261012051610260526102205161028052610160516102a0525f6102c052803b156125eb575f610240608461025c5f855af161126e573d5f5f3e3d5ffd5b506101a0516370a082316102605261016051610280526020610260602461027c845afa61129d573d5f5f3e3d5ffd5b60203d106125eb5761026090505161024052610240516101e0518082038281116125eb57905090506102605261026051156125eb57610120516370a082316102a052306102c05260206102a060246102bc845afa6112fd573d5f5f3e3d5ffd5b60203d106125eb576102a0905051610280525f6102a0526101c0516102805111156113d757610280516101c0518082038281116125eb57905090506102a0526101205163a9059cbb6102c052336102e0526102a0516103005260206102c060446102dc5f855af1611370573d5f5f3e3d5ffd5b3d61138757803b156125eb576001610320526113b1565b3d602081183d6020100218806102c0016102e0116125eb576102c0518060011c6125eb5761032052505b610320905051156125eb57610220516102a0518082038281116125eb5790509050610220525b6101205160405261022051606052610180516080526113f76102e061207a565b6102e0516102c0526101a05161012051337fcb3d2ed24919c5d21678bf0569c14754243a4c6144393377727f2c1657aacf33610220516102e0526102c051610300526102605161032052610160516103405260806102e0a4610220516102e0526101a0516103005261026051610320526102a051610340526102c0516103605260a06102e0f35b6324ae6a278118611c22576044361034176125eb576004358060a01c6125eb57610260526024358060a01c6125eb576102805233610160526114c16102a0611cf7565b6102a051156125eb57610260516370a082316102c052306102e05260206102c060246102dc845afa6114f5573d5f5f3e3d5ffd5b60203d106125eb576102c09050516102a0526102805161151657600161151c565b61026051155b61152a576102a0511561152d565b60015b15611541575f6102e05260206102e0611600565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af1611571573d5f5f3e3d5ffd5b3d61158857803b156125eb576001610320526115b2565b3d602081183d6020100218806102c0016102e0116125eb576102c0518060011c6125eb5761032052505b610320905051156125eb5761028051610260517f63a69d44757eb0a629600e841a14d452147c44b37bb7d5aad70274843df7944a6102a0516102c05260206102c0a360016102c05260206102c05bf35b63e9bb12f08118611c225760a4361034176125eb576084358060a01c6125eb57610180525b6004358060a01c6125eb57610120526044358060a01c6125eb57610140526064358060a01c6125eb5761016052600e54156125eb57604061012060405e61166f6101c0612233565b6101c0516101a0526101a0516370a082316101e052306102005260206101e060246101fc845afa6116a2573d5f5f3e3d5ffd5b60203d106125eb576101e09050516101c052610120516370a082316102005261016051610220526020610200602461021c845afa6116e2573d5f5f3e3d5ffd5b60203d106125eb576102009050516101e0526024356101a0516370a082316102205233610240526020610220602461023c845afa611722573d5f5f3e3d5ffd5b60203d106125eb57610220905051808281188284100218905090506102005261020051156125eb576101a0516323b872dd610220523361024052306102605261020051610280526020610220606461023c5f855af1611783573d5f5f3e3d5ffd5b3d61179a57803b156125eb5760016102a0526117c4565b3d602081183d60201002188061022001610240116125eb57610220518060011c6125eb576102a052505b6102a0905051156125eb57602061267f5f395f516369328dec6102205261012051610240527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610260526101605161028052803b156125eb575f610220606461023c5f855af1611836573d5f5f3e3d5ffd5b50610120516370a082316102405261016051610260526020610240602461025c845afa611865573d5f5f3e3d5ffd5b60203d106125eb5761024090505161022052610220516101e0518082038281116125eb57905090506102405261024051156125eb576101a0516370a0823161028052306102a0526020610280602461029c845afa6118c5573d5f5f3e3d5ffd5b60203d106125eb57610280905051610260525f610280526101c05161026051111561199f57610260516101c0518082038281116125eb5790509050610280526101a05163a9059cbb6102a052336102c052610280516102e05260206102a060446102bc5f855af1611938573d5f5f3e3d5ffd5b3d61194f57803b156125eb57600161030052611979565b3d602081183d6020100218806102a0016102c0116125eb576102a0518060011c6125eb5761030052505b610300905051156125eb5761020051610280518082038281116125eb5790509050610200525b6101205160405261024051606052610180516080526119bf6102c061207a565b6102c0516102a0526101a05161012051337f15213a82e702a8ca5b2d6970fc7cc916c836355d82b56d310ddaa6c315896a0b610240516102c0526102a0516102e0526102005161030052610160516103205260806102c0a4610240516102c052610200516102e05260406102806103005e60806102c0f35b636b521a918118611c22576024361034176125eb576004358060a01c6125eb57610260523361016052611a6b610280611cf7565b61028051156125eb575f610260516020525f5260405f208060016020525f5260405f2090505461028052604061026060e05e611aa561248b565b6102605163095ea7b36102a052602061267f6102c0395f6102e05260206102a060446102bc5f855af1611ada573d5f5f3e3d5ffd5b3d611af157803b156125eb57600161030052611b1b565b3d602081183d6020100218806102a0016102c0116125eb576102a0518060011c6125eb5761030052505b610300905051156125eb5760016102a05260206102a0f35b63ab96e0798118611c22576024361034176125eb5760206126bf5f395f516347be091a6040526002606052602060406024605c845afa611b75573d5f5f3e3d5ffd5b3d602081183d6020100218806040016060116125eb576040518060a01c6125eb5760805250608090505133186125eb57600d54604052604051611bb9576001611bc2565b60043560405118155b156125eb57600435600d557fe87c477175f74f881ee96934929e97e2da182fee1de0bef00dfea5b17eb6764960043560605260206060a1600160605260206060f35b633b3037058118611c2257346125eb57602061267f60403960206040f35b5f5ffd5b5f60405260075460a05260a05115611c5757604051600181116125eb5760a0518160051b6060015260018101604052505b600c5460c05260c05115611ce35760c051635aa6e675610100526020610100600461011c845afa611c8a573d5f5f3e3d5ffd5b3d602081183d60201002188061010001610120116125eb57610100518060a01c6125eb57610140525061014090505160e05260e05115611ce357604051600181116125eb5760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b61016051611d066101e0611c26565b6101e05f610240525f8151600281116125eb578015611d4757905b8060051b6020840101518418611d3c57600161024052611d47565b600101818118611d21575b50506102405190509050815250565b600c5415815250565b60605163f561ae41610fa052611940610fa06004610fbc845afa611d85573d5f5f3e3d5ffd5b3d61194081183d61194010021880610fa001610fc0116125eb57610fa0610fa051610fa001106125eb57610fa051610fa00181610fa001815160051b6020018201116125eb5760288151116125eb5780515f81602881116125eb578015611e7957905b602084018160051b6020860101516020860101106125eb578060051b602085010151602085010185610fa00160408201116125eb5760608202612920018182518301106125eb5781518201805188610fa00182516020018301116125eb57602081116125eb575060208151018082845e505060208201518060a01c6125eb5760408201525050600101818118611de8575b50508061290052505050612900905080515f81602881116125eb578015611ebe57905b6060810260208501016060820260a001606082825e5050600101818118611e9c575b50508060805250505f608051602881116125eb578015611f1957905b80610fa0526040516060610fa0516080518110156125eb570260a0016040810190505118611f0e5760018352505050611f20565b600101818118611eda575b50505f8152505b565b602061269f5f395f5163e860accb604052602060406004605c845afa611f4a573d5f5f3e3d5ffd5b3d602081183d6020100218806040016060116125eb576040518060a01c6125eb57608052506080905051815250565b6003613820516020525f5260405f205415611f98576001815250611fce565b6138205161388052611fab613840611f22565b613840516138a052604061388060405e611fc6613860611d5f565b613860518152505b565b6003613820516020525f5260405f2054613860526138605161200857604061382060405e611fff613880611d5f565b6138805161200a565b5f5b15612069576138205163b16a19de6138a05260206138a060046138bc845afa612035573d5f5f3e3d5ffd5b3d602081183d6020100218806138a0016138c0116125eb576138a0518060a01c6125eb576138e052506138e0905051613860525b61386051815250565b606051815250565b60805160a0526080516120e45760206126bf5f395f516347be091a60c052600460e052602060c0602460dc845afa6120b4573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e0116125eb5760c0518060a01c6125eb57610100525061010090505160a0525b60a05163c660d11260c0526040604060e05e602060c0604460dc845afa61210d573d5f5f3e3d5ffd5b60203d106125eb5760c0905051815250565b6139205161212e576001612134565b61390051155b1561214e575f81525f60208201525f6040820152506121f9565b613900516139c052612161613980611f22565b613980516139e05260406139c06138205e61217d6139a0611fd0565b6139a05161396052613960516121a2575f81525f60208201525f6040820152506121f9565b604061390060405e6121b56139a0612072565b6139a05161398052604061396060405e613940516080526121d76139c061207a565b6139c0516139a0526139605181526139805160208201526139a0516040820152505b565b606036613a60376060613a006139005e612216613ac061211f565b613ac0606081613b205e506060613b20613a605e613aa051815250565b60605160805260605115612261575f6040516020525f5260405f208060016020525f5260405f209050546080525b60016040516020525f5260405f20806080516020525f5260405f20905054156125eb57608051815250565b60056040516020525f5260405f20546122ea576006546060526060516122b25760016060525b60405160046060516020525f5260405f205560605160056040516020525f5260405f2055606051600181018181106125eb5790506006555b565b60016080516020525f5260405f208060a0516020525f5260405f209050546125eb57608051156123205760a0511515612322565b5f5b156125eb5760026080516020525f5260405f205460c05260c05161234657600160c0525b60a0515f6080516020525f5260405f208060c0516020525f5260405f2090505560c05160016080516020525f5260405f208060a0516020525f5260405f2090505560c051600181018181106125eb57905060026080516020525f5260405f2055608051600360a0516020525f5260405f20556080516040526123c661228c565b60a0516080517f3348d34d0e8a0dd27ac5dac3c961cb4454574797a11cf73e86d50b4b069c0edc5f60e0a3565b600654606052600160605111156124895760056040516020525f5260405f20546080526080511561248957606051600181038181116125eb57905060a05260a0516006555f60056040516020525f5260405f205560a0516080511461248957600460a0516020525f5260405f205460c05260c05160046080516020525f5260405f2055608051600560c0516020525f5260405f20555b565b600160e0516020525f5260405f2080610100516020525f5260405f209050546101205261012051156125eb57600260e0516020525f5260405f205461014052600261014051106125eb5761014051600181038181116125eb5790506101605261016051600260e0516020525f5260405f20555f600160e0516020525f5260405f2080610100516020525f5260405f209050555f6003610100516020525f5260405f20556101605161012051146125a3575f60e0516020525f5260405f2080610160516020525f5260405f2090505461018052610180515f60e0516020525f5260405f2080610120516020525f5260405f2090505561012051600160e0516020525f5260405f2080610180516020525f5260405f209050555b600161016051116125bc5760e0516040526125bc6123f3565b6101005160e0517f806b555e5d3ce1eff082e5a7a21ef3550a2d56728951ae4e8a2a699509448be65f610180a3565b5f80fd0bac1b330d3f03ca1c221c221c2207cb16021c221c220734017104050d2110040a101c220dbb0fc60f291c221c220c6100181a371c221c22064f1c220372082805fa0fe51c220e760b071c041c22030b855820994585851c491e0cd9abb6962fcae87ff723da486d04875e66a347c1c2e6535919263f81185018a0a1657679706572830004010038000000000000000000000000a238dd80c259a72e81d7e4664a9801593f98d1c5000000000000000000000000e20fcbdbffc4dd138ce8b2e6fbb6cb49777ad64d0000000000000000000000007bcd6d471d1a068012a79347c7a944d1df01a1ae