More Info
Private Name Tags
ContractCreator
Latest 19 from a total of 19 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 3466373 | 14 days ago | IN | 0 S | 0.00095296 | ||||
Deposit | 3466326 | 14 days ago | IN | 0 S | 0.00523281 | ||||
Withdraw | 3150753 | 16 days ago | IN | 0 S | 0.00095469 | ||||
Deposit | 3150709 | 16 days ago | IN | 0 S | 0.00613711 | ||||
Withdraw | 3150548 | 16 days ago | IN | 0 S | 0.00095296 | ||||
Deposit | 3150523 | 16 days ago | IN | 0 S | 0.00508972 | ||||
Withdraw | 3150485 | 16 days ago | IN | 0 S | 0.00095296 | ||||
Deposit | 3150272 | 16 days ago | IN | 0 S | 0.00552003 | ||||
Withdraw | 3146951 | 16 days ago | IN | 0 S | 0.00098084 | ||||
Withdraw | 2769677 | 19 days ago | IN | 0 S | 0.00019197 | ||||
Deposit | 2768573 | 19 days ago | IN | 0 S | 0.00103904 | ||||
Deposit | 2604665 | 20 days ago | IN | 0 S | 0.00100326 | ||||
Withdraw | 2604639 | 20 days ago | IN | 0 S | 0.00019197 | ||||
Deposit | 2604615 | 20 days ago | IN | 0 S | 0.00109582 | ||||
Withdraw | 2603579 | 20 days ago | IN | 0 S | 0.00017204 | ||||
Deposit | 2603544 | 20 days ago | IN | 0 S | 0.00035286 | ||||
Deposit | 2603415 | 20 days ago | IN | 0 S | 0.00012597 | ||||
Withdraw | 2515779 | 21 days ago | IN | 0 S | 0.00023813 | ||||
Deposit | 2514821 | 21 days ago | IN | 0 S | 0.00043976 |
Loading...
Loading
Contract Name:
Vault
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-01-04 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; abstract contract ReentrancyGuard { uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } _status = ENTERED; } function _nonReentrantAfter() private { _status = NOT_ENTERED; } function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } } contract Vault is ReentrancyGuard { IEqualizerGauge public gauge; IRouter public router; IERC20 public token0; IERC20 public token1; IERC20 public stakeToken; IERC20 public rewardToken; address private treasury; address private creatorTreasury; address private owner; bool public active = true; uint256 public depositFee = 1; uint256 public vaultFee; uint256 public creatorFee; uint256 private lpPerTicket; uint256 public totalTickets; uint256 public compoundedAt; mapping(address => uint256) public userTickets; // Number of tickets per user event Deposit(address indexed user, uint256 amount, uint256 tickets); event Withdraw(address indexed user, uint256 amount); event Compound(uint256 rewardAmount, uint256 lpAmount); event ActiveStatusChanged(bool newStatus); constructor( address _treasury, uint256 _vaultFee, address _creatorTreasury, uint256 _creatorFee, address _gauge, address _router, IERC20 _stakeToken, IERC20 _rewardToken, IERC20 _token0, IERC20 _token1 ) { treasury = _treasury; vaultFee = _vaultFee; creatorTreasury = _creatorTreasury; creatorFee = _creatorFee; gauge = IEqualizerGauge(_gauge); router = IRouter(_router); stakeToken = _stakeToken; rewardToken = _rewardToken; owner = msg.sender; lpPerTicket = 1e18; token0 = _token0; token1 = _token1; require(_vaultFee + _creatorFee <= 100, "Invalid fee distribution"); rewardToken.approve(address(router), type(uint256).max); token0.approve(address(router), type(uint256).max); token1.approve(address(router), type(uint256).max); stakeToken.approve(address(gauge), type(uint256).max); } modifier whenActive() { require(active, "Vault is not active"); _; } modifier onlyOwner() { require(msg.sender == owner, "Not the owner"); _; } function toggleActive() external onlyOwner { active = !active; emit ActiveStatusChanged(active); } function getRewards() internal returns (uint256) { gauge.getReward(); return rewardToken.balanceOf(address(this)); } function swapLPToToken0(uint256 rewardAmount) internal returns (uint256) { require(rewardAmount > 0, "No token to swap"); IRouter.route[] memory path = new IRouter.route[](1); path[0] = IRouter.route(address(rewardToken), address(token0), false); router.swapExactTokensForTokens( rewardAmount, 1, path, address(this), block.timestamp ); return token0.balanceOf(address(this)); } function swapLPToToken1(uint256 rewardAmount) internal returns (uint256) { require(rewardAmount > 0, "No token to swap"); IRouter.route[] memory path = new IRouter.route[](2); path[0] = IRouter.route(address(rewardToken), address(token0), false); path[1] = IRouter.route(address(token0), address(token1), false); router.swapExactTokensForTokens( rewardAmount, 1, path, address(this), block.timestamp ); return token1.balanceOf(address(this)); } function addLiquidity() internal returns (uint256) { uint256 token0Balance = IERC20(token0).balanceOf(address(this)); uint256 token1Balance = IERC20(token1).balanceOf(address(this)); // add liquidity require(token0Balance > 0, "Insufficient balance for Token0 to provide liquidity"); require(token1Balance > 0, "Insufficient balance for Token1 to provide liquidity"); router.addLiquidity( address(token0), address(token1), false, token0Balance, token1Balance, 1, 1, address(this), block.timestamp ); return IERC20(stakeToken).balanceOf(address(this)); } function updateVault() internal returns (uint256) { uint256 totalLp = totalDeposits(); uint256 rewardAmount = 0; if (totalTickets > 0 && totalLp > 0) { rewardAmount = getRewards(); if (rewardAmount > 0) { uint256 compoundAmount = (rewardAmount * vaultFee) / 1000; uint256 creatorAmount = (rewardAmount * creatorFee) / 1000; rewardToken.transfer(creatorTreasury, creatorAmount); rewardToken.transfer(treasury, compoundAmount); rewardAmount = rewardAmount - (compoundAmount + creatorAmount); uint256 halfReward = rewardAmount / 2; uint256 token0Amount = swapLPToToken0(halfReward); uint256 token1Amount = swapLPToToken1(halfReward); require(token0Amount > 0 && token1Amount > 0, "No tokens to swap"); uint256 stakeAmount = addLiquidity(); require(stakeAmount > 0, "No LP tokens to stake"); innerDeposit(); compoundedAt = block.timestamp; } } return rewardAmount; } function innerDeposit() internal returns (uint256) { uint256 lpAmount = stakeToken.balanceOf(address(this)); if (lpAmount > 0) { gauge.deposit(lpAmount); uint256 totalDeps = totalDeposits(); lpPerTicket = (totalDeps * 1e18) / totalTickets; } return lpPerTicket; } function deposit(uint256 amount) external nonReentrant whenActive { if (totalTickets != 0) { updateVault(); } stakeToken.transferFrom(msg.sender, address(this), amount); uint256 fee = (amount * depositFee) / 1000; stakeToken.transfer(treasury, fee); amount -= fee; uint256 tickets = (amount * 1e18) / lpPerTicket; userTickets[msg.sender] += tickets; totalTickets += tickets; gauge.deposit(amount); emit Deposit(msg.sender, amount, tickets); } function _withdraw(uint256 amount) internal { uint256 tickets = userTickets[msg.sender]; require(tickets > 0, "No tickets to withdraw"); uint256 userLp = (tickets * lpPerTicket) / 1e18; require(userLp >= amount, "Insufficient balance"); uint256 withdrawTickets = (amount * 1e18) / lpPerTicket; userTickets[msg.sender] -= withdrawTickets; totalTickets -= withdrawTickets; gauge.withdraw(amount); stakeToken.transfer(msg.sender, amount); emit Withdraw(msg.sender, amount); } function withdraw(uint256 amount) external nonReentrant { _withdraw(amount); } function withdrawAll() external { uint256 tickets = userTickets[msg.sender]; uint256 userLp = (tickets * lpPerTicket) / 1e18; _withdraw(userLp); } function compound() external whenActive { uint256 rewards = updateVault(); require(rewards > 0, "No rewards to compound"); uint256 lpAmount = stakeToken.balanceOf(address(this)); if (lpAmount > 0) { gauge.deposit(lpAmount); uint256 totalDeps = totalDeposits(); lpPerTicket = (totalDeps * 1e18) / totalTickets; } emit Compound(rewardToken.balanceOf(address(this)), lpAmount); } function totalDeposits() public view returns (uint256) { return gauge.balanceOf(address(this)); } function lpForUser(address _user) external view returns (uint256) { uint256 tickets = userTickets[_user]; if (tickets == 0) return 0; uint256 _lpPerTicket = lpPerTicket; uint256 totalLp = totalDeposits(); if (totalTickets > 0 && totalLp > 0) { uint256 rewardAmount = rewardToken.balanceOf(address(this)); if (rewardAmount > 0) { _lpPerTicket += (rewardAmount * 1e18) / totalTickets; } } return (tickets * _lpPerTicket) / 1e18; } } interface IEqualizerGauge { function deposit(uint256 _value) external; function withdraw(uint256 amount) external; function getReward() external; function balanceOf(address account) external view returns (uint256); } interface IRouter { struct route { address from; address to; bool stable; } function addLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns ( uint amountA, uint amountB, uint liquidity ); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, route[] calldata routes, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, route[] memory routes, address to, uint256 deadline ) external; } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_vaultFee","type":"uint256"},{"internalType":"address","name":"_creatorTreasury","type":"address"},{"internalType":"uint256","name":"_creatorFee","type":"uint256"},{"internalType":"address","name":"_gauge","type":"address"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"contract IERC20","name":"_stakeToken","type":"address"},{"internalType":"contract IERC20","name":"_rewardToken","type":"address"},{"internalType":"contract IERC20","name":"_token0","type":"address"},{"internalType":"contract IERC20","name":"_token1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"}],"name":"ActiveStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpAmount","type":"uint256"}],"name":"Compound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tickets","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compoundedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creatorFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gauge","outputs":[{"internalType":"contract IEqualizerGauge","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"lpForUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600960146101000a81548160ff0219169083151502179055506001600a553480156200003157600080fd5b50604051620039ee380380620039ee8339818101604052810190620000579190620007b3565b600160008190555089600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600b8190555087600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600c8190555085600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600d8190555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064878a620002d59190620008d8565b111562000319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003109062000996565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620003ba929190620009da565b6020604051808303816000875af1158015620003da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000400919062000a44565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620004a2929190620009da565b6020604051808303816000875af1158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e8919062000a44565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200058a929190620009da565b6020604051808303816000875af1158015620005aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d0919062000a44565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040162000672929190620009da565b6020604051808303816000875af115801562000692573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006b8919062000a44565b505050505050505050505062000a76565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006fb82620006ce565b9050919050565b6200070d81620006ee565b81146200071957600080fd5b50565b6000815190506200072d8162000702565b92915050565b6000819050919050565b620007488162000733565b81146200075457600080fd5b50565b60008151905062000768816200073d565b92915050565b60006200077b82620006ee565b9050919050565b6200078d816200076e565b81146200079957600080fd5b50565b600081519050620007ad8162000782565b92915050565b6000806000806000806000806000806101408b8d031215620007da57620007d9620006c9565b5b6000620007ea8d828e016200071c565b9a50506020620007fd8d828e0162000757565b9950506040620008108d828e016200071c565b9850506060620008238d828e0162000757565b9750506080620008368d828e016200071c565b96505060a0620008498d828e016200071c565b95505060c06200085c8d828e016200079c565b94505060e06200086f8d828e016200079c565b935050610100620008838d828e016200079c565b925050610120620008978d828e016200079c565b9150509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008e58262000733565b9150620008f28362000733565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200092a5762000929620008a9565b5b828201905092915050565b600082825260208201905092915050565b7f496e76616c69642066656520646973747269627574696f6e0000000000000000600082015250565b60006200097e60188362000935565b91506200098b8262000946565b602082019050919050565b60006020820190508181036000830152620009b1816200096f565b9050919050565b620009c381620006ee565b82525050565b620009d48162000733565b82525050565b6000604082019050620009f16000830185620009b8565b62000a006020830184620009c9565b9392505050565b60008115159050919050565b62000a1e8162000a07565b811462000a2a57600080fd5b50565b60008151905062000a3e8162000a13565b92915050565b60006020828403121562000a5d5762000a5c620006c9565b5b600062000a6d8482850162000a2d565b91505092915050565b612f688062000a866000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806380017f4e116100ad578063dd11247e11610071578063dd11247e146102eb578063e88958dc14610309578063f69e204614610327578063f7c618c114610331578063f887ea401461034f5761012c565b806380017f4e14610259578063853828b614610289578063a6f19c8414610293578063b6b55f25146102b1578063d21220a7146102cd5761012c565b80632beddd35116100f45780632beddd35146101b35780632e1a7d4d146101e357806351ed6a30146101ff57806367a527931461021d5780637d8820971461023b5761012c565b80630169050d1461013157806301ac145b1461014f57806302fb0c5e1461016d5780630dfe16811461018b57806329c68dc1146101a9575b600080fd5b61013961036d565b604051610146919061214c565b60405180910390f35b610157610373565b604051610164919061214c565b60405180910390f35b610175610379565b6040516101829190612182565b60405180910390f35b61019361038c565b6040516101a0919061221c565b60405180910390f35b6101b16103b2565b005b6101cd60048036038101906101c89190612289565b6104b4565b6040516101da919061214c565b60405180910390f35b6101fd60048036038101906101f891906122e2565b610639565b005b610207610655565b604051610214919061221c565b60405180910390f35b61022561067b565b604051610232919061214c565b60405180910390f35b610243610681565b604051610250919061214c565b60405180910390f35b610273600480360381019061026e9190612289565b610724565b604051610280919061214c565b60405180910390f35b61029161073c565b005b61029b6107b2565b6040516102a89190612330565b60405180910390f35b6102cb60048036038101906102c691906122e2565b6107d8565b005b6102d5610b54565b6040516102e2919061221c565b60405180910390f35b6102f3610b7a565b604051610300919061214c565b60405180910390f35b610311610b80565b60405161031e919061214c565b60405180910390f35b61032f610b86565b005b610339610e67565b604051610346919061221c565b60405180910390f35b610357610e8d565b604051610364919061236c565b60405180910390f35b600f5481565b600b5481565b600960149054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610439906123e4565b60405180910390fd5b600960149054906101000a900460ff1615600960146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600960149054906101000a900460ff166040516104aa9190612182565b60405180910390a1565b600080601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361050b576000915050610634565b6000600d549050600061051c610681565b90506000600e541180156105305750600081115b1561060f576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105929190612413565b602060405180830381865afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190612443565b9050600081111561060d57600e54670de0b6b3a7640000826105f5919061249f565b6105ff9190612528565b8361060a9190612559565b92505b505b670de0b6b3a76400008284610624919061249f565b61062e9190612528565b93505050505b919050565b610641610eb3565b61064a81610ef9565b6106526111fe565b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106de9190612413565b602060405180830381865afa1580156106fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071f9190612443565b905090565b60106020528060005260406000206000915090505481565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000670de0b6b3a7640000600d5483610799919061249f565b6107a39190612528565b90506107ae81610ef9565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107e0610eb3565b600960149054906101000a900460ff1661082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610826906125fb565b60405180910390fd5b6000600e541461084357610841611208565b505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108a29392919061261b565b6020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e5919061267e565b5060006103e8600a54836108f9919061249f565b6109039190612528565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109849291906126ab565b6020604051808303816000875af11580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c7919061267e565b5080826109d491906126d4565b91506000600d54670de0b6b3a7640000846109ef919061249f565b6109f99190612528565b905080601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a4a9190612559565b9250508190555080600e6000828254610a639190612559565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25846040518263ffffffff1660e01b8152600401610ac5919061214c565b600060405180830381600087803b158015610adf57600080fd5b505af1158015610af3573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158483604051610b3f929190612708565b60405180910390a25050610b516111fe565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600c5481565b600960149054906101000a900460ff16610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906125fb565b60405180910390fd5b6000610bdf611208565b905060008111610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b9061277d565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c819190612413565b602060405180830381865afa158015610c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc29190612443565b90506000811115610d8f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401610d28919061214c565b600060405180830381600087803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b505050506000610d64610681565b9050600e54670de0b6b3a764000082610d7d919061249f565b610d879190612528565b600d81905550505b7fe3c48e43a3cc80f4a0c194845bdd6091fa19b9bb7d22e515c21e9f177e2e22ae600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e0b9190612413565b602060405180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c9190612443565b82604051610e5b929190612708565b60405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260005403610eef576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906127e9565b60405180910390fd5b6000670de0b6b3a7640000600d5483610f99919061249f565b610fa39190612528565b905082811015610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90612855565b60405180910390fd5b6000600d54670de0b6b3a764000085611001919061249f565b61100b9190612528565b905080601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461105c91906126d4565b9250508190555080600e600082825461107591906126d4565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d856040518263ffffffff1660e01b81526004016110d7919061214c565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b81526004016111669291906126ab565b6020604051808303816000875af1158015611185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a9919061267e565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516111f0919061214c565b60405180910390a250505050565b6001600081905550565b600080611213610681565b9050600080600e541180156112285750600082115b156114fe57611235611506565b905060008111156114fd5760006103e8600b5483611253919061249f565b61125d9190612528565b905060006103e8600c5484611272919061249f565b61127c9190612528565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112fd9291906126ab565b6020604051808303816000875af115801561131c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611340919061267e565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016113c09291906126ab565b6020604051808303816000875af11580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061267e565b5080826114109190612559565b8361141b91906126d4565b9250600060028461142c9190612528565b905060006114398261162b565b90506000611446836118c6565b90506000821180156114585750600081115b611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e906128c1565b60405180910390fd5b60006114a1611c0e565b9050600081116114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd9061292d565b60405180910390fd5b6114ee611f6f565b5042600f819055505050505050505b5b809250505090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561157257600080fd5b505af1158015611586573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115e59190612413565b602060405180830381865afa158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612443565b905090565b600080821161166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612999565b60405180910390fd5b6000600167ffffffffffffffff81111561168c5761168b6129b9565b5b6040519080825280602002602001820160405280156116c557816020015b6116b26120e4565b8152602001906001900390816116aa5790505b5090506040518060600160405280600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600015158152508160008151811061176a576117696129e8565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b81526004016117d9959493929190612b61565b6000604051808303816000875af11580156117f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118219190612ce5565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161187d9190612413565b602060405180830381865afa15801561189a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118be9190612443565b915050919050565b600080821161190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612999565b60405180910390fd5b6000600267ffffffffffffffff811115611927576119266129b9565b5b60405190808252806020026020018201604052801561196057816020015b61194d6120e4565b8152602001906001900390816119455790505b5090506040518060600160405280600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600081518110611a0557611a046129e8565b5b60200260200101819052506040518060600160405280600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600181518110611ab257611ab16129e8565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401611b21959493929190612b61565b6000604051808303816000875af1158015611b40573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b699190612ce5565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bc59190612413565b602060405180830381865afa158015611be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c069190612443565b915050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c6c9190612413565b602060405180830381865afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cad9190612443565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d0c9190612413565b602060405180830381865afa158015611d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190612443565b905060008211611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8990612da0565b60405180910390fd5b60008111611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612e32565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a47ddc3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000868660018030426040518a63ffffffff1660e01b8152600401611e8699989796959493929190612e52565b6060604051808303816000875af1158015611ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec99190612edf565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f279190612413565b602060405180830381865afa158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190612443565b9250505090565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611fcd9190612413565b602060405180830381865afa158015611fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200e9190612443565b905060008111156120db57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401612074919061214c565b600060405180830381600087803b15801561208e57600080fd5b505af11580156120a2573d6000803e3d6000fd5b5050505060006120b0610681565b9050600e54670de0b6b3a7640000826120c9919061249f565b6120d39190612528565b600d81905550505b600d5491505090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b6000819050919050565b61214681612133565b82525050565b6000602082019050612161600083018461213d565b92915050565b60008115159050919050565b61217c81612167565b82525050565b60006020820190506121976000830184612173565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006121e26121dd6121d88461219d565b6121bd565b61219d565b9050919050565b60006121f4826121c7565b9050919050565b6000612206826121e9565b9050919050565b612216816121fb565b82525050565b6000602082019050612231600083018461220d565b92915050565b6000604051905090565b600080fd5b600080fd5b60006122568261219d565b9050919050565b6122668161224b565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e612241565b5b60006122ad84828501612274565b91505092915050565b6122bf81612133565b81146122ca57600080fd5b50565b6000813590506122dc816122b6565b92915050565b6000602082840312156122f8576122f7612241565b5b6000612306848285016122cd565b91505092915050565b600061231a826121e9565b9050919050565b61232a8161230f565b82525050565b60006020820190506123456000830184612321565b92915050565b6000612356826121e9565b9050919050565b6123668161234b565b82525050565b6000602082019050612381600083018461235d565b92915050565b600082825260208201905092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b60006123ce600d83612387565b91506123d982612398565b602082019050919050565b600060208201905081810360008301526123fd816123c1565b9050919050565b61240d8161224b565b82525050565b60006020820190506124286000830184612404565b92915050565b60008151905061243d816122b6565b92915050565b60006020828403121561245957612458612241565b5b60006124678482850161242e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124aa82612133565b91506124b583612133565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124ee576124ed612470565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061253382612133565b915061253e83612133565b92508261254e5761254d6124f9565b5b828204905092915050565b600061256482612133565b915061256f83612133565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125a4576125a3612470565b5b828201905092915050565b7f5661756c74206973206e6f742061637469766500000000000000000000000000600082015250565b60006125e5601383612387565b91506125f0826125af565b602082019050919050565b60006020820190508181036000830152612614816125d8565b9050919050565b60006060820190506126306000830186612404565b61263d6020830185612404565b61264a604083018461213d565b949350505050565b61265b81612167565b811461266657600080fd5b50565b60008151905061267881612652565b92915050565b60006020828403121561269457612693612241565b5b60006126a284828501612669565b91505092915050565b60006040820190506126c06000830185612404565b6126cd602083018461213d565b9392505050565b60006126df82612133565b91506126ea83612133565b9250828210156126fd576126fc612470565b5b828203905092915050565b600060408201905061271d600083018561213d565b61272a602083018461213d565b9392505050565b7f4e6f207265776172647320746f20636f6d706f756e6400000000000000000000600082015250565b6000612767601683612387565b915061277282612731565b602082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b7f4e6f207469636b65747320746f20776974686472617700000000000000000000600082015250565b60006127d3601683612387565b91506127de8261279d565b602082019050919050565b60006020820190508181036000830152612802816127c6565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061283f601483612387565b915061284a82612809565b602082019050919050565b6000602082019050818103600083015261286e81612832565b9050919050565b7f4e6f20746f6b656e7320746f2073776170000000000000000000000000000000600082015250565b60006128ab601183612387565b91506128b682612875565b602082019050919050565b600060208201905081810360008301526128da8161289e565b9050919050565b7f4e6f204c5020746f6b656e7320746f207374616b650000000000000000000000600082015250565b6000612917601583612387565b9150612922826128e1565b602082019050919050565b600060208201905081810360008301526129468161290a565b9050919050565b7f4e6f20746f6b656e20746f207377617000000000000000000000000000000000600082015250565b6000612983601083612387565b915061298e8261294d565b602082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000612a3c612a37612a3284612a17565b6121bd565b612133565b9050919050565b612a4c81612a21565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a878161224b565b82525050565b612a9681612167565b82525050565b606082016000820151612ab26000850182612a7e565b506020820151612ac56020850182612a7e565b506040820151612ad86040850182612a8d565b50505050565b6000612aea8383612a9c565b60608301905092915050565b6000602082019050919050565b6000612b0e82612a52565b612b188185612a5d565b9350612b2383612a6e565b8060005b83811015612b54578151612b3b8882612ade565b9750612b4683612af6565b925050600181019050612b27565b5085935050505092915050565b600060a082019050612b76600083018861213d565b612b836020830187612a43565b8181036040830152612b958186612b03565b9050612ba46060830185612404565b612bb1608083018461213d565b9695505050505050565b600080fd5b6000601f19601f8301169050919050565b612bda82612bc0565b810181811067ffffffffffffffff82111715612bf957612bf86129b9565b5b80604052505050565b6000612c0c612237565b9050612c188282612bd1565b919050565b600067ffffffffffffffff821115612c3857612c376129b9565b5b602082029050602081019050919050565b600080fd5b6000612c61612c5c84612c1d565b612c02565b90508083825260208201905060208402830185811115612c8457612c83612c49565b5b835b81811015612cad5780612c99888261242e565b845260208401935050602081019050612c86565b5050509392505050565b600082601f830112612ccc57612ccb612bbb565b5b8151612cdc848260208601612c4e565b91505092915050565b600060208284031215612cfb57612cfa612241565b5b600082015167ffffffffffffffff811115612d1957612d18612246565b5b612d2584828501612cb7565b91505092915050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e302060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b6000612d8a603483612387565b9150612d9582612d2e565b604082019050919050565b60006020820190508181036000830152612db981612d7d565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e312060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b6000612e1c603483612387565b9150612e2782612dc0565b604082019050919050565b60006020820190508181036000830152612e4b81612e0f565b9050919050565b600061012082019050612e68600083018c612404565b612e75602083018b612404565b612e82604083018a612173565b612e8f606083018961213d565b612e9c608083018861213d565b612ea960a0830187612a43565b612eb660c0830186612a43565b612ec360e0830185612404565b612ed161010083018461213d565b9a9950505050505050505050565b600080600060608486031215612ef857612ef7612241565b5b6000612f068682870161242e565b9350506020612f178682870161242e565b9250506040612f288682870161242e565b915050925092509256fea2646970667358221220a4eab4408b85172e53eb32f46cddd8e27cf2d657662fa863914776c68fcc40a464736f6c634300080d0033000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa500000000000000000000000000000000000000000000000000000000000000320000000000000000000000008858508065486ae00c53ca1a6e67e7661ebd8c3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e06a65e545b4bd762158f6bc34656dee9693a4d0000000000000000000000007635cd591cfe965be8bec60da6ea69b6dcd27e4b000000000000000000000000832e2bb9579f6ff038d3e704fa1bb5b6b18a6521000000000000000000000000ddf26b42c1d903de8962d3f79a74a501420d5f19000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000009fdbc3f8abc05fa8f3ad3c17d2f806c1230c4564
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806380017f4e116100ad578063dd11247e11610071578063dd11247e146102eb578063e88958dc14610309578063f69e204614610327578063f7c618c114610331578063f887ea401461034f5761012c565b806380017f4e14610259578063853828b614610289578063a6f19c8414610293578063b6b55f25146102b1578063d21220a7146102cd5761012c565b80632beddd35116100f45780632beddd35146101b35780632e1a7d4d146101e357806351ed6a30146101ff57806367a527931461021d5780637d8820971461023b5761012c565b80630169050d1461013157806301ac145b1461014f57806302fb0c5e1461016d5780630dfe16811461018b57806329c68dc1146101a9575b600080fd5b61013961036d565b604051610146919061214c565b60405180910390f35b610157610373565b604051610164919061214c565b60405180910390f35b610175610379565b6040516101829190612182565b60405180910390f35b61019361038c565b6040516101a0919061221c565b60405180910390f35b6101b16103b2565b005b6101cd60048036038101906101c89190612289565b6104b4565b6040516101da919061214c565b60405180910390f35b6101fd60048036038101906101f891906122e2565b610639565b005b610207610655565b604051610214919061221c565b60405180910390f35b61022561067b565b604051610232919061214c565b60405180910390f35b610243610681565b604051610250919061214c565b60405180910390f35b610273600480360381019061026e9190612289565b610724565b604051610280919061214c565b60405180910390f35b61029161073c565b005b61029b6107b2565b6040516102a89190612330565b60405180910390f35b6102cb60048036038101906102c691906122e2565b6107d8565b005b6102d5610b54565b6040516102e2919061221c565b60405180910390f35b6102f3610b7a565b604051610300919061214c565b60405180910390f35b610311610b80565b60405161031e919061214c565b60405180910390f35b61032f610b86565b005b610339610e67565b604051610346919061221c565b60405180910390f35b610357610e8d565b604051610364919061236c565b60405180910390f35b600f5481565b600b5481565b600960149054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610439906123e4565b60405180910390fd5b600960149054906101000a900460ff1615600960146101000a81548160ff0219169083151502179055507fb525469ef855bc548f43bc65988e210c34addc78e267a5ab261ce1a2bae05f11600960149054906101000a900460ff166040516104aa9190612182565b60405180910390a1565b600080601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361050b576000915050610634565b6000600d549050600061051c610681565b90506000600e541180156105305750600081115b1561060f576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105929190612413565b602060405180830381865afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190612443565b9050600081111561060d57600e54670de0b6b3a7640000826105f5919061249f565b6105ff9190612528565b8361060a9190612559565b92505b505b670de0b6b3a76400008284610624919061249f565b61062e9190612528565b93505050505b919050565b610641610eb3565b61064a81610ef9565b6106526111fe565b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106de9190612413565b602060405180830381865afa1580156106fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071f9190612443565b905090565b60106020528060005260406000206000915090505481565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000670de0b6b3a7640000600d5483610799919061249f565b6107a39190612528565b90506107ae81610ef9565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107e0610eb3565b600960149054906101000a900460ff1661082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610826906125fb565b60405180910390fd5b6000600e541461084357610841611208565b505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108a29392919061261b565b6020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e5919061267e565b5060006103e8600a54836108f9919061249f565b6109039190612528565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016109849291906126ab565b6020604051808303816000875af11580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c7919061267e565b5080826109d491906126d4565b91506000600d54670de0b6b3a7640000846109ef919061249f565b6109f99190612528565b905080601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a4a9190612559565b9250508190555080600e6000828254610a639190612559565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25846040518263ffffffff1660e01b8152600401610ac5919061214c565b600060405180830381600087803b158015610adf57600080fd5b505af1158015610af3573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158483604051610b3f929190612708565b60405180910390a25050610b516111fe565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600c5481565b600960149054906101000a900460ff16610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906125fb565b60405180910390fd5b6000610bdf611208565b905060008111610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b9061277d565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c819190612413565b602060405180830381865afa158015610c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc29190612443565b90506000811115610d8f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401610d28919061214c565b600060405180830381600087803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b505050506000610d64610681565b9050600e54670de0b6b3a764000082610d7d919061249f565b610d879190612528565b600d81905550505b7fe3c48e43a3cc80f4a0c194845bdd6091fa19b9bb7d22e515c21e9f177e2e22ae600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e0b9190612413565b602060405180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c9190612443565b82604051610e5b929190612708565b60405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260005403610eef576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906127e9565b60405180910390fd5b6000670de0b6b3a7640000600d5483610f99919061249f565b610fa39190612528565b905082811015610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90612855565b60405180910390fd5b6000600d54670de0b6b3a764000085611001919061249f565b61100b9190612528565b905080601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461105c91906126d4565b9250508190555080600e600082825461107591906126d4565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d856040518263ffffffff1660e01b81526004016110d7919061214c565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b81526004016111669291906126ab565b6020604051808303816000875af1158015611185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a9919061267e565b503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516111f0919061214c565b60405180910390a250505050565b6001600081905550565b600080611213610681565b9050600080600e541180156112285750600082115b156114fe57611235611506565b905060008111156114fd5760006103e8600b5483611253919061249f565b61125d9190612528565b905060006103e8600c5484611272919061249f565b61127c9190612528565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112fd9291906126ab565b6020604051808303816000875af115801561131c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611340919061267e565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016113c09291906126ab565b6020604051808303816000875af11580156113df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611403919061267e565b5080826114109190612559565b8361141b91906126d4565b9250600060028461142c9190612528565b905060006114398261162b565b90506000611446836118c6565b90506000821180156114585750600081115b611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e906128c1565b60405180910390fd5b60006114a1611c0e565b9050600081116114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd9061292d565b60405180910390fd5b6114ee611f6f565b5042600f819055505050505050505b5b809250505090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561157257600080fd5b505af1158015611586573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115e59190612413565b602060405180830381865afa158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612443565b905090565b600080821161166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612999565b60405180910390fd5b6000600167ffffffffffffffff81111561168c5761168b6129b9565b5b6040519080825280602002602001820160405280156116c557816020015b6116b26120e4565b8152602001906001900390816116aa5790505b5090506040518060600160405280600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600015158152508160008151811061176a576117696129e8565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b81526004016117d9959493929190612b61565b6000604051808303816000875af11580156117f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118219190612ce5565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161187d9190612413565b602060405180830381865afa15801561189a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118be9190612443565b915050919050565b600080821161190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612999565b60405180910390fd5b6000600267ffffffffffffffff811115611927576119266129b9565b5b60405190808252806020026020018201604052801561196057816020015b61194d6120e4565b8152602001906001900390816119455790505b5090506040518060600160405280600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600081518110611a0557611a046129e8565b5b60200260200101819052506040518060600160405280600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525081600181518110611ab257611ab16129e8565b5b6020026020010181905250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88460018430426040518663ffffffff1660e01b8152600401611b21959493929190612b61565b6000604051808303816000875af1158015611b40573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b699190612ce5565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611bc59190612413565b602060405180830381865afa158015611be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c069190612443565b915050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c6c9190612413565b602060405180830381865afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cad9190612443565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d0c9190612413565b602060405180830381865afa158015611d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d9190612443565b905060008211611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8990612da0565b60405180910390fd5b60008111611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612e32565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a47ddc3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000868660018030426040518a63ffffffff1660e01b8152600401611e8699989796959493929190612e52565b6060604051808303816000875af1158015611ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec99190612edf565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f279190612413565b602060405180830381865afa158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190612443565b9250505090565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611fcd9190612413565b602060405180830381865afa158015611fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200e9190612443565b905060008111156120db57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401612074919061214c565b600060405180830381600087803b15801561208e57600080fd5b505af11580156120a2573d6000803e3d6000fd5b5050505060006120b0610681565b9050600e54670de0b6b3a7640000826120c9919061249f565b6120d39190612528565b600d81905550505b600d5491505090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b6000819050919050565b61214681612133565b82525050565b6000602082019050612161600083018461213d565b92915050565b60008115159050919050565b61217c81612167565b82525050565b60006020820190506121976000830184612173565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006121e26121dd6121d88461219d565b6121bd565b61219d565b9050919050565b60006121f4826121c7565b9050919050565b6000612206826121e9565b9050919050565b612216816121fb565b82525050565b6000602082019050612231600083018461220d565b92915050565b6000604051905090565b600080fd5b600080fd5b60006122568261219d565b9050919050565b6122668161224b565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e612241565b5b60006122ad84828501612274565b91505092915050565b6122bf81612133565b81146122ca57600080fd5b50565b6000813590506122dc816122b6565b92915050565b6000602082840312156122f8576122f7612241565b5b6000612306848285016122cd565b91505092915050565b600061231a826121e9565b9050919050565b61232a8161230f565b82525050565b60006020820190506123456000830184612321565b92915050565b6000612356826121e9565b9050919050565b6123668161234b565b82525050565b6000602082019050612381600083018461235d565b92915050565b600082825260208201905092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b60006123ce600d83612387565b91506123d982612398565b602082019050919050565b600060208201905081810360008301526123fd816123c1565b9050919050565b61240d8161224b565b82525050565b60006020820190506124286000830184612404565b92915050565b60008151905061243d816122b6565b92915050565b60006020828403121561245957612458612241565b5b60006124678482850161242e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124aa82612133565b91506124b583612133565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124ee576124ed612470565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061253382612133565b915061253e83612133565b92508261254e5761254d6124f9565b5b828204905092915050565b600061256482612133565b915061256f83612133565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125a4576125a3612470565b5b828201905092915050565b7f5661756c74206973206e6f742061637469766500000000000000000000000000600082015250565b60006125e5601383612387565b91506125f0826125af565b602082019050919050565b60006020820190508181036000830152612614816125d8565b9050919050565b60006060820190506126306000830186612404565b61263d6020830185612404565b61264a604083018461213d565b949350505050565b61265b81612167565b811461266657600080fd5b50565b60008151905061267881612652565b92915050565b60006020828403121561269457612693612241565b5b60006126a284828501612669565b91505092915050565b60006040820190506126c06000830185612404565b6126cd602083018461213d565b9392505050565b60006126df82612133565b91506126ea83612133565b9250828210156126fd576126fc612470565b5b828203905092915050565b600060408201905061271d600083018561213d565b61272a602083018461213d565b9392505050565b7f4e6f207265776172647320746f20636f6d706f756e6400000000000000000000600082015250565b6000612767601683612387565b915061277282612731565b602082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b7f4e6f207469636b65747320746f20776974686472617700000000000000000000600082015250565b60006127d3601683612387565b91506127de8261279d565b602082019050919050565b60006020820190508181036000830152612802816127c6565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061283f601483612387565b915061284a82612809565b602082019050919050565b6000602082019050818103600083015261286e81612832565b9050919050565b7f4e6f20746f6b656e7320746f2073776170000000000000000000000000000000600082015250565b60006128ab601183612387565b91506128b682612875565b602082019050919050565b600060208201905081810360008301526128da8161289e565b9050919050565b7f4e6f204c5020746f6b656e7320746f207374616b650000000000000000000000600082015250565b6000612917601583612387565b9150612922826128e1565b602082019050919050565b600060208201905081810360008301526129468161290a565b9050919050565b7f4e6f20746f6b656e20746f207377617000000000000000000000000000000000600082015250565b6000612983601083612387565b915061298e8261294d565b602082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000612a3c612a37612a3284612a17565b6121bd565b612133565b9050919050565b612a4c81612a21565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a878161224b565b82525050565b612a9681612167565b82525050565b606082016000820151612ab26000850182612a7e565b506020820151612ac56020850182612a7e565b506040820151612ad86040850182612a8d565b50505050565b6000612aea8383612a9c565b60608301905092915050565b6000602082019050919050565b6000612b0e82612a52565b612b188185612a5d565b9350612b2383612a6e565b8060005b83811015612b54578151612b3b8882612ade565b9750612b4683612af6565b925050600181019050612b27565b5085935050505092915050565b600060a082019050612b76600083018861213d565b612b836020830187612a43565b8181036040830152612b958186612b03565b9050612ba46060830185612404565b612bb1608083018461213d565b9695505050505050565b600080fd5b6000601f19601f8301169050919050565b612bda82612bc0565b810181811067ffffffffffffffff82111715612bf957612bf86129b9565b5b80604052505050565b6000612c0c612237565b9050612c188282612bd1565b919050565b600067ffffffffffffffff821115612c3857612c376129b9565b5b602082029050602081019050919050565b600080fd5b6000612c61612c5c84612c1d565b612c02565b90508083825260208201905060208402830185811115612c8457612c83612c49565b5b835b81811015612cad5780612c99888261242e565b845260208401935050602081019050612c86565b5050509392505050565b600082601f830112612ccc57612ccb612bbb565b5b8151612cdc848260208601612c4e565b91505092915050565b600060208284031215612cfb57612cfa612241565b5b600082015167ffffffffffffffff811115612d1957612d18612246565b5b612d2584828501612cb7565b91505092915050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e302060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b6000612d8a603483612387565b9150612d9582612d2e565b604082019050919050565b60006020820190508181036000830152612db981612d7d565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220546f6b656e312060008201527f746f2070726f76696465206c6971756964697479000000000000000000000000602082015250565b6000612e1c603483612387565b9150612e2782612dc0565b604082019050919050565b60006020820190508181036000830152612e4b81612e0f565b9050919050565b600061012082019050612e68600083018c612404565b612e75602083018b612404565b612e82604083018a612173565b612e8f606083018961213d565b612e9c608083018861213d565b612ea960a0830187612a43565b612eb660c0830186612a43565b612ec360e0830185612404565b612ed161010083018461213d565b9a9950505050505050505050565b600080600060608486031215612ef857612ef7612241565b5b6000612f068682870161242e565b9350506020612f178682870161242e565b9250506040612f288682870161242e565b915050925092509256fea2646970667358221220a4eab4408b85172e53eb32f46cddd8e27cf2d657662fa863914776c68fcc40a464736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa500000000000000000000000000000000000000000000000000000000000000320000000000000000000000008858508065486ae00c53ca1a6e67e7661ebd8c3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e06a65e545b4bd762158f6bc34656dee9693a4d0000000000000000000000007635cd591cfe965be8bec60da6ea69b6dcd27e4b000000000000000000000000832e2bb9579f6ff038d3e704fa1bb5b6b18a6521000000000000000000000000ddf26b42c1d903de8962d3f79a74a501420d5f19000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000009fdbc3f8abc05fa8f3ad3c17d2f806c1230c4564
-----Decoded View---------------
Arg [0] : _treasury (address): 0xB449391F3722FAbcdB6183B37CB4350bb97E8Aa5
Arg [1] : _vaultFee (uint256): 50
Arg [2] : _creatorTreasury (address): 0x8858508065486ae00c53Ca1a6e67e7661EBD8c3C
Arg [3] : _creatorFee (uint256): 0
Arg [4] : _gauge (address): 0x9E06a65E545b4Bd762158f6Bc34656DEe9693a4D
Arg [5] : _router (address): 0x7635cD591CFE965bE8beC60Da6eA69b6dcD27e4b
Arg [6] : _stakeToken (address): 0x832e2bb9579f6fF038d3E704Fa1BB5B6B18a6521
Arg [7] : _rewardToken (address): 0xddF26B42C1d903De8962d3F79a74a501420d5F19
Arg [8] : _token0 (address): 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38
Arg [9] : _token1 (address): 0x9fDbC3f8Abc05Fa8f3Ad3C17D2F806c1230c4564
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000b449391f3722fabcdb6183b37cb4350bb97e8aa5
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [2] : 0000000000000000000000008858508065486ae00c53ca1a6e67e7661ebd8c3c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000009e06a65e545b4bd762158f6bc34656dee9693a4d
Arg [5] : 0000000000000000000000007635cd591cfe965be8bec60da6ea69b6dcd27e4b
Arg [6] : 000000000000000000000000832e2bb9579f6ff038d3e704fa1bb5b6b18a6521
Arg [7] : 000000000000000000000000ddf26b42c1d903de8962d3f79a74a501420d5f19
Arg [8] : 000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad38
Arg [9] : 0000000000000000000000009fdbc3f8abc05fa8f3ad3c17d2f806c1230c4564
Deployed Bytecode Sourcemap
831:8437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1347:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1217:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1149:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;935:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2971:121;;;:::i;:::-;;8709:556;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7816:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;989:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1181:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8590:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1383:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7916:178;;;:::i;:::-;;872:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6656:569;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;962:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1313:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1247:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8102:480;;;:::i;:::-;;1020:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;907:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1347:27;;;;:::o;1217:23::-;;;;:::o;1149:25::-;;;;;;;;;;;;;:::o;935:20::-;;;;;;;;;;;;;:::o;2971:121::-;2920:5;;;;;;;;;;;2906:19;;:10;:19;;;2898:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3035:6:::1;;;;;;;;;;;3034:7;3025:6;;:16;;;;;;;;;;;;;;;;;;3057:27;3077:6;;;;;;;;;;;3057:27;;;;;;:::i;:::-;;;;;;;;2971:121::o:0;8709:556::-;8766:7;8786:15;8804:11;:18;8816:5;8804:18;;;;;;;;;;;;;;;;8786:36;;8848:1;8837:7;:12;8833:26;;8858:1;8851:8;;;;;8833:26;8872:20;8895:11;;8872:34;;8917:15;8935;:13;:15::i;:::-;8917:33;;8980:1;8965:12;;:16;:31;;;;;8995:1;8985:7;:11;8965:31;8961:246;;;9013:20;9036:11;;;;;;;;;;;:21;;;9066:4;9036:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9013:59;;9106:1;9091:12;:16;9087:109;;;9168:12;;9160:4;9145:12;:19;;;;:::i;:::-;9144:36;;;;:::i;:::-;9128:52;;;;;:::i;:::-;;;9087:109;8998:209;8961:246;9253:4;9237:12;9227:7;:22;;;;:::i;:::-;9226:31;;;;:::i;:::-;9219:38;;;;;8709:556;;;;:::o;7816:92::-;367:21;:19;:21::i;:::-;7883:17:::1;7893:6;7883:9;:17::i;:::-;411:20:::0;:18;:20::i;:::-;7816:92;:::o;989:24::-;;;;;;;;;;;;;:::o;1181:29::-;;;;:::o;8590:111::-;8636:7;8663:5;;;;;;;;;;;:15;;;8687:4;8663:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8656:37;;8590:111;:::o;1383:46::-;;;;;;;;;;;;;;;;;:::o;7916:178::-;7959:15;7977:11;:23;7989:10;7977:23;;;;;;;;;;;;;;;;7959:41;;8011:14;8054:4;8039:11;;8029:7;:21;;;;:::i;:::-;8028:30;;;;:::i;:::-;8011:47;;8069:17;8079:6;8069:9;:17::i;:::-;7948:146;;7916:178::o;872:28::-;;;;;;;;;;;;;:::o;6656:569::-;367:21;:19;:21::i;:::-;2808:6:::1;;;;;;;;;;;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6753:1:::2;6737:12;;:17;6733:63;;6771:13;:11;:13::i;:::-;;6733:63;6808:10;;;;;;;;;;;:23;;;6832:10;6852:4;6859:6;6808:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6879:11;6917:4;6903:10;;6894:6;:19;;;;:::i;:::-;6893:28;;;;:::i;:::-;6879:42;;6932:10;;;;;;;;;;;:19;;;6952:8;;;;;;;;;;;6962:3;6932:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6987:3;6977:13;;;;;:::i;:::-;;;7003:15;7039:11;;7031:4;7022:6;:13;;;;:::i;:::-;7021:29;;;;:::i;:::-;7003:47;;7088:7;7061:11;:23;7073:10;7061:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;7122:7;7106:12;;:23;;;;;;;:::i;:::-;;;;;;;;7142:5;;;;;;;;;;;:13;;;7156:6;7142:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;7189:10;7181:36;;;7201:6;7209:7;7181:36;;;;;;;:::i;:::-;;;;;;;;6722:503;;411:20:::0;:18;:20::i;:::-;6656:569;:::o;962:20::-;;;;;;;;;;;;;:::o;1313:27::-;;;;:::o;1247:25::-;;;;:::o;8102:480::-;2808:6;;;;;;;;;;;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8153:15:::1;8171:13;:11;:13::i;:::-;8153:31;;8213:1;8203:7;:11;8195:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8254:16;8273:10;;;;;;;;;;;:20;;;8302:4;8273:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8254:54;;8334:1;8323:8;:12;8319:182;;;8352:5;;;;;;;;;;;:13;;;8366:8;8352:23;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8392:17;8412:15;:13;:15::i;:::-;8392:35;;8477:12;;8469:4;8457:9;:16;;;;:::i;:::-;8456:33;;;;:::i;:::-;8442:11;:47;;;;8337:164;8319:182;8518:56;8527:11;;;;;;;;;;;:21;;;8557:4;8527:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8565:8;8518:56;;;;;;;:::i;:::-;;;;;;;;8142:440;;8102:480::o:0;1020:25::-;;;;;;;;;;;;;:::o;907:21::-;;;;;;;;;;;;;:::o;447:175::-;183:1;501:7;;:18;497:88;;543:30;;;;;;;;;;;;;;497:88;183:1;597:7;:17;;;;447:175::o;7233:575::-;7288:15;7306:11;:23;7318:10;7306:23;;;;;;;;;;;;;;;;7288:41;;7358:1;7348:7;:11;7340:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7399:14;7442:4;7427:11;;7417:7;:21;;;;:::i;:::-;7416:30;;;;:::i;:::-;7399:47;;7475:6;7465;:16;;7457:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:23;7563:11;;7555:4;7546:6;:13;;;;:::i;:::-;7545:29;;;;:::i;:::-;7519:55;;7612:15;7585:11;:23;7597:10;7585:23;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;7654:15;7638:12;;:31;;;;;;;:::i;:::-;;;;;;;;7682:5;;;;;;;;;;;:14;;;7697:6;7682:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7715:10;;;;;;;;;;;:19;;;7735:10;7747:6;7715:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7781:10;7772:28;;;7793:6;7772:28;;;;;;:::i;:::-;;;;;;;;7277:531;;;7233:575;:::o;630:78::-;140:1;679:7;:21;;;;630:78::o;5109:1184::-;5150:7;5170:15;5188;:13;:15::i;:::-;5170:33;;5216:20;5270:1;5255:12;;:16;:31;;;;;5285:1;5275:7;:11;5255:31;5251:1003;;;5318:12;:10;:12::i;:::-;5303:27;;5364:1;5349:12;:16;5345:898;;;5386:22;5439:4;5427:8;;5412:12;:23;;;;:::i;:::-;5411:32;;;;:::i;:::-;5386:57;;5462:21;5516:4;5502:10;;5487:12;:25;;;;:::i;:::-;5486:34;;;;:::i;:::-;5462:58;;5541:11;;;;;;;;;;;:20;;;5562:15;;;;;;;;;;;5579:13;5541:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5612:11;;;;;;;;;;;:20;;;5633:8;;;;;;;;;;;5643:14;5612:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5725:13;5708:14;:30;;;;:::i;:::-;5692:12;:47;;;;:::i;:::-;5677:62;;5760:18;5796:1;5781:12;:16;;;;:::i;:::-;5760:37;;5816:20;5839:26;5854:10;5839:14;:26::i;:::-;5816:49;;5884:20;5907:26;5922:10;5907:14;:26::i;:::-;5884:49;;5975:1;5960:12;:16;:36;;;;;5995:1;5980:12;:16;5960:36;5952:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6039:19;6061:14;:12;:14::i;:::-;6039:36;;6116:1;6102:11;:15;6094:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6164:14;:12;:14::i;:::-;;6212:15;6197:12;:30;;;;5367:876;;;;;;5345:898;5251:1003;6273:12;6266:19;;;;5109:1184;:::o;3100:139::-;3140:7;3160:5;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:11;;;;;;;;;;;:21;;;3225:4;3195:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3188:43;;3100:139;:::o;3247:506::-;3311:7;3354:1;3339:12;:16;3331:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3389:27;3439:1;3419:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3389:52;;3462:59;;;;;;;;3484:11;;;;;;;;;;;3462:59;;;;;;3506:6;;;;;;;;;;;3462:59;;;;;;3515:5;3462:59;;;;;3452:4;3457:1;3452:7;;;;;;;;:::i;:::-;;;;;;;:69;;;;3532:6;;;;;;;;;;;:31;;;3578:12;3605:1;3621:4;3648;3668:15;3532:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3714:6;;;;;;;;;;;:16;;;3739:4;3714:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3707:38;;;3247:506;;;:::o;3761:581::-;3825:7;3868:1;3853:12;:16;3845:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3903:27;3953:1;3933:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3903:52;;3976:59;;;;;;;;3998:11;;;;;;;;;;;3976:59;;;;;;4020:6;;;;;;;;;;;3976:59;;;;;;4029:5;3976:59;;;;;3966:4;3971:1;3966:7;;;;;;;;:::i;:::-;;;;;;;:69;;;;4056:54;;;;;;;;4078:6;;;;;;;;;;;4056:54;;;;;;4095:6;;;;;;;;;;;4056:54;;;;;;4104:5;4056:54;;;;;4046:4;4051:1;4046:7;;;;;;;;:::i;:::-;;;;;;;:64;;;;4121:6;;;;;;;;;;;:31;;;4167:12;4194:1;4210:4;4237;4257:15;4121:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4303:6;;;;;;;;;;;:16;;;4328:4;4303:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4296:38;;;3761:581;;;:::o;4350:751::-;4392:7;4412:21;4443:6;;;;;;;;;;;4436:24;;;4469:4;4436:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4412:63;;4486:21;4517:6;;;;;;;;;;;4510:24;;;4543:4;4510:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4486:63;;4612:1;4596:13;:17;4588:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;4705:1;4689:13;:17;4681:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;4774:6;;;;;;;;;;;:19;;;4816:6;;;;;;;;;;;4846;;;;;;;;;;;4868:5;4888:13;4916;4944:1;4960;4984:4;5004:15;4774:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5057:10;;;;;;;;;;;5050:28;;;5087:4;5050:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5043:50;;;;4350:751;:::o;6301:347::-;6343:7;6363:16;6382:10;;;;;;;;;;;:20;;;6411:4;6382:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6363:54;;6443:1;6432:8;:12;6428:182;;;6461:5;;;;;;;;;;;:13;;;6475:8;6461:23;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6501:17;6521:15;:13;:15::i;:::-;6501:35;;6586:12;;6578:4;6566:9;:16;;;;:::i;:::-;6565:33;;;;:::i;:::-;6551:11;:47;;;;6446:164;6428:182;6629:11;;6622:18;;;6301:347;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:126::-;906:7;946:42;939:5;935:54;924:65;;869:126;;;:::o;1001:60::-;1029:3;1050:5;1043:12;;1001:60;;;:::o;1067:142::-;1117:9;1150:53;1168:34;1177:24;1195:5;1177:24;:::i;:::-;1168:34;:::i;:::-;1150:53;:::i;:::-;1137:66;;1067:142;;;:::o;1215:126::-;1265:9;1298:37;1329:5;1298:37;:::i;:::-;1285:50;;1215:126;;;:::o;1347:141::-;1412:9;1445:37;1476:5;1445:37;:::i;:::-;1432:50;;1347:141;;;:::o;1494:161::-;1596:52;1642:5;1596:52;:::i;:::-;1591:3;1584:65;1494:161;;:::o;1661:252::-;1769:4;1807:2;1796:9;1792:18;1784:26;;1820:86;1903:1;1892:9;1888:17;1879:6;1820:86;:::i;:::-;1661:252;;;;:::o;1919:75::-;1952:6;1985:2;1979:9;1969:19;;1919:75;:::o;2000:117::-;2109:1;2106;2099:12;2123:117;2232:1;2229;2222:12;2246:96;2283:7;2312:24;2330:5;2312:24;:::i;:::-;2301:35;;2246:96;;;:::o;2348:122::-;2421:24;2439:5;2421:24;:::i;:::-;2414:5;2411:35;2401:63;;2460:1;2457;2450:12;2401:63;2348:122;:::o;2476:139::-;2522:5;2560:6;2547:20;2538:29;;2576:33;2603:5;2576:33;:::i;:::-;2476:139;;;;:::o;2621:329::-;2680:6;2729:2;2717:9;2708:7;2704:23;2700:32;2697:119;;;2735:79;;:::i;:::-;2697:119;2855:1;2880:53;2925:7;2916:6;2905:9;2901:22;2880:53;:::i;:::-;2870:63;;2826:117;2621:329;;;;:::o;2956:122::-;3029:24;3047:5;3029:24;:::i;:::-;3022:5;3019:35;3009:63;;3068:1;3065;3058:12;3009:63;2956:122;:::o;3084:139::-;3130:5;3168:6;3155:20;3146:29;;3184:33;3211:5;3184:33;:::i;:::-;3084:139;;;;:::o;3229:329::-;3288:6;3337:2;3325:9;3316:7;3312:23;3308:32;3305:119;;;3343:79;;:::i;:::-;3305:119;3463:1;3488:53;3533:7;3524:6;3513:9;3509:22;3488:53;:::i;:::-;3478:63;;3434:117;3229:329;;;;:::o;3564:150::-;3638:9;3671:37;3702:5;3671:37;:::i;:::-;3658:50;;3564:150;;;:::o;3720:179::-;3831:61;3886:5;3831:61;:::i;:::-;3826:3;3819:74;3720:179;;:::o;3905:270::-;4022:4;4060:2;4049:9;4045:18;4037:26;;4073:95;4165:1;4154:9;4150:17;4141:6;4073:95;:::i;:::-;3905:270;;;;:::o;4181:142::-;4247:9;4280:37;4311:5;4280:37;:::i;:::-;4267:50;;4181:142;;;:::o;4329:163::-;4432:53;4479:5;4432:53;:::i;:::-;4427:3;4420:66;4329:163;;:::o;4498:254::-;4607:4;4645:2;4634:9;4630:18;4622:26;;4658:87;4742:1;4731:9;4727:17;4718:6;4658:87;:::i;:::-;4498:254;;;;:::o;4758:169::-;4842:11;4876:6;4871:3;4864:19;4916:4;4911:3;4907:14;4892:29;;4758:169;;;;:::o;4933:163::-;5073:15;5069:1;5061:6;5057:14;5050:39;4933:163;:::o;5102:366::-;5244:3;5265:67;5329:2;5324:3;5265:67;:::i;:::-;5258:74;;5341:93;5430:3;5341:93;:::i;:::-;5459:2;5454:3;5450:12;5443:19;;5102:366;;;:::o;5474:419::-;5640:4;5678:2;5667:9;5663:18;5655:26;;5727:9;5721:4;5717:20;5713:1;5702:9;5698:17;5691:47;5755:131;5881:4;5755:131;:::i;:::-;5747:139;;5474:419;;;:::o;5899:118::-;5986:24;6004:5;5986:24;:::i;:::-;5981:3;5974:37;5899:118;;:::o;6023:222::-;6116:4;6154:2;6143:9;6139:18;6131:26;;6167:71;6235:1;6224:9;6220:17;6211:6;6167:71;:::i;:::-;6023:222;;;;:::o;6251:143::-;6308:5;6339:6;6333:13;6324:22;;6355:33;6382:5;6355:33;:::i;:::-;6251:143;;;;:::o;6400:351::-;6470:6;6519:2;6507:9;6498:7;6494:23;6490:32;6487:119;;;6525:79;;:::i;:::-;6487:119;6645:1;6670:64;6726:7;6717:6;6706:9;6702:22;6670:64;:::i;:::-;6660:74;;6616:128;6400:351;;;;:::o;6757:180::-;6805:77;6802:1;6795:88;6902:4;6899:1;6892:15;6926:4;6923:1;6916:15;6943:348;6983:7;7006:20;7024:1;7006:20;:::i;:::-;7001:25;;7040:20;7058:1;7040:20;:::i;:::-;7035:25;;7228:1;7160:66;7156:74;7153:1;7150:81;7145:1;7138:9;7131:17;7127:105;7124:131;;;7235:18;;:::i;:::-;7124:131;7283:1;7280;7276:9;7265:20;;6943:348;;;;:::o;7297:180::-;7345:77;7342:1;7335:88;7442:4;7439:1;7432:15;7466:4;7463:1;7456:15;7483:185;7523:1;7540:20;7558:1;7540:20;:::i;:::-;7535:25;;7574:20;7592:1;7574:20;:::i;:::-;7569:25;;7613:1;7603:35;;7618:18;;:::i;:::-;7603:35;7660:1;7657;7653:9;7648:14;;7483:185;;;;:::o;7674:305::-;7714:3;7733:20;7751:1;7733:20;:::i;:::-;7728:25;;7767:20;7785:1;7767:20;:::i;:::-;7762:25;;7921:1;7853:66;7849:74;7846:1;7843:81;7840:107;;;7927:18;;:::i;:::-;7840:107;7971:1;7968;7964:9;7957:16;;7674:305;;;;:::o;7985:169::-;8125:21;8121:1;8113:6;8109:14;8102:45;7985:169;:::o;8160:366::-;8302:3;8323:67;8387:2;8382:3;8323:67;:::i;:::-;8316:74;;8399:93;8488:3;8399:93;:::i;:::-;8517:2;8512:3;8508:12;8501:19;;8160:366;;;:::o;8532:419::-;8698:4;8736:2;8725:9;8721:18;8713:26;;8785:9;8779:4;8775:20;8771:1;8760:9;8756:17;8749:47;8813:131;8939:4;8813:131;:::i;:::-;8805:139;;8532:419;;;:::o;8957:442::-;9106:4;9144:2;9133:9;9129:18;9121:26;;9157:71;9225:1;9214:9;9210:17;9201:6;9157:71;:::i;:::-;9238:72;9306:2;9295:9;9291:18;9282:6;9238:72;:::i;:::-;9320;9388:2;9377:9;9373:18;9364:6;9320:72;:::i;:::-;8957:442;;;;;;:::o;9405:116::-;9475:21;9490:5;9475:21;:::i;:::-;9468:5;9465:32;9455:60;;9511:1;9508;9501:12;9455:60;9405:116;:::o;9527:137::-;9581:5;9612:6;9606:13;9597:22;;9628:30;9652:5;9628:30;:::i;:::-;9527:137;;;;:::o;9670:345::-;9737:6;9786:2;9774:9;9765:7;9761:23;9757:32;9754:119;;;9792:79;;:::i;:::-;9754:119;9912:1;9937:61;9990:7;9981:6;9970:9;9966:22;9937:61;:::i;:::-;9927:71;;9883:125;9670:345;;;;:::o;10021:332::-;10142:4;10180:2;10169:9;10165:18;10157:26;;10193:71;10261:1;10250:9;10246:17;10237:6;10193:71;:::i;:::-;10274:72;10342:2;10331:9;10327:18;10318:6;10274:72;:::i;:::-;10021:332;;;;;:::o;10359:191::-;10399:4;10419:20;10437:1;10419:20;:::i;:::-;10414:25;;10453:20;10471:1;10453:20;:::i;:::-;10448:25;;10492:1;10489;10486:8;10483:34;;;10497:18;;:::i;:::-;10483:34;10542:1;10539;10535:9;10527:17;;10359:191;;;;:::o;10556:332::-;10677:4;10715:2;10704:9;10700:18;10692:26;;10728:71;10796:1;10785:9;10781:17;10772:6;10728:71;:::i;:::-;10809:72;10877:2;10866:9;10862:18;10853:6;10809:72;:::i;:::-;10556:332;;;;;:::o;10894:172::-;11034:24;11030:1;11022:6;11018:14;11011:48;10894:172;:::o;11072:366::-;11214:3;11235:67;11299:2;11294:3;11235:67;:::i;:::-;11228:74;;11311:93;11400:3;11311:93;:::i;:::-;11429:2;11424:3;11420:12;11413:19;;11072:366;;;:::o;11444:419::-;11610:4;11648:2;11637:9;11633:18;11625:26;;11697:9;11691:4;11687:20;11683:1;11672:9;11668:17;11661:47;11725:131;11851:4;11725:131;:::i;:::-;11717:139;;11444:419;;;:::o;11869:172::-;12009:24;12005:1;11997:6;11993:14;11986:48;11869:172;:::o;12047:366::-;12189:3;12210:67;12274:2;12269:3;12210:67;:::i;:::-;12203:74;;12286:93;12375:3;12286:93;:::i;:::-;12404:2;12399:3;12395:12;12388:19;;12047:366;;;:::o;12419:419::-;12585:4;12623:2;12612:9;12608:18;12600:26;;12672:9;12666:4;12662:20;12658:1;12647:9;12643:17;12636:47;12700:131;12826:4;12700:131;:::i;:::-;12692:139;;12419:419;;;:::o;12844:170::-;12984:22;12980:1;12972:6;12968:14;12961:46;12844:170;:::o;13020:366::-;13162:3;13183:67;13247:2;13242:3;13183:67;:::i;:::-;13176:74;;13259:93;13348:3;13259:93;:::i;:::-;13377:2;13372:3;13368:12;13361:19;;13020:366;;;:::o;13392:419::-;13558:4;13596:2;13585:9;13581:18;13573:26;;13645:9;13639:4;13635:20;13631:1;13620:9;13616:17;13609:47;13673:131;13799:4;13673:131;:::i;:::-;13665:139;;13392:419;;;:::o;13817:167::-;13957:19;13953:1;13945:6;13941:14;13934:43;13817:167;:::o;13990:366::-;14132:3;14153:67;14217:2;14212:3;14153:67;:::i;:::-;14146:74;;14229:93;14318:3;14229:93;:::i;:::-;14347:2;14342:3;14338:12;14331:19;;13990:366;;;:::o;14362:419::-;14528:4;14566:2;14555:9;14551:18;14543:26;;14615:9;14609:4;14605:20;14601:1;14590:9;14586:17;14579:47;14643:131;14769:4;14643:131;:::i;:::-;14635:139;;14362:419;;;:::o;14787:171::-;14927:23;14923:1;14915:6;14911:14;14904:47;14787:171;:::o;14964:366::-;15106:3;15127:67;15191:2;15186:3;15127:67;:::i;:::-;15120:74;;15203:93;15292:3;15203:93;:::i;:::-;15321:2;15316:3;15312:12;15305:19;;14964:366;;;:::o;15336:419::-;15502:4;15540:2;15529:9;15525:18;15517:26;;15589:9;15583:4;15579:20;15575:1;15564:9;15560:17;15553:47;15617:131;15743:4;15617:131;:::i;:::-;15609:139;;15336:419;;;:::o;15761:166::-;15901:18;15897:1;15889:6;15885:14;15878:42;15761:166;:::o;15933:366::-;16075:3;16096:67;16160:2;16155:3;16096:67;:::i;:::-;16089:74;;16172:93;16261:3;16172:93;:::i;:::-;16290:2;16285:3;16281:12;16274:19;;15933:366;;;:::o;16305:419::-;16471:4;16509:2;16498:9;16494:18;16486:26;;16558:9;16552:4;16548:20;16544:1;16533:9;16529:17;16522:47;16586:131;16712:4;16586:131;:::i;:::-;16578:139;;16305:419;;;:::o;16730:180::-;16778:77;16775:1;16768:88;16875:4;16872:1;16865:15;16899:4;16896:1;16889:15;16916:180;16964:77;16961:1;16954:88;17061:4;17058:1;17051:15;17085:4;17082:1;17075:15;17102:85;17147:7;17176:5;17165:16;;17102:85;;;:::o;17193:158::-;17251:9;17284:61;17302:42;17311:32;17337:5;17311:32;:::i;:::-;17302:42;:::i;:::-;17284:61;:::i;:::-;17271:74;;17193:158;;;:::o;17357:147::-;17452:45;17491:5;17452:45;:::i;:::-;17447:3;17440:58;17357:147;;:::o;17510:137::-;17600:6;17634:5;17628:12;17618:22;;17510:137;;;:::o;17653:207::-;17775:11;17809:6;17804:3;17797:19;17849:4;17844:3;17840:14;17825:29;;17653:207;;;;:::o;17866:155::-;17956:4;17979:3;17971:11;;18009:4;18004:3;18000:14;17992:22;;17866:155;;;:::o;18027:108::-;18104:24;18122:5;18104:24;:::i;:::-;18099:3;18092:37;18027:108;;:::o;18141:99::-;18212:21;18227:5;18212:21;:::i;:::-;18207:3;18200:34;18141:99;;:::o;18298:661::-;18431:4;18426:3;18422:14;18518:4;18511:5;18507:16;18501:23;18537:63;18594:4;18589:3;18585:14;18571:12;18537:63;:::i;:::-;18446:164;18690:4;18683:5;18679:16;18673:23;18709:63;18766:4;18761:3;18757:14;18743:12;18709:63;:::i;:::-;18620:162;18866:4;18859:5;18855:16;18849:23;18885:57;18936:4;18931:3;18927:14;18913:12;18885:57;:::i;:::-;18792:160;18400:559;18298:661;;:::o;18965:271::-;19080:10;19101:92;19189:3;19181:6;19101:92;:::i;:::-;19225:4;19220:3;19216:14;19202:28;;18965:271;;;;:::o;19242:136::-;19335:4;19367;19362:3;19358:14;19350:22;;19242:136;;;:::o;19440:916::-;19605:3;19634:77;19705:5;19634:77;:::i;:::-;19727:109;19829:6;19824:3;19727:109;:::i;:::-;19720:116;;19860:79;19933:5;19860:79;:::i;:::-;19962:7;19993:1;19978:353;20003:6;20000:1;19997:13;19978:353;;;20079:6;20073:13;20106:109;20211:3;20196:13;20106:109;:::i;:::-;20099:116;;20238:83;20314:6;20238:83;:::i;:::-;20228:93;;20038:293;20025:1;20022;20018:9;20013:14;;19978:353;;;19982:14;20347:3;20340:10;;19610:746;;;19440:916;;;;:::o;20362:923::-;20671:4;20709:3;20698:9;20694:19;20686:27;;20723:71;20791:1;20780:9;20776:17;20767:6;20723:71;:::i;:::-;20804:80;20880:2;20869:9;20865:18;20856:6;20804:80;:::i;:::-;20931:9;20925:4;20921:20;20916:2;20905:9;20901:18;20894:48;20959:154;21108:4;21099:6;20959:154;:::i;:::-;20951:162;;21123:72;21191:2;21180:9;21176:18;21167:6;21123:72;:::i;:::-;21205:73;21273:3;21262:9;21258:19;21249:6;21205:73;:::i;:::-;20362:923;;;;;;;;:::o;21291:117::-;21400:1;21397;21390:12;21414:102;21455:6;21506:2;21502:7;21497:2;21490:5;21486:14;21482:28;21472:38;;21414:102;;;:::o;21522:281::-;21605:27;21627:4;21605:27;:::i;:::-;21597:6;21593:40;21735:6;21723:10;21720:22;21699:18;21687:10;21684:34;21681:62;21678:88;;;21746:18;;:::i;:::-;21678:88;21786:10;21782:2;21775:22;21565:238;21522:281;;:::o;21809:129::-;21843:6;21870:20;;:::i;:::-;21860:30;;21899:33;21927:4;21919:6;21899:33;:::i;:::-;21809:129;;;:::o;21944:311::-;22021:4;22111:18;22103:6;22100:30;22097:56;;;22133:18;;:::i;:::-;22097:56;22183:4;22175:6;22171:17;22163:25;;22243:4;22237;22233:15;22225:23;;21944:311;;;:::o;22261:117::-;22370:1;22367;22360:12;22401:732;22508:5;22533:81;22549:64;22606:6;22549:64;:::i;:::-;22533:81;:::i;:::-;22524:90;;22634:5;22663:6;22656:5;22649:21;22697:4;22690:5;22686:16;22679:23;;22750:4;22742:6;22738:17;22730:6;22726:30;22779:3;22771:6;22768:15;22765:122;;;22798:79;;:::i;:::-;22765:122;22913:6;22896:231;22930:6;22925:3;22922:15;22896:231;;;23005:3;23034:48;23078:3;23066:10;23034:48;:::i;:::-;23029:3;23022:61;23112:4;23107:3;23103:14;23096:21;;22972:155;22956:4;22951:3;22947:14;22940:21;;22896:231;;;22900:21;22514:619;;22401:732;;;;;:::o;23156:385::-;23238:5;23287:3;23280:4;23272:6;23268:17;23264:27;23254:122;;23295:79;;:::i;:::-;23254:122;23405:6;23399:13;23430:105;23531:3;23523:6;23516:4;23508:6;23504:17;23430:105;:::i;:::-;23421:114;;23244:297;23156:385;;;;:::o;23547:554::-;23642:6;23691:2;23679:9;23670:7;23666:23;23662:32;23659:119;;;23697:79;;:::i;:::-;23659:119;23838:1;23827:9;23823:17;23817:24;23868:18;23860:6;23857:30;23854:117;;;23890:79;;:::i;:::-;23854:117;23995:89;24076:7;24067:6;24056:9;24052:22;23995:89;:::i;:::-;23985:99;;23788:306;23547:554;;;;:::o;24107:239::-;24247:34;24243:1;24235:6;24231:14;24224:58;24316:22;24311:2;24303:6;24299:15;24292:47;24107:239;:::o;24352:366::-;24494:3;24515:67;24579:2;24574:3;24515:67;:::i;:::-;24508:74;;24591:93;24680:3;24591:93;:::i;:::-;24709:2;24704:3;24700:12;24693:19;;24352:366;;;:::o;24724:419::-;24890:4;24928:2;24917:9;24913:18;24905:26;;24977:9;24971:4;24967:20;24963:1;24952:9;24948:17;24941:47;25005:131;25131:4;25005:131;:::i;:::-;24997:139;;24724:419;;;:::o;25149:239::-;25289:34;25285:1;25277:6;25273:14;25266:58;25358:22;25353:2;25345:6;25341:15;25334:47;25149:239;:::o;25394:366::-;25536:3;25557:67;25621:2;25616:3;25557:67;:::i;:::-;25550:74;;25633:93;25722:3;25633:93;:::i;:::-;25751:2;25746:3;25742:12;25735:19;;25394:366;;;:::o;25766:419::-;25932:4;25970:2;25959:9;25955:18;25947:26;;26019:9;26013:4;26009:20;26005:1;25994:9;25990:17;25983:47;26047:131;26173:4;26047:131;:::i;:::-;26039:139;;25766:419;;;:::o;26191:1128::-;26518:4;26556:3;26545:9;26541:19;26533:27;;26570:71;26638:1;26627:9;26623:17;26614:6;26570:71;:::i;:::-;26651:72;26719:2;26708:9;26704:18;26695:6;26651:72;:::i;:::-;26733:66;26795:2;26784:9;26780:18;26771:6;26733:66;:::i;:::-;26809:72;26877:2;26866:9;26862:18;26853:6;26809:72;:::i;:::-;26891:73;26959:3;26948:9;26944:19;26935:6;26891:73;:::i;:::-;26974:81;27050:3;27039:9;27035:19;27026:6;26974:81;:::i;:::-;27065;27141:3;27130:9;27126:19;27117:6;27065:81;:::i;:::-;27156:73;27224:3;27213:9;27209:19;27200:6;27156:73;:::i;:::-;27239;27307:3;27296:9;27292:19;27283:6;27239:73;:::i;:::-;26191:1128;;;;;;;;;;;;:::o;27325:663::-;27413:6;27421;27429;27478:2;27466:9;27457:7;27453:23;27449:32;27446:119;;;27484:79;;:::i;:::-;27446:119;27604:1;27629:64;27685:7;27676:6;27665:9;27661:22;27629:64;:::i;:::-;27619:74;;27575:128;27742:2;27768:64;27824:7;27815:6;27804:9;27800:22;27768:64;:::i;:::-;27758:74;;27713:129;27881:2;27907:64;27963:7;27954:6;27943:9;27939:22;27907:64;:::i;:::-;27897:74;;27852:129;27325:663;;;;;:::o
Swarm Source
ipfs://a4eab4408b85172e53eb32f46cddd8e27cf2d657662fa863914776c68fcc40a4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.