ETH Price: $2,718.46 (+0.81%)
 

More Info

Private Name Tags

Multichain Info

Transaction Hash
Block
From
To
Renounce Role1369744832025-06-10 9:29:03482 days ago1749547743IN
0xeD8b81E3...2007D88bA
0 ETH0.0000000207260.0001035
Revoke Role1251414242024-09-09 11:33:45756 days ago1725881625IN
0xeD8b81E3...2007D88bA
0 ETH0.0000000763530.00106545
Revoke Role1251414132024-09-09 11:33:23756 days ago1725881603IN
0xeD8b81E3...2007D88bA
0 ETH0.0000000679610.00106689
Grant Role1251414092024-09-09 11:33:15756 days ago1725881595IN
0xeD8b81E3...2007D88bA
0 ETH0.0000001333070.00106638
Grant Role1251414062024-09-09 11:33:09756 days ago1725881589IN
0xeD8b81E3...2007D88bA
0 ETH0.0000001325140.00106436
Grant Role1251414022024-09-09 11:33:01756 days ago1725881581IN
0xeD8b81E3...2007D88bA
0 ETH0.0000000588660.00106571
Grant Role1251413992024-09-09 11:32:55756 days ago1725881575IN
0xeD8b81E3...2007D88bA
0 ETH0.0000001518280.00106877
Update Mutable P...1251413562024-09-09 11:31:29756 days ago1725881489IN
0xeD8b81E3...2007D88bA
0 ETH0.0000001544090.00109136

Latest 22 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
1251422992024-09-09 12:02:55756 days ago1725883375
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422992024-09-09 12:02:55756 days ago1725883375
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422902024-09-09 12:02:37756 days ago1725883357
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422902024-09-09 12:02:37756 days ago1725883357
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422792024-09-09 12:02:15756 days ago1725883335
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422792024-09-09 12:02:15756 days ago1725883335
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422692024-09-09 12:01:55756 days ago1725883315
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422692024-09-09 12:01:55756 days ago1725883315
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422582024-09-09 12:01:33756 days ago1725883293
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422582024-09-09 12:01:33756 days ago1725883293
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422472024-09-09 12:01:11756 days ago1725883271
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422472024-09-09 12:01:11756 days ago1725883271
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422362024-09-09 12:00:49756 days ago1725883249
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422362024-09-09 12:00:49756 days ago1725883249
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422252024-09-09 12:00:27756 days ago1725883227
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422252024-09-09 12:00:27756 days ago1725883227
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422142024-09-09 12:00:05756 days ago1725883205
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422142024-09-09 12:00:05756 days ago1725883205
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422032024-09-09 11:59:43756 days ago1725883183
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251422032024-09-09 11:59:43756 days ago1725883183
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251417912024-09-09 11:45:59756 days ago1725882359
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH
1251417912024-09-09 11:45:59756 days ago1725882359
0xeD8b81E3...2007D88bA
 Contract Creation0 ETH

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

