More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 203 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Boosted Buy And ... | 106384287 | 9 days ago | IN | 0 FTM | 0.00105641 | ||||
Boosted Buy And ... | 103152662 | 60 days ago | IN | 0 FTM | 0.00196399 | ||||
Boosted Buy And ... | 100405821 | 93 days ago | IN | 0 FTM | 0.01160329 | ||||
Boosted Buy And ... | 99475617 | 104 days ago | IN | 0 FTM | 0.00428477 | ||||
Boosted Buy And ... | 97357516 | 127 days ago | IN | 0 FTM | 0.00579739 | ||||
Boosted Buy And ... | 97211197 | 129 days ago | IN | 0 FTM | 0.02835943 | ||||
Boosted Buy And ... | 96888605 | 133 days ago | IN | 0 FTM | 0.00687693 | ||||
Boosted Buy And ... | 96782900 | 134 days ago | IN | 0 FTM | 0.00764263 | ||||
Boosted Buy And ... | 95269201 | 151 days ago | IN | 0 FTM | 0.00963269 | ||||
Boosted Buy And ... | 95036334 | 154 days ago | IN | 0 FTM | 0.00645753 | ||||
Boosted Buy And ... | 94327449 | 161 days ago | IN | 0 FTM | 0.11357169 | ||||
Boosted Buy And ... | 94136955 | 163 days ago | IN | 0 FTM | 0.11056957 | ||||
Boosted Buy And ... | 90885964 | 197 days ago | IN | 0 FTM | 0.00452625 | ||||
Boosted Buy And ... | 90769045 | 198 days ago | IN | 0 FTM | 0.00203461 | ||||
Boosted Buy And ... | 90768932 | 198 days ago | IN | 0 FTM | 0.00207276 | ||||
Boosted Buy And ... | 90504465 | 201 days ago | IN | 0 FTM | 0.00704391 | ||||
Boosted Buy And ... | 90385408 | 202 days ago | IN | 0 FTM | 0.01005982 | ||||
Boosted Buy And ... | 90308520 | 203 days ago | IN | 0 FTM | 0.00970278 | ||||
Boosted Buy And ... | 89029934 | 217 days ago | IN | 0 FTM | 0.00910835 | ||||
Boosted Buy And ... | 88899540 | 219 days ago | IN | 0 FTM | 0.00540751 | ||||
Boosted Buy And ... | 88870895 | 219 days ago | IN | 0 FTM | 0.00652043 | ||||
Boosted Buy And ... | 88859005 | 219 days ago | IN | 0 FTM | 0.01009339 | ||||
Boosted Buy And ... | 87956675 | 228 days ago | IN | 0 FTM | 0.01605958 | ||||
Boosted Buy And ... | 87102820 | 235 days ago | IN | 0 FTM | 0.01667943 | ||||
Boosted Buy And ... | 86701268 | 240 days ago | IN | 0 FTM | 0.01173568 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
69269524 | 526 days ago | Contract Creation | 0 FTM |
Loading...
Loading
Contract Name:
veMastaBooster
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2023-10-13 */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function transfer(address recipient, uint amount) external returns (bool); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function balanceOf(address) external view returns (uint); function transferFrom(address sender, address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } interface IVotingEscrow { struct Point { int128 bias; int128 slope; // # -dweight / dt uint256 ts; uint256 blk; // block } function token() external view returns (address); function team() external returns (address); function epoch() external view returns (uint); function point_history(uint loc) external view returns (Point memory); function user_point_history(uint tokenId, uint loc) external view returns (Point memory); function user_point_epoch(uint tokenId) external view returns (uint); function ownerOf(uint) external view returns (address); function isApprovedOrOwner(address, uint) external view returns (bool); function transferFrom(address, address, uint) external; function voting(uint tokenId) external; function abstain(uint tokenId) external; function attach(uint tokenId) external; function detach(uint tokenId) external; function checkpoint() external; function deposit_for(uint tokenId, uint value) external; function create_lock_for(uint, uint, address) external returns (uint); function balanceOfNFT(uint) external view returns (uint); function totalSupply() external view returns (uint); } interface IVoter { function _ve() external view returns (address); function governor() external view returns (address); function emergencyCouncil() external view returns (address); function attachTokenToGauge(uint _tokenId, address account) external; function detachTokenFromGauge(uint _tokenId, address account) external; function emitDeposit(uint _tokenId, address account, uint amount) external; function emitWithdraw(uint _tokenId, address account, uint amount) external; function isWhitelisted(address token) external view returns (bool); function notifyRewardAmount(uint amount) external; function distribute(address _gauge) external; function gauges(address) external view returns (address); function external_bribes(address) external view returns (address); function isAlive(address) external view returns (bool); } interface IRouter { function pairFor(address tokenA, address tokenB, bool stable) external view returns (address pair); function swapExactTokensForTokensSimple(uint amountIn, uint amountOutMin, address tokenFrom, address tokenTo, bool stable, address to, uint deadline) external returns (uint[] memory amounts); function getAmountOut(uint amountIn, address tokenIn, address tokenOut, bool stable) external view returns (uint amount); function getReserves(address tokenA, address tokenB, bool stable) external view returns (uint, uint); function addLiquidity( address tokenA, address tokenB, bool stable, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint, uint, uint); } interface IPair { function metadata() external view returns (uint dec0, uint dec1, uint r0, uint r1, bool st, address t0, address t1); function tokens() external returns (address, address); function token0() external returns (address); function token1() external returns (address); function externalBribe() external returns (address); function transferFrom(address src, address dst, uint amount) external returns (bool); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function burn(address to) external returns (uint amount0, uint amount1); function mint(address to) external returns (uint liquidity); function getReserves() external view returns (uint _reserve0, uint _reserve1, uint _blockTimestampLast); function getAmountOut(uint, address) external view returns (uint); function setHasGauge(bool value) external; function setExternalBribe(address _externalBribe) external; function hasGauge() external view returns (bool); function stable() external view returns (bool); function prices(address tokenIn, uint amountIn, uint points) external view returns (uint[] memory); } interface IOptionToken { function mint(address _to, uint256 _amount) external; function exercise( uint256 _amount, uint256 _maxPaymentAmount, address _recipient ) external returns (uint256); function paymentToken() external returns (address); function underlyingToken() external returns (address); function router() external returns (address); function gauge() external returns (address); function getDiscountedPrice(uint256 _amount) external view returns (uint256); } interface IBribe { function _deposit(uint amount, uint tokenId) external; function _withdraw(uint amount, uint tokenId) external; function getRewardForOwner(uint tokenId, address[] memory tokens) external; function notifyRewardAmount(address token, uint amount) external; function left(address token) external view returns (uint); } interface IGauge { function notifyRewardAmount(address token, uint amount) external; function getReward(address account, address[] memory tokens) external; function left(address token) external view returns (uint); function stake() external view returns (address); } interface IGaugeV2 { function left(address token) external view returns (uint); function notifyRewardAmount(address token, uint amount) external; function depositWithLock( address account, uint256 amount, uint256 _lockDuration ) external; } interface IProxyGaugeNotify { function notifyRewardAmount(uint256 _amount) external; } pragma solidity ^0.8.13; contract veMastaBooster is Ownable,IProxyGaugeNotify { address public paymentToken; address public optionToken; address public router; address public gauge; address public pair; address public flow; address public voting_escrow; address public voter; uint256 public lpMatchRate = 20; // 20% uint256 public veMatchRate = 60; // 60% uint256 public bribeMatchRate = 50; // 50% uint256 public lpLockDuration; uint256 public maxLock; bool public boostLpPaused; bool public boostVePaused; bool public boostBribePaused; event Boosted(uint256 indexed _timestamp, uint256 _totalLocked, address _locker); event RewardsAdded(uint256 indexed _timestamp, uint256 _amount); event MatchRateChanged(uint256 indexed _timestamp, string _type, uint256 _newRate); event Pausings(uint256 indexed _timestamp, string _type, bool _paused); // need minter role for the oToken // need approval to deposit for lock to the maxing gauge constructor(address _team, uint256 _maxLock, address _optionToken,address _voter,uint256 _lpLockDuration) { _transferOwnership(_team); voter = _voter; voting_escrow = IVoter(voter)._ve(); flow = IVotingEscrow(voting_escrow).token(); optionToken = _optionToken; paymentToken = IOptionToken(_optionToken).paymentToken(); router = IOptionToken(_optionToken).router(); gauge = IOptionToken(_optionToken).gauge(); pair = IGauge(gauge).stake(); maxLock = _maxLock; lpLockDuration = _lpLockDuration; giveAllowances(); } //VIEW FUNCTIONS function balanceOfFlow() public view returns (uint){ return IERC20(flow).balanceOf(address(this)); } function balanceOfOToken() public view returns (uint){ return IERC20(optionToken).balanceOf(address(this)); } function maxLpLockableAmount() public view returns (uint){ uint256 flowBal = balanceOfFlow(); uint256 amnt = flowBal * 100 / lpMatchRate; return amnt; } function maxVeLockableAmount() public view returns (uint){ uint256 flowBal = balanceOfFlow(); uint256 amnt = flowBal * 100 / veMatchRate; return amnt; } function maxBribeAmount() public view returns (uint){ uint256 flowBal = balanceOfFlow(); uint256 amnt = flowBal * 100 / bribeMatchRate; return amnt; } function checkFlowBalanceEnoughForLP(uint256 _paymentAmount) public view returns (bool) { (uint256 toSpend,uint256 toLP,uint amountToLock) = getAmountsForLPLock(_paymentAmount); uint256 amount = IRouter(router).getAmountOut(toSpend, paymentToken, flow, false); return balanceOfFlow() >= amountToLock - amount; } function checkFlowBalanceEnoughForVE(uint256 _paymentAmount) public view returns (bool) { uint256 amount = IRouter(router).getAmountOut(_paymentAmount, paymentToken, flow, false); return balanceOfFlow() >= amount * veMatchRate / 100; } function checkFlowBalanceEnoughForBribe(uint256 _paymentAmount) public view returns (bool) { uint256 amount = IRouter(router).getAmountOut(_paymentAmount, paymentToken, flow, false); return balanceOfFlow() >= amount * bribeMatchRate / 100; } function getExpectedAmountForLP(uint256 _paymentAmount) external view returns (uint256,uint256) { uint256 amount = IRouter(router).getAmountOut(_paymentAmount, paymentToken, flow, false); (uint256 toSpend,uint256 toLP,uint amountToLock) = getAmountsForLPLock(_paymentAmount); return (amountToLock,toLP); } function getExpectedAmountForVE(uint256 _paymentAmount) external view returns (uint256) { uint256 amount = IRouter(router).getAmountOut(_paymentAmount, paymentToken, flow, false); return amount * veMatchRate / 100; } function getExpectedAmountForBribe(uint256 _paymentAmount) external view returns (uint256) { uint256 amount = IRouter(router).getAmountOut(_paymentAmount, paymentToken, flow, false); return amount * bribeMatchRate / 100; } function getAmountsForLPLock(uint256 _amount) public view returns (uint256,uint256,uint256) { uint256 toSpend = _amount / 2 -(_amount / 2 * lpMatchRate / 100); uint256 toLP = _amount - toSpend; (uint256 flowReserve, uint256 paymentReserve) = IRouter(router).getReserves(flow, paymentToken, false); uint256 amountToLock = (toLP * flowReserve) / paymentReserve; return (toSpend,toLP,amountToLock); } //PUBLIC FUNCTIONS function notifyRewardAmount(uint256 _amount) external { require(_amount > 0, 'need to add at least 1 FLOW'); IERC20(flow).transferFrom(msg.sender, address(this), _amount); emit RewardsAdded(block.timestamp, _amount); } // USER FUNCTIONS function boostedBuyAndVeLock(uint256 _amount, uint _minOut) public { require(!boostVePaused, 'this is paused'); require(_amount > 0, 'need to lock at least 1 paymentToken'); require(balanceOfFlow() > 0, 'no extra FLOW for boosting'); IERC20(paymentToken).transferFrom(msg.sender, address(this), _amount); if (_minOut == 0) { _minOut = 1; } uint256 flowBefore = balanceOfFlow(); IRouter(router).swapExactTokensForTokensSimple(_amount, _minOut, paymentToken, flow, false, address(this), block.timestamp); uint256 flowAfter = balanceOfFlow(); uint256 flowResult = flowAfter - flowBefore; uint256 amountToLock = flowResult * veMatchRate / 100 + flowResult; IVotingEscrow(voting_escrow).create_lock_for(amountToLock, maxLock, msg.sender); emit Boosted(block.timestamp, amountToLock, msg.sender); } function boostedBuyAndLPLock(uint256 _amount, uint _minOut) public { require(!boostLpPaused, 'this is paused'); require(_amount > 0, 'need to lock at least 1 paymentToken'); require(balanceOfFlow() > 0, 'no extra FLOW for boosting'); uint256 paymentBalBefore = IERC20(paymentToken).balanceOf(address(this)); IERC20(paymentToken).transferFrom(msg.sender, address(this), _amount); if (_minOut == 0) { _minOut = 1; } (uint256 toSpend,uint256 toLP,uint amountToLock) = getAmountsForLPLock(_amount); uint256 flowBefore = balanceOfFlow(); IRouter(router).swapExactTokensForTokensSimple(toSpend, _minOut, paymentToken, flow, false, address(this), block.timestamp); uint256 flowAfter = balanceOfFlow(); uint256 flowResult = flowAfter - flowBefore; IRouter(router).addLiquidity(flow, paymentToken, false, amountToLock, toLP, 1, 1, address(this), block.timestamp); uint256 lpBal = IERC20(pair).balanceOf(address(this)); IGaugeV2(gauge).depositWithLock(msg.sender,lpBal,lpLockDuration); uint256 paymentBalAfter = IERC20(paymentToken).balanceOf(address(this)); uint paymentLeftover = paymentBalAfter - paymentBalBefore; if(paymentLeftover > 0) { IERC20(paymentToken).transfer(msg.sender, paymentLeftover); } emit Boosted(block.timestamp, lpBal, msg.sender); } function boostedBuyAndBribe(uint256 _amount, uint _minOut,address _pool) public { require(!boostBribePaused, 'this is paused'); require(_amount > 0, 'need to lock at least 1 paymentToken'); require(balanceOfFlow() > 0, 'no extra FLOW for boosting'); IERC20(paymentToken).transferFrom(msg.sender, address(this), _amount); if (_minOut == 0) { _minOut = 1; } uint256 flowBefore = balanceOfFlow(); IRouter(router).swapExactTokensForTokensSimple(_amount, _minOut, paymentToken, flow, false, address(this), block.timestamp); uint256 flowAfter = balanceOfFlow(); uint256 flowResult = flowAfter - flowBefore; uint256 oTokenBefore = balanceOfOToken(); IOptionToken(optionToken).mint(address(this), flowResult); uint256 oTokenAfter = balanceOfOToken(); uint256 oTokenResult = oTokenAfter - oTokenBefore; address poolGauge = IVoter(voter).gauges(_pool); require(IVoter(voter).isAlive(poolGauge), 'gauge not alive'); address bribeGauge = IVoter(voter).external_bribes(poolGauge); IERC20(optionToken).approve(bribeGauge, oTokenResult); IBribe(bribeGauge).notifyRewardAmount( optionToken, oTokenResult ); uint256 amountToLock = flowResult * bribeMatchRate / 100; IVotingEscrow(voting_escrow).create_lock_for(amountToLock, maxLock, msg.sender); emit Boosted(block.timestamp, amountToLock, msg.sender); } //OWNER FUNCTIONS function setLpMatchRate(uint256 _rate) external onlyOwner { require(_rate <= 100, 'cant give more than 1-1'); lpMatchRate = _rate; emit MatchRateChanged(block.timestamp, "LPBoost", _rate); } function setVeMatchRate(uint256 _rate) external onlyOwner { require(_rate <= 100, 'cant give more than 1-1'); veMatchRate = _rate; emit MatchRateChanged(block.timestamp, "veBoost", _rate); } function setBribeMatchRate(uint256 _rate) external onlyOwner { require(_rate <= 100, 'cant give more than 1-1'); bribeMatchRate = _rate; emit MatchRateChanged(block.timestamp, "BribeBoost", _rate); } function setPaymentToken(address _paymentToken) external onlyOwner { require(_paymentToken != address(0)); paymentToken = _paymentToken; } function setRouter(address _router) external onlyOwner { require(_router != address(0)); router = _router; } function setPair(address _pair) external onlyOwner { require(_pair != address(0)); pair = _pair; } function setGauge(address _gauge) external onlyOwner { require(_gauge != address(0)); gauge = _gauge; } function setOptionToken(address _optionToken) external onlyOwner { require(_optionToken != address(0)); optionToken = _optionToken; } function setLPLockDuration(uint256 _lpLockDuration) external onlyOwner { lpLockDuration = _lpLockDuration; } function pauseLPBoost(bool _tf) external onlyOwner { boostLpPaused = _tf; emit Pausings(block.timestamp, "LPBoost", _tf); } function pauseVeBoost(bool _tf) external onlyOwner { boostVePaused = _tf; emit Pausings(block.timestamp, "VeBoost", _tf); } function pauseBribeBoost(bool _tf) external onlyOwner { boostBribePaused = _tf; emit Pausings(block.timestamp, "BribeBoost", _tf); } function inCaseTokensGetStuck(address _token, address _to) external onlyOwner { uint256 amount = IERC20(_token).balanceOf(address(this)); IERC20(_token).transfer(_to, amount); } function giveAllowances() public onlyOwner { IERC20(flow).approve(voting_escrow, type(uint256).max); IERC20(flow).approve(router, type(uint256).max); IERC20(paymentToken).approve(router, type(uint256).max); IERC20(flow).approve(optionToken, type(uint256).max); IERC20(pair).approve(gauge, type(uint256).max); } function removeAllowances() public onlyOwner { IERC20(flow).approve(voting_escrow, 0); IERC20(flow).approve(router, 0); IERC20(paymentToken).approve(router, 0); IERC20(flow).approve(optionToken, 0); IERC20(pair).approve(gauge, type(uint256).max); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"uint256","name":"_maxLock","type":"uint256"},{"internalType":"address","name":"_optionToken","type":"address"},{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_lpLockDuration","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalLocked","type":"uint256"},{"indexed":false,"internalType":"address","name":"_locker","type":"address"}],"name":"Boosted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_timestamp","type":"uint256"},{"indexed":false,"internalType":"string","name":"_type","type":"string"},{"indexed":false,"internalType":"uint256","name":"_newRate","type":"uint256"}],"name":"MatchRateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_timestamp","type":"uint256"},{"indexed":false,"internalType":"string","name":"_type","type":"string"},{"indexed":false,"internalType":"bool","name":"_paused","type":"bool"}],"name":"Pausings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RewardsAdded","type":"event"},{"inputs":[],"name":"balanceOfFlow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceOfOToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boostBribePaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boostLpPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boostVePaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minOut","type":"uint256"},{"internalType":"address","name":"_pool","type":"address"}],"name":"boostedBuyAndBribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minOut","type":"uint256"}],"name":"boostedBuyAndLPLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minOut","type":"uint256"}],"name":"boostedBuyAndVeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bribeMatchRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"checkFlowBalanceEnoughForBribe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"checkFlowBalanceEnoughForLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"checkFlowBalanceEnoughForVE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountsForLPLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"getExpectedAmountForBribe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"getExpectedAmountForLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_paymentAmount","type":"uint256"}],"name":"getExpectedAmountForVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveAllowances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"inCaseTokensGetStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpMatchRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBribeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLpLockableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxVeLockableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"optionToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_tf","type":"bool"}],"name":"pauseBribeBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tf","type":"bool"}],"name":"pauseLPBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tf","type":"bool"}],"name":"pauseVeBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paymentToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllowances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setBribeMatchRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"setGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpLockDuration","type":"uint256"}],"name":"setLPLockDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setLpMatchRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_optionToken","type":"address"}],"name":"setOptionToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_paymentToken","type":"address"}],"name":"setPaymentToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setVeMatchRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"veMatchRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voting_escrow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526014600955603c600a556032600b553480156200002057600080fd5b506040516200317838038062003178833981016040819052620000439162000717565b6200004e33620003c3565b6200005985620003c3565b600880546001600160a01b0319166001600160a01b03841690811790915560408051638dd598fb60e01b81529051638dd598fb916004808201926020929091908290030181865afa158015620000b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d9919062000775565b600780546001600160a01b0319166001600160a01b0392909216918217905560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a919062000775565b600680546001600160a01b039283166001600160a01b03199182161790915560028054928616929091168217905560408051633013ce2960e01b81529051633013ce299160048181019260209290919082900301816000875af1158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000775565b600160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826001600160a01b031663f887ea406040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000279919062000775565b600360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550826001600160a01b031663a6f19c846040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000306919062000775565b600480546001600160a01b0319166001600160a01b0392909216918217815560408051633a4b66f160e01b81529051633a4b66f1928281019260209291908290030181865afa1580156200035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000384919062000775565b600580546001600160a01b0319166001600160a01b0392909216919091179055600d849055600c819055620003b862000413565b5050505050620007be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200041d62000699565b60065460075460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801562000474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049a91906200079a565b5060065460035460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015620004f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051891906200079a565b5060015460035460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801562000570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200059691906200079a565b5060065460025460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015620005ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061491906200079a565b506005546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af115801562000670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069691906200079a565b50565b6000546001600160a01b03163314620006f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b80516001600160a01b03811681146200071257600080fd5b919050565b600080600080600060a086880312156200073057600080fd5b6200073b86620006fa565b9450602086015193506200075260408701620006fa565b92506200076260608701620006fa565b9150608086015190509295509295909350565b6000602082840312156200078857600080fd5b6200079382620006fa565b9392505050565b600060208284031215620007ad57600080fd5b815180151581146200079357600080fd5b6129aa80620007ce6000396000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80636c0b3e4611610182578063a6f19c84116100e9578063da733f0d116100a2578063e5449cca1161007c578063e5449cca14610620578063f2b297cd14610632578063f2fde38b14610645578063f887ea401461065857600080fd5b8063da733f0d146105fb578063de35eb2414610604578063dfe050311461060d57600080fd5b8063a6f19c8414610594578063a8aa1b31146105a7578063a8c82ad1146105ba578063c08028c9146105c2578063c0d78655146105d5578063d5de2475146105e857600080fd5b80638b31e7231161013b5780638b31e7231461052e5780638da5cb5b146105415780638e0fe4111461055257806396dd509c146105655780639a9fcb09146105785780639c6dfd9b1461058157600080fd5b80636c0b3e46146104c75780636f7ebb75146104d0578063715018a6146104e35780637b2c1840146104eb5780637ba4dd4c146105135780638187f5161461051b57600080fd5b80633c6b16ab1161024157806349fa3b80116101fa5780635b120759116101d45780635b12075914610486578063629532c3146104995780636a326ab1146104a15780636bad49fe146104b457600080fd5b806349fa3b80146104585780634f06e0f71461046057806355a68ed31461047357600080fd5b80633c6b16ab146104015780634048cd781461041457806343e442c6146104275780634553a8241461043057806346a935c91461043d57806346c96aac1461044557600080fd5b8063227438d911610293578063227438d9146103675780632906eda21461036f5780632bab754b1461039d5780633013ce29146103c8578063343aad82146103db578063392090b8146103ee57600080fd5b8063156e34b0146102db578063180cfa1d146103035780631939bbc114610316578063216d1c581461032b57806321a10f92146103415780632269c5f214610354575b600080fd5b600e546102ee9062010000900460ff1681565b60405190151581526020015b60405180910390f35b6102ee610311366004612432565b61066b565b610329610324366004612460565b610725565b005b610333610812565b6040519081526020016102fa565b6102ee61034f366004612432565b610885565b610329610362366004612499565b610935565b610333610ec3565b61038261037d366004612432565b610ef3565b604080519384526020840192909252908201526060016102fa565b6002546103b0906001600160a01b031681565b6040516001600160a01b0390911681526020016102fa565b6001546103b0906001600160a01b031681565b6006546103b0906001600160a01b031681565b6103336103fc366004612432565b610ff9565b61032961040f366004612432565b61108e565b6103296104223660046124d2565b611193565b61033360095481565b600e546102ee9060ff1681565b61032961167f565b6008546103b0906001600160a01b031681565b6103296118f5565b61032961046e3660046124f4565b611aa5565b6103296104813660046124f4565b611ae2565b6102ee610494366004612432565b611b1f565b610333611bb4565b6103296104af3660046124f4565b611be5565b6103296104c236600461251f565b611c22565b610333600d5481565b6103336104de366004612432565b611c71565b610329611d06565b6104fe6104f9366004612432565b611d1a565b604080519283526020830191909152016102fa565b610333611dbf565b6103296105293660046124f4565b611dde565b61032961053c366004612432565b611e1b565b6000546001600160a01b03166103b0565b610329610560366004612432565b611e28565b610329610573366004612432565b611e88565b610333600b5481565b61032961058f36600461251f565b611f09565b6004546103b0906001600160a01b031681565b6005546103b0906001600160a01b031681565b610333611f7c565b6103296105d0366004612432565b611f9b565b6103296105e33660046124f4565b611ffb565b6103296105f636600461251f565b612038565b610333600a5481565b610333600c5481565b6007546103b0906001600160a01b031681565b600e546102ee90610100900460ff1681565b6103296106403660046124d2565b612080565b6103296106533660046124f4565b612312565b6003546103b0906001600160a01b031681565b60008060008061067a85610ef3565b60035460015460065460405163da21423160e01b81529598509396509194506000936001600160a01b039182169363da214231936106c4938a93918116921690879060040161253c565b602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107059190612563565b90506107118183612592565b610719610812565b10159695505050505050565b61072d612388565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107989190612563565b60405163a9059cbb60e01b81529091506001600160a01b0384169063a9059cbb906107c990859085906004016125a9565b6020604051808303816000875af11580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c91906125c2565b50505050565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190612563565b905090565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da214231936108c79389938116921690879060040161253c565b602060405180830381865afa1580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109089190612563565b90506064600a548261091a91906125df565b61092491906125fe565b61092c610812565b10159392505050565b600e5462010000900460ff16156109675760405162461bcd60e51b815260040161095e90612620565b60405180910390fd5b600083116109875760405162461bcd60e51b815260040161095e90612648565b6000610991610812565b116109ae5760405162461bcd60e51b815260040161095e9061268c565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906109e2903390309088906004016126c3565b6020604051808303816000875af1158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2591906125c2565b5081600003610a3357600191505b6000610a3d610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc5993610a85938a938a93918316921690600090309042906004016126e7565b6000604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610acc9190810190612738565b506000610ad7610812565b90506000610ae58383612592565b90506000610af1611bb4565b6002546040516340c10f1960e01b81529192506001600160a01b0316906340c10f1990610b2490309086906004016125a9565b600060405180830381600087803b158015610b3e57600080fd5b505af1158015610b52573d6000803e3d6000fd5b505050506000610b60611bb4565b90506000610b6e8383612592565b60085460405163b9a09fd560e01b81526001600160a01b038a811660048301529293506000929091169063b9a09fd590602401602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be291906127f6565b600854604051631703e5f960e01b81526001600160a01b038084166004830152929350911690631703e5f990602401602060405180830381865afa158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5291906125c2565b610c905760405162461bcd60e51b815260206004820152600f60248201526e6761756765206e6f7420616c69766560881b604482015260640161095e565b60085460405163ae21c4cb60e01b81526001600160a01b038381166004830152600092169063ae21c4cb90602401602060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff91906127f6565b60025460405163095ea7b360e01b81529192506001600160a01b03169063095ea7b390610d3290849087906004016125a9565b6020604051808303816000875af1158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7591906125c2565b5060025460405163b66503cf60e01b81526001600160a01b038381169263b66503cf92610daa929091169087906004016125a9565b600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b5050505060006064600b5488610dee91906125df565b610df891906125fe565b600754600d5460405163d4e54c3b60e01b81526004810184905260248101919091523360448201529192506001600160a01b03169063d4e54c3b906064016020604051808303816000875af1158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190612563565b506040805182815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf17253591015b60405180910390a2505050505050505050505050565b600080610ece610812565b90506000600b54826064610ee291906125df565b610eec91906125fe565b9392505050565b6000806000806064600954600287610f0b91906125fe565b610f1591906125df565b610f1f91906125fe565b610f2a6002876125fe565b610f349190612592565b90506000610f428287612592565b600354600654600154604051635e60dab560e01b81526001600160a01b039283166004820152908216602482015260006044820181905293945083929190911690635e60dab5906064016040805180830381865afa158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc9190612813565b9092509050600081610fde84866125df565b610fe891906125fe565b949993985093965091945050505050565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da2142319361103b9389938116921690879060040161253c565b602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190612563565b90506064600b5482610ee291906125df565b600081116110de5760405162461bcd60e51b815260206004820152601b60248201527f6e65656420746f20616464206174206c65617374203120464c4f570000000000604482015260640161095e565b6006546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90611112903390309086906004016126c3565b6020604051808303816000875af1158015611131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115591906125c2565b50427f40df43107e8b4d467127964bd3c966687c0a6a39aaede970755397fd09535e988260405161118891815260200190565b60405180910390a250565b600e5460ff16156111b65760405162461bcd60e51b815260040161095e90612620565b600082116111d65760405162461bcd60e51b815260040161095e90612648565b60006111e0610812565b116111fd5760405162461bcd60e51b815260040161095e9061268c565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126a9190612563565b6001546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061129f903390309088906004016126c3565b6020604051808303816000875af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e291906125c2565b50816000036112f057600191505b60008060006112fe86610ef3565b925092509250600061130e610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc5993611356938a938d93918316921690600090309042906004016126e7565b6000604051808303816000875af1158015611375573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139d9190810190612738565b5060006113a8610812565b905060006113b68383612592565b60035460065460018054604051635a47ddc360e01b81526001600160a01b03938416600482015290831660248201526000604482015260648101899052608481018a905260a4810182905260c48101919091523060e4820152426101048201529293501690635a47ddc390610124016060604051808303816000875af1158015611444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114689190612837565b50506005546040516370a0823160e01b8152306004820152600092506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612563565b60048054600c54604051631f933c2d60e01b815233938101939093526024830184905260448301529192506001600160a01b0390911690631f933c2d90606401600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015611597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bb9190612563565b905060006115c98a83612592565b905080156116485760015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061160390339085906004016125a9565b6020604051808303816000875af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164691906125c2565b505b6040805184815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf1725359101610ead565b611687612388565b60065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926116bf92911690600019906004016125a9565b6020604051808303816000875af11580156116de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170291906125c2565b5060065460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261173b92911690600019906004016125a9565b6020604051808303816000875af115801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e91906125c2565b5060015460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926117b792911690600019906004016125a9565b6020604051808303816000875af11580156117d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fa91906125c2565b5060065460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261183392911690600019906004016125a9565b6020604051808303816000875af1158015611852573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187691906125c2565b506005546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b3936118af939091169160001991016125a9565b6020604051808303816000875af11580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f291906125c2565b50565b6118fd612388565b60065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611934929116906000906004016125a9565b6020604051808303816000875af1158015611953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197791906125c2565b5060065460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926119af929116906000906004016125a9565b6020604051808303816000875af11580156119ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f291906125c2565b5060015460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611a2a929116906000906004016125a9565b6020604051808303816000875af1158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d91906125c2565b5060065460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611833929116906000906004016125a9565b611aad612388565b6001600160a01b038116611ac057600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b611aea612388565b6001600160a01b038116611afd57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da21423193611b619389938116921690879060040161253c565b602060405180830381865afa158015611b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba29190612563565b90506064600b548261091a91906125df565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240161083f565b611bed612388565b6001600160a01b038116611c0057600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b611c2a612388565b600e805462ff00001916620100008315150217905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f90611188908490612865565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da21423193611cb39389938116921690879060040161253c565b602060405180830381865afa158015611cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf49190612563565b90506064600a5482610ee291906125df565b611d0e612388565b611d1860006123e2565b565b60035460015460065460405163da21423160e01b8152600093849384936001600160a01b039283169363da21423193611d60938a9390821692911690879060040161253c565b602060405180830381865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612563565b90506000806000611db187610ef3565b999098509650505050505050565b600080611dca610812565b90506000600954826064610ee291906125df565b611de6612388565b6001600160a01b038116611df957600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611e23612388565b600c55565b611e30612388565b6064811115611e515760405162461bcd60e51b815260040161095e9061289f565b80600b81905550427fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c8260405161118891906128d6565b611e90612388565b6064811115611eb15760405162461bcd60e51b815260040161095e9061289f565b600a81905560408051818152600791810191909152661d99509bdbdcdd60ca1b60608201526020810182905242907fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c90608001611188565b611f11612388565b600e80548215156101000261ff001990911617905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f906111889084906040808252600790820152661599509bdbdcdd60ca1b6060820152901515602082015260800190565b600080611f87610812565b90506000600a54826064610ee291906125df565b611fa3612388565b6064811115611fc45760405162461bcd60e51b815260040161095e9061289f565b80600981905550427fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c82604051611188919061290e565b612003612388565b6001600160a01b03811661201657600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612040612388565b600e805460ff191682151517905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f90611188908490612935565b600e54610100900460ff16156120a85760405162461bcd60e51b815260040161095e90612620565b600082116120c85760405162461bcd60e51b815260040161095e90612648565b60006120d2610812565b116120ef5760405162461bcd60e51b815260040161095e9061268c565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90612123903390309087906004016126c3565b6020604051808303816000875af1158015612142573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216691906125c2565b5080600003612173575060015b600061217d610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc59936121c59389938993918316921690600090309042906004016126e7565b6000604051808303816000875af11580156121e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261220c9190810190612738565b506000612217610812565b905060006122258383612592565b90506000816064600a548461223a91906125df565b61224491906125fe565b61224e919061295c565b600754600d5460405163d4e54c3b60e01b81526004810184905260248101919091523360448201529192506001600160a01b03169063d4e54c3b906064016020604051808303816000875af11580156122ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cf9190612563565b506040805182815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf172535910160405180910390a2505050505050565b61231a612388565b6001600160a01b03811661237f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095e565b6118f2816123e2565b6000546001600160a01b03163314611d185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561244457600080fd5b5035919050565b6001600160a01b03811681146118f257600080fd5b6000806040838503121561247357600080fd5b823561247e8161244b565b9150602083013561248e8161244b565b809150509250929050565b6000806000606084860312156124ae57600080fd5b833592506020840135915060408401356124c78161244b565b809150509250925092565b600080604083850312156124e557600080fd5b50508035926020909101359150565b60006020828403121561250657600080fd5b8135610eec8161244b565b80151581146118f257600080fd5b60006020828403121561253157600080fd5b8135610eec81612511565b9384526001600160a01b039283166020850152911660408301521515606082015260800190565b60006020828403121561257557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156125a4576125a461257c565b500390565b6001600160a01b03929092168252602082015260400190565b6000602082840312156125d457600080fd5b8151610eec81612511565b60008160001904831182151516156125f9576125f961257c565b500290565b60008261261b57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600e908201526d1d1a1a5cc81a5cc81c185d5cd95960921b604082015260600190565b60208082526024908201527f6e65656420746f206c6f636b206174206c656173742031207061796d656e745460408201526337b5b2b760e11b606082015260800190565b6020808252601a908201527f6e6f20657874726120464c4f5720666f7220626f6f7374696e67000000000000604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b96875260208701959095526001600160a01b0393841660408701529183166060860152151560808501521660a083015260c082015260e00190565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561274b57600080fd5b825167ffffffffffffffff8082111561276357600080fd5b818501915085601f83011261277757600080fd5b81518181111561278957612789612722565b8060051b604051601f19603f830116810181811085821117156127ae576127ae612722565b6040529182528482019250838101850191888311156127cc57600080fd5b938501935b828510156127ea578451845293850193928501926127d1565b98975050505050505050565b60006020828403121561280857600080fd5b8151610eec8161244b565b6000806040838503121561282657600080fd5b505080516020909101519092909150565b60008060006060848603121561284c57600080fd5b8351925060208401519150604084015190509250925092565b60408152600061288f60408301600a815269109c9a5899509bdbdcdd60b21b602082015260400190565b9050821515602083015292915050565b60208082526017908201527f63616e742067697665206d6f7265207468616e20312d31000000000000000000604082015260600190565b60408152600061290060408301600a815269109c9a5899509bdbdcdd60b21b602082015260400190565b905082602083015292915050565b6040815260006129006040830160078152661314109bdbdcdd60ca1b602082015260400190565b60408152600061288f6040830160078152661314109bdbdcdd60ca1b602082015260400190565b6000821982111561296f5761296f61257c565b50019056fea2646970667358221220bf22dba76cc572db72ed1bb8326d553d19095e620a94e31d46bab3d980adf8cf64736f6c634300080d00330000000000000000000000003b91ca4d89b5156d456cbd0d6305f7f36b1517a40000000000000000000000000000000000000000000000000000000001dfe200000000000000000000000000f9eddca6b1e548b0ec8cddec131464f462b8310d000000000000000000000000c9ea7a2337f27935cd3ccfb2f725b0428e731fbf00000000000000000000000000000000000000000000000000000000005042e0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102d65760003560e01c80636c0b3e4611610182578063a6f19c84116100e9578063da733f0d116100a2578063e5449cca1161007c578063e5449cca14610620578063f2b297cd14610632578063f2fde38b14610645578063f887ea401461065857600080fd5b8063da733f0d146105fb578063de35eb2414610604578063dfe050311461060d57600080fd5b8063a6f19c8414610594578063a8aa1b31146105a7578063a8c82ad1146105ba578063c08028c9146105c2578063c0d78655146105d5578063d5de2475146105e857600080fd5b80638b31e7231161013b5780638b31e7231461052e5780638da5cb5b146105415780638e0fe4111461055257806396dd509c146105655780639a9fcb09146105785780639c6dfd9b1461058157600080fd5b80636c0b3e46146104c75780636f7ebb75146104d0578063715018a6146104e35780637b2c1840146104eb5780637ba4dd4c146105135780638187f5161461051b57600080fd5b80633c6b16ab1161024157806349fa3b80116101fa5780635b120759116101d45780635b12075914610486578063629532c3146104995780636a326ab1146104a15780636bad49fe146104b457600080fd5b806349fa3b80146104585780634f06e0f71461046057806355a68ed31461047357600080fd5b80633c6b16ab146104015780634048cd781461041457806343e442c6146104275780634553a8241461043057806346a935c91461043d57806346c96aac1461044557600080fd5b8063227438d911610293578063227438d9146103675780632906eda21461036f5780632bab754b1461039d5780633013ce29146103c8578063343aad82146103db578063392090b8146103ee57600080fd5b8063156e34b0146102db578063180cfa1d146103035780631939bbc114610316578063216d1c581461032b57806321a10f92146103415780632269c5f214610354575b600080fd5b600e546102ee9062010000900460ff1681565b60405190151581526020015b60405180910390f35b6102ee610311366004612432565b61066b565b610329610324366004612460565b610725565b005b610333610812565b6040519081526020016102fa565b6102ee61034f366004612432565b610885565b610329610362366004612499565b610935565b610333610ec3565b61038261037d366004612432565b610ef3565b604080519384526020840192909252908201526060016102fa565b6002546103b0906001600160a01b031681565b6040516001600160a01b0390911681526020016102fa565b6001546103b0906001600160a01b031681565b6006546103b0906001600160a01b031681565b6103336103fc366004612432565b610ff9565b61032961040f366004612432565b61108e565b6103296104223660046124d2565b611193565b61033360095481565b600e546102ee9060ff1681565b61032961167f565b6008546103b0906001600160a01b031681565b6103296118f5565b61032961046e3660046124f4565b611aa5565b6103296104813660046124f4565b611ae2565b6102ee610494366004612432565b611b1f565b610333611bb4565b6103296104af3660046124f4565b611be5565b6103296104c236600461251f565b611c22565b610333600d5481565b6103336104de366004612432565b611c71565b610329611d06565b6104fe6104f9366004612432565b611d1a565b604080519283526020830191909152016102fa565b610333611dbf565b6103296105293660046124f4565b611dde565b61032961053c366004612432565b611e1b565b6000546001600160a01b03166103b0565b610329610560366004612432565b611e28565b610329610573366004612432565b611e88565b610333600b5481565b61032961058f36600461251f565b611f09565b6004546103b0906001600160a01b031681565b6005546103b0906001600160a01b031681565b610333611f7c565b6103296105d0366004612432565b611f9b565b6103296105e33660046124f4565b611ffb565b6103296105f636600461251f565b612038565b610333600a5481565b610333600c5481565b6007546103b0906001600160a01b031681565b600e546102ee90610100900460ff1681565b6103296106403660046124d2565b612080565b6103296106533660046124f4565b612312565b6003546103b0906001600160a01b031681565b60008060008061067a85610ef3565b60035460015460065460405163da21423160e01b81529598509396509194506000936001600160a01b039182169363da214231936106c4938a93918116921690879060040161253c565b602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107059190612563565b90506107118183612592565b610719610812565b10159695505050505050565b61072d612388565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107989190612563565b60405163a9059cbb60e01b81529091506001600160a01b0384169063a9059cbb906107c990859085906004016125a9565b6020604051808303816000875af11580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c91906125c2565b50505050565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190612563565b905090565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da214231936108c79389938116921690879060040161253c565b602060405180830381865afa1580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109089190612563565b90506064600a548261091a91906125df565b61092491906125fe565b61092c610812565b10159392505050565b600e5462010000900460ff16156109675760405162461bcd60e51b815260040161095e90612620565b60405180910390fd5b600083116109875760405162461bcd60e51b815260040161095e90612648565b6000610991610812565b116109ae5760405162461bcd60e51b815260040161095e9061268c565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906109e2903390309088906004016126c3565b6020604051808303816000875af1158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2591906125c2565b5081600003610a3357600191505b6000610a3d610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc5993610a85938a938a93918316921690600090309042906004016126e7565b6000604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610acc9190810190612738565b506000610ad7610812565b90506000610ae58383612592565b90506000610af1611bb4565b6002546040516340c10f1960e01b81529192506001600160a01b0316906340c10f1990610b2490309086906004016125a9565b600060405180830381600087803b158015610b3e57600080fd5b505af1158015610b52573d6000803e3d6000fd5b505050506000610b60611bb4565b90506000610b6e8383612592565b60085460405163b9a09fd560e01b81526001600160a01b038a811660048301529293506000929091169063b9a09fd590602401602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be291906127f6565b600854604051631703e5f960e01b81526001600160a01b038084166004830152929350911690631703e5f990602401602060405180830381865afa158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5291906125c2565b610c905760405162461bcd60e51b815260206004820152600f60248201526e6761756765206e6f7420616c69766560881b604482015260640161095e565b60085460405163ae21c4cb60e01b81526001600160a01b038381166004830152600092169063ae21c4cb90602401602060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff91906127f6565b60025460405163095ea7b360e01b81529192506001600160a01b03169063095ea7b390610d3290849087906004016125a9565b6020604051808303816000875af1158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7591906125c2565b5060025460405163b66503cf60e01b81526001600160a01b038381169263b66503cf92610daa929091169087906004016125a9565b600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b5050505060006064600b5488610dee91906125df565b610df891906125fe565b600754600d5460405163d4e54c3b60e01b81526004810184905260248101919091523360448201529192506001600160a01b03169063d4e54c3b906064016020604051808303816000875af1158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190612563565b506040805182815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf17253591015b60405180910390a2505050505050505050505050565b600080610ece610812565b90506000600b54826064610ee291906125df565b610eec91906125fe565b9392505050565b6000806000806064600954600287610f0b91906125fe565b610f1591906125df565b610f1f91906125fe565b610f2a6002876125fe565b610f349190612592565b90506000610f428287612592565b600354600654600154604051635e60dab560e01b81526001600160a01b039283166004820152908216602482015260006044820181905293945083929190911690635e60dab5906064016040805180830381865afa158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc9190612813565b9092509050600081610fde84866125df565b610fe891906125fe565b949993985093965091945050505050565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da2142319361103b9389938116921690879060040161253c565b602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190612563565b90506064600b5482610ee291906125df565b600081116110de5760405162461bcd60e51b815260206004820152601b60248201527f6e65656420746f20616464206174206c65617374203120464c4f570000000000604482015260640161095e565b6006546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90611112903390309086906004016126c3565b6020604051808303816000875af1158015611131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115591906125c2565b50427f40df43107e8b4d467127964bd3c966687c0a6a39aaede970755397fd09535e988260405161118891815260200190565b60405180910390a250565b600e5460ff16156111b65760405162461bcd60e51b815260040161095e90612620565b600082116111d65760405162461bcd60e51b815260040161095e90612648565b60006111e0610812565b116111fd5760405162461bcd60e51b815260040161095e9061268c565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126a9190612563565b6001546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061129f903390309088906004016126c3565b6020604051808303816000875af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e291906125c2565b50816000036112f057600191505b60008060006112fe86610ef3565b925092509250600061130e610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc5993611356938a938d93918316921690600090309042906004016126e7565b6000604051808303816000875af1158015611375573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139d9190810190612738565b5060006113a8610812565b905060006113b68383612592565b60035460065460018054604051635a47ddc360e01b81526001600160a01b03938416600482015290831660248201526000604482015260648101899052608481018a905260a4810182905260c48101919091523060e4820152426101048201529293501690635a47ddc390610124016060604051808303816000875af1158015611444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114689190612837565b50506005546040516370a0823160e01b8152306004820152600092506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612563565b60048054600c54604051631f933c2d60e01b815233938101939093526024830184905260448301529192506001600160a01b0390911690631f933c2d90606401600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015611597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bb9190612563565b905060006115c98a83612592565b905080156116485760015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061160390339085906004016125a9565b6020604051808303816000875af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164691906125c2565b505b6040805184815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf1725359101610ead565b611687612388565b60065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926116bf92911690600019906004016125a9565b6020604051808303816000875af11580156116de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170291906125c2565b5060065460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261173b92911690600019906004016125a9565b6020604051808303816000875af115801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e91906125c2565b5060015460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926117b792911690600019906004016125a9565b6020604051808303816000875af11580156117d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fa91906125c2565b5060065460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261183392911690600019906004016125a9565b6020604051808303816000875af1158015611852573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187691906125c2565b506005546004805460405163095ea7b360e01b81526001600160a01b039384169363095ea7b3936118af939091169160001991016125a9565b6020604051808303816000875af11580156118ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f291906125c2565b50565b6118fd612388565b60065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611934929116906000906004016125a9565b6020604051808303816000875af1158015611953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197791906125c2565b5060065460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926119af929116906000906004016125a9565b6020604051808303816000875af11580156119ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f291906125c2565b5060015460035460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611a2a929116906000906004016125a9565b6020604051808303816000875af1158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d91906125c2565b5060065460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611833929116906000906004016125a9565b611aad612388565b6001600160a01b038116611ac057600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b611aea612388565b6001600160a01b038116611afd57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da21423193611b619389938116921690879060040161253c565b602060405180830381865afa158015611b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba29190612563565b90506064600b548261091a91906125df565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240161083f565b611bed612388565b6001600160a01b038116611c0057600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b611c2a612388565b600e805462ff00001916620100008315150217905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f90611188908490612865565b60035460015460065460405163da21423160e01b815260009384936001600160a01b039182169363da21423193611cb39389938116921690879060040161253c565b602060405180830381865afa158015611cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf49190612563565b90506064600a5482610ee291906125df565b611d0e612388565b611d1860006123e2565b565b60035460015460065460405163da21423160e01b8152600093849384936001600160a01b039283169363da21423193611d60938a9390821692911690879060040161253c565b602060405180830381865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612563565b90506000806000611db187610ef3565b999098509650505050505050565b600080611dca610812565b90506000600954826064610ee291906125df565b611de6612388565b6001600160a01b038116611df957600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611e23612388565b600c55565b611e30612388565b6064811115611e515760405162461bcd60e51b815260040161095e9061289f565b80600b81905550427fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c8260405161118891906128d6565b611e90612388565b6064811115611eb15760405162461bcd60e51b815260040161095e9061289f565b600a81905560408051818152600791810191909152661d99509bdbdcdd60ca1b60608201526020810182905242907fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c90608001611188565b611f11612388565b600e80548215156101000261ff001990911617905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f906111889084906040808252600790820152661599509bdbdcdd60ca1b6060820152901515602082015260800190565b600080611f87610812565b90506000600a54826064610ee291906125df565b611fa3612388565b6064811115611fc45760405162461bcd60e51b815260040161095e9061289f565b80600981905550427fa43e18f7c8dcd412099d57b2348fd68ed844b29deb62a030f8493b36b8687d7c82604051611188919061290e565b612003612388565b6001600160a01b03811661201657600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612040612388565b600e805460ff191682151517905560405142907ffcfe851f5b056824cad73f940e9f37e7e8650bfd2baab54376300fa0b709b06f90611188908490612935565b600e54610100900460ff16156120a85760405162461bcd60e51b815260040161095e90612620565b600082116120c85760405162461bcd60e51b815260040161095e90612648565b60006120d2610812565b116120ef5760405162461bcd60e51b815260040161095e9061268c565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90612123903390309087906004016126c3565b6020604051808303816000875af1158015612142573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216691906125c2565b5080600003612173575060015b600061217d610812565b6003546001546006546040516313dcfc5960e01b81529394506001600160a01b03928316936313dcfc59936121c59389938993918316921690600090309042906004016126e7565b6000604051808303816000875af11580156121e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261220c9190810190612738565b506000612217610812565b905060006122258383612592565b90506000816064600a548461223a91906125df565b61224491906125fe565b61224e919061295c565b600754600d5460405163d4e54c3b60e01b81526004810184905260248101919091523360448201529192506001600160a01b03169063d4e54c3b906064016020604051808303816000875af11580156122ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cf9190612563565b506040805182815233602082015242917fe1b931d2b8ee0a004219fe936a06ecb92204cde9fce14f9a62f6c698cf172535910160405180910390a2505050505050565b61231a612388565b6001600160a01b03811661237f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095e565b6118f2816123e2565b6000546001600160a01b03163314611d185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561244457600080fd5b5035919050565b6001600160a01b03811681146118f257600080fd5b6000806040838503121561247357600080fd5b823561247e8161244b565b9150602083013561248e8161244b565b809150509250929050565b6000806000606084860312156124ae57600080fd5b833592506020840135915060408401356124c78161244b565b809150509250925092565b600080604083850312156124e557600080fd5b50508035926020909101359150565b60006020828403121561250657600080fd5b8135610eec8161244b565b80151581146118f257600080fd5b60006020828403121561253157600080fd5b8135610eec81612511565b9384526001600160a01b039283166020850152911660408301521515606082015260800190565b60006020828403121561257557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156125a4576125a461257c565b500390565b6001600160a01b03929092168252602082015260400190565b6000602082840312156125d457600080fd5b8151610eec81612511565b60008160001904831182151516156125f9576125f961257c565b500290565b60008261261b57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600e908201526d1d1a1a5cc81a5cc81c185d5cd95960921b604082015260600190565b60208082526024908201527f6e65656420746f206c6f636b206174206c656173742031207061796d656e745460408201526337b5b2b760e11b606082015260800190565b6020808252601a908201527f6e6f20657874726120464c4f5720666f7220626f6f7374696e67000000000000604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b96875260208701959095526001600160a01b0393841660408701529183166060860152151560808501521660a083015260c082015260e00190565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561274b57600080fd5b825167ffffffffffffffff8082111561276357600080fd5b818501915085601f83011261277757600080fd5b81518181111561278957612789612722565b8060051b604051601f19603f830116810181811085821117156127ae576127ae612722565b6040529182528482019250838101850191888311156127cc57600080fd5b938501935b828510156127ea578451845293850193928501926127d1565b98975050505050505050565b60006020828403121561280857600080fd5b8151610eec8161244b565b6000806040838503121561282657600080fd5b505080516020909101519092909150565b60008060006060848603121561284c57600080fd5b8351925060208401519150604084015190509250925092565b60408152600061288f60408301600a815269109c9a5899509bdbdcdd60b21b602082015260400190565b9050821515602083015292915050565b60208082526017908201527f63616e742067697665206d6f7265207468616e20312d31000000000000000000604082015260600190565b60408152600061290060408301600a815269109c9a5899509bdbdcdd60b21b602082015260400190565b905082602083015292915050565b6040815260006129006040830160078152661314109bdbdcdd60ca1b602082015260400190565b60408152600061288f6040830160078152661314109bdbdcdd60ca1b602082015260400190565b6000821982111561296f5761296f61257c565b50019056fea2646970667358221220bf22dba76cc572db72ed1bb8326d553d19095e620a94e31d46bab3d980adf8cf64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003b91ca4d89b5156d456cbd0d6305f7f36b1517a40000000000000000000000000000000000000000000000000000000001dfe200000000000000000000000000f9eddca6b1e548b0ec8cddec131464f462b8310d000000000000000000000000c9ea7a2337f27935cd3ccfb2f725b0428e731fbf00000000000000000000000000000000000000000000000000000000005042e0
-----Decoded View---------------
Arg [0] : _team (address): 0x3b91Ca4D89B5156d456CbD0D6305F7f36B1517a4
Arg [1] : _maxLock (uint256): 31449600
Arg [2] : _optionToken (address): 0xF9EDdca6B1e548B0EC8cDDEc131464F462b8310D
Arg [3] : _voter (address): 0xc9Ea7A2337f27935Cd3ccFB2f725B0428e731FBF
Arg [4] : _lpLockDuration (uint256): 5260000
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000003b91ca4d89b5156d456cbd0d6305f7f36b1517a4
Arg [1] : 0000000000000000000000000000000000000000000000000000000001dfe200
Arg [2] : 000000000000000000000000f9eddca6b1e548b0ec8cddec131464f462b8310d
Arg [3] : 000000000000000000000000c9ea7a2337f27935cd3ccfb2f725b0428e731fbf
Arg [4] : 00000000000000000000000000000000000000000000000000000000005042e0
Deployed Bytecode Sourcemap
10231:12001:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10802:28;;;;;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;10802:28:0;;;;;;;;12750:347;;;;;;:::i;:::-;;:::i;21357:200::-;;;;;;:::i;:::-;;:::i;:::-;;11915:114;;;:::i;:::-;;;1066:25:1;;;1054:2;1039:18;11915:114:0;920:177:1;13105:259:0;;;;;;:::i;:::-;;:::i;17704:1578::-;;;;;;:::i;:::-;;:::i;12559:185::-;;;:::i;14488:451::-;;;;;;:::i;:::-;;:::i;:::-;;;;1692:25:1;;;1748:2;1733:18;;1726:34;;;;1776:18;;;1769:34;1680:2;1665:18;14488:451:0;1490:319:1;10325:26:0;;;;;-1:-1:-1;;;;;10325:26:0;;;;;;-1:-1:-1;;;;;1978:32:1;;;1960:51;;1948:2;1933:18;10325:26:0;1814:203:1;10291:27:0;;;;;-1:-1:-1;;;;;10291:27:0;;;10439:19;;;;;-1:-1:-1;;;;;10439:19:0;;;14234:246;;;;;;:::i;:::-;;:::i;14984:250::-;;;;;;:::i;:::-;;:::i;16205:1491::-;;;;;;:::i;:::-;;:::i;10527:31::-;;;;;;10738:25;;;;;;;;;21563:360;;;:::i;10500:20::-;;;;;-1:-1:-1;;;;;10500:20:0;;;21929:298;;;:::i;20595:156::-;;;;;;:::i;:::-;;:::i;20463:126::-;;;;;;:::i;:::-;;:::i;13370:265::-;;;;;;:::i;:::-;;:::i;12035:123::-;;;:::i;20032:161::-;;;;;;:::i;:::-;;:::i;21196:155::-;;;;;;:::i;:::-;;:::i;10707:22::-;;;;;;13988:240;;;;;;:::i;:::-;;:::i;2649:103::-;;;:::i;13641:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;3070:25:1;;;3126:2;3111:18;;3104:34;;;;3043:18;13641:341:0;2896:248:1;12164:187:0;;;:::i;20336:121::-;;;;;;:::i;:::-;;:::i;20757:122::-;;;;;;:::i;:::-;;:::i;2008:87::-;2054:7;2081:6;-1:-1:-1;;;;;2081:6:0;2008:87;;19785:241;;;;;;:::i;:::-;;:::i;19545:232::-;;;;;;:::i;:::-;;:::i;10617:34::-;;;;;;21044:146;;;;;;:::i;:::-;;:::i;10386:20::-;;;;;-1:-1:-1;;;;;10386:20:0;;;10413:19;;;;;-1:-1:-1;;;;;10413:19:0;;;12363:187;;;:::i;19309:230::-;;;;;;:::i;:::-;;:::i;20199:131::-;;;;;;:::i;:::-;;:::i;20892:146::-;;;;;;:::i;:::-;;:::i;10572:31::-;;;;;;10671:29;;;;;;10465:28;;;;;-1:-1:-1;;;;;10465:28:0;;;10770:25;;;;;;;;;;;;15263:936;;;;;;:::i;:::-;;:::i;2907:201::-;;;;;;:::i;:::-;;:::i;10358:21::-;;;;;-1:-1:-1;;;;;10358:21:0;;;12750:347;12832:4;12850:15;12866:12;12879:17;12900:35;12920:14;12900:19;:35::i;:::-;12973:6;;;13003:12;13017:4;;12965:64;;-1:-1:-1;;;12965:64:0;;12849:86;;-1:-1:-1;12849:86:0;;-1:-1:-1;12849:86:0;;-1:-1:-1;12948:14:0;;-1:-1:-1;;;;;12973:6:0;;;;12965:28;;:64;;12849:86;;13003:12;;;;13017:4;;12948:14;;12965:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12948:81;-1:-1:-1;13068:21:0;12948:81;13068:12;:21;:::i;:::-;13049:15;:13;:15::i;:::-;:40;;;12750:347;-1:-1:-1;;;;;;12750:347:0:o;21357:200::-;1894:13;:11;:13::i;:::-;21463:39:::1;::::0;-1:-1:-1;;;21463:39:0;;21496:4:::1;21463:39;::::0;::::1;1960:51:1::0;21446:14:0::1;::::0;-1:-1:-1;;;;;21463:24:0;::::1;::::0;::::1;::::0;1933:18:1;;21463:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21513:36;::::0;-1:-1:-1;;;21513:36:0;;21446:56;;-1:-1:-1;;;;;;21513:23:0;::::1;::::0;::::1;::::0;:36:::1;::::0;21537:3;;21446:56;;21513:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21435:122;21357:200:::0;;:::o;11915:114::-;11991:4;;11984:37;;-1:-1:-1;;;11984:37:0;;12015:4;11984:37;;;1960:51:1;11961:4:0;;-1:-1:-1;;;;;11991:4:0;;11984:22;;1933:18:1;;11984:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11977:44;;11915:114;:::o;13105:259::-;13229:6;;;13266:12;13280:4;;13221:71;;-1:-1:-1;;;13221:71:0;;13187:4;;;;-1:-1:-1;;;;;13229:6:0;;;;13221:28;;:71;;13250:14;;13266:12;;;13280:4;;13187;;13221:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13204:88;;13353:3;13338:11;;13329:6;:20;;;;:::i;:::-;:27;;;;:::i;:::-;13310:15;:13;:15::i;:::-;:46;;;13105:259;-1:-1:-1;;;13105:259:0:o;17704:1578::-;17804:16;;;;;;;17803:17;17795:44;;;;-1:-1:-1;;;17795:44:0;;;;;;;:::i;:::-;;;;;;;;;17868:1;17858:7;:11;17850:60;;;;-1:-1:-1;;;17850:60:0;;;;;;;:::i;:::-;17947:1;17929:15;:13;:15::i;:::-;:19;17921:58;;;;-1:-1:-1;;;17921:58:0;;;;;;;:::i;:::-;17997:12;;17990:69;;-1:-1:-1;;;17990:69:0;;-1:-1:-1;;;;;17997:12:0;;;;17990:33;;:69;;18024:10;;18044:4;;18051:7;;17990:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18076:7;18087:1;18076:12;18072:56;;18115:1;18105:11;;18072:56;18140:18;18161:15;:13;:15::i;:::-;18195:6;;;18252:12;18266:4;;18187:123;;-1:-1:-1;;;18187:123:0;;18140:36;;-1:-1:-1;;;;;;18195:6:0;;;;18187:46;;:123;;18234:7;;18243;;18252:12;;;;18266:4;;18195:6;;18287:4;;18294:15;;18187:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18187:123:0;;;;;;;;;;;;:::i;:::-;;18321:17;18341:15;:13;:15::i;:::-;18321:35;-1:-1:-1;18367:18:0;18388:22;18400:10;18321:35;18388:22;:::i;:::-;18367:43;;18423:20;18446:17;:15;:17::i;:::-;18487:11;;18474:57;;-1:-1:-1;;;18474:57:0;;18423:40;;-1:-1:-1;;;;;;18487:11:0;;18474:30;;:57;;18513:4;;18520:10;;18474:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18542:19;18564:17;:15;:17::i;:::-;18542:39;-1:-1:-1;18594:20:0;18617:26;18631:12;18542:39;18617:26;:::i;:::-;18691:5;;18684:27;;-1:-1:-1;;;18684:27:0;;-1:-1:-1;;;;;1978:32:1;;;18684:27:0;;;1960:51:1;18594:49:0;;-1:-1:-1;18664:17:0;;18691:5;;;;18684:20;;1933:18:1;;18684:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18739:5;;18732:32;;-1:-1:-1;;;18732:32:0;;-1:-1:-1;;;;;1978:32:1;;;18732::0;;;1960:51:1;18664:47:0;;-1:-1:-1;18739:5:0;;;18732:21;;1933:18:1;;18732:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18724:60;;;;-1:-1:-1;;;18724:60:0;;8856:2:1;18724:60:0;;;8838:21:1;8895:2;8875:18;;;8868:30;-1:-1:-1;;;8914:18:1;;;8907:45;8969:18;;18724:60:0;8654:339:1;18724:60:0;18825:5;;18818:40;;-1:-1:-1;;;18818:40:0;;-1:-1:-1;;;;;1978:32:1;;;18818:40:0;;;1960:51:1;18797:18:0;;18825:5;;18818:29;;1933:18:1;;18818:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18878:11;;18871:53;;-1:-1:-1;;;18871:53:0;;18797:61;;-1:-1:-1;;;;;;18878:11:0;;18871:27;;:53;;18797:61;;18911:12;;18871:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18993:11:0;;18937:109;;-1:-1:-1;;;18937:109:0;;-1:-1:-1;;;;;18937:37:0;;;;;;:109;;18993:11;;;;19023:12;;18937:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19059:20;19113:3;19095:14;;19082:10;:27;;;;:::i;:::-;:34;;;;:::i;:::-;19141:13;;19186:7;;19127:79;;-1:-1:-1;;;19127:79:0;;;;;9200:25:1;;;9241:18;;;9234:34;;;;19195:10:0;9284:18:1;;;9277:60;19059:57:0;;-1:-1:-1;;;;;;19141:13:0;;19127:44;;9173:18:1;;19127:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19224:50:0;;;9522:25:1;;;19263:10:0;9578:2:1;9563:18;;9556:60;19232:15:0;;19224:50;;9495:18:1;19224:50:0;;;;;;;;17784:1498;;;;;;;;;17704:1578;;;:::o;12559:185::-;12606:4;12623:15;12641;:13;:15::i;:::-;12623:33;;12668:12;12699:14;;12683:7;12693:3;12683:13;;;;:::i;:::-;:30;;;;:::i;:::-;12668:45;12559:185;-1:-1:-1;;;12559:185:0:o;14488:451::-;14555:7;14563;14571;14591:15;14651:3;14637:11;;14633:1;14623:7;:11;;;;:::i;:::-;:25;;;;:::i;:::-;:31;;;;:::i;:::-;14609:11;14619:1;14609:7;:11;:::i;:::-;:46;;;;:::i;:::-;14591:64;-1:-1:-1;14666:12:0;14681:17;14591:64;14681:7;:17;:::i;:::-;14767:6;;14787:4;;14767:6;14793:12;14759:54;;-1:-1:-1;;;14759:54:0;;-1:-1:-1;;;;;14787:4:0;;;14759:54;;;9861:34:1;14793:12:0;;;9911:18:1;;;9904:43;14712:19:0;9963:18:1;;;9956:50;;;14666:32:0;;-1:-1:-1;14712:19:0;;14767:6;;;;;14759:27;;9796:18:1;;14759:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14711:102;;-1:-1:-1;14711:102:0;-1:-1:-1;14824:20:0;14711:102;14848:18;14711:102;14848:4;:18;:::i;:::-;14847:37;;;;:::i;:::-;14905:7;;14913:4;;-1:-1:-1;14905:7:0;;-1:-1:-1;14488:451:0;;-1:-1:-1;;;;;14488:451:0:o;14234:246::-;14361:6;;;14398:12;14412:4;;14353:71;;-1:-1:-1;;;14353:71:0;;14316:7;;;;-1:-1:-1;;;;;14361:6:0;;;;14353:28;;:71;;14382:14;;14398:12;;;14412:4;;14316:7;;14353:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14336:88;;14469:3;14451:14;;14442:6;:23;;;;:::i;14984:250::-;15067:1;15057:7;:11;15049:51;;;;-1:-1:-1;;;15049:51:0;;10469:2:1;15049:51:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:29;10527:18;;;10520:57;10594:18;;15049:51:0;10267:351:1;15049:51:0;15118:4;;15111:61;;-1:-1:-1;;;15111:61:0;;-1:-1:-1;;;;;15118:4:0;;;;15111:25;;:61;;15137:10;;15157:4;;15164:7;;15111:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15201:15;15188:38;15218:7;15188:38;;;;1066:25:1;;1054:2;1039:18;;920:177;15188:38:0;;;;;;;;14984:250;:::o;16205:1491::-;16292:13;;;;16291:14;16283:41;;;;-1:-1:-1;;;16283:41:0;;;;;;;:::i;:::-;16353:1;16343:7;:11;16335:60;;;;-1:-1:-1;;;16335:60:0;;;;;;;:::i;:::-;16432:1;16414:15;:13;:15::i;:::-;:19;16406:58;;;;-1:-1:-1;;;16406:58:0;;;;;;;:::i;:::-;16519:12;;16512:45;;-1:-1:-1;;;16512:45:0;;16551:4;16512:45;;;1960:51:1;16485:24:0;;-1:-1:-1;;;;;16519:12:0;;16512:30;;1933:18:1;;16512:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16575:12;;16568:69;;-1:-1:-1;;;16568:69:0;;16485:72;;-1:-1:-1;;;;;;16575:12:0;;16568:33;;:69;;16602:10;;16622:4;;16629:7;;16568:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16654:7;16665:1;16654:12;16650:56;;16693:1;16683:11;;16650:56;16719:15;16735:12;16748:17;16769:28;16789:7;16769:19;:28::i;:::-;16718:79;;;;;;16818:18;16839:15;:13;:15::i;:::-;16873:6;;;16930:12;16944:4;;16865:123;;-1:-1:-1;;;16865:123:0;;16818:36;;-1:-1:-1;;;;;;16873:6:0;;;;16865:46;;:123;;16912:7;;16921;;16930:12;;;;16944:4;;16873:6;;16965:4;;16972:15;;16865:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16865:123:0;;;;;;;;;;;;:::i;:::-;;16999:17;17019:15;:13;:15::i;:::-;16999:35;-1:-1:-1;17045:18:0;17066:22;17078:10;16999:35;17066:22;:::i;:::-;17109:6;;17130:4;;17109:6;17136:12;;17101:113;;-1:-1:-1;;;17101:113:0;;-1:-1:-1;;;;;17130:4:0;;;17101:113;;;11042:34:1;17136:12:0;;;11092:18:1;;;11085:43;17109:6:0;11144:18:1;;;11137:50;11203:18;;;11196:34;;;11246:19;;;11239:35;;;11290:19;;;11283:35;;;11334:19;;;11327:35;;;;17191:4:0;11378:19:1;;;11371:44;17198:15:0;11431:19:1;;;11424:35;17045:43:0;;-1:-1:-1;17109:6:0;;17101:28;;10976:19:1;;17101:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;17248:4:0;;17241:37;;-1:-1:-1;;;17241:37:0;;17272:4;17241:37;;;1960:51:1;17225:13:0;;-1:-1:-1;;;;;;17248:4:0;;;;17241:22;;1933:18:1;;17241:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17298:5;;;17338:14;;17289:64;;-1:-1:-1;;;17289:64:0;;17321:10;17289:64;;;11983:51:1;;;;12050:18;;;12043:34;;;12093:18;;;12086:34;17225:53:0;;-1:-1:-1;;;;;;17298:5:0;;;;17289:31;;11956:18:1;;17289:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17399:12:0;;17392:45;;-1:-1:-1;;;17392:45:0;;17431:4;17392:45;;;1960:51:1;17366:23:0;;-1:-1:-1;;;;;;17399:12:0;;;;-1:-1:-1;17392:30:0;;1933:18:1;;17392:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17366:71;-1:-1:-1;17448:20:0;17471:34;17489:16;17366:71;17471:34;:::i;:::-;17448:57;-1:-1:-1;17521:19:0;;17518:110;;17565:12;;17558:58;;-1:-1:-1;;;17558:58:0;;-1:-1:-1;;;;;17565:12:0;;;;17558:29;;:58;;17588:10;;17600:15;;17558:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17518:110;17645:43;;;9522:25:1;;;17677:10:0;9578:2:1;9563:18;;9556:60;17653:15:0;;17645:43;;9495:18:1;17645:43:0;9348:274:1;21563:360:0;1894:13;:11;:13::i;:::-;21624:4:::1;::::0;21638:13:::1;::::0;21617:54:::1;::::0;-1:-1:-1;;;21617:54:0;;-1:-1:-1;;;;;21624:4:0;;::::1;::::0;21617:20:::1;::::0;:54:::1;::::0;21638:13;::::1;::::0;-1:-1:-1;;21653:17:0;21617:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21689:4:0::1;::::0;21703:6:::1;::::0;21682:47:::1;::::0;-1:-1:-1;;;21682:47:0;;-1:-1:-1;;;;;21689:4:0;;::::1;::::0;21682:20:::1;::::0;:47:::1;::::0;21703:6;::::1;::::0;-1:-1:-1;;21711:17:0;21682:47:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21747:12:0::1;::::0;21769:6:::1;::::0;21740:55:::1;::::0;-1:-1:-1;;;21740:55:0;;-1:-1:-1;;;;;21747:12:0;;::::1;::::0;21740:28:::1;::::0;:55:::1;::::0;21769:6;::::1;::::0;-1:-1:-1;;21777:17:0;21740:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21813:4:0::1;::::0;21827:11:::1;::::0;21806:52:::1;::::0;-1:-1:-1;;;21806:52:0;;-1:-1:-1;;;;;21813:4:0;;::::1;::::0;21806:20:::1;::::0;:52:::1;::::0;21827:11;::::1;::::0;-1:-1:-1;;21840:17:0;21806:52:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21876:4:0::1;::::0;21890:5:::1;::::0;;21869:46:::1;::::0;-1:-1:-1;;;21869:46:0;;-1:-1:-1;;;;;21876:4:0;;::::1;::::0;21869:20:::1;::::0;:46:::1;::::0;21890:5;;::::1;::::0;-1:-1:-1;;21897:17:0;21869:46:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21563:360::o:0;21929:298::-;1894:13;:11;:13::i;:::-;21992:4:::1;::::0;22006:13:::1;::::0;21985:38:::1;::::0;-1:-1:-1;;;21985:38:0;;-1:-1:-1;;;;;21992:4:0;;::::1;::::0;21985:20:::1;::::0;:38:::1;::::0;22006:13;::::1;::::0;21992:4:::1;::::0;21985:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22041:4:0::1;::::0;22055:6:::1;::::0;22034:31:::1;::::0;-1:-1:-1;;;22034:31:0;;-1:-1:-1;;;;;22041:4:0;;::::1;::::0;22034:20:::1;::::0;:31:::1;::::0;22055:6;::::1;::::0;22041:4:::1;::::0;22034:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22083:12:0::1;::::0;22105:6:::1;::::0;22076:39:::1;::::0;-1:-1:-1;;;22076:39:0;;-1:-1:-1;;;;;22083:12:0;;::::1;::::0;22076:28:::1;::::0;:39:::1;::::0;22105:6;::::1;::::0;22083:12:::1;::::0;22076:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22133:4:0::1;::::0;22147:11:::1;::::0;22126:36:::1;::::0;-1:-1:-1;;;22126:36:0;;-1:-1:-1;;;;;22133:4:0;;::::1;::::0;22126:20:::1;::::0;:36:::1;::::0;22147:11;::::1;::::0;22133:4:::1;::::0;22126:36:::1;;;:::i;20595:156::-:0;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;20679:26:0;::::1;20671:35;;;::::0;::::1;;20717:11;:26:::0;;-1:-1:-1;;;;;;20717:26:0::1;-1:-1:-1::0;;;;;20717:26:0;;;::::1;::::0;;;::::1;::::0;;20595:156::o;20463:126::-;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;20535:20:0;::::1;20527:29;;;::::0;::::1;;20567:5;:14:::0;;-1:-1:-1;;;;;;20567:14:0::1;-1:-1:-1::0;;;;;20567:14:0;;;::::1;::::0;;;::::1;::::0;;20463:126::o;13370:265::-;13497:6;;;13534:12;13548:4;;13489:71;;-1:-1:-1;;;13489:71:0;;13455:4;;;;-1:-1:-1;;;;;13497:6:0;;;;13489:28;;:71;;13518:14;;13534:12;;;13548:4;;13455;;13489:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13472:88;;13624:3;13606:14;;13597:6;:23;;;;:::i;12035:123::-;12113:11;;12106:44;;-1:-1:-1;;;12106:44:0;;12144:4;12106:44;;;1960:51:1;12083:4:0;;-1:-1:-1;;;;;12113:11:0;;12106:29;;1933:18:1;;12106:44:0;1814:203:1;20032:161:0;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;20118:27:0;::::1;20110:36;;;::::0;::::1;;20157:12;:28:::0;;-1:-1:-1;;;;;;20157:28:0::1;-1:-1:-1::0;;;;;20157:28:0;;;::::1;::::0;;;::::1;::::0;;20032:161::o;21196:155::-;1894:13;:11;:13::i;:::-;21261:16:::1;:22:::0;;-1:-1:-1;;21261:22:0::1;::::0;;::::1;;;;::::0;;21299:44:::1;::::0;21308:15:::1;::::0;21299:44:::1;::::0;::::1;::::0;21261:22;;21299:44:::1;:::i;13988:240::-:0;14112:6;;;14149:12;14163:4;;14104:71;;-1:-1:-1;;;14104:71:0;;14067:7;;;;-1:-1:-1;;;;;14112:6:0;;;;14104:28;;:71;;14133:14;;14149:12;;;14163:4;;14067:7;;14104:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14087:88;;14217:3;14202:11;;14193:6;:20;;;;:::i;2649:103::-;1894:13;:11;:13::i;:::-;2714:30:::1;2741:1;2714:18;:30::i;:::-;2649:103::o:0;13641:341::-;13773:6;;;13810:12;13824:4;;13765:71;;-1:-1:-1;;;13765:71:0;;13720:7;;;;;;-1:-1:-1;;;;;13773:6:0;;;;13765:28;;:71;;13794:14;;13810:12;;;;13824:4;;;13720:7;;13765:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13748:88;;13850:15;13866:12;13879:17;13900:35;13920:14;13900:19;:35::i;:::-;13849:86;;;-1:-1:-1;13641:341:0;-1:-1:-1;;;;;;;13641:341:0:o;12164:187::-;12216:4;12233:15;12251;:13;:15::i;:::-;12233:33;;12278:12;12309:11;;12293:7;12303:3;12293:13;;;;:::i;20336:121::-;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;20406:19:0;::::1;20398:28;;;::::0;::::1;;20437:4;:12:::0;;-1:-1:-1;;;;;;20437:12:0::1;-1:-1:-1::0;;;;;20437:12:0;;;::::1;::::0;;;::::1;::::0;;20336:121::o;20757:122::-;1894:13;:11;:13::i;:::-;20839:14:::1;:32:::0;20757:122::o;19785:241::-;1894:13;:11;:13::i;:::-;19874:3:::1;19865:5;:12;;19857:48;;;;-1:-1:-1::0;;;19857:48:0::1;;;;;;;:::i;:::-;19933:5;19916:14;:22;;;;19975:15;19958:54;20006:5;19958:54;;;;;;:::i;19545:232::-:0;1894:13;:11;:13::i;:::-;19631:3:::1;19622:5;:12;;19614:48;;;;-1:-1:-1::0;;;19614:48:0::1;;;;;;;:::i;:::-;19673:11;:19:::0;;;19712:51:::1;::::0;;13862:21:1;;;13919:1;13899:18;;;13892:29;;;;-1:-1:-1;;;13952:2:1;13937:18;;13930:37;14034:4;14019:20;;14012:36;;;19729:15:0::1;::::0;19712:51:::1;::::0;13999:3:1;13984:19;19712:51:0::1;13650:404:1::0;21044:146:0;1894:13;:11;:13::i;:::-;21106::::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;21106:19:0;;::::1;;::::0;;21141:41:::1;::::0;21150:15:::1;::::0;21141:41:::1;::::0;::::1;::::0;21122:3;;14283:2:1;14265:21;;;14322:1;14302:18;;;14295:29;-1:-1:-1;;;14355:2:1;14340:18;;14333:37;14451:14;;14444:22;14437:4;14422:20;;14415:52;14402:3;14387:19;;14059:414;12363:187:0;12415:4;12432:15;12450;:13;:15::i;:::-;12432:33;;12477:12;12508:11;;12492:7;12502:3;12492:13;;;;:::i;19309:230::-;1894:13;:11;:13::i;:::-;19395:3:::1;19386:5;:12;;19378:48;;;;-1:-1:-1::0;;;19378:48:0::1;;;;;;;:::i;:::-;19451:5;19437:11;:19;;;;19493:15;19476:51;19521:5;19476:51;;;;;;:::i;20199:131::-:0;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;20273:21:0;::::1;20265:30;;;::::0;::::1;;20306:6;:16:::0;;-1:-1:-1;;;;;;20306:16:0::1;-1:-1:-1::0;;;;;20306:16:0;;;::::1;::::0;;;::::1;::::0;;20199:131::o;20892:146::-;1894:13;:11;:13::i;:::-;20954::::1;:19:::0;;-1:-1:-1;;20954:19:0::1;::::0;::::1;;;::::0;;20989:41:::1;::::0;20998:15:::1;::::0;20989:41:::1;::::0;::::1;::::0;20954:19;;20989:41:::1;:::i;15263:936::-:0;15350:13;;;;;;;15349:14;15341:41;;;;-1:-1:-1;;;15341:41:0;;;;;;;:::i;:::-;15411:1;15401:7;:11;15393:60;;;;-1:-1:-1;;;15393:60:0;;;;;;;:::i;:::-;15490:1;15472:15;:13;:15::i;:::-;:19;15464:58;;;;-1:-1:-1;;;15464:58:0;;;;;;;:::i;:::-;15540:12;;15533:69;;-1:-1:-1;;;15533:69:0;;-1:-1:-1;;;;;15540:12:0;;;;15533:33;;:69;;15567:10;;15587:4;;15594:7;;15533:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15619:7;15630:1;15619:12;15615:56;;-1:-1:-1;15658:1:0;15615:56;15683:18;15704:15;:13;:15::i;:::-;15738:6;;;15795:12;15809:4;;15730:123;;-1:-1:-1;;;15730:123:0;;15683:36;;-1:-1:-1;;;;;;15738:6:0;;;;15730:46;;:123;;15777:7;;15786;;15795:12;;;;15809:4;;15738:6;;15830:4;;15837:15;;15730:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15730:123:0;;;;;;;;;;;;:::i;:::-;;15864:17;15884:15;:13;:15::i;:::-;15864:35;-1:-1:-1;15910:18:0;15931:22;15943:10;15864:35;15931:22;:::i;:::-;15910:43;;15966:20;16023:10;16017:3;16002:11;;15989:10;:24;;;;:::i;:::-;:31;;;;:::i;:::-;:44;;;;:::i;:::-;16058:13;;16103:7;;16044:79;;-1:-1:-1;;;16044:79:0;;;;;9200:25:1;;;9241:18;;;9234:34;;;;16112:10:0;9284:18:1;;;9277:60;15966:67:0;;-1:-1:-1;;;;;;16058:13:0;;16044:44;;9173:18:1;;16044:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16141:50:0;;;9522:25:1;;;16180:10:0;9578:2:1;9563:18;;9556:60;16149:15:0;;16141:50;;9495:18:1;16141:50:0;;;;;;;15330:869;;;;15263:936;;:::o;2907:201::-;1894:13;:11;:13::i;:::-;-1:-1:-1;;;;;2996:22:0;::::1;2988:73;;;::::0;-1:-1:-1;;;2988:73:0;;15689:2:1;2988:73:0::1;::::0;::::1;15671:21:1::0;15728:2;15708:18;;;15701:30;15767:34;15747:18;;;15740:62;-1:-1:-1;;;15818:18:1;;;15811:36;15864:19;;2988:73:0::1;15487:402:1::0;2988:73:0::1;3072:28;3091:8;3072:18;:28::i;2173:132::-:0;2054:7;2081:6;-1:-1:-1;;;;;2081:6:0;795:10;2237:23;2229:68;;;;-1:-1:-1;;;2229:68:0;;16096:2:1;2229:68:0;;;16078:21:1;;;16115:18;;;16108:30;16174:34;16154:18;;;16147:62;16226:18;;2229:68:0;15894:356:1;3268:191:0;3342:16;3361:6;;-1:-1:-1;;;;;3378:17:0;;;-1:-1:-1;;;;;;3378:17:0;;;;;;3411:40;;3361:6;;;;;;;3411:40;;3342:16;3411:40;3331:128;3268:191;:::o;206:180:1:-;265:6;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;-1:-1:-1;357:23:1;;206:180;-1:-1:-1;206:180:1:o;391:131::-;-1:-1:-1;;;;;466:31:1;;456:42;;446:70;;512:1;509;502:12;527:388;595:6;603;656:2;644:9;635:7;631:23;627:32;624:52;;;672:1;669;662:12;624:52;711:9;698:23;730:31;755:5;730:31;:::i;:::-;780:5;-1:-1:-1;837:2:1;822:18;;809:32;850:33;809:32;850:33;:::i;:::-;902:7;892:17;;;527:388;;;;;:::o;1102:383::-;1179:6;1187;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1300:9;1287:23;1277:33;;1357:2;1346:9;1342:18;1329:32;1319:42;;1411:2;1400:9;1396:18;1383:32;1424:31;1449:5;1424:31;:::i;:::-;1474:5;1464:15;;;1102:383;;;;;:::o;2022:248::-;2090:6;2098;2151:2;2139:9;2130:7;2126:23;2122:32;2119:52;;;2167:1;2164;2157:12;2119:52;-1:-1:-1;;2190:23:1;;;2260:2;2245:18;;;2232:32;;-1:-1:-1;2022:248:1:o;2275:247::-;2334:6;2387:2;2375:9;2366:7;2362:23;2358:32;2355:52;;;2403:1;2400;2393:12;2355:52;2442:9;2429:23;2461:31;2486:5;2461:31;:::i;2527:118::-;2613:5;2606:13;2599:21;2592:5;2589:32;2579:60;;2635:1;2632;2625:12;2650:241;2706:6;2759:2;2747:9;2738:7;2734:23;2730:32;2727:52;;;2775:1;2772;2765:12;2727:52;2814:9;2801:23;2833:28;2855:5;2833:28;:::i;3149:457::-;3374:25;;;-1:-1:-1;;;;;3473:15:1;;;3468:2;3453:18;;3446:43;3525:15;;3520:2;3505:18;;3498:43;3584:14;3577:22;3572:2;3557:18;;3550:50;3361:3;3346:19;;3149:457::o;3611:184::-;3681:6;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;-1:-1:-1;3773:16:1;;3611:184;-1:-1:-1;3611:184:1:o;3800:127::-;3861:10;3856:3;3852:20;3849:1;3842:31;3892:4;3889:1;3882:15;3916:4;3913:1;3906:15;3932:125;3972:4;4000:1;3997;3994:8;3991:34;;;4005:18;;:::i;:::-;-1:-1:-1;4042:9:1;;3932:125::o;4062:274::-;-1:-1:-1;;;;;4254:32:1;;;;4236:51;;4318:2;4303:18;;4296:34;4224:2;4209:18;;4062:274::o;4341:245::-;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4509:9;4503:16;4528:28;4550:5;4528:28;:::i;4591:168::-;4631:7;4697:1;4693;4689:6;4685:14;4682:1;4679:21;4674:1;4667:9;4660:17;4656:45;4653:71;;;4704:18;;:::i;:::-;-1:-1:-1;4744:9:1;;4591:168::o;4764:217::-;4804:1;4830;4820:132;;4874:10;4869:3;4865:20;4862:1;4855:31;4909:4;4906:1;4899:15;4937:4;4934:1;4927:15;4820:132;-1:-1:-1;4966:9:1;;4764:217::o;4986:338::-;5188:2;5170:21;;;5227:2;5207:18;;;5200:30;-1:-1:-1;;;5261:2:1;5246:18;;5239:44;5315:2;5300:18;;4986:338::o;5329:400::-;5531:2;5513:21;;;5570:2;5550:18;;;5543:30;5609:34;5604:2;5589:18;;5582:62;-1:-1:-1;;;5675:2:1;5660:18;;5653:34;5719:3;5704:19;;5329:400::o;5734:350::-;5936:2;5918:21;;;5975:2;5955:18;;;5948:30;6014:28;6009:2;5994:18;;5987:56;6075:2;6060:18;;5734:350::o;6089:375::-;-1:-1:-1;;;;;6347:15:1;;;6329:34;;6399:15;;;;6394:2;6379:18;;6372:43;6446:2;6431:18;;6424:34;;;;6279:2;6264:18;;6089:375::o;6469:682::-;6778:25;;;6834:2;6819:18;;6812:34;;;;-1:-1:-1;;;;;6920:15:1;;;6915:2;6900:18;;6893:43;6972:15;;;6967:2;6952:18;;6945:43;7032:14;7025:22;7019:3;7004:19;;6997:51;7085:15;6873:3;7064:19;;7057:44;7132:3;7117:19;;7110:35;6765:3;6750:19;;6469:682::o;7156:127::-;7217:10;7212:3;7208:20;7205:1;7198:31;7248:4;7245:1;7238:15;7272:4;7269:1;7262:15;7288:1105;7383:6;7414:2;7457;7445:9;7436:7;7432:23;7428:32;7425:52;;;7473:1;7470;7463:12;7425:52;7506:9;7500:16;7535:18;7576:2;7568:6;7565:14;7562:34;;;7592:1;7589;7582:12;7562:34;7630:6;7619:9;7615:22;7605:32;;7675:7;7668:4;7664:2;7660:13;7656:27;7646:55;;7697:1;7694;7687:12;7646:55;7726:2;7720:9;7748:2;7744;7741:10;7738:36;;;7754:18;;:::i;:::-;7800:2;7797:1;7793:10;7832:2;7826:9;7895:2;7891:7;7886:2;7882;7878:11;7874:25;7866:6;7862:38;7950:6;7938:10;7935:22;7930:2;7918:10;7915:18;7912:46;7909:72;;;7961:18;;:::i;:::-;7997:2;7990:22;8047:18;;;8081:15;;;;-1:-1:-1;8123:11:1;;;8119:20;;;8151:19;;;8148:39;;;8183:1;8180;8173:12;8148:39;8207:11;;;;8227:135;8243:6;8238:3;8235:15;8227:135;;;8309:10;;8297:23;;8260:12;;;;8340;;;;8227:135;;;8381:6;7288:1105;-1:-1:-1;;;;;;;;7288:1105:1:o;8398:251::-;8468:6;8521:2;8509:9;8500:7;8496:23;8492:32;8489:52;;;8537:1;8534;8527:12;8489:52;8569:9;8563:16;8588:31;8613:5;8588:31;:::i;10017:245::-;10096:6;10104;10157:2;10145:9;10136:7;10132:23;10128:32;10125:52;;;10173:1;10170;10163:12;10125:52;-1:-1:-1;;10196:16:1;;10252:2;10237:18;;;10231:25;10196:16;;10231:25;;-1:-1:-1;10017:245:1:o;11470:306::-;11558:6;11566;11574;11627:2;11615:9;11606:7;11602:23;11598:32;11595:52;;;11643:1;11640;11633:12;11595:52;11672:9;11666:16;11656:26;;11722:2;11711:9;11707:18;11701:25;11691:35;;11766:2;11755:9;11751:18;11745:25;11735:35;;11470:306;;;;;:::o;12582:358::-;12806:2;12795:9;12788:21;12769:4;12826:49;12871:2;12860:9;12856:18;12495:2;12483:15;;-1:-1:-1;;;12523:4:1;12514:14;;12507:36;12568:2;12559:12;;12418:159;12826:49;12818:57;;12925:6;12918:14;12911:22;12906:2;12895:9;12891:18;12884:50;12582:358;;;;:::o;12945:347::-;13147:2;13129:21;;;13186:2;13166:18;;;13159:30;13225:25;13220:2;13205:18;;13198:53;13283:2;13268:18;;12945:347::o;13297:348::-;13527:2;13516:9;13509:21;13490:4;13547:49;13592:2;13581:9;13577:18;12495:2;12483:15;;-1:-1:-1;;;12523:4:1;12514:14;;12507:36;12568:2;12559:12;;12418:159;13547:49;13539:57;;13632:6;13627:2;13616:9;13612:18;13605:34;13297:348;;;;:::o;14638:::-;14868:2;14857:9;14850:21;14831:4;14888:49;14933:2;14922:9;14918:18;14555:1;14543:14;;-1:-1:-1;;;14582:4:1;14573:14;;14566:33;14624:2;14615:12;;14478:155;14991:358;15215:2;15204:9;15197:21;15178:4;15235:49;15280:2;15269:9;15265:18;14555:1;14543:14;;-1:-1:-1;;;14582:4:1;14573:14;;14566:33;14624:2;14615:12;;14478:155;15354:128;15394:3;15425:1;15421:6;15418:1;15415:13;15412:39;;;15431:18;;:::i;:::-;-1:-1:-1;15467:9:1;;15354:128::o
Swarm Source
ipfs://bf22dba76cc572db72ed1bb8326d553d19095e620a94e31d46bab3d980adf8cf
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
FTM | 100.00% | $0.004291 | 1,477,518.1784 | $6,339.88 |
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.