0 txs
3 calls
constructor
constructor(address _aerodromeFactory, address _aerodromeRouter, address _addyRegistry, address _coreRouterPool)
functions
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
AERODROME_FACTORY
viewfunction AERODROME_FACTORY() view returns (address)
AERODROME_ROUTER
viewfunction AERODROME_ROUTER() view returns (address)
canGovern
viewfunction canGovern(address _address) view returns (bool)
coreRouterPool
viewfunction coreRouterPool() view returns (address)
getAccessForLego
viewfunction getAccessForLego(address _user) view returns (address, string, uint256)
getAddLiqAmountsIn
viewfunction getAddLiqAmountsIn(address _pool, address _tokenA, address _tokenB, uint256 _availAmountA, uint256 _availAmountB) view returns (uint256, uint256, uint256)
getBestSwapAmountIn
viewfunction getBestSwapAmountIn(address _tokenIn, address _tokenOut, uint256 _amountOut) view returns (address, uint256)
getBestSwapAmountOut
viewfunction getBestSwapAmountOut(address _tokenIn, address _tokenOut, uint256 _amountIn) view returns (address, uint256)
getCoreRouterPool
viewfunction getCoreRouterPool() view returns (address)
getDeepestLiqPool
viewfunction getDeepestLiqPool(address _tokenA, address _tokenB) view returns (tuple)
getLpToken
viewfunction getLpToken(address _pool) view returns (address)
getPoolForLpToken
viewfunction getPoolForLpToken(address _lpToken) view returns (address)
getPriceUnsafe
viewfunction getPriceUnsafe(address _pool, address _targetToken, address _oracleRegistry) view returns (uint256)
getPriceUnsafe
viewfunction getPriceUnsafe(address _pool, address _targetToken) view returns (uint256)
getRegistries
viewfunction getRegistries() view returns (address[])
getRemoveLiqAmountsOut
viewfunction getRemoveLiqAmountsOut(address _pool, address _tokenA, address _tokenB, uint256 _lpAmount) view returns (uint256, uint256)
getSwapAmountIn
viewfunction getSwapAmountIn(address _pool, address _tokenIn, address _tokenOut, uint256 _amountOut) view returns (uint256)
getSwapAmountOut
viewfunction getSwapAmountOut(address _pool, address _tokenIn, address _tokenOut, uint256 _amountIn) 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)
isActivated
viewfunction isActivated() 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)
pendingGov
viewfunction pendingGov() view returns (tuple)
activate
nonpayablefunction activate(bool _shouldActivate)
addLiquidity
nonpayablefunction addLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, int24 _tickLower, int24 _tickUpper, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, address _recipient) returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
claimRewards
nonpayablefunction claimRewards(address _user, address _market, address _rewardToken, uint256 _rewardAmount, bytes32 _proof)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
recoverFunds
nonpayablefunction recoverFunds(address _asset, address _recipient) returns (bool)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256, uint256, bool)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, address _recipient) returns (uint256, uint256, uint256, uint256, uint256, bool)
setCoreRouterPool
nonpayablefunction setCoreRouterPool(address _addr) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setLegoId
nonpayablefunction setLegoId(uint256 _legoId) returns (bool)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient, address _oracleRegistry) returns (uint256, uint256, uint256, uint256)
swapTokens
nonpayablefunction swapTokens(uint256 _amountIn, uint256 _minAmountOut, address[] _tokenPath, address[] _poolPath, address _recipient) returns (uint256, uint256, uint256, uint256)
events
AeroClassicCoreRouterPoolSet
event AeroClassicCoreRouterPoolSet(address indexed pool)
AeroClassicFundsRecovered
event AeroClassicFundsRecovered(address indexed asset, address indexed recipient, uint256 amount)
AerodromeActivated
event AerodromeActivated(bool isActivated)
AerodromeLegoIdSet
event AerodromeLegoIdSet(uint256 legoId)
AerodromeLiquidityAdded
event AerodromeLiquidityAdded(address indexed sender, address indexed tokenA, address indexed tokenB, uint256 amountA, uint256 amountB, uint256 lpAmountReceived, uint256 usdValue, address recipient)
AerodromeLiquidityRemoved
event AerodromeLiquidityRemoved(address sender, address indexed pool, address indexed tokenA, address indexed tokenB, uint256 amountA, uint256 amountB, address lpToken, uint256 lpAmountBurned, uint256 usdValue, address recipient)
AerodromeSwap
event AerodromeSwap(address indexed sender, address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut, uint256 usdValue, uint256 numTokens, address recipient)
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
0x6138625150346101db5760206139f95f395f518060a01c6101db57610140526020613a195f395f518060a01c6101db57610160526020613a395f395f518060a01c6101db57610180526020613a595f395f518060a01c6101db576101a052610140511561008f576101605115610089576101805115610083576101a0511515610091565b5f610091565b5f610091565b5f5b156101db576101405161382252610160516138425261018051613862526101a05160065560016008555f604052610180516060526040366080376100d36100e5565b6137e26101df61000039613882610000f35b604051156100f45760016100fa565b60605115155b156101db576040511561010d576040515f555b6060511561011c576060516005555b6040608060c05e60c051610131576001610136565b60e051155b156101b057606051156101db5760605163ed860576610100526020610100600461011c845afa610168573d5f5f3e3d5ffd5b60203d106101db5761010090505160c05260605163c55728b0610100526020610100600461011c845afa61019e573d5f5f3e3d5ffd5b60203d106101db5761010090505160e0525b60e05160c05110156101db5760c0516137e25260e05161380252606051156101d95760c0516004555b565b5f80fd5f3560e01c60026030820660011b61378201601e395f51565b6353aa430781186100565760243610341761377e576004358060a01c61377e576102605260206102605161016052610051610280612d21565b610280f35b63bec9a1278118612c4d5760a43610341761377e576004358060a01c61377e576040526024358060a01c61377e576060526044358060a01c61377e57608052606060206138425f395f5163ce700c2961010052604060606101205e6040516322be3de160a052602060a0600460bc845afa6100d3573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c01161377e5760a0518060011c61377e5760e0525060e090505161016052602061382261018039604060646101a037606061010060c461011c845afa61012b573d5f5f3e3d5ffd5b60603d1061377e576101009050f35b633f561eff8118612c4d573461377e57600354151560405260206040f35b6399572d6f8118612c4d5760243610341761377e576004358060a01c61377e57610160526101876101e0612c51565b6101e0805160208160051b0180836101805e505050335f6101e0525f610180516002811161377e5780156101dc57905b8060051b6101a0015183186101d15760016101e0526101dc565b6001018181186101b7575b50506101e05190501561377e576101605160016101e0525f610180516002811161377e57801561022c57905b8060051b6101a001518318610221575f6101e05261022c565b600101818118610208575b50506101e05190501561377e57610160513b1561377e5761024e6101e0612d80565b6101e0511561026157610160511561377e575b4360045480820182811061377e57905090506101e05261016051600155436002556101e051600355610160515f547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b636e4fd9c88118612c4d573461377e576001546040526002546060526003546080526040511561377e57608051156102fd576080514310156102ff565b5f5b1561377e57604051331861377e575f5460a0526040515f555f6001555f6002555f60035560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b63366836cc81186103e1573461377e573361016052610378610260612d21565b610260511561377e5760015461026052600254610280526003546102a0526102a0511561377e575f6001555f6002555f600355610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b630f6da63c8118612c4d5760243610341761377e576004358060a01c61377e5760405260206040f35b63a908dc808118612c4d5760243610341761377e5760035461377e573361016052610436610260612d21565b610260511561377e5760206137e25f395f516004351015610457575f610466565b60206138025f395f5160043511155b1561377e576004356004557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b635aa6e6758118612c4d573461377e575f5460405260206040f35b63252408108118612c4d573461377e5760015460405260025460605260035460805260606040f35b63f40b16978118610500573461377e5760045460405260206040f35b6394b51d378118612c4d573461377e57602061386260403960206040f35b63ed860576811861053c573461377e5760206137e260403960206040f35b632abd8a268118612c4d5760243610341761377e576004358060a01c61377e5760405260206040f35b63c55728b08118612c4d573461377e57602061380260403960206040f35b6335884e5a81186105ff573461377e57602080604052806040015f60406138226101e03960026101c0525f6101c0518084528060051b5f82600a811161377e5780156105e957905b8060051b6101e001518160051b6020890101526001018181186105cb575b5050820160200191505090509050810190506040f35b63e9c9c0ca8118612c4d576101843610341761377e575f61028052610f07565b632f7ab0da81186106805760243610341761377e576004358060a01c61377e5760405260605f60605280608052806060015f81528051806020830101601f825f03163682375050601f19601f825160200101169050810190505f60a0526060f35b63a2db886a8118612c4d5760243610341761377e576004358060a01c61377e576102605233610160526106b4610280612d21565b610280511561377e5761026051600655610260517f13f6ac19110f5c9d00bf30a28dbd9974dfb08700770a91e852a931675c98adf35f610280a26001610280526020610280f35b63dd4260a38118612c4d5760a43610341761377e575f6104605261073f565b6332f4bdc78118610d5c5760c43610341761377e5760a4358060a01c61377e57610460525b604435600401600581351161377e5780355f816005811161377e57801561078857905b8060051b6020850101358060a01c61377e578160051b6103000152600101818118610762575b5050806102e0525050606435600401600481351161377e5780355f816004811161377e5780156107da57905b8060051b6020850101358060a01c61377e578160051b6103c001526001018181186107b4575b5050806103a05250506084358060a01c61377e57610440526008541561377e576102e051610480526103a0516104a0526002610480511061377e57610480516001810381811161377e5790506104a0511861377e576102e0511561377e575f60051b61030001516104c052610480516001810381811161377e5790506102e05181101561377e5760051b61030001516104e0526104c0516370a082316105205230610540526020610520602461053c845afa610898573d5f5f3e3d5ffd5b60203d1061377e57610520905051610500526004356104c0516370a082316105405233610560526020610540602461055c845afa6108d8573d5f5f3e3d5ffd5b60203d1061377e576105409050518082811882841002189050905061052052610520511561377e576104c0516323b872dd6105405233610560523061058052610520516105a0526020610540606461055c5f855af1610939573d5f5f3e3d5ffd5b3d61095057803b1561377e5760016105c05261097a565b3d602081183d602010021880610540016105601161377e57610540518060011c61377e576105c052505b6105c09050511561377e57610520516104c0516370a082316105405230610560526020610540602461055c845afa6109b4573d5f5f3e3d5ffd5b60203d1061377e5761054090505180828118828410021890509050610520526104c05163a9059cbb610540526103a0511561377e575f60051b6103c001516105605261052051610580526020610540604461055c5f855af1610a18573d5f5f3e3d5ffd5b3d610a2f57803b1561377e5760016105a052610a59565b3d602081183d602010021880610540016105601161377e57610540518060011c61377e576105a052505b6105a09050511561377e5760206138226105403961052051610560525f610480516001810381811161377e5790506005811161377e578015610b8e57905b8061058052610580516102e05181101561377e5760051b61030001516105a052610580516001810181811061377e5790506102e05181101561377e5760051b61030001516105c052610580516103a05181101561377e5760051b6103c001516105e0526104405161060052610480516002810381811161377e579050610580511015610b4657610580516001810181811061377e5790506103a05181101561377e5760051b6103c00151610600525b6105e0516040526105a0516060526105c0516080526105605160a0526106005160c0526105405160e052610b7b610620612d89565b6106205161056052600101818118610a97575b50506105605161058052602435610580511061377e576104c0516370a082316105c052306105e05260206105c060246105dc845afa610bcf573d5f5f3e3d5ffd5b60203d1061377e576105c09050516105a0525f6105c052610500516105a0511115610ca9576105a0516105005180820382811161377e57905090506105c0526104c05163a9059cbb6105e05233610600526105c0516106205260206105e060446105fc5f855af1610c42573d5f5f3e3d5ffd5b3d610c5957803b1561377e57600161064052610c83565b3d602081183d6020100218806105e0016106001161377e576105e0518060011c61377e5761064052505b6106409050511561377e57610520516105c05180820382811161377e5790509050610520525b6104c051604052610520516060526104e0516080526105805160a052600160c0526104605160e052610cdc610600613054565b610600516105e0526104e0516104c051337fec74ef82074db49cfa2c65bea045b857c60bbce7d969bc1d86ed59fa8946acf2610520516106005261058051610620526105e051610640526104805161066052610440516106805260a0610600a46105205161060052610580516106205260406105c06106405e6080610600f35b6324ae6a278118612c4d5760443610341761377e576004358060a01c61377e57610260526024358060a01c61377e57610280523361016052610d9f6102a0612d21565b6102a0511561377e57610260516370a082316102c052306102e05260206102c060246102dc845afa610dd3573d5f5f3e3d5ffd5b60203d1061377e576102c09050516102a05261028051610df4576001610dfa565b61026051155b610e08576102a05115610e0b565b60015b15610e1f575f6102e05260206102e0610ede565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af1610e4f573d5f5f3e3d5ffd5b3d610e6657803b1561377e57600161032052610e90565b3d602081183d6020100218806102c0016102e01161377e576102c0518060011c61377e5761032052505b6103209050511561377e5761028051610260517fa476a980b998c309ac09b01d3da4d316b36b63136d9681a659920502dc8a21416102a0516102c05260206102c0a360016102c05260206102c05bf35b63cd3758fc8118611901576101a43610341761377e57610184358060a01c61377e57610280525b6024358060a01c61377e576101c0526044358060a01c61377e576101e0526064358060a01c61377e57610200526084358060020b811861377e576102205260a4358060020b811861377e5761024052610164358060a01c61377e57610260526008541561377e576040366102a0376101c051639d63848a6102e05260406102e060046102fc845afa610f9b573d5f5f3e3d5ffd5b3d604081183d6040100218806102e0016103201161377e576102e0518060a01c61377e5761034052610300518060a01c61377e57610360525061034090506040816103805e5060406103806102a05e60406102a06102e05e6101e0515f610320525f6002905b8060051b6102e00151831861101b57600161032052611026565b600101818118611001575b50506103205190501561377e57610200515f610320525f6002905b8060051b6102e00151831861105b57600161032052611066565b600101818118611041575b50506103205190501561377e57610200516101e0511461377e576101e0516370a082316103405230610360526020610340602461035c845afa6110ab573d5f5f3e3d5ffd5b60203d1061377e5761034090505161032052610200516370a082316103605230610380526020610360602461037c845afa6110e8573d5f5f3e3d5ffd5b60203d1061377e576103609050516103405260c4356101e0516370a0823161038052336103a0526020610380602461039c845afa611128573d5f5f3e3d5ffd5b60203d1061377e576103809050518082811882841002189050905061036052610360511561377e576101e0516323b872dd61038052336103a052306103c052610360516103e0526020610380606461039c5f855af1611189573d5f5f3e3d5ffd5b3d6111a057803b1561377e576001610400526111ca565b3d602081183d602010021880610380016103a01161377e57610380518060011c61377e5761040052505b6104009050511561377e57610360516101e0516370a082316103a052306103c05260206103a060246103bc845afa611204573d5f5f3e3d5ffd5b60203d1061377e576103a0905051808281188284100218905090506103805260e435610200516370a082316103c052336103e05260206103c060246103dc845afa611251573d5f5f3e3d5ffd5b60203d1061377e576103c0905051808281188284100218905090506103a0526103a0511561377e57610200516323b872dd6103c052336103e05230610400526103a0516104205260206103c060646103dc5f855af16112b2573d5f5f3e3d5ffd5b3d6112c957803b1561377e576001610440526112f3565b3d602081183d6020100218806103c0016103e01161377e576103c0518060011c61377e5761044052505b6104409050511561377e576103a051610200516370a082316103e052306104005260206103e060246103fc845afa61132d573d5f5f3e3d5ffd5b60203d1061377e576103e0905051808281188284100218905090506103c05260206138426103e0396101e05163095ea7b3610400526103e0516104205261038051610440526020610400604461041c5f855af161138c573d5f5f3e3d5ffd5b3d6113a357803b1561377e576001610460526113cd565b3d602081183d602010021880610400016104201161377e57610400518060011c61377e5761046052505b6104609050511561377e576102005163095ea7b3610400526103e051610420526103c051610440526020610400604461041c5f855af161140f573d5f5f3e3d5ffd5b3d61142657803b1561377e57600161046052611450565b3d602081183d602010021880610400016104201161377e57610400518060011c61377e5761046052505b6104609050511561377e575f610400526103e051635a47ddc36104805260406101e06104a05e6101c0516322be3de1610420526020610420600461043c845afa61149c573d5f5f3e3d5ffd5b3d602081183d602010021880610420016104401161377e57610420518060011c61377e5761046052506104609050516104e05261038051610500526103c051610520526040610104610540376102605161058052426105a052606061048061012461049c5f855af1611510573d5f5f3e3d5ffd5b60603d1061377e5761048090506060816105c05e506105c051610380526105e0516103c0526106005161040052610400511561377e57610144351561155d5761014435610400511061377e575b6101e05163095ea7b3610420526103e051610440525f610460526020610420604461043c5f855af1611591573d5f5f3e3d5ffd5b3d6115a857803b1561377e576001610480526115d2565b3d602081183d602010021880610420016104401161377e57610420518060011c61377e5761048052505b6104809050511561377e576102005163095ea7b3610420526103e051610440525f610460526020610420604461043c5f855af1611611573d5f5f3e3d5ffd5b3d61162857803b1561377e57600161048052611652565b3d602081183d602010021880610420016104401161377e57610420518060011c61377e5761048052505b6104809050511561377e576101e0516370a082316104405230610460526020610440602461045c845afa611688573d5f5f3e3d5ffd5b60203d1061377e57610440905051610420525f610440526103205161042051111561174857610420516103205180820382811161377e5790509050610440526101e05163a9059cbb610460523361048052610440516104a0526020610460604461047c5f855af16116fb573d5f5f3e3d5ffd5b3d61171257803b1561377e5760016104c05261173c565b3d602081183d602010021880610460016104801161377e57610460518060011c61377e576104c052505b6104c09050511561377e575b610200516370a0823161048052306104a0526020610480602461049c845afa611773573d5f5f3e3d5ffd5b60203d1061377e57610480905051610460525f610480526103405161046051111561183357610460516103405180820382811161377e5790509050610480526102005163a9059cbb6104a052336104c052610480516104e05260206104a060446104bc5f855af16117e6573d5f5f3e3d5ffd5b3d6117fd57803b1561377e57600161050052611827565b3d602081183d6020100218806104a0016104c01161377e576104a0518060011c61377e5761050052505b6105009050511561377e575b6101e05160405261038051606052610200516080526103c05160a0525f60c0526102805160e0526118656104c0613054565b6104c0516104a052610200516101e051337f79674ae9943d878fb484441c6c0b6e9635d6a6a17dedeeb3455d4072ee9347f2610380516104c0526103c0516104e05261040051610500526104a05161052052610260516105405260a06104c0a4610400516104c052610380516104e0526103c051610500526104a05161052052610440516105405261048051610560525f6105805260e06104c0f35b638aadf9ac8118612c4d5760a43610341761377e576004358060a01c61377e576040526024358060a01c61377e576060526044358060a01c61377e57608052005b63971f0c318118612c4d576101243610341761377e575f61026052611989565b6304c388ae8118612c4d576101443610341761377e57610124358060a01c61377e57610260525b6024358060a01c61377e576101c0526044358060a01c61377e576101e0526064358060a01c61377e57610200526084358060a01c61377e5761022052610104358060a01c61377e57610240526008541561377e57604036610280376101c051639d63848a6102c05260406102c060046102dc845afa611a0a573d5f5f3e3d5ffd5b3d604081183d6040100218806102c0016103001161377e576102c0518060a01c61377e57610320526102e0518060a01c61377e57610340525061032090506040816103605e5060406103606102805e60406102806102c05e6101e0515f610300525f6002905b8060051b6102c001518318611a8a57600161030052611a95565b600101818118611a70575b50506103005190501561377e57610200515f610300525f6002905b8060051b6102c001518318611aca57600161030052611ad5565b600101818118611ab0575b50506103005190501561377e57610200516101e0511461377e57610220516370a082316103205230610340526020610320602461033c845afa611b1a573d5f5f3e3d5ffd5b60203d1061377e576103209050516103005260a435610220516370a082316103405233610360526020610340602461035c845afa611b5a573d5f5f3e3d5ffd5b60203d1061377e576103409050518082811882841002189050905061032052610320511561377e57610220516323b872dd6103405233610360523061038052610320516103a0526020610340606461035c5f855af1611bbb573d5f5f3e3d5ffd5b3d611bd257803b1561377e5760016103c052611bfc565b3d602081183d602010021880610340016103601161377e57610340518060011c61377e576103c052505b6103c09050511561377e5761032051610220516370a082316103605230610380526020610360602461037c845afa611c36573d5f5f3e3d5ffd5b60203d1061377e5761036090505180828118828410021890509050610340526020613842610360396102205163095ea7b361038052610360516103a052610340516103c0526020610380604461039c5f855af1611c95573d5f5f3e3d5ffd5b3d611cac57803b1561377e5760016103e052611cd6565b3d602081183d602010021880610380016103a01161377e57610380518060011c61377e576103e052505b6103e09050511561377e576040366103803761036051630dede6c46104205260406101e06104405e6101c0516322be3de16103c05260206103c060046103dc845afa611d24573d5f5f3e3d5ffd5b3d602081183d6020100218806103c0016103e01161377e576103c0518060011c61377e57610400525061040090505161048052610340516104a052604060c46104c03761024051610500524261052052604061042061010461043c5f855af1611d8f573d5f5f3e3d5ffd5b60403d1061377e5761042090506040816105405e5060406105406103805e610380511561377e576103a0511561377e576102205163095ea7b36103c052610360516103e0525f6104005260206103c060446103dc5f855af1611df3573d5f5f3e3d5ffd5b3d611e0a57803b1561377e57600161042052611e34565b3d602081183d6020100218806103c0016103e01161377e576103c0518060011c61377e5761042052505b6104209050511561377e57610220516370a082316103e052306104005260206103e060246103fc845afa611e6a573d5f5f3e3d5ffd5b60203d1061377e576103e09050516103c0525f6103e052610300516103c0511115611f44576103c0516103005180820382811161377e57905090506103e0526102205163a9059cbb6104005233610420526103e051610440526020610400604461041c5f855af1611edd573d5f5f3e3d5ffd5b3d611ef457803b1561377e57600161046052611f1e565b3d602081183d602010021880610400016104201161377e57610400518060011c61377e5761046052505b6104609050511561377e57610340516103e05180820382811161377e5790509050610340525b6101e05160405261038051606052610200516080526103a05160a0525f60c0526102605160e052611f76610420613054565b6104205161040052610200516101e0516101c0517f3cc0378954db06d92b8456b8ad8f41009dbe8c5d528dc2b4c555f64be650c3ee336104205260406103806104405e6102205161048052610340516104a052610400516104c052610240516104e05260e0610420a460406103806104205e610400516104605261034051610480526103e0516104a0526103e05115156104c05260c0610420f35b63b6ff4934811861203e5760243610341761377e576004358060a01c61377e576040525f60605260206060f35b63db37bab48118612c4d573461377e57602061384260403960206040f35b63af90b6b38118612c4d573461377e5760065460405260206040f35b6370b422bf8118612c4d5760443610341761377e576004358060a01c61377e576040526024358060a01c61377e57606052602061382260803960603660a0376080516379bc57d561012052604060406101405e6001610180526020610120606461013c845afa6120ea573d5f5f3e3d5ffd5b3d602081183d602010021880610120016101401161377e57610120518060a01c61377e576101a052506101a0905051610100526080516379bc57d561014052604060406101605e5f6101a0526020610140606461015c845afa61214f573d5f5f3e3d5ffd5b3d602081183d602010021880610140016101601161377e57610140518060a01c61377e576101c052506101c09050516101205261010051612194576101205115612196565b5f5b156121ac5760a0366101403760a0610140612324565b5f6101405261010051156122165761010051630902f1ac610160526060610160600461017c845afa6121e0573d5f5f3e3d5ffd5b60603d1061377e5761016090506060816101e05e5060606101e060a05e60a05160c05180820182811061377e5790509050610140525b5f6101605261012051156122805761012051630902f1ac610180526060610180600461019c845afa61224a573d5f5f3e3d5ffd5b60603d1061377e5761018090506060816102005e50606061020060a05e60a05160c05180820182811061377e5790509050610160525b6101005161018052610140516101a05260016101c052610140516101605111156122ba576101205161018052610160516101a0525f6101c0525b610180516102405260805163cc56b2c56101e05261018051610200526101c0516102205260206101e060446101fc845afa6122f7573d5f5f3e3d5ffd5b60203d1061377e576101e0905051610260526101a0516102805260026102a0526007546102c05260a06102405bf35b63a9f701558118612c4d5760643610341761377e576004358060a01c61377e576040526024358060a01c61377e5760605260206138226080396080516379bc57d560c0526040604060e05e600161012052602060c0606460dc845afa61238e573d5f5f3e3d5ffd5b3d602081183d60201002188060c00160e01161377e5760c0518060a01c61377e57610140525061014090505160a0526080516379bc57d560e052604060406101005e5f61014052602060e0606460fc845afa6123ec573d5f5f3e3d5ffd5b3d602081183d60201002188060e0016101001161377e5760e0518060a01c61377e57610160525061016090505160c05260a05161242c5760c0511561242e565b5f5b156124425760403660e037604060e0612549565b5f60e05260a051156124935760a05163f140a35a6101005260443561012052604051610140526020610100604461011c845afa612481573d5f5f3e3d5ffd5b60203d1061377e5761010090505160e0525b5f6101005260c051156124e65760c05163f140a35a6101205260443561014052604051610160526020610120604461013c845afa6124d3573d5f5f3e3d5ffd5b60203d1061377e57610120905051610100525b60e0516124f75761010051156124f9565b5f5b1561250f57604036610120376040610120612549565b60a0516101205260e0516101405260e05161010051111561253a5760c0516101205261010051610140525b60406101206101605e60406101605bf35b6302bc29fa8118612c4d5760843610341761377e576004358060a01c61377e576040526024358060a01c61377e576060526044358060a01c61377e57608052602060405163f140a35a60a05260643560c05260605160e052602060a0604460bc845afa6125ba573d5f5f3e3d5ffd5b60203d1061377e5760a09050f35b636d15bcdd8118612c4d5760643610341761377e576004358060a01c61377e576101e0526024358060a01c61377e576102005260206138225f395f516379bc57d56102405260406101e06102605e5f6102a0526020610240606461025c845afa612634573d5f5f3e3d5ffd5b3d602081183d602010021880610240016102601161377e57610240518060a01c61377e576102c052506102c090505161022052610220516126a3575f610240527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610260526040610240612759565b6040366102403761022051639d63848a610280526040610280600461029c845afa6126d0573d5f5f3e3d5ffd5b3d604081183d604010021880610280016102c01161377e57610280518060a01c61377e576102e0526102a0518060a01c61377e5761030052506102e090506040816103205e5060406103206102405e610220516102a052610220516040526101e051610240511460605260443560805261274b610280613187565b610280516102c05260406102a05bf35b633d17dd7b8118612c4d5760843610341761377e576004358060a01c61377e576101e0526024358060a01c61377e57610200526044358060a01c61377e57610220526101e0516322be3de1610240526020610240600461025c845afa6127c3573d5f5f3e3d5ffd5b3d602081183d602010021880610240016102601161377e57610240518060011c61377e5761028052506102809050516128a0576040366102a0376101e051639d63848a6102e05260406102e060046102fc845afa612823573d5f5f3e3d5ffd5b3d604081183d6040100218806102e0016103201161377e576102e0518060a01c61377e5761034052610300518060a01c61377e57610360525061034090506040816103805e5060406103806102a05e60206101e051604052610200516102a051146060526064356080526128986102e0613187565b6102e06128cb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102405260206102405bf35b63d56e9c3e81186129b05760843610341761377e576004358060a01c61377e576040526024358060a01c61377e576060526044358060a01c61377e57608052604060206138425f395f5163c92de3ec61010052604060606101205e6040516322be3de160a052602060a0600460bc845afa61294a573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c01161377e5760a0518060011c61377e5760e0525060e0905051610160526020613822610180396064356101a052604061010060a461011c845afa6129a1573d5f5f3e3d5ffd5b60403d1061377e576101009050f35b6315cb51ce8118612c4d573461377e57602061382260403960206040f35b6359ad5d188118612c4d5760443610341761377e575f6102a052612a12565b63605725918118612c4d5760643610341761377e576044358060a01c61377e576102a0525b6004358060a01c61377e57610260526024358060a01c61377e5761028052610260516322be3de16102c05260206102c060046102dc845afa612a56573d5f5f3e3d5ffd5b3d602081183d6020100218806102c0016102e01161377e576102c0518060011c61377e576103005250610300905051612aa6576020606061026060405e612a9e610320613389565b610320612ab1565b5f6102c05260206102c05bf35b63ab96e0798118612c4d5760243610341761377e5760206138625f395f516347be091a6040526002606052602060406024605c845afa612af5573d5f5f3e3d5ffd5b3d602081183d60201002188060400160601161377e576040518060a01c61377e57608052506080905051331861377e57600754604052604051612b39576001612b42565b60043560405118155b1561377e576004356007557f076efc0a5d9c620a7a13f1e382b4f820636ba8b784b59a256eb1f9986a891d0c60043560605260206060a1600160605260206060f35b63ce5e84a38118612c4d5760243610341761377e576004358060011c61377e57610260523361016052612bb8610280612d21565b610280511561377e57610260516008557f1b43f4ba2d1f29a2579f2f9e724a9d5e24e17064b9bbc50aa8edc724dac566ea61026051610280526020610280a1005b6344d92a228118612c4d573461377e5760065460405260206040f35b6359b76fe48118612c31573461377e5760075460405260206040f35b634a8c1fb48118612c4d573461377e5760085460405260206040f35b5f5ffd5b5f6040525f5460a05260a05115612c81576040516001811161377e5760a0518160051b6060015260018101604052505b60055460c05260c05115612d0d5760c051635aa6e675610100526020610100600461011c845afa612cb4573d5f5f3e3d5ffd5b3d602081183d602010021880610100016101201161377e57610100518060a01c61377e57610140525061014090505160e05260e05115612d0d576040516001811161377e5760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b61016051612d306101e0612c51565b6101e05f610240525f81516002811161377e578015612d7157905b8060051b6020840101518418612d6657600161024052612d71565b600101818118612d4b575b50506102405190509050815250565b60055415815250565b60403661010037604051639d63848a610140526040610140600461015c845afa612db5573d5f5f3e3d5ffd5b3d604081183d604010021880610140016101801161377e57610140518060a01c61377e576101a052610160518060a01c61377e576101c052506101a090506040816101e05e5060406101e06101005e60406101006101405e6060515f610180525f6002905b8060051b61014001518318612e3457600161018052612e3f565b600101818118612e1a575b50506101805190501561377e576080515f610180525f6002905b8060051b61014001518318612e7357600161018052612e7e565b600101818118612e59575b50506101805190501561377e576080516060511461377e5760405160e0516379bc57d56101e052604060606102005e6040516322be3de1610180526020610180600461019c845afa612ed2573d5f5f3e3d5ffd5b3d602081183d602010021880610180016101a01161377e57610180518060011c61377e576101c052506101c09050516102405260206101e060646101fc845afa612f1e573d5f5f3e3d5ffd5b3d602081183d6020100218806101e0016102001161377e576101e0518060a01c61377e5761026052506102609050511861377e5761010051606051146101805260405163f140a35a6101c05260a0516101e0526060516102005260206101c060446101dc845afa612f91573d5f5f3e3d5ffd5b60203d1061377e576101c09050516101a0526101a0511561377e576101a0516101c0525f6101e0526101805115612fd0575f6101c0526101a0516101e0525b60405163022c0d9f61022052608060406101c06102405e60c05161028052806102a0525f6102005261020081610240015f81528051806020830101601f825f03163682375050601f19601f825160200101169050905081015050803b1561377e575f61022060a461023c5f855af161304a573d5f5f3e3d5ffd5b506101a051815250565b60e0516101005260e0516130c75760206138625f395f516347be091a610120526004610140526020610120602461013c845afa613093573d5f5f3e3d5ffd5b3d602081183d602010021880610120016101401161377e57610120518060a01c61377e576101605250610160905051610100525b6101005163c660d11261014052604060406101605e6020610140604461015c845afa6130f5573d5f5f3e3d5ffd5b60203d1061377e57610140905051610120526101005163c660d11261016052604060806101805e6020610160604461017c845afa613135573d5f5f3e3d5ffd5b60203d1061377e576101609050516101405260c05161316c57610120516101405180820182811061377e5790509050815250613185565b6101205161014051808281188284110218905090508152505b565b60805161319557600161319b565b60805119155b156131c9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250613387565b60603660a037604051630902f1ac610100526060610100600461011c845afa6131f4573d5f5f3e3d5ffd5b60603d1061377e5761010090506060816101805e50606061018060a05e60a05161321f576001613224565b60c051155b15613252577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250613387565b604060a06101005e6060516132705760c0516101005260a051610120525b6101205160805111156132a6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250613387565b60206138225f395f5163cc56b2c561016052604051610180525f6101a0526020610160604461017c845afa6132dd573d5f5f3e3d5ffd5b60203d1061377e57610160905051610140526101005160805180820281158383830414171561377e579050905061271081028161271082041861377e579050610160526101205160805180820382811161377e5790509050610140518061271003612710811161377e57905080820281158383830414171561377e5790509050610180526101605161018051801561377e57808204905090506001810181811061377e5790508152505b565b60403660a037604051639d63848a60e052604060e0600460fc845afa6133b1573d5f5f3e3d5ffd5b3d604081183d60401002188060e0016101201161377e5760e0518060a01c61377e5761014052610100518060a01c61377e57610160525061014090506040816101805e50604061018060a05e60805160e05260805161346e5760206138625f395f516347be091a610100526004610120526020610100602461011c845afa61343b573d5f5f3e3d5ffd5b3d602081183d602010021880610100016101201161377e57610100518060a01c61377e57610140525061014090505160e0525b5f6101005260a051606051186134c65760e0516376d697606101205260c051610140525f610160526020610120604461013c845afa6134af573d5f5f3e3d5ffd5b60203d1061377e576101209050516101005261350a565b60e0516376d697606101205260a051610140525f610160526020610120604461013c845afa6134f7573d5f5f3e3d5ffd5b60203d1061377e57610120905051610100525b6101005161351b575f81525061377c565b60603661012037604051630902f1ac610180526060610180600461019c845afa613547573d5f5f3e3d5ffd5b60603d1061377e5761018090506060816102005e5060606102006101205e6101205161357457600161357a565b61014051155b15613588575f81525061377c565b61014051670de0b6b3a7640000810281670de0b6b3a764000082041861377e57905061012051801561377e57808204905090506101805260a05163313ce5676101c05260206101c060046101dc845afa6135e4573d5f5f3e3d5ffd5b3d602081183d6020100218806101c0016101e01161377e576101c0518060081c61377e5761020052506102009050516101a05260c05163313ce5676101e05260206101e060046101fc845afa61363c573d5f5f3e3d5ffd5b3d602081183d6020100218806101e0016102001161377e576101e0518060081c61377e5761022052506102209050516101c0526101c0516101a051116136d0576101a0516101c0511115613719576101c0516101a05180820382811161377e5790509050604d811161377e5780600a0a90506101e052610180516101e051801561377e578082049050905061018052613719565b6101a0516101c05180820382811161377e5790509050604d811161377e5780600a0a90506101e052610180516101e05180820281158383830414171561377e5790509050610180525b610180516101e05260c0516060511861374f5761018051801561377e57806ec097ce7bc90715b34b9f10000000000490506101e0525b610100516101e05180820281158383830414171561377e5790509050670de0b6b3a7640000810490508152505b565b5f80fd040a2c4d2c4d06fb20112c4d2c4d071a2c4d2ab3254b275b0ee02c4d1962015804bc29ed2c4d2b842c1504a12c4d04e402c02c4d061f2c4d2c4d25c82c4d2078056519422bf9205c2c4d2326051e001829ce2c4d05832c4d03582c4d28cd013a8558209d19247a98fef3c266a3453c8051f0f0ada1914991242df4fb388bc104b640a31937e281186018a0a1657679706572830004010038000000000000000000000000420dd381b31aef6683db6b902084cb0ffece40da000000000000000000000000cf77a3ba9a5ca399b7c97c74d54e5b1beb874e430000000000000000000000007bcd6d471d1a068012a79347c7a944d1df01a1ae000000000000000000000000cdac0d6c6c59727a65f871236188350531885c43