VeloDeployFactory

Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled
Yes with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"contract ICore","name":"core_","type":"address"},{"internalType":"contract IVeloDepositWithdrawModule","name":"ammDepositWithdrawModule_","type":"address"},{"internalType":"contract IVeloDeployFactoryHelper","name":"helper_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressZero","type":"error"},{"inputs":[],"name":"Forbidden","type":"error"},{"inputs":[],"name":"InvalidParams","type":"error"},{"inputs":[],"name":"LpWrapperAlreadyCreated","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"pool","type":"address"},{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"property","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct IAmmModule.AmmPosition","name":"ammPosition","type":"tuple"},{"components":[{"internalType":"enum IPulseStrategyModule.StrategyType","name":"strategyType","type":"uint8"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"width","type":"int24"}],"internalType":"struct IPulseStrategyModule.StrategyParams","name":"strategyParams","type":"tuple"},{"internalType":"address","name":"lpWrapper","type":"address"},{"internalType":"address","name":"synthetixFarm","type":"address"},{"internalType":"address","name":"caller","type":"address"}],"indexed":false,"internalType":"struct IVeloDeployFactory.StrategyCreatedParams","name":"params","type":"tuple"}],"name":"StrategyCreated","type":"event"},{"inputs":[],"name":"ADMIN_DELEGATE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"uint32","name":"slippageD9","type":"uint32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"securityParams","type":"bytes"},{"internalType":"enum IPulseStrategyModule.StrategyType","name":"strategyType","type":"uint8"}],"internalType":"struct IVeloDeployFactory.DeployParams","name":"params","type":"tuple"}],"name":"createStrategy","outputs":[{"components":[{"internalType":"address","name":"synthetixFarm","type":"address"},{"internalType":"address","name":"lpWrapper","type":"address"}],"internalType":"struct IVeloDeployFactory.PoolAddresses","name":"poolAddresses","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getImmutableParams","outputs":[{"components":[{"internalType":"contract ICore","name":"core","type":"address"},{"internalType":"contract IPulseStrategyModule","name":"strategyModule","type":"address"},{"internalType":"contract IVeloAmmModule","name":"veloModule","type":"address"},{"internalType":"contract IVeloDepositWithdrawModule","name":"depositWithdrawModule","type":"address"},{"internalType":"contract IVeloDeployFactoryHelper","name":"helper","type":"address"}],"internalType":"struct IVeloDeployFactory.ImmutableParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMutableParams","outputs":[{"components":[{"internalType":"address","name":"lpWrapperAdmin","type":"address"},{"internalType":"address","name":"lpWrapperManager","type":"address"},{"internalType":"address","name":"farmOwner","type":"address"},{"internalType":"address","name":"farmOperator","type":"address"},{"internalType":"uint256","name":"minInitialLiquidity","type":"uint256"}],"internalType":"struct IVeloDeployFactory.MutableParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"poolToAddresses","outputs":[{"components":[{"internalType":"address","name":"synthetixFarm","type":"address"},{"internalType":"address","name":"lpWrapper","type":"address"}],"internalType":"struct IVeloDeployFactory.PoolAddresses","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"removeAddressesForPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"lpWrapperAdmin","type":"address"},{"internalType":"address","name":"lpWrapperManager","type":"address"},{"internalType":"address","name":"farmOwner","type":"address"},{"internalType":"address","name":"farmOperator","type":"address"},{"internalType":"uint256","name":"minInitialLiquidity","type":"uint256"}],"internalType":"struct IVeloDeployFactory.MutableParams","name":"newMutableParams","type":"tuple"}],"name":"updateMutableParams","outputs":[],"stateMutability":"nonpayable","type":"function"}]
608060405234801561001057600080fd5b5060405161554938038061554983398101604081905261002f91610421565b836001600160a01b03811661005757604051639fabe1c160e01b815260040160405180910390fd5b61006f6000805160206155298339815191528261028b565b6100876000805160206155098339815191528261028b565b61009f600080516020615509833981519152806102b2565b6100d77fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d76000805160206155098339815191526102b2565b61010f6000805160206155298339815191527fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d76102b2565b506040518060a00160405280846001600160a01b03168152602001846001600160a01b0316638aec28346040518163ffffffff1660e01b8152600401602060405180830381865afa158015610168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018c9190610480565b6001600160a01b03168152602001846001600160a01b03166354c8e3656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fc9190610480565b6001600160a01b0390811682529384166020808301919091529284166040918201528151600380549186166001600160a01b03199283161790559282015160048054918616918516919091179055810151600580549185169184169190911790556060810151600680549185169184169190911790556080015160078054919093169116179055506104a49050565b61029582826102fd565b60008281526001602052604090206102ad908261039c565b505050565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610398576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556103573390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006103b1836001600160a01b0384166103ba565b90505b92915050565b6000818152600183016020526040812054610401575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556103b4565b5060006103b4565b6001600160a01b038116811461041e57600080fd5b50565b6000806000806080858703121561043757600080fd5b845161044281610409565b602086015190945061045381610409565b604086015190935061046481610409565b606086015190925061047581610409565b939692955090935050565b60006020828403121561049257600080fd5b815161049d81610409565b9392505050565b615056806104b36000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636d70f7ae116100b8578063a217fddf1161007c578063a217fddf14610417578063aed0b5bd1461041f578063b746eb2f146104e5578063ca15c873146104f8578063d547741f1461050b578063e44b2d761461051e57600080fd5b80636d70f7ae1461037857806375b238fc1461038b5780639010d07c146103b257806391d14854146103dd578063983d2737146103f057600080fd5b806324d7806c116100ff57806324d7806c146101fd5780632f2ff15d1461021057806336568abe1461022357806357b6807f146102365780635d74059d146102fa57600080fd5b806301ffc9a71461013c5780630952ff5414610164578063150b7a021461019957806322c6cb6c146101c5578063248a9ca3146101da575b600080fd5b61014f61014a366004611f38565b610531565b60405190151581526020015b60405180910390f35b61018b7fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d781565b60405190815260200161015b565b6101ac6101a7366004611f77565b61055c565b6040516001600160e01b0319909116815260200161015b565b6101d86101d3366004612015565b61056e565b005b61018b6101e8366004612032565b60009081526020819052604090206001015490565b61014f61020b366004612015565b6105ab565b6101d861021e36600461204b565b610607565b6101d861023136600461204b565b610631565b6102ab6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526008546001600160a01b03908116825260095481166020830152600a54811692820192909252600b549091166060820152600c54608082015290565b60405161015b919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151909116908201526080918201519181019190915260a00190565b610351610308366004612015565b604080518082018252600080825260209182018190526001600160a01b039384168152600282528290208251808401909352805484168352600101549092169181019190915290565b6040805182516001600160a01b03908116825260209384015116928101929092520161015b565b61014f610386366004612015565b6106b4565b61018b7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d881565b6103c56103c036600461207b565b6106e0565b6040516001600160a01b03909116815260200161015b565b61014f6103eb36600461204b565b6106ff565b61018b7f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f62281565b61018b600081565b6104966040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526003546001600160a01b0390811682526004548116602083015260055481169282019290925260065482166060820152600754909116608082015290565b60405161015b919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b6101d86104f336600461212e565b610728565b61018b610506366004612032565b6107f9565b6101d861051936600461204b565b610810565b61035161052c3660046121be565b610835565b60006001600160e01b03198216635a05180f60e01b14806105565750610556826117c7565b92915050565b630a85bd0160e11b5b95945050505050565b6105766117fc565b6001600160a01b0316600090815260026020526040902080546001600160a01b03199081168255600190910180549091169055565b60006105d77ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8836106ff565b8061055657506105567fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7836106ff565b60008281526020819052604090206001015461062281611824565b61062c8383611831565b505050565b6001600160a01b03811633146106a65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106b08282611853565b5050565b60006105567f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622836106ff565b60008281526001602052604081206106f89083611875565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107306117fc565b60608101516001600160a01b03161580610755575060408101516001600160a01b0316155b80610768575080516001600160a01b0316155b8061077557506080810151155b1561079357604051635435b28960e11b815260040160405180910390fd5b8051600880546001600160a01b039283166001600160a01b0319918216179091556020830151600980549184169183169190911790556040830151600a80549184169183169190911790556060830151600b805491909316911617905560800151600c55565b600081815260016020526040812061055690611881565b60008281526020819052604090206001015461082b81611824565b61062c8383611853565b604080518082019091526000808252602082015261085161188b565b610861604083016020840161220a565b63ffffffff16158061087f575061087b6060830183612227565b1590505b8061088c57506040820135155b156108aa57604051635435b28960e11b815260040160405180910390fd5b6040805160a080820183526003546001600160a01b0390811683526004805482166020808601919091526005548316858701908152600654841660608088019190915260075485166080808901919091528851968701895260085486168752600954861693870193909352600a54851686890152600b54851690860152600c5491850191909152845190518651637b8f82b160e11b8152959694959194600094919091169263f71f056292610967928b0135910190815260200190565b60c060405180830381865afa158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a891906122a6565b905082608001518160a001516001600160801b031610156109dc57604051635435b28960e11b815260040160405180910390fd5b60408085015182516020840151848401519351630b4c774160e11b81526001600160a01b039283166004820152908216602482015262ffffff9093166044840152600092911690631698ee8290606401602060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d919061233d565b6001600160a01b038082166000908152600260205260409020600101549192501615610aac5760405163669aa96f60e01b815260040160405180910390fd5b826001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061233d565b6001600160a01b031663c128572e82610b2a60608b018b612227565b6040518463ffffffff1660e01b8152600401610b489392919061235a565b60006040518083038186803b158015610b6057600080fd5b505afa158015610b74573d6000803e3d6000fd5b5050505060006040518060800160405280896080016020810190610b98919061239a565b6003811115610ba957610ba96123bb565b8152602090810190610bbd908b018b6123d1565b60020b8152602001846040015160020b815260200184606001518560800151610be69190612404565b60020b81525090506000826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c060405180830381865afa158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c52919061244b565b5050505091505060008088602001516001600160a01b031663bb6ce12284600080886040518563ffffffff1660e01b8152600401610c939493929190612513565b600060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cd891908101906127cf565b9150915081610ce957610ce96128e8565b8060200151600081518110610d0057610d006128fe565b602002602001015160020b866060015160020b141580610d4857508060400151600081518110610d3257610d326128fe565b602002602001015160020b866080015160020b14155b15610df757610d778160200151600081518110610d6757610d676128fe565b602002602001015160020b6118c5565b610d918260400151600081518110610d6757610d676128fe565b610da1886060015160020b6118c5565b610db1896080015160020b6118c5565b610dbd8760020b6118c5565b604051602001610dd1959493929190612914565b60408051601f198184030181529082905262461bcd60e51b825261069d91600401612a1d565b505050600086608001516001600160a01b031663d277722686896060015187600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e57573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e7f9190810190612a30565b88602001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ec1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee99190810190612a30565b610efb8a6040015162ffffff16611937565b604051602001610f0d93929190612a80565b60405160208183030381529060405288600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f869190810190612a30565b89602001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff09190810190612a30565b6110028b6040015162ffffff16611937565b60405160200161101493929190612b03565b60408051601f19818403018152908290528c5160208e01516001600160e01b031960e089901b16845261104e969594938c90600401612b6d565b6020604051808303816000875af115801561106d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611091919061233d565b90506110db6040518060c00160405280600063ffffffff16815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001606081525090565b6110e860608b018b612227565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060a082015261113160408b0160208c0161220a565b63ffffffff168152604080516001808252818301909252906020808301908036833750505060408281018290528151908c01359190600090611175576111756128fe565b6020908102919091018101919091526001600160a01b038084168383018190528b830152604080516329bc672160e21b815290516000939288169263a6f19c8492600480820193918290030181865afa1580156111d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fa919061233d565b90506000816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611260919061233d565b905088604001518960600151828660405161127a90611f1e565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f0801580156112be573d6000803e3d6000fd5b506001600160a01b039081168c5260408051606080820183528e51841682529285166020820152918b01518d518251928401928c9186916112fe90611f2b565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f080158015611342573d6000803e3d6000fd5b506001600160a01b03908116909152604080518351831660208083019190915284015183168183015292015116606082015260800160405160208183030381529060405283606001819052508460405160200161139f9190612bcb565b60405160208183030381529060405283608001819052508a60026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050505050600088604001516001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a3919061233d565b604080516323b872dd60e01b8152336004820152306024820152908d013560448201529091506001600160a01b038216906323b872dd90606401600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b50506040805163095ea7b360e01b81526001600160a01b038b81166004830152918f01356024820152908416925063095ea7b39150604401600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50505050826001600160a01b031663e4a30116886001600160a01b03166302e90910856040518263ffffffff1660e01b81526004016115b09190612bd9565b6020604051808303816000875af11580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190612ca7565b60a08901516040516001600160e01b031960e085901b16815260048101929092526001600160801b03166024820152604401600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050507fa1782ea43277401e4fc759ca5aaed92a8085cc3519956d164c4dfbf33366b1416040518060c00160405280876001600160a01b03168152602001896001600160a01b03166354c8e3656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f4919061233d565b6001600160a01b031663f71f05628f604001356040518263ffffffff1660e01b815260040161172591815260200190565b60c060405180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176691906122a6565b81526020018681526020018c602001516001600160a01b031681526020018c600001516001600160a01b03168152602001336001600160a01b03168152506040516117b19190612cc0565b60405180910390a1505050505050505050919050565b60006001600160e01b03198216637965db0b60e01b148061055657506301ffc9a760e01b6001600160e01b0319831614610556565b611805336105ab565b61182257604051631dd2188d60e31b815260040160405180910390fd5b565b61182e81336119c9565b50565b61183b82826119fc565b600082815260016020526040902061062c9082611a80565b61185d8282611a95565b600082815260016020526040902061062c9082611afa565b60006106f88383611b0f565b6000610556825490565b611894336105ab565b1580156118a757506118a5336106b4565b155b1561182257604051631dd2188d60e31b815260040160405180910390fd5b6060600082126118e457604051806020016040528060008152506118ff565b604051806040016040528060018152602001602d60f81b8152505b61191061190b84611b39565b611937565b604051602001611921929190612d77565b6040516020818303038152906040529050919050565b6060600061194483611b50565b60010190506000816001600160401b038111156119635761196361209d565b6040519080825280601f01601f19166020018201604052801561198d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461199757509392505050565b6119d382826106ff565b6106b0576119e081611c28565b6119eb836020611c3a565b604051602001610dd1929190612da6565b611a0682826106ff565b6106b0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a3c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006106f8836001600160a01b038416611dd5565b611a9f82826106ff565b156106b0576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006106f8836001600160a01b038416611e24565b6000826000018281548110611b2657611b266128fe565b9060005260206000200154905092915050565b600080821215611b4c5781600003610556565b5090565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611b8f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611bbb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611bd957662386f26fc10000830492506010015b6305f5e1008310611bf1576305f5e100830492506008015b6127108310611c0557612710830492506004015b60648310611c17576064830492506002015b600a83106105565760010192915050565b60606105566001600160a01b03831660145b60606000611c49836002612e1b565b611c54906002612e32565b6001600160401b03811115611c6b57611c6b61209d565b6040519080825280601f01601f191660200182016040528015611c95576020820181803683370190505b509050600360fc1b81600081518110611cb057611cb06128fe565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cdf57611cdf6128fe565b60200101906001600160f81b031916908160001a9053506000611d03846002612e1b565b611d0e906001612e32565b90505b6001811115611d86576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d4257611d426128fe565b1a60f81b828281518110611d5857611d586128fe565b60200101906001600160f81b031916908160001a90535060049490941c93611d7f81612e45565b9050611d11565b5083156106f85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161069d565b6000818152600183016020526040812054611e1c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610556565b506000610556565b60008181526001830160205260408120548015611f0d576000611e48600183612e5c565b8554909150600090611e5c90600190612e5c565b9050818114611ec1576000866000018281548110611e7c57611e7c6128fe565b9060005260206000200154905080876000018481548110611e9f57611e9f6128fe565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611ed257611ed2612e6f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610556565b6000915050610556565b5092915050565b611bed80612e8683390190565b6105ae80614a7383390190565b600060208284031215611f4a57600080fd5b81356001600160e01b0319811681146106f857600080fd5b6001600160a01b038116811461182e57600080fd5b600080600080600060808688031215611f8f57600080fd5b8535611f9a81611f62565b94506020860135611faa81611f62565b93506040860135925060608601356001600160401b0380821115611fcd57600080fd5b818801915088601f830112611fe157600080fd5b813581811115611ff057600080fd5b89602082850101111561200257600080fd5b9699959850939650602001949392505050565b60006020828403121561202757600080fd5b81356106f881611f62565b60006020828403121561204457600080fd5b5035919050565b6000806040838503121561205e57600080fd5b82359150602083013561207081611f62565b809150509250929050565b6000806040838503121561208e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156120d5576120d561209d565b60405290565b60405161010081016001600160401b03811182821017156120d5576120d561209d565b604051601f8201601f191681016001600160401b03811182821017156121265761212661209d565b604052919050565b600060a0828403121561214057600080fd5b60405160a081018181106001600160401b03821117156121625761216261209d565b604052823561217081611f62565b8152602083013561218081611f62565b6020820152604083013561219381611f62565b604082015260608301356121a681611f62565b60608201526080928301359281019290925250919050565b6000602082840312156121d057600080fd5b81356001600160401b038111156121e657600080fd5b820160a081850312156106f857600080fd5b63ffffffff8116811461182e57600080fd5b60006020828403121561221c57600080fd5b81356106f8816121f8565b6000808335601e1984360301811261223e57600080fd5b8301803591506001600160401b0382111561225857600080fd5b60200191503681900382131561226d57600080fd5b9250929050565b805161227f81611f62565b919050565b805162ffffff8116811461227f57600080fd5b8060020b811461182e57600080fd5b600060c082840312156122b857600080fd5b6122c06120b3565b82516122cb81611f62565b815260208301516122db81611f62565b60208201526122ec60408401612284565b604082015260608301516122ff81612297565b6060820152608083015161231281612297565b608082015260a08301516001600160801b038116811461233157600080fd5b60a08201529392505050565b60006020828403121561234f57600080fd5b81516106f881611f62565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156123ac57600080fd5b8135600481106106f857600080fd5b634e487b7160e01b600052602160045260246000fd5b6000602082840312156123e357600080fd5b81356106f881612297565b634e487b7160e01b600052601160045260246000fd5b600282810b9082900b03627fffff198112627fffff82131715610556576105566123ee565b805161ffff8116811461227f57600080fd5b8051801515811461227f57600080fd5b60008060008060008060c0878903121561246457600080fd5b865161246f81611f62565b602088015190965061248081612297565b945061248e60408801612429565b935061249c60608801612429565b92506124aa60808801612429565b91506124b860a0880161243b565b90509295509295509295565b8051600481106124e457634e487b7160e01b600052602160045260246000fd5b80835250602081015160020b6020830152604081015160020b6040830152606081015160020b60608301525050565b600285810b825284810b602083015283900b604082015260e0810161056560608301846124c4565b60006001600160401b038211156125545761255461209d565b5060051b60200190565b600082601f83011261256f57600080fd5b8151602061258461257f8361253b565b6120fe565b8083825260208201915060208460051b8701019350868411156125a657600080fd5b602086015b848110156125cb5780516125be81612297565b83529183019183016125ab565b509695505050505050565b600082601f8301126125e757600080fd5b815160206125f761257f8361253b565b8083825260208201915060208460051b87010193508684111561261957600080fd5b602086015b848110156125cb578051835291830191830161261e565b805161227f816121f8565b60005b8381101561265b578181015183820152602001612643565b50506000910152565b60006001600160401b0383111561267d5761267d61209d565b612690601f8401601f19166020016120fe565b90508281528383830111156126a457600080fd5b6106f8836020830184612640565b600082601f8301126126c357600080fd5b6106f883835160208501612664565b600061010082840312156126e557600080fd5b6126ed6120db565b90506126f882612635565b815261270660208301612284565b602082015261271760408301612274565b604082015261272860608301612274565b606082015260808201516001600160401b038082111561274757600080fd5b612753858386016125d6565b608084015260a084015191508082111561276c57600080fd5b612778858386016126b2565b60a084015260c084015191508082111561279157600080fd5b61279d858386016126b2565b60c084015260e08401519150808211156127b657600080fd5b506127c3848285016126b2565b60e08301525092915050565b600080604083850312156127e257600080fd5b6127eb8361243b565b915060208301516001600160401b038082111561280757600080fd5b9084019060c0828703121561281b57600080fd5b6128236120b3565b8251815260208301518281111561283957600080fd5b6128458882860161255e565b60208301525060408301518281111561285d57600080fd5b6128698882860161255e565b60408301525060608301518281111561288157600080fd5b61288d888286016125d6565b6060830152506080830151828111156128a557600080fd5b6128b1888286016125d6565b60808301525060a0830151828111156128c957600080fd5b6128d5888286016126d2565b60a0830152508093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b7f496e76616c6964207469636b732e2065787065637465643a207b00000000000081526000865161294c81601a850160208b01612640565b808301905061016160f51b80601a830152875161297081601c850160208c01612640565b6b7d2c2061637475616c3a207b60a01b601c9390910192830152865161299d816028850160208b01612640565b602892019182015284516129b881602a840160208901612640565b6803e961039b837ba1d160bd1b602a929091019182015283516129e2816033840160208801612640565b01603301979650505050505050565b60008151808452612a09816020860160208601612640565b601f01601f19169290920160200192915050565b6020815260006106f860208301846129f1565b600060208284031215612a4257600080fd5b81516001600160401b03811115612a5857600080fd5b8201601f81018413612a6957600080fd5b612a7884825160208401612664565b949350505050565b7f4d656c6c6f7756656c6f64726f6d6553747261746567792d0000000000000000815260008451612ab8816018850160208901612640565b8083019050602d60f81b8060188301528551612adb816019850160208a01612640565b60199201918201528351612af681601a840160208801612640565b01601a0195945050505050565b634d56532d60e01b815260008451612b22816004850160208901612640565b8083019050602d60f81b8060048301528551612b45816005850160208a01612640565b60059201918201528351612b60816006840160208801612640565b0160060195945050505050565b600060018060a01b03808a168352808916602084015260e06040840152612b9760e08401896129f1565b8381036060850152612ba981896129f1565b96821660808501525093841660a083015250911660c090910152949350505050565b6080810161055682846124c4565b6020808252825163ffffffff1682820152828101516001600160a01b031660408084019190915283015160c06060840152805160e084018190526000929182019083906101008601905b80831015612c435783518252928401926001929092019190840190612c23565b5060608701519350601f19925082868203016080870152612c6481856129f1565b935050506080850151818584030160a0860152612c8183826129f1565b92505060a0850151818584030160c0860152612c9d83826129f1565b9695505050505050565b600060208284031215612cb957600080fd5b5051919050565b60006101c08201905060018060a01b03808451168352602084015181815116602085015281602082015116604085015262ffffff6040820151166060850152606081015160020b6080850152608081015160020b60a08501526001600160801b0360a08201511660c085015250506040830151612d4060e08401826124c4565b5060608301516001600160a01b039081166101608401526080840151811661018084015260a08401519081166101a0840152611f17565b60008351612d89818460208801612640565b835190830190612d9d818360208801612640565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612dde816017850160208801612640565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e0f816028840160208801612640565b01602801949350505050565b8082028115828204841417610556576105566123ee565b80820180821115610556576105566123ee565b600081612e5457612e546123ee565b506000190190565b81810381811115610556576105566123ee565b634e487b7160e01b600052603160045260246000fdfe60806040526000600755600060085562093a8060095534801561002157600080fd5b50604051611bed380380611bed833981016040819052610040916101b0565b836001600160a01b03811661009c5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a15060016003556000546001600160a01b03166101455760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b6044820152606401610093565b600580546001600160a01b0393841661010002610100600160a81b0319909116179055600680549183166001600160a01b03199283161790556002805493909216921691909117905550610204565b80516001600160a01b03811681146101ab57600080fd5b919050565b600080600080608085870312156101c657600080fd5b6101cf85610194565b93506101dd60208601610194565b92506101eb60408601610194565b91506101f960608601610194565b905092959194509250565b6119da806102136000396000f3fe608060405234801561001057600080fd5b50600436106102055760003560e01c806379ba50971161011a578063aceccf8f116100ad578063d1af0c7d1161007c578063d1af0c7d1461042e578063de852ab614610446578063df136d6514610459578063e9fad8ee14610462578063ebe2b12b1461046a57600080fd5b8063aceccf8f146103f7578063c8f33c911461040a578063cc1a378f14610413578063cd3daf9d1461042657600080fd5b80638b876347116100e95780638b876347146103a85780638da5cb5b146103c857806391b4ded9146103db578063a694fc3a146103e457600080fd5b806379ba50971461037c5780637b0a47ee1461038457806380faa57d1461038d5780638980f11f1461039557600080fd5b8063386a95251161019d57806353a47bb71161016c57806353a47bb7146102fd57806353e9bf1d146103105780635c975abb1461032357806370a082311461034057806372f702f31461036957600080fd5b8063386a9525146102ae5780633c6b16ab146102b75780633d18b912146102ca5780633fc6df6e146102d257600080fd5b806318160ddd116101d957806318160ddd1461027857806319762143146102805780631c1f78eb146102935780632e1a7d4d1461029b57600080fd5b80628cc2621461020a5780630700037d146102305780631627540c1461025057806316c38b3c14610265575b600080fd5b61021d610218366004611751565b610473565b6040519081526020015b60405180910390f35b61021d61023e366004611751565b600d6020526000908152604090205481565b61026361025e366004611751565b6104f1565b005b61026361027336600461177a565b61054e565b600e5461021d565b61026361028e366004611751565b6105c0565b61021d6105ea565b6102636102a9366004611797565b610608565b61021d60095481565b6102636102c5366004611797565b61074b565b61026361099e565b6002546102e5906001600160a01b031681565b6040516001600160a01b039091168152602001610227565b6001546102e5906001600160a01b031681565b61026361031e3660046117b0565b610a88565b6005546103309060ff1681565b6040519015158152602001610227565b61021d61034e366004611751565b6001600160a01b03166000908152600f602052604090205490565b6006546102e5906001600160a01b031681565b610263610c0a565b61021d60085481565b61021d610cf4565b6102636103a33660046117dc565b610d0b565b61021d6103b6366004611751565b600c6020526000908152604090205481565b6000546102e5906001600160a01b031681565b61021d60045481565b6102636103f2366004611797565b610ddb565b6102636104053660046117b0565b610f2b565b61021d600a5481565b610263610421366004611797565b6110b7565b61021d611191565b6005546102e59061010090046001600160a01b031681565b610263610454366004611751565b6111dc565b61021d600b5481565b610263611307565b61021d60075481565b6001600160a01b0381166000908152600d6020908152604080832054600c9092528220546104eb91906104e590670de0b6b3a7640000906104df906104c0906104ba611191565b90611328565b6001600160a01b0388166000908152600f60205260409020549061133b565b90611347565b90611353565b92915050565b6104f961135f565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b61055661135f565b60055460ff161515811515146105bd576005805460ff191682151590811790915560ff161561058457426004555b60055460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610543565b50565b6105c861135f565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061060360095460085461133b90919063ffffffff16565b905090565b6106106113d1565b33610619611191565b600b55610624610cf4565b600a556001600160a01b0381161561066b5761063f81610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b600082116106b45760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064015b60405180910390fd5b600e546106c19083611328565b600e55336000908152600f60205260409020546106de9083611328565b336000818152600f602052604090209190915560065461070a916001600160a01b03909116908461142a565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a2506105bd6001600355565b6002546001600160a01b031633146107b85760405162461bcd60e51b815260206004820152602a60248201527f43616c6c6572206973206e6f742052657761726473446973747269627574696f6044820152691b8818dbdb9d1c9858dd60b21b60648201526084016106ab565b60006107c2611191565b600b556107cd610cf4565b600a556001600160a01b03811615610814576107e881610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60075442106108335760095461082b908390611347565b600855610876565b6007546000906108439042611328565b9050600061085c6008548361133b90919063ffffffff16565b600954909150610870906104df8684611353565b60085550505b6005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156108c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e89190611806565b90506108ff6009548261134790919063ffffffff16565b60085411156109505760405162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f2068696768000000000000000060448201526064016106ab565b42600a8190556009546109639190611353565b6007556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a1505050565b6109a66113d1565b336109af611191565b600b556109ba610cf4565b600a556001600160a01b03811615610a01576109d581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b336000908152600d60205260409020548015610a7a57336000818152600d6020526040812055600554610a44916101009091046001600160a01b0316908361142a565b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e04869060200160405180910390a25b5050610a866001600355565b565b610a906113d1565b80610a99611191565b600b55610aa4610cf4565b600a556001600160a01b03811615610aeb57610abf81610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b03163314610b155760405162461bcd60e51b81526004016106ab9061181f565b60008311610b595760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064016106ab565b600e54610b669084611328565b600e556001600160a01b0382166000908152600f6020526040902054610b8c9084611328565b6001600160a01b038084166000908152600f6020526040902091909155600654610bb89116838561142a565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d584604051610bf391815260200190565b60405180910390a250610c066001600355565b5050565b6001546001600160a01b03163314610c825760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016106ab565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006007544210610d06575060075490565b504290565b610d1361135f565b6006546001600160a01b0390811690831603610d7b5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420776974686472617720746865207374616b696e6720746f6b656044820152603760f91b60648201526084016106ab565b600054610d95906001600160a01b0384811691168361142a565b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050565b610de36113d1565b60055460ff1615610e065760405162461bcd60e51b81526004016106ab90611842565b33610e0f611191565b600b55610e1a610cf4565b600a556001600160a01b03811615610e6157610e3581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60008211610ea25760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016106ab565b600e54610eaf9083611353565b600e55336000908152600f6020526040902054610ecc9083611353565b336000818152600f6020526040902091909155600654610ef9916001600160a01b03909116903085611492565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610738565b610f336113d1565b60055460ff1615610f565760405162461bcd60e51b81526004016106ab90611842565b80610f5f611191565b600b55610f6a610cf4565b600a556001600160a01b03811615610fb157610f8581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b03163314610fdb5760405162461bcd60e51b81526004016106ab9061181f565b6000831161101c5760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016106ab565b600e546110299084611353565b600e556001600160a01b0382166000908152600f602052604090205461104f9084611353565b6001600160a01b038084166000908152600f602052604090209190915560065461107c9116803086611492565b816001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d84604051610bf391815260200190565b6110bf61135f565b600754421161115c5760405162461bcd60e51b815260206004820152605860248201527f50726576696f7573207265776172647320706572696f64206d7573742062652060448201527f636f6d706c657465206265666f7265206368616e67696e67207468652064757260648201527f6174696f6e20666f7220746865206e657720706572696f640000000000000000608482015260a4016106ab565b60098190556040518181527ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d390602001610543565b6000600e546000036111a45750600b5490565b6106036111d3600e546104df670de0b6b3a76400006111cd6008546111cd600a546104ba610cf4565b9061133b565b600b5490611353565b6111e46113d1565b806111ed611191565b600b556111f8610cf4565b600a556001600160a01b0381161561123f5761121381610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b031633146112695760405162461bcd60e51b81526004016106ab9061181f565b6001600160a01b0382166000908152600d602052604090205480156112fb576001600160a01b038084166000908152600d60205260408120556005546112b79161010090910416848361142a565b826001600160a01b03167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040516112f291815260200190565b60405180910390a25b50506105bd6001600355565b336000908152600f602052604090205461132090610608565b610a8661099e565b600061133482846118b5565b9392505050565b600061133482846118c8565b600061133482846118df565b60006113348284611901565b6000546001600160a01b03163314610a865760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016106ab565b6002600354036114235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106ab565b6002600355565b6040516001600160a01b03831660248201526044810182905261148d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114d0565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526114ca9085906323b872dd60e01b90608401611456565b50505050565b6000611525826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115a59092919063ffffffff16565b90508051600014806115465750808060200190518101906115469190611914565b61148d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106ab565b60606115b484846000856115bc565b949350505050565b60608247101561161d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106ab565b600080866001600160a01b031685876040516116399190611955565b60006040518083038185875af1925050503d8060008114611676576040519150601f19603f3d011682016040523d82523d6000602084013e61167b565b606091505b509150915061168c87838387611697565b979650505050505050565b606083156117065782516000036116ff576001600160a01b0385163b6116ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b50816115b4565b6115b4838381511561171b5781518083602001fd5b8060405162461bcd60e51b81526004016106ab9190611971565b80356001600160a01b038116811461174c57600080fd5b919050565b60006020828403121561176357600080fd5b61133482611735565b80151581146105bd57600080fd5b60006020828403121561178c57600080fd5b81356113348161176c565b6000602082840312156117a957600080fd5b5035919050565b600080604083850312156117c357600080fd5b823591506117d360208401611735565b90509250929050565b600080604083850312156117ef57600080fd5b6117f883611735565b946020939093013593505050565b60006020828403121561181857600080fd5b5051919050565b6020808252600990820152682337b93134b23232b760b91b604082015260600190565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104eb576104eb61189f565b80820281158282048414176104eb576104eb61189f565b6000826118fc57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104eb576104eb61189f565b60006020828403121561192657600080fd5b81516113348161176c565b60005b8381101561194c578181015183820152602001611934565b50506000910152565b60008251611967818460208701611931565b9190910192915050565b6020815260008251806020840152611990816040850160208701611931565b601f01601f1916919091016040019291505056fea264697066735822122077096d8fc8ec74951aa8381d677d9084038cd86502b8903d6e5b98b7322892a964736f6c6343000819003360e06040526000805534801561001457600080fd5b506040516105ae3803806105ae8339810160408190526100339161007f565b600180546001600160a01b0319166001600160a01b03958616179055918316608052821660a0521660c0526100d3565b80516001600160a01b038116811461007a57600080fd5b919050565b6000806000806080858703121561009557600080fd5b61009e85610063565b93506100ac60208601610063565b92506100ba60408601610063565b91506100c860608601610063565b905092959194509250565b60805160a05160c051610499610115600039600081816092015261026a01526000818161015701526101f001526000818160ed015261018401526104996000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063ab7de0981161005b578063ab7de09814610122578063d826f88f14610137578063f2fde38b1461013f578063fc0c546a1461015257600080fd5b806336e9332d1461008d5780633fa4f245146100d1578063570ca735146100e85780638da5cb5b1461010f575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100da60005481565b6040519081526020016100c8565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6001546100b4906001600160a01b031681565b6101356101303660046103de565b610179565b005b6101356102fc565b61013561014d36600461041a565b610351565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101ee5760405162461bcd60e51b815260206004820152601560248201527421b7bab73a32b91d103737ba1037b832b930ba37b960591b60448201526064015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102685760405162461bcd60e51b815260206004820152601660248201527521b7bab73a32b91d1034b73b30b634b2103a37b5b2b760511b60448201526064016101e5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146102e15760405162461bcd60e51b8152602060048201526015602482015274436f756e7465723a20696e76616c6964206661726d60581b60448201526064016101e5565b826000808282546102f2919061043c565b9091555050505050565b6001546001600160a01b0316331461034b5760405162461bcd60e51b815260206004820152601260248201527121b7bab73a32b91d103737ba1037bbb732b960711b60448201526064016101e5565b60008055565b6001546001600160a01b031633146103a05760405162461bcd60e51b815260206004820152601260248201527121b7bab73a32b91d103737ba1037bbb732b960711b60448201526064016101e5565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b03811681146103d957600080fd5b919050565b6000806000606084860312156103f357600080fd5b83359250610403602085016103c2565b9150610411604085016103c2565b90509250925092565b60006020828403121561042c57600080fd5b610435826103c2565b9392505050565b8082018082111561045d57634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220e39048dce63dd446cd5da930eeae0f9e1ca1b323f4cd7b25eb605d83d6bd5f7c64736f6c63430008190033a26469706673582212200e60486b70120e7a9da8f6609f81951f85cdfbb644968958a1e7c2b7136a30d964736f6c63430008190033f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622000000000000000000000000be440aee8c8d54ac7bb7d93506460492df5812ea00000000000000000000000071d022eba6f2607ab8ec32cb894075d94e10ceb80000000000000000000000006b0e1a42030cb62c505c60e808ab945b1396f8e400000000000000000000000096e7ca11cd96b705ce8febccadb466fd1245cfea
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c80636d70f7ae116100b8578063a217fddf1161007c578063a217fddf14610417578063aed0b5bd1461041f578063b746eb2f146104e5578063ca15c873146104f8578063d547741f1461050b578063e44b2d761461051e57600080fd5b80636d70f7ae1461037857806375b238fc1461038b5780639010d07c146103b257806391d14854146103dd578063983d2737146103f057600080fd5b806324d7806c116100ff57806324d7806c146101fd5780632f2ff15d1461021057806336568abe1461022357806357b6807f146102365780635d74059d146102fa57600080fd5b806301ffc9a71461013c5780630952ff5414610164578063150b7a021461019957806322c6cb6c146101c5578063248a9ca3146101da575b600080fd5b61014f61014a366004611f38565b610531565b60405190151581526020015b60405180910390f35b61018b7fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d781565b60405190815260200161015b565b6101ac6101a7366004611f77565b61055c565b6040516001600160e01b0319909116815260200161015b565b6101d86101d3366004612015565b61056e565b005b61018b6101e8366004612032565b60009081526020819052604090206001015490565b61014f61020b366004612015565b6105ab565b6101d861021e36600461204b565b610607565b6101d861023136600461204b565b610631565b6102ab6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526008546001600160a01b03908116825260095481166020830152600a54811692820192909252600b549091166060820152600c54608082015290565b60405161015b919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151909116908201526080918201519181019190915260a00190565b610351610308366004612015565b604080518082018252600080825260209182018190526001600160a01b039384168152600282528290208251808401909352805484168352600101549092169181019190915290565b6040805182516001600160a01b03908116825260209384015116928101929092520161015b565b61014f610386366004612015565b6106b4565b61018b7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d881565b6103c56103c036600461207b565b6106e0565b6040516001600160a01b03909116815260200161015b565b61014f6103eb36600461204b565b6106ff565b61018b7f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f62281565b61018b600081565b6104966040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526003546001600160a01b0390811682526004548116602083015260055481169282019290925260065482166060820152600754909116608082015290565b60405161015b919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b6101d86104f336600461212e565b610728565b61018b610506366004612032565b6107f9565b6101d861051936600461204b565b610810565b61035161052c3660046121be565b610835565b60006001600160e01b03198216635a05180f60e01b14806105565750610556826117c7565b92915050565b630a85bd0160e11b5b95945050505050565b6105766117fc565b6001600160a01b0316600090815260026020526040902080546001600160a01b03199081168255600190910180549091169055565b60006105d77ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8836106ff565b8061055657506105567fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7836106ff565b60008281526020819052604090206001015461062281611824565b61062c8383611831565b505050565b6001600160a01b03811633146106a65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106b08282611853565b5050565b60006105567f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622836106ff565b60008281526001602052604081206106f89083611875565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6107306117fc565b60608101516001600160a01b03161580610755575060408101516001600160a01b0316155b80610768575080516001600160a01b0316155b8061077557506080810151155b1561079357604051635435b28960e11b815260040160405180910390fd5b8051600880546001600160a01b039283166001600160a01b0319918216179091556020830151600980549184169183169190911790556040830151600a80549184169183169190911790556060830151600b805491909316911617905560800151600c55565b600081815260016020526040812061055690611881565b60008281526020819052604090206001015461082b81611824565b61062c8383611853565b604080518082019091526000808252602082015261085161188b565b610861604083016020840161220a565b63ffffffff16158061087f575061087b6060830183612227565b1590505b8061088c57506040820135155b156108aa57604051635435b28960e11b815260040160405180910390fd5b6040805160a080820183526003546001600160a01b0390811683526004805482166020808601919091526005548316858701908152600654841660608088019190915260075485166080808901919091528851968701895260085486168752600954861693870193909352600a54851686890152600b54851690860152600c5491850191909152845190518651637b8f82b160e11b8152959694959194600094919091169263f71f056292610967928b0135910190815260200190565b60c060405180830381865afa158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a891906122a6565b905082608001518160a001516001600160801b031610156109dc57604051635435b28960e11b815260040160405180910390fd5b60408085015182516020840151848401519351630b4c774160e11b81526001600160a01b039283166004820152908216602482015262ffffff9093166044840152600092911690631698ee8290606401602060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d919061233d565b6001600160a01b038082166000908152600260205260409020600101549192501615610aac5760405163669aa96f60e01b815260040160405180910390fd5b826001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061233d565b6001600160a01b031663c128572e82610b2a60608b018b612227565b6040518463ffffffff1660e01b8152600401610b489392919061235a565b60006040518083038186803b158015610b6057600080fd5b505afa158015610b74573d6000803e3d6000fd5b5050505060006040518060800160405280896080016020810190610b98919061239a565b6003811115610ba957610ba96123bb565b8152602090810190610bbd908b018b6123d1565b60020b8152602001846040015160020b815260200184606001518560800151610be69190612404565b60020b81525090506000826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c060405180830381865afa158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c52919061244b565b5050505091505060008088602001516001600160a01b031663bb6ce12284600080886040518563ffffffff1660e01b8152600401610c939493929190612513565b600060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cd891908101906127cf565b9150915081610ce957610ce96128e8565b8060200151600081518110610d0057610d006128fe565b602002602001015160020b866060015160020b141580610d4857508060400151600081518110610d3257610d326128fe565b602002602001015160020b866080015160020b14155b15610df757610d778160200151600081518110610d6757610d676128fe565b602002602001015160020b6118c5565b610d918260400151600081518110610d6757610d676128fe565b610da1886060015160020b6118c5565b610db1896080015160020b6118c5565b610dbd8760020b6118c5565b604051602001610dd1959493929190612914565b60408051601f198184030181529082905262461bcd60e51b825261069d91600401612a1d565b505050600086608001516001600160a01b031663d277722686896060015187600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e57573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e7f9190810190612a30565b88602001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ec1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee99190810190612a30565b610efb8a6040015162ffffff16611937565b604051602001610f0d93929190612a80565b60405160208183030381529060405288600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f869190810190612a30565b89602001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ff09190810190612a30565b6110028b6040015162ffffff16611937565b60405160200161101493929190612b03565b60408051601f19818403018152908290528c5160208e01516001600160e01b031960e089901b16845261104e969594938c90600401612b6d565b6020604051808303816000875af115801561106d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611091919061233d565b90506110db6040518060c00160405280600063ffffffff16815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001606081525090565b6110e860608b018b612227565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060a082015261113160408b0160208c0161220a565b63ffffffff168152604080516001808252818301909252906020808301908036833750505060408281018290528151908c01359190600090611175576111756128fe565b6020908102919091018101919091526001600160a01b038084168383018190528b830152604080516329bc672160e21b815290516000939288169263a6f19c8492600480820193918290030181865afa1580156111d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fa919061233d565b90506000816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611260919061233d565b905088604001518960600151828660405161127a90611f1e565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f0801580156112be573d6000803e3d6000fd5b506001600160a01b039081168c5260408051606080820183528e51841682529285166020820152918b01518d518251928401928c9186916112fe90611f2b565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f080158015611342573d6000803e3d6000fd5b506001600160a01b03908116909152604080518351831660208083019190915284015183168183015292015116606082015260800160405160208183030381529060405283606001819052508460405160200161139f9190612bcb565b60405160208183030381529060405283608001819052508a60026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050505050600088604001516001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a3919061233d565b604080516323b872dd60e01b8152336004820152306024820152908d013560448201529091506001600160a01b038216906323b872dd90606401600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b50506040805163095ea7b360e01b81526001600160a01b038b81166004830152918f01356024820152908416925063095ea7b39150604401600060405180830381600087803b15801561155d57600080fd5b505af1158015611571573d6000803e3d6000fd5b50505050826001600160a01b031663e4a30116886001600160a01b03166302e90910856040518263ffffffff1660e01b81526004016115b09190612bd9565b6020604051808303816000875af11580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190612ca7565b60a08901516040516001600160e01b031960e085901b16815260048101929092526001600160801b03166024820152604401600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050507fa1782ea43277401e4fc759ca5aaed92a8085cc3519956d164c4dfbf33366b1416040518060c00160405280876001600160a01b03168152602001896001600160a01b03166354c8e3656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f4919061233d565b6001600160a01b031663f71f05628f604001356040518263ffffffff1660e01b815260040161172591815260200190565b60c060405180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176691906122a6565b81526020018681526020018c602001516001600160a01b031681526020018c600001516001600160a01b03168152602001336001600160a01b03168152506040516117b19190612cc0565b60405180910390a1505050505050505050919050565b60006001600160e01b03198216637965db0b60e01b148061055657506301ffc9a760e01b6001600160e01b0319831614610556565b611805336105ab565b61182257604051631dd2188d60e31b815260040160405180910390fd5b565b61182e81336119c9565b50565b61183b82826119fc565b600082815260016020526040902061062c9082611a80565b61185d8282611a95565b600082815260016020526040902061062c9082611afa565b60006106f88383611b0f565b6000610556825490565b611894336105ab565b1580156118a757506118a5336106b4565b155b1561182257604051631dd2188d60e31b815260040160405180910390fd5b6060600082126118e457604051806020016040528060008152506118ff565b604051806040016040528060018152602001602d60f81b8152505b61191061190b84611b39565b611937565b604051602001611921929190612d77565b6040516020818303038152906040529050919050565b6060600061194483611b50565b60010190506000816001600160401b038111156119635761196361209d565b6040519080825280601f01601f19166020018201604052801561198d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461199757509392505050565b6119d382826106ff565b6106b0576119e081611c28565b6119eb836020611c3a565b604051602001610dd1929190612da6565b611a0682826106ff565b6106b0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a3c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006106f8836001600160a01b038416611dd5565b611a9f82826106ff565b156106b0576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006106f8836001600160a01b038416611e24565b6000826000018281548110611b2657611b266128fe565b9060005260206000200154905092915050565b600080821215611b4c5781600003610556565b5090565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611b8f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611bbb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611bd957662386f26fc10000830492506010015b6305f5e1008310611bf1576305f5e100830492506008015b6127108310611c0557612710830492506004015b60648310611c17576064830492506002015b600a83106105565760010192915050565b60606105566001600160a01b03831660145b60606000611c49836002612e1b565b611c54906002612e32565b6001600160401b03811115611c6b57611c6b61209d565b6040519080825280601f01601f191660200182016040528015611c95576020820181803683370190505b509050600360fc1b81600081518110611cb057611cb06128fe565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611cdf57611cdf6128fe565b60200101906001600160f81b031916908160001a9053506000611d03846002612e1b565b611d0e906001612e32565b90505b6001811115611d86576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d4257611d426128fe565b1a60f81b828281518110611d5857611d586128fe565b60200101906001600160f81b031916908160001a90535060049490941c93611d7f81612e45565b9050611d11565b5083156106f85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161069d565b6000818152600183016020526040812054611e1c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610556565b506000610556565b60008181526001830160205260408120548015611f0d576000611e48600183612e5c565b8554909150600090611e5c90600190612e5c565b9050818114611ec1576000866000018281548110611e7c57611e7c6128fe565b9060005260206000200154905080876000018481548110611e9f57611e9f6128fe565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611ed257611ed2612e6f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610556565b6000915050610556565b5092915050565b611bed80612e8683390190565b6105ae80614a7383390190565b600060208284031215611f4a57600080fd5b81356001600160e01b0319811681146106f857600080fd5b6001600160a01b038116811461182e57600080fd5b600080600080600060808688031215611f8f57600080fd5b8535611f9a81611f62565b94506020860135611faa81611f62565b93506040860135925060608601356001600160401b0380821115611fcd57600080fd5b818801915088601f830112611fe157600080fd5b813581811115611ff057600080fd5b89602082850101111561200257600080fd5b9699959850939650602001949392505050565b60006020828403121561202757600080fd5b81356106f881611f62565b60006020828403121561204457600080fd5b5035919050565b6000806040838503121561205e57600080fd5b82359150602083013561207081611f62565b809150509250929050565b6000806040838503121561208e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156120d5576120d561209d565b60405290565b60405161010081016001600160401b03811182821017156120d5576120d561209d565b604051601f8201601f191681016001600160401b03811182821017156121265761212661209d565b604052919050565b600060a0828403121561214057600080fd5b60405160a081018181106001600160401b03821117156121625761216261209d565b604052823561217081611f62565b8152602083013561218081611f62565b6020820152604083013561219381611f62565b604082015260608301356121a681611f62565b60608201526080928301359281019290925250919050565b6000602082840312156121d057600080fd5b81356001600160401b038111156121e657600080fd5b820160a081850312156106f857600080fd5b63ffffffff8116811461182e57600080fd5b60006020828403121561221c57600080fd5b81356106f8816121f8565b6000808335601e1984360301811261223e57600080fd5b8301803591506001600160401b0382111561225857600080fd5b60200191503681900382131561226d57600080fd5b9250929050565b805161227f81611f62565b919050565b805162ffffff8116811461227f57600080fd5b8060020b811461182e57600080fd5b600060c082840312156122b857600080fd5b6122c06120b3565b82516122cb81611f62565b815260208301516122db81611f62565b60208201526122ec60408401612284565b604082015260608301516122ff81612297565b6060820152608083015161231281612297565b608082015260a08301516001600160801b038116811461233157600080fd5b60a08201529392505050565b60006020828403121561234f57600080fd5b81516106f881611f62565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156123ac57600080fd5b8135600481106106f857600080fd5b634e487b7160e01b600052602160045260246000fd5b6000602082840312156123e357600080fd5b81356106f881612297565b634e487b7160e01b600052601160045260246000fd5b600282810b9082900b03627fffff198112627fffff82131715610556576105566123ee565b805161ffff8116811461227f57600080fd5b8051801515811461227f57600080fd5b60008060008060008060c0878903121561246457600080fd5b865161246f81611f62565b602088015190965061248081612297565b945061248e60408801612429565b935061249c60608801612429565b92506124aa60808801612429565b91506124b860a0880161243b565b90509295509295509295565b8051600481106124e457634e487b7160e01b600052602160045260246000fd5b80835250602081015160020b6020830152604081015160020b6040830152606081015160020b60608301525050565b600285810b825284810b602083015283900b604082015260e0810161056560608301846124c4565b60006001600160401b038211156125545761255461209d565b5060051b60200190565b600082601f83011261256f57600080fd5b8151602061258461257f8361253b565b6120fe565b8083825260208201915060208460051b8701019350868411156125a657600080fd5b602086015b848110156125cb5780516125be81612297565b83529183019183016125ab565b509695505050505050565b600082601f8301126125e757600080fd5b815160206125f761257f8361253b565b8083825260208201915060208460051b87010193508684111561261957600080fd5b602086015b848110156125cb578051835291830191830161261e565b805161227f816121f8565b60005b8381101561265b578181015183820152602001612643565b50506000910152565b60006001600160401b0383111561267d5761267d61209d565b612690601f8401601f19166020016120fe565b90508281528383830111156126a457600080fd5b6106f8836020830184612640565b600082601f8301126126c357600080fd5b6106f883835160208501612664565b600061010082840312156126e557600080fd5b6126ed6120db565b90506126f882612635565b815261270660208301612284565b602082015261271760408301612274565b604082015261272860608301612274565b606082015260808201516001600160401b038082111561274757600080fd5b612753858386016125d6565b608084015260a084015191508082111561276c57600080fd5b612778858386016126b2565b60a084015260c084015191508082111561279157600080fd5b61279d858386016126b2565b60c084015260e08401519150808211156127b657600080fd5b506127c3848285016126b2565b60e08301525092915050565b600080604083850312156127e257600080fd5b6127eb8361243b565b915060208301516001600160401b038082111561280757600080fd5b9084019060c0828703121561281b57600080fd5b6128236120b3565b8251815260208301518281111561283957600080fd5b6128458882860161255e565b60208301525060408301518281111561285d57600080fd5b6128698882860161255e565b60408301525060608301518281111561288157600080fd5b61288d888286016125d6565b6060830152506080830151828111156128a557600080fd5b6128b1888286016125d6565b60808301525060a0830151828111156128c957600080fd5b6128d5888286016126d2565b60a0830152508093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b7f496e76616c6964207469636b732e2065787065637465643a207b00000000000081526000865161294c81601a850160208b01612640565b808301905061016160f51b80601a830152875161297081601c850160208c01612640565b6b7d2c2061637475616c3a207b60a01b601c9390910192830152865161299d816028850160208b01612640565b602892019182015284516129b881602a840160208901612640565b6803e961039b837ba1d160bd1b602a929091019182015283516129e2816033840160208801612640565b01603301979650505050505050565b60008151808452612a09816020860160208601612640565b601f01601f19169290920160200192915050565b6020815260006106f860208301846129f1565b600060208284031215612a4257600080fd5b81516001600160401b03811115612a5857600080fd5b8201601f81018413612a6957600080fd5b612a7884825160208401612664565b949350505050565b7f4d656c6c6f7756656c6f64726f6d6553747261746567792d0000000000000000815260008451612ab8816018850160208901612640565b8083019050602d60f81b8060188301528551612adb816019850160208a01612640565b60199201918201528351612af681601a840160208801612640565b01601a0195945050505050565b634d56532d60e01b815260008451612b22816004850160208901612640565b8083019050602d60f81b8060048301528551612b45816005850160208a01612640565b60059201918201528351612b60816006840160208801612640565b0160060195945050505050565b600060018060a01b03808a168352808916602084015260e06040840152612b9760e08401896129f1565b8381036060850152612ba981896129f1565b96821660808501525093841660a083015250911660c090910152949350505050565b6080810161055682846124c4565b6020808252825163ffffffff1682820152828101516001600160a01b031660408084019190915283015160c06060840152805160e084018190526000929182019083906101008601905b80831015612c435783518252928401926001929092019190840190612c23565b5060608701519350601f19925082868203016080870152612c6481856129f1565b935050506080850151818584030160a0860152612c8183826129f1565b92505060a0850151818584030160c0860152612c9d83826129f1565b9695505050505050565b600060208284031215612cb957600080fd5b5051919050565b60006101c08201905060018060a01b03808451168352602084015181815116602085015281602082015116604085015262ffffff6040820151166060850152606081015160020b6080850152608081015160020b60a08501526001600160801b0360a08201511660c085015250506040830151612d4060e08401826124c4565b5060608301516001600160a01b039081166101608401526080840151811661018084015260a08401519081166101a0840152611f17565b60008351612d89818460208801612640565b835190830190612d9d818360208801612640565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612dde816017850160208801612640565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e0f816028840160208801612640565b01602801949350505050565b8082028115828204841417610556576105566123ee565b80820180821115610556576105566123ee565b600081612e5457612e546123ee565b506000190190565b81810381811115610556576105566123ee565b634e487b7160e01b600052603160045260246000fdfe60806040526000600755600060085562093a8060095534801561002157600080fd5b50604051611bed380380611bed833981016040819052610040916101b0565b836001600160a01b03811661009c5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a15060016003556000546001600160a01b03166101455760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b6044820152606401610093565b600580546001600160a01b0393841661010002610100600160a81b0319909116179055600680549183166001600160a01b03199283161790556002805493909216921691909117905550610204565b80516001600160a01b03811681146101ab57600080fd5b919050565b600080600080608085870312156101c657600080fd5b6101cf85610194565b93506101dd60208601610194565b92506101eb60408601610194565b91506101f960608601610194565b905092959194509250565b6119da806102136000396000f3fe608060405234801561001057600080fd5b50600436106102055760003560e01c806379ba50971161011a578063aceccf8f116100ad578063d1af0c7d1161007c578063d1af0c7d1461042e578063de852ab614610446578063df136d6514610459578063e9fad8ee14610462578063ebe2b12b1461046a57600080fd5b8063aceccf8f146103f7578063c8f33c911461040a578063cc1a378f14610413578063cd3daf9d1461042657600080fd5b80638b876347116100e95780638b876347146103a85780638da5cb5b146103c857806391b4ded9146103db578063a694fc3a146103e457600080fd5b806379ba50971461037c5780637b0a47ee1461038457806380faa57d1461038d5780638980f11f1461039557600080fd5b8063386a95251161019d57806353a47bb71161016c57806353a47bb7146102fd57806353e9bf1d146103105780635c975abb1461032357806370a082311461034057806372f702f31461036957600080fd5b8063386a9525146102ae5780633c6b16ab146102b75780633d18b912146102ca5780633fc6df6e146102d257600080fd5b806318160ddd116101d957806318160ddd1461027857806319762143146102805780631c1f78eb146102935780632e1a7d4d1461029b57600080fd5b80628cc2621461020a5780630700037d146102305780631627540c1461025057806316c38b3c14610265575b600080fd5b61021d610218366004611751565b610473565b6040519081526020015b60405180910390f35b61021d61023e366004611751565b600d6020526000908152604090205481565b61026361025e366004611751565b6104f1565b005b61026361027336600461177a565b61054e565b600e5461021d565b61026361028e366004611751565b6105c0565b61021d6105ea565b6102636102a9366004611797565b610608565b61021d60095481565b6102636102c5366004611797565b61074b565b61026361099e565b6002546102e5906001600160a01b031681565b6040516001600160a01b039091168152602001610227565b6001546102e5906001600160a01b031681565b61026361031e3660046117b0565b610a88565b6005546103309060ff1681565b6040519015158152602001610227565b61021d61034e366004611751565b6001600160a01b03166000908152600f602052604090205490565b6006546102e5906001600160a01b031681565b610263610c0a565b61021d60085481565b61021d610cf4565b6102636103a33660046117dc565b610d0b565b61021d6103b6366004611751565b600c6020526000908152604090205481565b6000546102e5906001600160a01b031681565b61021d60045481565b6102636103f2366004611797565b610ddb565b6102636104053660046117b0565b610f2b565b61021d600a5481565b610263610421366004611797565b6110b7565b61021d611191565b6005546102e59061010090046001600160a01b031681565b610263610454366004611751565b6111dc565b61021d600b5481565b610263611307565b61021d60075481565b6001600160a01b0381166000908152600d6020908152604080832054600c9092528220546104eb91906104e590670de0b6b3a7640000906104df906104c0906104ba611191565b90611328565b6001600160a01b0388166000908152600f60205260409020549061133b565b90611347565b90611353565b92915050565b6104f961135f565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b61055661135f565b60055460ff161515811515146105bd576005805460ff191682151590811790915560ff161561058457426004555b60055460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610543565b50565b6105c861135f565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061060360095460085461133b90919063ffffffff16565b905090565b6106106113d1565b33610619611191565b600b55610624610cf4565b600a556001600160a01b0381161561066b5761063f81610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b600082116106b45760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064015b60405180910390fd5b600e546106c19083611328565b600e55336000908152600f60205260409020546106de9083611328565b336000818152600f602052604090209190915560065461070a916001600160a01b03909116908461142a565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a2506105bd6001600355565b6002546001600160a01b031633146107b85760405162461bcd60e51b815260206004820152602a60248201527f43616c6c6572206973206e6f742052657761726473446973747269627574696f6044820152691b8818dbdb9d1c9858dd60b21b60648201526084016106ab565b60006107c2611191565b600b556107cd610cf4565b600a556001600160a01b03811615610814576107e881610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60075442106108335760095461082b908390611347565b600855610876565b6007546000906108439042611328565b9050600061085c6008548361133b90919063ffffffff16565b600954909150610870906104df8684611353565b60085550505b6005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156108c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e89190611806565b90506108ff6009548261134790919063ffffffff16565b60085411156109505760405162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f2068696768000000000000000060448201526064016106ab565b42600a8190556009546109639190611353565b6007556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a1505050565b6109a66113d1565b336109af611191565b600b556109ba610cf4565b600a556001600160a01b03811615610a01576109d581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b336000908152600d60205260409020548015610a7a57336000818152600d6020526040812055600554610a44916101009091046001600160a01b0316908361142a565b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e04869060200160405180910390a25b5050610a866001600355565b565b610a906113d1565b80610a99611191565b600b55610aa4610cf4565b600a556001600160a01b03811615610aeb57610abf81610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b03163314610b155760405162461bcd60e51b81526004016106ab9061181f565b60008311610b595760405162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b60448201526064016106ab565b600e54610b669084611328565b600e556001600160a01b0382166000908152600f6020526040902054610b8c9084611328565b6001600160a01b038084166000908152600f6020526040902091909155600654610bb89116838561142a565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d584604051610bf391815260200190565b60405180910390a250610c066001600355565b5050565b6001546001600160a01b03163314610c825760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016106ab565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006007544210610d06575060075490565b504290565b610d1361135f565b6006546001600160a01b0390811690831603610d7b5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420776974686472617720746865207374616b696e6720746f6b656044820152603760f91b60648201526084016106ab565b600054610d95906001600160a01b0384811691168361142a565b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050565b610de36113d1565b60055460ff1615610e065760405162461bcd60e51b81526004016106ab90611842565b33610e0f611191565b600b55610e1a610cf4565b600a556001600160a01b03811615610e6157610e3581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60008211610ea25760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016106ab565b600e54610eaf9083611353565b600e55336000908152600f6020526040902054610ecc9083611353565b336000818152600f6020526040902091909155600654610ef9916001600160a01b03909116903085611492565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610738565b610f336113d1565b60055460ff1615610f565760405162461bcd60e51b81526004016106ab90611842565b80610f5f611191565b600b55610f6a610cf4565b600a556001600160a01b03811615610fb157610f8581610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b03163314610fdb5760405162461bcd60e51b81526004016106ab9061181f565b6000831161101c5760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016106ab565b600e546110299084611353565b600e556001600160a01b0382166000908152600f602052604090205461104f9084611353565b6001600160a01b038084166000908152600f602052604090209190915560065461107c9116803086611492565b816001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d84604051610bf391815260200190565b6110bf61135f565b600754421161115c5760405162461bcd60e51b815260206004820152605860248201527f50726576696f7573207265776172647320706572696f64206d7573742062652060448201527f636f6d706c657465206265666f7265206368616e67696e67207468652064757260648201527f6174696f6e20666f7220746865206e657720706572696f640000000000000000608482015260a4016106ab565b60098190556040518181527ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d390602001610543565b6000600e546000036111a45750600b5490565b6106036111d3600e546104df670de0b6b3a76400006111cd6008546111cd600a546104ba610cf4565b9061133b565b600b5490611353565b6111e46113d1565b806111ed611191565b600b556111f8610cf4565b600a556001600160a01b0381161561123f5761121381610473565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b6006546001600160a01b031633146112695760405162461bcd60e51b81526004016106ab9061181f565b6001600160a01b0382166000908152600d602052604090205480156112fb576001600160a01b038084166000908152600d60205260408120556005546112b79161010090910416848361142a565b826001600160a01b03167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040516112f291815260200190565b60405180910390a25b50506105bd6001600355565b336000908152600f602052604090205461132090610608565b610a8661099e565b600061133482846118b5565b9392505050565b600061133482846118c8565b600061133482846118df565b60006113348284611901565b6000546001600160a01b03163314610a865760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016106ab565b6002600354036114235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106ab565b6002600355565b6040516001600160a01b03831660248201526044810182905261148d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114d0565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526114ca9085906323b872dd60e01b90608401611456565b50505050565b6000611525826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115a59092919063ffffffff16565b90508051600014806115465750808060200190518101906115469190611914565b61148d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106ab565b60606115b484846000856115bc565b949350505050565b60608247101561161d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106ab565b600080866001600160a01b031685876040516116399190611955565b60006040518083038185875af1925050503d8060008114611676576040519150601f19603f3d011682016040523d82523d6000602084013e61167b565b606091505b509150915061168c87838387611697565b979650505050505050565b606083156117065782516000036116ff576001600160a01b0385163b6116ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b50816115b4565b6115b4838381511561171b5781518083602001fd5b8060405162461bcd60e51b81526004016106ab9190611971565b80356001600160a01b038116811461174c57600080fd5b919050565b60006020828403121561176357600080fd5b61133482611735565b80151581146105bd57600080fd5b60006020828403121561178c57600080fd5b81356113348161176c565b6000602082840312156117a957600080fd5b5035919050565b600080604083850312156117c357600080fd5b823591506117d360208401611735565b90509250929050565b600080604083850312156117ef57600080fd5b6117f883611735565b946020939093013593505050565b60006020828403121561181857600080fd5b5051919050565b6020808252600990820152682337b93134b23232b760b91b604082015260600190565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104eb576104eb61189f565b80820281158282048414176104eb576104eb61189f565b6000826118fc57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104eb576104eb61189f565b60006020828403121561192657600080fd5b81516113348161176c565b60005b8381101561194c578181015183820152602001611934565b50506000910152565b60008251611967818460208701611931565b9190910192915050565b6020815260008251806020840152611990816040850160208701611931565b601f01601f1916919091016040019291505056fea264697066735822122077096d8fc8ec74951aa8381d677d9084038cd86502b8903d6e5b98b7322892a964736f6c6343000819003360e06040526000805534801561001457600080fd5b506040516105ae3803806105ae8339810160408190526100339161007f565b600180546001600160a01b0319166001600160a01b03958616179055918316608052821660a0521660c0526100d3565b80516001600160a01b038116811461007a57600080fd5b919050565b6000806000806080858703121561009557600080fd5b61009e85610063565b93506100ac60208601610063565b92506100ba60408601610063565b91506100c860608601610063565b905092959194509250565b60805160a05160c051610499610115600039600081816092015261026a01526000818161015701526101f001526000818160ed015261018401526104996000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063ab7de0981161005b578063ab7de09814610122578063d826f88f14610137578063f2fde38b1461013f578063fc0c546a1461015257600080fd5b806336e9332d1461008d5780633fa4f245146100d1578063570ca735146100e85780638da5cb5b1461010f575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100da60005481565b6040519081526020016100c8565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6001546100b4906001600160a01b031681565b6101356101303660046103de565b610179565b005b6101356102fc565b61013561014d36600461041a565b610351565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101ee5760405162461bcd60e51b815260206004820152601560248201527421b7bab73a32b91d103737ba1037b832b930ba37b960591b60448201526064015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102685760405162461bcd60e51b815260206004820152601660248201527521b7bab73a32b91d1034b73b30b634b2103a37b5b2b760511b60448201526064016101e5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146102e15760405162461bcd60e51b8152602060048201526015602482015274436f756e7465723a20696e76616c6964206661726d60581b60448201526064016101e5565b826000808282546102f2919061043c565b9091555050505050565b6001546001600160a01b0316331461034b5760405162461bcd60e51b815260206004820152601260248201527121b7bab73a32b91d103737ba1037bbb732b960711b60448201526064016101e5565b60008055565b6001546001600160a01b031633146103a05760405162461bcd60e51b815260206004820152601260248201527121b7bab73a32b91d103737ba1037bbb732b960711b60448201526064016101e5565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b03811681146103d957600080fd5b919050565b6000806000606084860312156103f357600080fd5b83359250610403602085016103c2565b9150610411604085016103c2565b90509250925092565b60006020828403121561042c57600080fd5b610435826103c2565b9392505050565b8082018082111561045d57634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220e39048dce63dd446cd5da930eeae0f9e1ca1b323f4cd7b25eb605d83d6bd5f7c64736f6c63430008190033a26469706673582212200e60486b70120e7a9da8f6609f81951f85cdfbb644968958a1e7c2b7136a30d964736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000be440aee8c8d54ac7bb7d93506460492df5812ea00000000000000000000000071d022eba6f2607ab8ec32cb894075d94e10ceb80000000000000000000000006b0e1a42030cb62c505c60e808ab945b1396f8e400000000000000000000000096e7ca11cd96b705ce8febccadb466fd1245cfea

-----Decoded View---------------
Arg [0] : admin_ (address): 0xBe440AeE8c8D54aC7bb7D93506460492Df5812ea
Arg [1] : core_ (address): 0x71D022eBA6F2607Ab8EC32Cb894075D94e10CEb8
Arg [2] : ammDepositWithdrawModule_ (address): 0x6b0E1a42030cB62C505C60e808Ab945B1396F8e4
Arg [3] : helper_ (address): 0x96e7ca11cd96b705ce8fEbccAdb466FD1245Cfea

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000be440aee8c8d54ac7bb7d93506460492df5812ea
Arg [1] : 00000000000000000000000071d022eba6f2607ab8ec32cb894075d94e10ceb8
Arg [2] : 0000000000000000000000006b0e1a42030cb62c505c60e808ab945b1396f8e4
Arg [3] : 00000000000000000000000096e7ca11cd96b705ce8febccadb466fd1245cfea

🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Custom Contract ABI

                            

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xeD8b81E3fF6c54951621715F5992CA52007D88bA
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.