Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 3,240 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21712122 | 3 hrs ago | IN | 0 ETH | 0.00043963 | ||||
Approve | 21550395 | 22 days ago | IN | 0 ETH | 0.00033423 | ||||
Approve | 21463397 | 34 days ago | IN | 0 ETH | 0.00028183 | ||||
Approve | 21412571 | 41 days ago | IN | 0 ETH | 0.00042552 | ||||
Approve | 21412378 | 42 days ago | IN | 0 ETH | 0.00059055 | ||||
Transfer | 21399824 | 43 days ago | IN | 0 ETH | 0.00069861 | ||||
Approve | 21399423 | 43 days ago | IN | 0 ETH | 0.00038364 | ||||
Transfer | 21392955 | 44 days ago | IN | 0 ETH | 0.00104196 | ||||
Approve | 21284966 | 59 days ago | IN | 0 ETH | 0.00019553 | ||||
Approve | 21256908 | 63 days ago | IN | 0 ETH | 0.00039777 | ||||
Approve | 20851799 | 120 days ago | IN | 0 ETH | 0.00013256 | ||||
Approve | 20851799 | 120 days ago | IN | 0 ETH | 0.00013256 | ||||
Approve | 20669480 | 145 days ago | IN | 0 ETH | 0.00007077 | ||||
Approve | 20431344 | 178 days ago | IN | 0 ETH | 0.00020091 | ||||
Approve | 20402720 | 182 days ago | IN | 0 ETH | 0.00006209 | ||||
Increase Allowan... | 20314595 | 195 days ago | IN | 0 ETH | 0.00033488 | ||||
Transfer | 20024038 | 235 days ago | IN | 0 ETH | 0.00138182 | ||||
Approve | 19944408 | 246 days ago | IN | 0 ETH | 0.00025921 | ||||
Approve | 19925610 | 249 days ago | IN | 0 ETH | 0.00114727 | ||||
Approve | 19871748 | 257 days ago | IN | 0 ETH | 0.00017918 | ||||
Approve | 19855772 | 259 days ago | IN | 0 ETH | 0.00008781 | ||||
Increase Allowan... | 19833604 | 262 days ago | IN | 0 ETH | 0.00041595 | ||||
Approve | 19555380 | 301 days ago | IN | 0 ETH | 0.00059248 | ||||
Approve | 19362568 | 328 days ago | IN | 0 ETH | 0.00544293 | ||||
Approve | 19163455 | 356 days ago | IN | 0 ETH | 0.00061101 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11583101 | 1484 days ago | 180 ETH | ||||
11583036 | 1484 days ago | 0.01425 ETH | ||||
11582952 | 1484 days ago | 0.285 ETH | ||||
11582949 | 1484 days ago | 0.57 ETH | ||||
11582948 | 1484 days ago | 1.14 ETH | ||||
11582947 | 1484 days ago | 0.171 ETH | ||||
11582941 | 1484 days ago | 0.0285 ETH | ||||
11582937 | 1484 days ago | 0.57 ETH | ||||
11582933 | 1484 days ago | 0.285 ETH | ||||
11582930 | 1484 days ago | 0.57 ETH | ||||
11582930 | 1484 days ago | 1.71 ETH | ||||
11582922 | 1484 days ago | 0.2451 ETH | ||||
11582917 | 1484 days ago | 0.228 ETH | ||||
11582909 | 1484 days ago | 0.285 ETH | ||||
11582898 | 1484 days ago | 0.057 ETH | ||||
11582896 | 1484 days ago | 1.14 ETH | ||||
11582887 | 1484 days ago | 0.4845 ETH | ||||
11582883 | 1484 days ago | 0.684 ETH | ||||
11582883 | 1484 days ago | 0.285 ETH | ||||
11582879 | 1484 days ago | 0.285 ETH | ||||
11582878 | 1484 days ago | 0.4275 ETH | ||||
11582872 | 1484 days ago | 1.425 ETH | ||||
11582858 | 1484 days ago | 0.0285 ETH | ||||
11582857 | 1484 days ago | 1.71 ETH | ||||
11582856 | 1484 days ago | 0.57 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TRYfinance
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-12-31 */ /* TRY token has been being developed since 10/2020 and has more features than most other DEFI token's on the market, here is a summary of built in features that TRY token offers: * We added a brand new feature never seen before in any DEFI token, a tx reward pool, 1% of all transactions are given to the reward pool and are awarded to the sender of every 25th transaction. * We added a deflationary burn fee of 1% on every tx which is automatically sent directly to the burn address upon every transfer, this feature will ensure a truly deflationary model. * We wanted to discourage token dumping so we added a 5% antiDumpFee to all TRY sold on UNIswap. This fee is distributed to all TRYstake users when buyback feature is performed. * Previous rebalance liquidity models used a liquidity divisor as a liquidity reward, however that process made the rebalance feature not as effective since it had to rebalance its own rewards. * To help replace the removal of awarding liquidity providers via the Buyback function we will allow LP tokens to farm TRY tokens directly on TRYfarm. * We coded this contract to have the ability to ADDfunds into TRYstake so it can directly be its own UNIswap sell fee rewards distributor. The staking rewards distribution is called every time a user performs the rebalance liquidity function. The rebalance function still burns TRY that it purchases with the rebalance increasing the effectiveness of the deflationary model. * When Buyback function is called the caller gets a 4% reward of the buyback TRY amount and 96% of the buyback TRY amount gets sent directly to the burn address. * We coded the buyback function to work on 2 hour intervals and set the rate to 1%, we also added the ability for this contract to add 20 seconds to the buyback interval on each use of the buyback function. This will help ensure that the buyback feature cannot be manipulated and insure maximum life expectancy of the feature. * We ensured that all of TRY protocols are whitelist able so when you use them you will not incur any transactional fee's when sending TRY to those protocols. * Once this contract creates the UNIswap pair the LP tokens that are sent back are unable to be removed, there is no withdrawal code for these LP tokens this locked them for their intended purpose forever. * We added the ability to add and remove blacklist addresses, this will help insure that we can properly fight hackers and malicious intents on TRY token's economy. * We added createUNISwapPair function that will ensure ETH collected for liquidity can only be used for that one specific purpose, TRY presale contract automatically sends ETH liquidity to this contract. * We are sure that TRY will be the most successful project to ever use a rebalancer style feature, TRYstake will ensure TRY tokens are happy earning in the staking contracts and not on the market to lower the price. UNIswap sell fees will discourage selling, while offering incentivized rewards for staking. TRYfarm will directly reward liquidity providers in replacement of the liquidity reward distribution on the previous model. The Tx Reward pool feature helps complete the package, TRY token has the most rewarding features of any DEFI token! For more information please visit try.finance/whitepaper.html */ pragma solidity ^0.5.17; contract Context { constructor () internal { } function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } contract WhitelistAdminRole is Context { using Roles for Roles.Role; event WhitelistAdminAdded(address indexed account); event WhitelistAdminRemoved(address indexed account); Roles.Role private _whitelistAdmins; constructor () internal { _addWhitelistAdmin(_msgSender()); } modifier onlyWhitelistAdmin() { require(isWhitelistAdmin(_msgSender()), "WhitelistAdminRole: caller does not have the WhitelistAdmin role"); _; } function isWhitelistAdmin(address account) public view returns (bool) { return _whitelistAdmins.has(account); } function addWhitelistAdmin(address account) public onlyWhitelistAdmin { _addWhitelistAdmin(account); } function renounceWhitelistAdmin() public { _removeWhitelistAdmin(_msgSender()); } function _addWhitelistAdmin(address account) internal { _whitelistAdmins.add(account); emit WhitelistAdminAdded(account); } function _removeWhitelistAdmin(address account) internal { _whitelistAdmins.remove(account); emit WhitelistAdminRemoved(account); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function ceil(uint a, uint m) internal pure returns (uint r) { return (a + m - 1) / m * m; } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; constructor (uint256 totalSupply) public { _mint(_msgSender(),totalSupply); } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance")); } } contract ERC20Burnable is Context, ERC20 { function burn(uint256 amount) public { _burn(_msgSender(), amount); } function burnFrom(address account, uint256 amount) public { _burnFrom(account, amount); } } library Roles { struct Role { mapping (address => bool) bearer; } function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract ERC20TransferLiquidityLock is ERC20 { using SafeMath for uint256; event Rebalance(uint256 tokenBurnt); event SupplyTRYStake(uint256 tokenAmount); event RewardStakers(uint256 stakingRewards); address public uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public uniswapV2Factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; address public uniswapV2Pair; address public TRYStake; address public presaleAddress; address public LPFarm; address public Master = address (uniswapV2Router); address public Trident = address (this); address payable public treasury; mapping(address => bool) public feelessAddr; mapping(address => bool) public unlocked; mapping(address => bool) public oracle; mapping(address => bool) public blacklist; uint256 public rewardPoolDivisor; uint256 public rebalanceRewardDivisor; uint256 public rebalanceDivisor; uint256 public burnTxFee; uint256 public antiDumpFee; uint256 public minRebalanceAmount; uint256 public lastRebalance; uint256 public rebalanceInterval; address public burnAddr = 0x000000000000000000000000000000000000dEaD; bool public LPLocked; uint256 public txNumber; uint256 one = 1000000000000000000; uint256 public trans100 = 25000000000000000000; uint256 public stakePool = 0; uint256 public rewardPool = 0; bool public locked; Balancer balancer; constructor() public { lastRebalance = block.timestamp; burnTxFee = 100; rewardPoolDivisor = 100; antiDumpFee = 20; rebalanceRewardDivisor = 25; rebalanceDivisor = 100; rebalanceInterval = 2 hours; minRebalanceAmount = 100e18; treasury = msg.sender; balancer = new Balancer(treasury); feelessAddr[address(this)] = true; feelessAddr[address(balancer)] = true; feelessAddr[address(uniswapV2Router)] = true; feelessAddr[address(uniswapV2Factory)] = true; feelessAddr[address(TRYStake)] = true; feelessAddr[address(presaleAddress)] = true; locked = true; LPLocked = true; unlocked[msg.sender] = false; unlocked[address(this)] = true; unlocked[address(balancer)] = true; unlocked[address(balancer)] = true; unlocked[address(uniswapV2Router)] = true; unlocked[address(presaleAddress)] = true; txNumber = 0; } function calculateFees(address from, address to, uint256 amount) public view returns( uint256 rewardtx, uint256 Burntx, uint256 selltx){ } function isContract(address _addr) public view returns (bool _isContract){ uint32 size; assembly { size := extcodesize(_addr)} return (size > 0); } function _transfer(address from, address to, uint256 amount) internal { if(locked && unlocked[from] != true && unlocked[to] != true) revert("Transfers are locked until after presale."); if(blacklist [from] == true || blacklist [to] == true) revert("Address is blacklisted"); uint256 Burntx = 0; uint256 rewardtx = 0; if(feelessAddr[from] == false && feelessAddr[to] == false){ if (burnTxFee != 0) { Burntx = amount.div(burnTxFee); amount = amount.sub(Burntx); super._transfer(from, address(burnAddr), Burntx); } if (rewardPoolDivisor != 0) { txNumber = txNumber.add(one); rewardtx = amount.div(rewardPoolDivisor); amount = amount.sub(rewardtx); super._transfer(from, address(this), rewardtx); rewardPool += rewardtx; if(txNumber == trans100){ require( !(isContract(from)), 'inValid caller'); super._transfer(address(this), from, rewardPool); rewardPool = 0; txNumber = 0; } } if (antiDumpFee != 0 && oracle[to]) { uint256 selltx = amount.div(antiDumpFee); stakePool += selltx; amount = amount.sub(selltx); super._transfer(from, address(this), selltx); } super._transfer(from, to, amount); } else { super._transfer(from, to, amount); } } function () external payable {} function RebalanceLiquidity() public { require(balanceOf(msg.sender) >= minRebalanceAmount, "You do not have the required amount of TRY."); require(block.timestamp > lastRebalance + rebalanceInterval, "It is too early to use this function."); lastRebalance = block.timestamp; uint256 _lockableSupply = stakePool; _addRebalanceInterval(); _rewardStakers(_lockableSupply); uint256 amountToRemove = ERC20(uniswapV2Pair).balanceOf(address(this)).div(rebalanceDivisor); remLiquidity(amountToRemove); uint _locked = balancer.rebalance(rebalanceRewardDivisor); emit Rebalance(_locked); } function _addRebalanceInterval() private { rebalanceInterval = rebalanceInterval.add(20 seconds); } function _rewardStakers(uint256 stakingRewards) private { if(TRYStake != address(0)) { TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards); stakePool= 0; emit RewardStakers(stakingRewards); } } function remLiquidity(uint256 lpAmount) private returns(uint ETHAmount) { ERC20(uniswapV2Pair).approve(uniswapV2Router, lpAmount); (ETHAmount) = IUniswapV2Router02(uniswapV2Router) .removeLiquidityETHSupportingFeeOnTransferTokens( address(this), lpAmount, 0, 0, address(balancer), block.timestamp); } function lockableSupply() external view returns (uint256) { return balanceOf(address(this)); } function lockedSupply() external view returns (uint256) { uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply(); uint256 lpBalance = lockedLiquidity(); uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply); uint256 uniswapBalance = balanceOf(uniswapV2Pair); uint256 _lockedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12); return _lockedSupply; } function burnedSupply() external view returns (uint256) { uint256 lpTotalSupply = ERC20(uniswapV2Pair).totalSupply(); uint256 lpBalance = burnedLiquidity(); uint256 percentOfLpTotalSupply = lpBalance.mul(1e12).div(lpTotalSupply); uint256 uniswapBalance = balanceOf(uniswapV2Pair); uint256 _burnedSupply = uniswapBalance.mul(percentOfLpTotalSupply).div(1e12); return _burnedSupply; } function burnableLiquidity() public view returns (uint256) { return ERC20(uniswapV2Pair).balanceOf(address(this)); } function burnedLiquidity() public view returns (uint256) { return ERC20(uniswapV2Pair).balanceOf(address(0)); } function lockedLiquidity() public view returns (uint256) { return burnableLiquidity().add(burnedLiquidity()); } } interface TRYstakingContract { function ADDFUNDS(uint256 stakingRewards) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 { function WETH() external pure returns (address); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); } interface IUniswapV2Pair { function sync() external; } contract ERC20Governance is ERC20, ERC20Detailed { using SafeMath for uint256; function _transfer(address from, address to, uint256 amount) internal { _moveDelegates(_delegates[from], _delegates[to], amount); super._transfer(from, to, amount); } function _mint(address account, uint256 amount) internal { _moveDelegates(address(0), _delegates[account], amount); super._mint(account, amount); } function _burn(address account, uint256 amount) internal { _moveDelegates(_delegates[account], address(0), amount); super._burn(account, amount); } mapping (address => address) internal _delegates; struct Checkpoint { uint32 fromBlock; uint256 votes; } mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; mapping (address => uint32) public numCheckpoints; bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); mapping (address => uint) public nonces; event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); function delegates(address delegator) external view returns (address) { return _delegates[delegator]; } function delegate(address delegatee) external { return _delegate(msg.sender, delegatee); } function delegateBySig( address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s ) external { bytes32 domainSeparator = keccak256( abi.encode( DOMAIN_TYPEHASH, keccak256(bytes(name())), getChainId(), address(this) ) ); bytes32 structHash = keccak256( abi.encode( DELEGATION_TYPEHASH, delegatee, nonce, expiry ) ); bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", domainSeparator, structHash ) ); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "ERC20Governance::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "ERC20Governance::delegateBySig: invalid nonce"); require(now <= expiry, "ERC20Governance::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } function getCurrentVotes(address account) external view returns (uint256) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } function getPriorVotes(address account, uint blockNumber) external view returns (uint256) { require(blockNumber < block.number, "ERC20Governance::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = _delegates[delegator]; uint256 delegatorBalance = balanceOf(delegator); _delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint32 srcRepNum = numCheckpoints[srcRep]; uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint256 srcRepNew = srcRepOld.sub(amount); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint256 dstRepNew = dstRepOld.add(amount); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint( address delegatee, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes ) internal { uint32 blockNumber = safe32(block.number, "ERC20Governance::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function getChainId() internal pure returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } } contract Balancer { using SafeMath for uint256; TRYfinance token; address public burnAddr = 0x000000000000000000000000000000000000dEaD; address payable public treasury; constructor(address payable treasury_) public { token = TRYfinance(msg.sender); treasury = treasury_; } function () external payable {} function rebalance(uint rebalanceRewardDivisor) external returns (uint256) { require(msg.sender == address(token), "only token contract can perform this function"); swapEthForTokens(address(this).balance, rebalanceRewardDivisor); uint256 lockableBalance = token.balanceOf(address(this)); uint256 callerReward = lockableBalance.div(rebalanceRewardDivisor); token.transfer(tx.origin, callerReward); token.transfer(burnAddr, lockableBalance.sub(callerReward)); return lockableBalance.sub(callerReward); } function swapEthForTokens(uint256 EthAmount, uint rebalanceRewardDivisor) private { address[] memory uniswapPairPath = new address[](2); uniswapPairPath[0] = IUniswapV2Router02(token.uniswapV2Router()).WETH(); uniswapPairPath[1] = address(token); uint256 treasuryAmount = EthAmount.div(rebalanceRewardDivisor); treasury.transfer(treasuryAmount); token.approve(token.uniswapV2Router(), EthAmount); IUniswapV2Router02(token.uniswapV2Router()) .swapExactETHForTokensSupportingFeeOnTransferTokens.value(EthAmount.sub(treasuryAmount))( 0, uniswapPairPath, address(this), block.timestamp); } } contract TRYfinance is ERC20(100000e18), ERC20Detailed("TRYfinance", "TRY", 18), ERC20Burnable, ERC20Governance, ERC20TransferLiquidityLock, WhitelistAdminRole { function createUNISwapPair(uint amountTokenDesired) public onlyWhitelistAdmin { uint amountETH = address(this).balance; approve(address(uniswapV2Router), amountTokenDesired); IUniswapV2Router01(uniswapV2Router).addLiquidityETH.value(amountETH)( address(this), amountTokenDesired, 0, 0, address(this), now); } function quickApproveTRYStake() public { _approve(_msgSender(), TRYStake, 10000e18); } function quickApproveMaster() public { _approve(_msgSender(), Master, 10000e18); } function quickApproveFarm() public { _approve(_msgSender(), LPFarm, 10000e18); } function setUniswapV2Router(address _uniswapV2Router) public onlyWhitelistAdmin { uniswapV2Router = _uniswapV2Router; } function setUniswapV2Pair(address _uniswapV2Pair) public onlyWhitelistAdmin { uniswapV2Pair = _uniswapV2Pair; } function setUniswapV2Factory(address _uniswapV2Factory) public onlyWhitelistAdmin { uniswapV2Factory = _uniswapV2Factory; } function setTrans100(uint256 _trans100) public onlyWhitelistAdmin { require(_trans100 <= 100e18, "Cannot set over 100 transactions"); trans100 = _trans100; } function setRewardPoolDivisor(uint256 _rdiv) public onlyWhitelistAdmin { require(_rdiv >= 100, "Cannot set over 1% RewardPoolDivisor"); rewardPoolDivisor = _rdiv; } function setRebalanceDivisor(uint256 _rebalanceDivisor) public onlyWhitelistAdmin { if (_rebalanceDivisor != 0) { require(_rebalanceDivisor >= 10, "Cannot set rebalanceDivisor over 10%"); require(_rebalanceDivisor <= 100, "Cannot set rebalanceDivisor under 1%"); } rebalanceDivisor = _rebalanceDivisor; } function addTRYStake(address _stake) public onlyWhitelistAdmin { TRYStake = _stake; } function addPresaleAddress(address _presaleaddress) public onlyWhitelistAdmin { presaleAddress = _presaleaddress; } function addLPFarm(address _farm) public onlyWhitelistAdmin { LPFarm = _farm; } function addMaster(address _master) public onlyWhitelistAdmin { Master = _master; } function addTrident(address _Trident) public onlyWhitelistAdmin { Trident = _Trident; } function setMaster () public onlyWhitelistAdmin { ERC20(Trident).approve(Master, 100000e18); } function setTrident () public onlyWhitelistAdmin { ERC20(Trident).approve(TRYStake, 100000e18); } function rewardStaking(uint256 stakingRewards) internal { TRYstakingContract(TRYStake).ADDFUNDS(stakingRewards); emit SupplyTRYStake(stakingRewards); } function setRebalanceInterval(uint256 _interval) public onlyWhitelistAdmin { require(_interval<= 7200, "Cannot set over 2 hour interval"); require(_interval>= 3600, "Cannot set under 1 hour interval"); rebalanceInterval = _interval; } function setRebalanceRewardDivisior(uint256 _rDivisor) public onlyWhitelistAdmin { if (_rDivisor != 0) { require(_rDivisor <= 25, "Cannot set rebalanceRewardDivisor under 4%"); require(_rDivisor >= 10, "Cannot set rebalanceRewardDivisor over 10%"); } rebalanceRewardDivisor = _rDivisor; } function toggleFeeless(address _addr) public onlyWhitelistAdmin { feelessAddr[_addr] = true; } function toggleFees(address _addr) public onlyWhitelistAdmin { feelessAddr[_addr] = false; } function toggleUnlocked(address _addr) public onlyWhitelistAdmin { unlocked[_addr] = !unlocked[_addr]; } function setOracle(address _addr, bool _bool) public onlyWhitelistAdmin { oracle[_addr] = _bool; } function setBlackListAddress(address _addr, bool _bool) public onlyWhitelistAdmin { blacklist[_addr] = _bool; } function activateTrading() public onlyWhitelistAdmin { locked = false; } function setMinRebalanceAmount(uint256 amount_) public onlyWhitelistAdmin { require(amount_ <= 1000e18, "Cannot set over 1000 TRY tokens"); require(amount_ >= 20e18, "Cannot set under 20 TRY tokens"); minRebalanceAmount = amount_; } function setBurnTxFee(uint256 amount_) public onlyWhitelistAdmin { require(amount_ >= 100, "Cannot set over 1% burnTxFee"); burnTxFee = amount_; } function setAntiDumpFee(uint256 amount_) public onlyWhitelistAdmin { require(amount_ >= 10, "Cannot set over 10% antiDumpFee"); require(amount_ <= 100, "Cannot set under 1% antiDumpFee"); antiDumpFee = amount_; } }
Contract Security Audit
- Solidity.Finance - December 30th, 2020 - Security Audit Report
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenBurnt","type":"uint256"}],"name":"Rebalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"stakingRewards","type":"uint256"}],"name":"RewardStakers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SupplyTRYStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPFarm","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LPLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Master","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"RebalanceLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TRYStake","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Trident","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"activateTrading","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_farm","type":"address"}],"name":"addLPFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_master","type":"address"}],"name":"addMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_presaleaddress","type":"address"}],"name":"addPresaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_stake","type":"address"}],"name":"addTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_Trident","type":"address"}],"name":"addTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"antiDumpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnableLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFees","outputs":[{"internalType":"uint256","name":"rewardtx","type":"uint256"},{"internalType":"uint256","name":"Burntx","type":"uint256"},{"internalType":"uint256","name":"selltx","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"}],"name":"createUNISwapPair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feelessAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"_isContract","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRebalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minRebalanceAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"quickApproveTRYStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rebalanceRewardDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPoolDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setAntiDumpFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBlackListAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setBurnTxFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setMinRebalanceAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rebalanceDivisor","type":"uint256"}],"name":"setRebalanceDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setRebalanceInterval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rDivisor","type":"uint256"}],"name":"setRebalanceRewardDivisior","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rdiv","type":"uint256"}],"name":"setRewardPoolDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_trans100","type":"uint256"}],"name":"setTrans100","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setTrident","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Factory","type":"address"}],"name":"setUniswapV2Factory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapV2Pair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"}],"name":"setUniswapV2Router","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFeeless","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleUnlocked","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"trans100","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"txNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
600a80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17808355600b80548316735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f1790556010805483166001600160a01b039290921691909117905560118054821630179055601f805490911661dead179055670de0b6b3a764000060215568015af1d78b58c400006022556000602381905560245560809081526954525966696e616e636560b01b60a052610100604052600360c09081526254525960e81b60e052601269152d02c7e14af6800000620000f9620000e96001600160e01b036200031e16565b826001600160e01b036200032316565b5082516200010f90600390602086019062000a57565b5081516200012590600490602085019062000a57565b506005805460ff90921660ff19909216919091179055505042601d556064601a81905560178190556014601b556019601881905555611c20601e5568056bc75e2d63100000601c55601280546001600160a01b0319163317908190556040516001600160a01b0391909116906200019c9062000adc565b6001600160a01b03909116815260405190819003602001906000f080158015620001ca573d6000803e3d6000fd5b5060258054610100600160a81b0319166101006001600160a01b039384168102919091178255306000818152601360209081526040808320805460ff1990811660019081179092558754879004891685528285208054821683179055600a80548a1686528386208054831684179055600b548a1686528386208054831684179055600d548a1686528386208054831684179055600e80548b16875284872080548416851790558954831684178a55601f8054600160a01b60ff60a01b1990911617905533875260148652848720805484169055968652838620805483168417905588548890048a168652838620805483168417905597549690960488168452818420805487168217905595548716835280832080548616871790559254909516815290812080549092169092179055905562000318620003096200031e565b6001600160e01b036200036e16565b62000b07565b335b90565b6001600160a01b03808316600090815260066020526040812054620003539216836001600160e01b03620003c016565b6200036a82826200054460201b620042071760201c565b5050565b620003898160266200064560201b62003e501790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b816001600160a01b0316836001600160a01b031614158015620003e35750600081115b156200053f576001600160a01b0383161562000494576001600160a01b03831660009081526008602052604081205463ffffffff1690816200042757600062000459565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000620004778483620006d260201b62003abb1790919060201c565b905062000490868484846001600160e01b036200072316565b5050505b6001600160a01b038216156200053f576001600160a01b03821660009081526008602052604081205463ffffffff169081620004d257600062000504565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b905060006200052284836200089760201b620035bf1790919060201c565b90506200053b858484846001600160e01b036200072316565b5050505b505050565b6001600160a01b038216620005a0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005bc816002546200089760201b620035bf1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005ef918390620035bf62000897821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200065a82826001600160e01b03620008f216565b15620006ad576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006200071c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200095b60201b60201c565b9392505050565b600062000753436040518060600160405280603f815260200162005c48603f91396001600160e01b03620009f616565b905060008463ffffffff161180156200079d57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15620007dc576001600160a01b038516600090815260076020908152604080832063ffffffff600019890116845290915290206001018290556200084d565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b6000828201838110156200071c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b0382166200093b5760405162461bcd60e51b815260040180806020018281038252602281526020018062005c876022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115620009ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620009b257818101518382015260200162000998565b50505050905090810190601f168015620009e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081640100000000841062000a4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620009b257818101518382015260200162000998565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000a9a57805160ff191683800117855562000aca565b8280016001018555821562000aca579182015b8281111562000aca57825182559160200191906001019062000aad565b5062000ad892915062000aea565b5090565b610943806200530583390190565b6200032091905b8082111562000ad8576000815560010162000af1565b6147ee8062000b176000396000f3fe6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c634300051100326080604052600180546001600160a01b03191661dead17905534801561002457600080fd5b506040516109433803806109438339818101604052602081101561004757600080fd5b5051600080546001600160a01b03199081163317909155600280546001600160a01b03909316929091169190911790556108bd806100866000396000f3fe6080604052600436106100345760003560e01c806361d027b314610036578063d246d41114610067578063f49930181461007c575b005b34801561004257600080fd5b5061004b6100b8565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b5061004b6100c7565b34801561008857600080fd5b506100a66004803603602081101561009f57600080fd5b50356100d6565b60408051918252519081900360200190f35b6002546001600160a01b031681565b6001546001600160a01b031681565b600080546001600160a01b031633146101205760405162461bcd60e51b815260040180806020018281038252602d81526020018061085c602d913960400191505060405180910390fd5b61012a47836102f8565b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561017657600080fd5b505afa15801561018a573d6000803e3d6000fd5b505050506040513d60208110156101a057600080fd5b5051905060006101b6828563ffffffff6106d416565b600080546040805163a9059cbb60e01b81523260048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b15801561020f57600080fd5b505af1158015610223573d6000803e3d6000fd5b505050506040513d602081101561023957600080fd5b50506000546001546001600160a01b039182169163a9059cbb9116610264858563ffffffff61071d16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b506102f09050828263ffffffff61071d16565b949350505050565b6040805160028082526060808301845292602083019080388339505060005460408051630b4a282f60e11b815290519394506001600160a01b0390911692631694505e92506004808301926020929190829003018186803b15801561035c57600080fd5b505afa158015610370573d6000803e3d6000fd5b505050506040513d602081101561038657600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c464891600480820192602092909190829003018186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50518151829060009061040357fe5b6001600160a01b03928316602091820292909201015260005482519116908290600190811061042e57fe5b6001600160a01b03909216602092830291909101909101526000610458848463ffffffff6106d416565b6002546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610493573d6000803e3d6000fd5b5060005460408051630b4a282f60e11b815290516001600160a01b039092169163095ea7b3918391631694505e91600480820192602092909190829003018186803b1580156104e157600080fd5b505afa1580156104f5573d6000803e3d6000fd5b505050506040513d602081101561050b57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018890525160448083019260209291908290030181600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b505050506040513d602081101561058557600080fd5b505060005460408051630b4a282f60e11b815290516001600160a01b0390921691631694505e91600480820192602092909190829003018186803b1580156105cc57600080fd5b505afa1580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b50516001600160a01b031663b6f9de95610616868463ffffffff61071d16565b60008530426040518663ffffffff1660e01b81526004018085815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561068e578181015183820152602001610676565b50505050905001955050505050506000604051808303818588803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050505050505050565b600061071683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061075f565b9392505050565b600061071683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610801565b600081836107eb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b0578181015183820152602001610798565b50505050905090810190601f1680156107dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816107f757fe5b0495945050505050565b600081848411156108535760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107b0578181015183820152602001610798565b50505090039056fe6f6e6c7920746f6b656e20636f6e74726163742063616e20706572666f726d20746869732066756e6374696f6ea265627a7a7231582054d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf564736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106104ec5760003560e01c80637e0d943e1161028c578063c3cda5201161015a578063e7a324dc116100cc578063f3db188c11610085578063f3db188c1461126b578063f8ea475614611295578063f9c778e1146112aa578063f9f92be4146112dd578063fd7310c414611310578063fd77f8a114611325576104ec565b8063e7a324dc14611185578063e84354c51461119a578063eb37d349146111af578063ef0658f2146111e2578063f1127ed8146111f7578063f1e6e46814611256576104ec565b8063d246d4111161011e578063d246d411146110cc578063db14c5d5146110e1578063dd62ed3e1461110b578063e0a9e6b614611146578063e161eb561461115b578063e6a2538514611170576104ec565b8063c3cda52014611006578063ca5c7b911461105a578063ceea57e51461106f578063cf30901214611084578063d1846d0c14611099576104ec565b8063a457c2d7116101fe578063b4b5ea57116101b7578063b4b5ea5714610f11578063b67f8b6d14610f44578063b6833c5914610f59578063bb5f747b14610f83578063bc91720214610fb6578063bedd0d3314610fcb576104ec565b8063a457c2d714610e4b578063a889c82c14610e84578063a8a5550e14610e99578063a9059cbb14610eae578063acd7cff414610ee7578063b439824414610efc576104ec565b80638ba51d61116102505780638ba51d6114610d5e57806395d89b4114610d915780639a8fec8714610da65780639e14b8e014610dbb578063a0f364e414610de5578063a29a608914610e18576104ec565b80637e0d943e14610ca45780637ecebe0014610cce5780637ef7686e14610d0157806382bc6ced14610d16578063858750ab14610d49576104ec565b80633e0d04a4116103c957806366666aa91161033b5780637362d9c8116102f45780637362d9c814610b84578063782d6fe114610bb757806379cc679014610bf05780637b9003e314610c295780637c411c1a14610c5c5780637d57ab9614610c71576104ec565b806366666aa914610a475780636da1c23f14610a5c5780636fcfff4514610a7157806370709a7c14610abd57806370a0823114610af057806373352ad314610b23576104ec565b8063587cde1e1161038d578063587cde1e1461095257806359d0f713146109855780635b7dcaed1461099a5780635c19a95c146109c457806361d027b3146109f75780636536084314610a0c576104ec565b80633e0d04a4146108bf57806342966c68146108e957806349bd5a5e146109135780634c5a628c1461092857806355d0a1d01461093d576104ec565b806318160ddd116104625780632feec9d6116104265780632feec9d6146107bf578063313ce567146107e9578063352ffb9a1461081457806339509351146108295780633bd5b4ea146108625780633cd221a21461088c576104ec565b806318160ddd1461072857806318c51c351461073d57806320606b701461075257806323b872dd146107675780632898cafa146107aa576104ec565b806312283a39116104b457806312283a3914610634578063122fe685146106675780631419841d1461069857806316279055146106cb5780631694505e146106fe57806316d1d91614610713576104ec565b806306fdde03146104ee578063095ea7b3146105785780630bd05b69146105c5578063106b9ca1146105da5780631097d54a14610601575b005b3480156104fa57600080fd5b5061050361133a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053d578181015183820152602001610525565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058457600080fd5b506105b16004803603604081101561059b57600080fd5b506001600160a01b0381351690602001356113d0565b604080519115158252519081900360200190f35b3480156105d157600080fd5b506104ec6113ee565b3480156105e657600080fd5b506105ef611445565b60408051918252519081900360200190f35b34801561060d57600080fd5b506104ec6004803603602081101561062457600080fd5b50356001600160a01b031661144b565b34801561064057600080fd5b506104ec6004803603602081101561065757600080fd5b50356001600160a01b03166114b3565b34801561067357600080fd5b5061067c61151a565b604080516001600160a01b039092168252519081900360200190f35b3480156106a457600080fd5b506104ec600480360360208110156106bb57600080fd5b50356001600160a01b0316611529565b3480156106d757600080fd5b506105b1600480360360208110156106ee57600080fd5b50356001600160a01b0316611591565b34801561070a57600080fd5b5061067c61159d565b34801561071f57600080fd5b506105ef6115ac565b34801561073457600080fd5b506105ef6115b2565b34801561074957600080fd5b5061067c6115b8565b34801561075e57600080fd5b506105ef6115c7565b34801561077357600080fd5b506105b16004803603606081101561078a57600080fd5b506001600160a01b038135811691602081013590911690604001356115e2565b3480156107b657600080fd5b506105ef61166f565b3480156107cb57600080fd5b506104ec600480360360208110156107e257600080fd5b50356116ee565b3480156107f557600080fd5b506107fe611779565b6040805160ff9092168252519081900360200190f35b34801561082057600080fd5b5061067c611782565b34801561083557600080fd5b506105b16004803603604081101561084c57600080fd5b506001600160a01b038135169060200135611791565b34801561086e57600080fd5b506104ec6004803603602081101561088557600080fd5b50356117e5565b34801561089857600080fd5b506104ec600480360360208110156108af57600080fd5b50356001600160a01b031661188e565b3480156108cb57600080fd5b506104ec600480360360208110156108e257600080fd5b50356118f6565b3480156108f557600080fd5b506104ec6004803603602081101561090c57600080fd5b50356119f5565b34801561091f57600080fd5b5061067c611a09565b34801561093457600080fd5b506104ec611a18565b34801561094957600080fd5b506105ef611a2a565b34801561095e57600080fd5b5061067c6004803603602081101561097557600080fd5b50356001600160a01b0316611b1e565b34801561099157600080fd5b5061067c611b3c565b3480156109a657600080fd5b506104ec600480360360208110156109bd57600080fd5b5035611b4b565b3480156109d057600080fd5b506104ec600480360360208110156109e757600080fd5b50356001600160a01b0316611c44565b348015610a0357600080fd5b5061067c611c4e565b348015610a1857600080fd5b506104ec60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001351515611c5d565b348015610a5357600080fd5b506105ef611cce565b348015610a6857600080fd5b506104ec611cd4565b348015610a7d57600080fd5b50610aa460048036036020811015610a9457600080fd5b50356001600160a01b0316611cfb565b6040805163ffffffff9092168252519081900360200190f35b348015610ac957600080fd5b506104ec60048036036020811015610ae057600080fd5b50356001600160a01b0316611d13565b348015610afc57600080fd5b506105ef60048036036020811015610b1357600080fd5b50356001600160a01b0316611d7d565b348015610b2f57600080fd5b50610b6660048036036060811015610b4657600080fd5b506001600160a01b03813581169160208101359091169060400135611d98565b60408051938452602084019290925282820152519081900360600190f35b348015610b9057600080fd5b506104ec60048036036020811015610ba757600080fd5b50356001600160a01b0316611da4565b348015610bc357600080fd5b506105ef60048036036040811015610bda57600080fd5b506001600160a01b038135169060200135611df3565b348015610bfc57600080fd5b506104ec60048036036040811015610c1357600080fd5b506001600160a01b038135169060200135611ffb565b348015610c3557600080fd5b506104ec60048036036020811015610c4c57600080fd5b50356001600160a01b0316612009565b348015610c6857600080fd5b506104ec612071565b348015610c7d57600080fd5b506104ec60048036036020811015610c9457600080fd5b50356001600160a01b031661226e565b348015610cb057600080fd5b506104ec60048036036020811015610cc757600080fd5b50356122dd565b348015610cda57600080fd5b506105ef60048036036020811015610cf157600080fd5b50356001600160a01b03166123ae565b348015610d0d57600080fd5b5061067c6123c0565b348015610d2257600080fd5b506104ec60048036036020811015610d3957600080fd5b50356001600160a01b03166123cf565b348015610d5557600080fd5b506105ef612437565b348015610d6a57600080fd5b506104ec60048036036020811015610d8157600080fd5b50356001600160a01b0316612482565b348015610d9d57600080fd5b506105036124ea565b348015610db257600080fd5b506105ef61254b565b348015610dc757600080fd5b506104ec60048036036020811015610dde57600080fd5b5035612551565b348015610df157600080fd5b506105b160048036036020811015610e0857600080fd5b50356001600160a01b0316612648565b348015610e2457600080fd5b506104ec60048036036020811015610e3b57600080fd5b50356001600160a01b031661265d565b348015610e5757600080fd5b506105b160048036036040811015610e6e57600080fd5b506001600160a01b0381351690602001356126c5565b348015610e9057600080fd5b506104ec612733565b348015610ea557600080fd5b506105ef612805565b348015610eba57600080fd5b506105b160048036036040811015610ed157600080fd5b506001600160a01b038135169060200135612815565b348015610ef357600080fd5b506105ef612829565b348015610f0857600080fd5b506105ef61282f565b348015610f1d57600080fd5b506105ef60048036036020811015610f3457600080fd5b50356001600160a01b0316612850565b348015610f5057600080fd5b5061067c6128b4565b348015610f6557600080fd5b506104ec60048036036020811015610f7c57600080fd5b50356128c3565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b50356001600160a01b03166129ca565b348015610fc257600080fd5b506104ec6129dd565b348015610fd757600080fd5b506104ec60048036036040811015610fee57600080fd5b506001600160a01b0381351690602001351515612a04565b34801561101257600080fd5b506104ec600480360360c081101561102957600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135612a75565b34801561106657600080fd5b506105ef612ceb565b34801561107b57600080fd5b506104ec612d74565b34801561109057600080fd5b506105b1612e1c565b3480156110a557600080fd5b506105b1600480360360208110156110bc57600080fd5b50356001600160a01b0316612e25565b3480156110d857600080fd5b5061067c612e3a565b3480156110ed57600080fd5b506104ec6004803603602081101561110457600080fd5b5035612e49565b34801561111757600080fd5b506105ef6004803603604081101561112e57600080fd5b506001600160a01b0381358116916020013516612eea565b34801561115257600080fd5b506105ef612f15565b34801561116757600080fd5b506105ef612f1b565b34801561117c57600080fd5b506105b1612f21565b34801561119157600080fd5b506105ef612f31565b3480156111a657600080fd5b506105ef612f4c565b3480156111bb57600080fd5b506105b1600480360360208110156111d257600080fd5b50356001600160a01b0316612f52565b3480156111ee57600080fd5b506105ef612f67565b34801561120357600080fd5b506112366004803603604081101561121a57600080fd5b5080356001600160a01b0316906020013563ffffffff16612f6d565b6040805163ffffffff909316835260208301919091528051918290030190f35b34801561126257600080fd5b506104ec612f9a565b34801561127757600080fd5b506104ec6004803603602081101561128e57600080fd5b5035612fc1565b3480156112a157600080fd5b506105ef613092565b3480156112b657600080fd5b506104ec600480360360208110156112cd57600080fd5b50356001600160a01b0316613098565b3480156112e957600080fd5b506105b16004803603602081101561130057600080fd5b50356001600160a01b0316613100565b34801561131c57600080fd5b506105ef613115565b34801561133157600080fd5b506105ef61311b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050905090565b60006113e46113dd613121565b8484613125565b5060015b92915050565b6113fe6113f9613121565b6129ca565b6114395760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6025805460ff19169055565b601d5481565b6114566113f9613121565b6114915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6114be6113f9613121565b6114f95760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b600e546001600160a01b031681565b6115346113f9613121565b61156f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3b63ffffffff16151590565b600a546001600160a01b031681565b601e5481565b60025490565b600d546001600160a01b031681565b60405180604361450782396043019050604051809103902081565b60006115ef848484613211565b611665846115fb613121565b6116608560405180606001604052806028815260200161456b602891396001600160a01b038a16600090815260016020526040812090611639613121565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61352816565b613125565b5060019392505050565b600c54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b1580156116bd57600080fd5b505afa1580156116d1573d6000803e3d6000fd5b505050506040513d60208110156116e757600080fd5b5051905090565b6116f96113f9613121565b6117345760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b60648110156117745760405162461bcd60e51b81526004018080602001828103825260248152602001806147376024913960400191505060405180910390fd5b601755565b60055460ff1690565b6011546001600160a01b031681565b60006113e461179e613121565b8461166085600160006117af613121565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6135bf16565b6117f06113f9613121565b61182b5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b68056bc75e2d63100000811115611889576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206f76657220313030207472616e73616374696f6e73604482015290519081900360640190fd5b602255565b6118996113f9613121565b6118d45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6119016113f9613121565b61193c5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a544790611954906001600160a01b0316836113d0565b50600a546040805163f305d71960e01b8152306004820181905260248201869052600060448301819052606483015260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b50505050506040513d60608110156119ef57600080fd5b50505050565b611a06611a00613121565b82613619565b50565b600c546001600160a01b031681565b611a28611a23613121565b613649565b565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7b57600080fd5b505afa158015611a8f573d6000803e3d6000fd5b505050506040513d6020811015611aa557600080fd5b505190506000611ab361166f565b90506000611adc83611ad08464e8d4a5100063ffffffff61369116565b9063ffffffff6136ea16565b600c54909150600090611af7906001600160a01b0316611d7d565b90506000611b1464e8d4a51000611ad0848663ffffffff61369116565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b600b546001600160a01b031681565b611b566113f9613121565b611b915760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611c20811115611be8576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f766572203220686f757220696e74657276616c00604482015290519081900360640190fd5b610e10811015611c3f576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420756e646572203120686f757220696e74657276616c604482015290519081900360640190fd5b601e55565b611a06338261372c565b6012546001600160a01b031681565b611c686113f9613121565b611ca35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b60245481565b611a28611cdf613121565b600f546001600160a01b031669021e19e0c9bab2400000613125565b60086020526000908152604090205463ffffffff1681565b611d1e6113f9613121565b611d595760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b50600092839250829150565b611daf6113f9613121565b611dea5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b611a06816137bb565b6000438210611e335760405162461bcd60e51b81526004018080602001828103825260328152602001806146b46032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611e615760009150506113e8565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611ed0576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff168352929052206001015490506113e8565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015611f0b5760009150506113e8565b600060001982015b8163ffffffff168163ffffffff161115611fc457600282820363ffffffff16048103611f3d6141f0565b506001600160a01b038716600090815260076020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415611f9f576020015194506113e89350505050565b805163ffffffff16871115611fb657819350611fbd565b6001820392505b5050611f13565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6120058282613803565b5050565b6120146113f9613121565b61204f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b601c5461207d33611d7d565b10156120ba5760405162461bcd60e51b815260040180806020018281038252602b8152602001806143ba602b913960400191505060405180910390fd5b601e54601d540142116120fe5760405162461bcd60e51b81526004018080602001828103825260258152602001806143e56025913960400191505060405180910390fd5b42601d5560235461210d613857565b6121168161386b565b601954600c54604080516370a0823160e01b815230600482015290516000936121a59390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561216d57600080fd5b505afa158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b50519063ffffffff6136ea16565b90506121b08161391c565b5060255460185460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561220657600080fd5b505af115801561221a573d6000803e3d6000fd5b505050506040513d602081101561223057600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b6122796113f9613121565b6122b45760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03166000908152601460205260409020805460ff19811660ff90911615179055565b6122e86113f9613121565b6123235760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b80156123a957600a8110156123695760405162461bcd60e51b81526004018080602001828103825260248152602001806144306024913960400191505060405180910390fd5b60648111156123a95760405162461bcd60e51b815260040180806020018281038252602481526020018061466b6024913960400191505060405180910390fd5b601955565b60096020526000908152604090205481565b600f546001600160a01b031681565b6123da6113f9613121565b6124155760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116bd57600080fd5b61248d6113f9613121565b6124c85760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113c65780601f1061139b576101008083540402835291602001916113c6565b60185481565b61255c6113f9613121565b6125975760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600a8110156125ed576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f7665722031302520616e746944756d7046656500604482015290519081900360640190fd5b6064811115612643576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742073657420756e64657220312520616e746944756d7046656500604482015290519081900360640190fd5b601b55565b60136020526000908152604090205460ff1681565b6126686113f9613121565b6126a35760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60006113e46126d2613121565b846116608560405180606001604052806025815260200161479560259139600160006126fc613121565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61352816565b61273e6113f9613121565b6127795760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b601154600d546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b505af11580156127ef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b600061281030611d7d565b905090565b60006113e4612822613121565b8484613211565b601b5481565b600061281061283c61166f565b612844612437565b9063ffffffff6135bf16565b6001600160a01b03811660009081526008602052604081205463ffffffff168061287b5760006128ad565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6010546001600160a01b031681565b6128ce6113f9613121565b6129095760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b683635c9adc5dea00000811115612967576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206f76657220313030302054525920746f6b656e7300604482015290519081900360640190fd5b6801158e460913d000008110156129c5576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f742073657420756e6465722032302054525920746f6b656e730000604482015290519081900360640190fd5b601c55565b60006113e860268363ffffffff613a5016565b611a286129e8613121565b6010546001600160a01b031669021e19e0c9bab2400000613125565b612a0f6113f9613121565b612a4a5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b600060405180806145076043913960430190506040518091039020612a9861133a565b80519060200120612aa7613ab7565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012090506000604051808061475b603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015612be5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c375760405162461bcd60e51b81526004018080602001828103825260318152602001806143676031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914612c955760405162461bcd60e51b815260040180806020018281038252602d81526020018061470a602d913960400191505060405180910390fd5b87421115612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146196031913960400191505060405180910390fd5b612cde818b61372c565b505050505b505050505050565b600080600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d6020811015612d6657600080fd5b505190506000611ab361282f565b612d7f6113f9613121565b612dba5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6011546010546040805163095ea7b360e01b81526001600160a01b03928316600482015269152d02c7e14af680000060248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156127db57600080fd5b60255460ff1681565b60146020526000908152604090205460ff1681565b601f546001600160a01b031681565b612e546113f9613121565b612e8f5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b6064811015612ee5576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420736574206f766572203125206275726e547846656500000000604482015290519081900360640190fd5b601a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60205481565b60195481565b601f54600160a01b900460ff1681565b60405180603a61475b8239603a019050604051809103902081565b601c5481565b60156020526000908152604090205460ff1681565b60175481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b611a28612fa5613121565b600d546001600160a01b031669021e19e0c9bab2400000613125565b612fcc6113f9613121565b6130075760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b801561308d57601981111561304d5760405162461bcd60e51b815260040180806020018281038252602a815260200180614454602a913960400191505060405180910390fd5b600a81101561308d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061433d602a913960400191505060405180910390fd5b601855565b60235481565b6130a36113f9613121565b6130de5760405162461bcd60e51b81526004018080602001828103825260408152602001806145b56040913960400191505060405180910390fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60166020526000908152604090205460ff1681565b601a5481565b60225481565b3390565b6001600160a01b03831661316a5760405162461bcd60e51b81526004018080602001828103825260248152602001806146e66024913960400191505060405180910390fd5b6001600160a01b0382166131af5760405162461bcd60e51b81526004018080602001828103825260228152602001806143986022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60255460ff16801561324157506001600160a01b03831660009081526014602052604090205460ff161515600114155b801561326b57506001600160a01b03821660009081526014602052604090205460ff161515600114155b156132a75760405162461bcd60e51b815260040180806020018281038252602981526020018061447e6029913960400191505060405180910390fd5b6001600160a01b03831660009081526016602052604090205460ff161515600114806132f057506001600160a01b03821660009081526016602052604090205460ff1615156001145b1561333b576040805162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260136020526040812054819060ff1615801561337f57506001600160a01b03841660009081526013602052604090205460ff16155b1561351657601a54156133cd57601a546133a090849063ffffffff6136ea16565b91506133b2838363ffffffff613abb16565b601f549093506133cd9086906001600160a01b031684613afd565b60175415613498576021546020546133ea9163ffffffff6135bf16565b60205560175461340190849063ffffffff6136ea16565b9050613413838263ffffffff613abb16565b9250613420853083613afd565b602480548201905560225460205414156134985761343d85611591565b15613480576040805162461bcd60e51b815260206004820152600e60248201526d34b72b30b634b21031b0b63632b960911b604482015290519081900360640190fd5b61348d3086602454613afd565b600060248190556020555b601b54158015906134c157506001600160a01b03841660009081526015602052604090205460ff165b156135065760006134dd601b54856136ea90919063ffffffff16565b602380548201905590506134f7848263ffffffff613abb16565b9350613504863083613afd565b505b613511858585613afd565b613521565b613521858585613afd565b5050505050565b600081848411156135b75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561357c578181015183820152602001613564565b50505050905090810190601f1680156135a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156128ad576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604081205461363f92169083613b3f565b6120058282613c88565b61365a60268263ffffffff613d8416565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826136a0575060006113e8565b828202828482816136ad57fe5b04146128ad5760405162461bcd60e51b815260040180806020018281038252602181526020018061454a6021913960400191505060405180910390fd5b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613deb565b6001600160a01b038083166000908152600660205260408120549091169061375384611d7d565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119ef828483613b3f565b6137cc60268263ffffffff613e5016565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61380d8282613619565b61200582613819613121565b611660846040518060600160405280602481526020016145f5602491396001600160a01b038816600090815260016020526040812090611639613121565b601e54611c3f90601463ffffffff6135bf16565b600d546001600160a01b031615611a0657600d5460408051632d4f5b0960e21b81526004810184905290516001600160a01b039092169163b53d6c249160248082019260009290919082900301818387803b1580156138c957600080fd5b505af11580156138dd573d6000803e3d6000fd5b5050600060235550506040805182815290517fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd49181900360200190a150565b600c54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b15801561397857600080fd5b505af115801561398c573d6000803e3d6000fd5b505050506040513d60208110156139a257600080fd5b5050600a546025546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b158015613a1e57600080fd5b505af1158015613a32573d6000803e3d6000fd5b505050506040513d6020811015613a4857600080fd5b505192915050565b60006001600160a01b038216613a975760405162461bcd60e51b81526004018080602001828103825260228152602001806145936022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b60006128ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613528565b6001600160a01b03808416600090815260066020526040808220548584168352912054613b2f92918216911683613b3f565b613b3a838383613ed1565b505050565b816001600160a01b0316836001600160a01b031614158015613b615750600081115b15613b3a576001600160a01b03831615613bf9576001600160a01b03831660009081526008602052604081205463ffffffff169081613ba1576000613bd3565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613be7828563ffffffff613abb16565b9050613bf58684848461402d565b5050505b6001600160a01b03821615613b3a576001600160a01b03821660009081526008602052604081205463ffffffff169081613c34576000613c66565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000613c7a828563ffffffff6135bf16565b9050612ce38584848461402d565b6001600160a01b038216613ccd5760405162461bcd60e51b815260040180806020018281038252602181526020018061464a6021913960400191505060405180910390fd5b613d108160405180606001604052806022815260200161431b602291396001600160a01b038516600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038316600090815260208190526040902055600254613d3c908263ffffffff613abb16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b613d8e8282613a50565b613dc95760405162461bcd60e51b81526004018080602001828103825260218152602001806144a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183613e3a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b506000838581613e4657fe5b0495945050505050565b613e5a8282613a50565b15613eac576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316613f165760405162461bcd60e51b815260040180806020018281038252602581526020018061468f6025913960400191505060405180910390fd5b6001600160a01b038216613f5b5760405162461bcd60e51b81526004018080602001828103825260238152602001806142f86023913960400191505060405180910390fd5b613f9e8160405180606001604052806026815260200161440a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61352816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613fd3908263ffffffff6135bf16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000614051436040518060600160405280603f81526020016144c8603f9139614192565b905060008463ffffffff1611801561409a57506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b156140d7576001600160a01b038516600090815260076020908152604080832063ffffffff60001989011684529091529020600101829055614148565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106141e85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561357c578181015183820152602001613564565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b038216614262576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254614275908263ffffffff6135bf16565b6002556001600160a01b0382166000908152602081905260409020546142a1908263ffffffff6135bf16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636552657761726444697669736f72206f766572203130254552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373596f7520646f206e6f7420686176652074686520726571756972656420616d6f756e74206f66205452592e497420697320746f6f206561726c7920746f2075736520746869732066756e6374696f6e2e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636543616e6e6f742073657420726562616c616e636544697669736f72206f7665722031302543616e6e6f742073657420726562616c616e636552657761726444697669736f7220756e6465722034255472616e736665727320617265206c6f636b656420756e74696c2061667465722070726573616c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f742073657420726562616c616e636544697669736f7220756e64657220312545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636543616e6e6f7420736574206f76657220312520526577617264506f6f6c44697669736f7244656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a7231582060c8a5ac2984fb841a2e73eeac1a1330d67d5f7302870f6d658d4caef7ccadcf64736f6c63430005110032
Deployed Bytecode Sourcemap
30178:5300:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11926:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11926:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7994:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7994:152:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;34674:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34674:86:0;;;:::i;13313:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13313:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;32711:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32711:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32711:99:0;-1:-1:-1;;;;;32711:99:0;;:::i;34159:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34159:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34159:106:0;-1:-1:-1;;;;;34159:106:0;;:::i;12668:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12668:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;12668:29:0;;;;;;;;;;;;;;31145:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31145:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31145:133:0;-1:-1:-1;;;;;31145:133:0;;:::i;14973:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14973:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14973:198:0;-1:-1:-1;;;;;14973:198:0;;:::i;12437:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12437:75:0;;;:::i;13348:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13348:32:0;;;:::i;7469:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7469:91:0;;;:::i;12638:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12638:23:0;;;:::i;22705:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22705:122:0;;;:::i;8158:304::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8158:304:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8158:304:0;;;;;;;;;;;;;;;;;:::i;19614:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19614:125:0;;;:::i;31768:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31768:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31768:195:0;;:::i;12112:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12112:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12794:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:39:0;;;:::i;8470:210::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8470:210:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8470:210:0;;;;;;;;:::i;31571:189::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31571:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31571:189:0;;:::i;32465:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32465:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32465:131:0;-1:-1:-1;;;;;32465:131:0;;:::i;30388:419::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30388:419:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30388:419:0;;:::i;10743:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10743:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10743:83:0;;:::i;12602:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12602:28:0;;;:::i;4422:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4422:95:0;;;:::i;19025:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19025:443:0;;;:::i;23225:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23225:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23225:149:0;-1:-1:-1;;;;;23225:149:0;;:::i;12519:76::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12519:76:0;;;:::i;33392:268::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33392:268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33392:268:0;;:::i;23382:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23382:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23382:104:0;-1:-1:-1;;;;;23382:104:0;;:::i;12840:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12840:31:0;;;:::i;34408:115::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34408:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34408:115:0;;;;;;;;;;:::i;13661:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13661:29:0;;;:::i;31038:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31038:94:0;;;:::i;22647:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22647:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22647:49:0;-1:-1:-1;;;;;22647:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;34039:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34039:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34039:108:0;-1:-1:-1;;;;;34039:108:0;;:::i;7568:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7568:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7568:110:0;-1:-1:-1;;;;;7568:110:0;;:::i;14816:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14816:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14816:145:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4298:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4298:116:0;-1:-1:-1;;;;;4298:116:0;;:::i;24976:1149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24976:1149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24976:1149:0;;;;;;;;:::i;10834:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10834:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10834:103:0;;;;;;;;:::i;32358:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32358:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32358:99:0;-1:-1:-1;;;;;32358:99:0;;:::i;16897:708::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16897:708:0;;;:::i;34277:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34277:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34277:118:0;-1:-1:-1;;;;;34277:118:0;;:::i;31976:370::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31976:370:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31976:370:0;;:::i;22962:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22962:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22962:39:0;-1:-1:-1;;;;;22962:39:0;;:::i;12704:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12704:21:0;;;:::i;32823:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32823:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32823:101:0;-1:-1:-1;;;;;32823:101:0;;:::i;19476:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19476:130:0;;;:::i;31425:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31425:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31425:138:0;-1:-1:-1;;;;;31425:138:0;;:::i;12017:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12017:87:0;;;:::i;13115:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13115:37:0;;;:::i;35230:245::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35230:245:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35230:245:0;;:::i;12878:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12878:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12878:43:0;-1:-1:-1;;;;;12878:43:0;;:::i;31286:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31286:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31286:127:0;-1:-1:-1;;;;;31286:127:0;;:::i;8688:261::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8688:261:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8688:261:0;;;;;;;;:::i;33067:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33067:119:0;;;:::i;18458:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18458:108:0;;;:::i;7686:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7686:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7686:158:0;;;;;;;;:::i;13233:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13233:26:0;;;:::i;19747:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19747:125:0;;;:::i;24713:255::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24713:255:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24713:255:0;-1:-1:-1;;;;;24713:255:0;;:::i;12733:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12733:49:0;;;:::i;34772:264::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34772:264:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34772:264:0;;:::i;4167:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4167:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4167:125:0;-1:-1:-1;;;;;4167:125:0;;:::i;30932:96::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30932:96:0;;;:::i;34534:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34534:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34534:127:0;;;;;;;;;;:::i;23494:1211::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23494:1211:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;23494:1211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18574:443::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18574:443:0;;;:::i;32937:116::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32937:116:0;;;:::i;13703:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13703:18:0;;;:::i;12928:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12928:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12928:40:0;-1:-1:-1;;;;;12928:40:0;;:::i;13387:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13387:68:0;;;:::i;35048:170::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35048:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35048:170:0;;:::i;7852:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7852:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7852:134:0;;;;;;;;;;:::i;13496:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13496:23:0;;;:::i;13159:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13159:31:0;;;:::i;13462:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13462:20:0;;;:::i;22836:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22836:117:0;;;:::i;13273:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13273:33:0;;;:::i;12975:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12975:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12975:38:0;-1:-1:-1;;;;;12975:38:0;;:::i;13076:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13076:32:0;;;:::i;22568:70::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22568:70:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22568:70:0;;-1:-1:-1;;;;;22568:70:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;30819:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30819:100:0;;;:::i;33673:354::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33673:354:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33673:354:0;;:::i;13626:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13626:28:0;;;:::i;32608:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32608:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32608:95:0;-1:-1:-1;;;;;32608:95:0;;:::i;13021:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13021:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13021:41:0;-1:-1:-1;;;;;13021:41:0;;:::i;13198:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13198:24:0;;;:::i;13566:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13566:46:0;;;:::i;11926:83::-;11996:5;11989:12;;;;;;;;-1:-1:-1;;11989:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11963:13;;11989:12;;11996:5;;11989:12;;11996:5;11989:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11926:83;:::o;7994:152::-;8060:4;8077:39;8086:12;:10;:12::i;:::-;8100:7;8109:6;8077:8;:39::i;:::-;-1:-1:-1;8134:4:0;7994:152;;;;;:::o;34674:86::-;4040:30;4057:12;:10;:12::i;:::-;4040:16;:30::i;:::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34738:6;:14;;-1:-1:-1;;34738:14:0;;;34674:86::o;13313:28::-;;;;:::o;32711:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32784:6;:16;;-1:-1:-1;;;;;;32784:16:0;-1:-1:-1;;;;;32784:16:0;;;;;;;;;;32711:99::o;34159:106::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34231:18:0;34252:5;34231:18;;;:11;:18;;;;;:26;;-1:-1:-1;;34231:26:0;;;34159:106::o;12668:29::-;;;-1:-1:-1;;;;;12668:29:0;;:::o;31145:133::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31236:15;:34;;-1:-1:-1;;;;;;31236:34:0;-1:-1:-1;;;;;31236:34:0;;;;;;;;;;31145:133::o;14973:198::-;15107:18;15154:8;;;;;14973:198::o;12437:75::-;;;-1:-1:-1;;;;;12437:75:0;;:::o;13348:32::-;;;;:::o;7469:91::-;7540:12;;7469:91;:::o;12638:23::-;;;-1:-1:-1;;;;;12638:23:0;;:::o;22705:122::-;22747:80;;;;;;;;;;;;;;;;;;22705:122;:::o;8158:304::-;8247:4;8264:36;8274:6;8282:9;8293:6;8264:9;:36::i;:::-;8311:121;8320:6;8328:12;:10;:12::i;:::-;8342:89;8380:6;8342:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8342:19:0;;;;;;:11;:19;;;;;;8362:12;:10;:12::i;:::-;-1:-1:-1;;;;;8342:33:0;;;;;;;;;;;;-1:-1:-1;8342:33:0;;;:89;;:37;:89;:::i;:::-;8311:8;:121::i;:::-;-1:-1:-1;8450:4:0;8158:304;;;;;:::o;19614:125::-;19695:13;;19689:42;;;-1:-1:-1;;;19689:42:0;;19662:7;19689:42;;;;;;;;19662:7;;-1:-1:-1;;;;;19695:13:0;;19689:30;;:42;;;;;;;;;;;;;;;19695:13;19689:42;;;5:2:-1;;;;30:1;27;20:12;5:2;19689:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19689:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19689:42:0;;-1:-1:-1;19614:125:0;:::o;31768:195::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31867:3;31858:5;:12;;31850:61;;;;-1:-1:-1;;;31850:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31930:17;:25;31768:195::o;12112:83::-;12178:9;;;;12112:83;:::o;12794:39::-;;;-1:-1:-1;;;;;12794:39:0;;:::o;8470:210::-;8550:4;8567:83;8576:12;:10;:12::i;:::-;8590:7;8599:50;8638:10;8599:11;:25;8611:12;:10;:12::i;:::-;-1:-1:-1;;;;;8599:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8599:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;31571:189::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31669:6;31656:9;:19;;31648:64;;;;;-1:-1:-1;;;31648:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31731:8;:20;31571:189::o;32465:131::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32554:14;:32;;-1:-1:-1;;;;;;32554:32:0;-1:-1:-1;;;;;32554:32:0;;;;;;;;;;32465:131::o;30388:419::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30542:15;;30494:21;;30526:53;;-1:-1:-1;;;;;30542:15:0;30560:18;30526:7;:53::i;:::-;-1:-1:-1;30609:15:0;;30590:208;;;-1:-1:-1;;;30590:208:0;;30681:4;30590:208;;;;;;;;;;;;30609:15;30590:208;;;;;;;;;;;;;;30794:3;30590:208;;;;;;-1:-1:-1;;;;;30609:15:0;;;;30590:51;;30648:9;;30590:208;;;;;;;;;;;;;;30648:9;30609:15;30590:208;;;5:2:-1;;;;30:1;27;20:12;5:2;30590:208:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30590:208:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;30388:419:0:o;10743:83::-;10791:27;10797:12;:10;:12::i;:::-;10811:6;10791:5;:27::i;:::-;10743:83;:::o;12602:28::-;;;-1:-1:-1;;;;;12602:28:0;;:::o;4422:95::-;4474:35;4496:12;:10;:12::i;:::-;4474:21;:35::i;:::-;4422:95::o;19025:443::-;19072:7;19092:21;19122:13;;;;;;;;;-1:-1:-1;;;;;19122:13:0;-1:-1:-1;;;;;19116:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19116:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19116:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19116:34:0;;-1:-1:-1;19161:17:0;19181;:15;:17::i;:::-;19161:37;-1:-1:-1;19209:30:0;19242:38;19266:13;19242:19;19161:37;19256:4;19242:19;:13;:19;:::i;:::-;:23;:38;:23;:38;:::i;:::-;19328:13;;19209:71;;-1:-1:-1;19293:22:0;;19318:24;;-1:-1:-1;;;;;19328:13:0;19318:9;:24::i;:::-;19293:49;-1:-1:-1;19353:21:0;19377:52;19424:4;19377:42;19293:49;19396:22;19377:42;:18;:42;:::i;:52::-;19353:76;-1:-1:-1;;;;;;19025:443:0;:::o;23225:149::-;-1:-1:-1;;;;;23345:21:0;;;23313:7;23345:21;;;:10;:21;;;;;;;;23225:149::o;12519:76::-;;;-1:-1:-1;;;;;12519:76:0;;:::o;33392:268::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33498:4;33486:9;:16;;33478:60;;;;;-1:-1:-1;;;33478:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33571:4;33559:9;:16;;33551:61;;;;;-1:-1:-1;;;33551:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33623:17;:29;33392:268::o;23382:104::-;23446:32;23456:10;23468:9;23446;:32::i;12840:31::-;;;-1:-1:-1;;;;;12840:31:0;;:::o;34408:115::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34493:13:0;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;34493:21:0;;;;;;;;;;34408:115::o;13661:29::-;;;;:::o;31038:94::-;31084:40;31093:12;:10;:12::i;:::-;31107:6;;-1:-1:-1;;;;;31107:6:0;31115:8;31084;:40::i;22647:49::-;;;;;;;;;;;;;;;:::o;34039:108::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34114:18:0;;;;;:11;:18;;;;;:25;;-1:-1:-1;;34114:25:0;34135:4;34114:25;;;34039:108::o;7568:110::-;-1:-1:-1;;;;;7652:18:0;7625:7;7652:18;;;;;;;;;;;;7568:110::o;14816:145::-;-1:-1:-1;14902:16:0;;;;-1:-1:-1;14902:16:0;;-1:-1:-1;14816:145:0:o;4298:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4379:27;4398:7;4379:18;:27::i;24976:1149::-;25084:7;25131:12;25117:11;:26;25109:89;;;;-1:-1:-1;;;25109:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25233:23:0;;25211:19;25233:23;;;:14;:23;;;;;;;;25271:17;25267:58;;25312:1;25305:8;;;;;25267:58;-1:-1:-1;;;;;25341:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;25362:16:0;;25341:38;;;;;;;;;:48;;:63;-1:-1:-1;25337:147:0;;-1:-1:-1;;;;;25428:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;25449:16:0;;;;25428:38;;;;;;;;25464:1;25428:44;;;-1:-1:-1;25421:51:0;;25337:147;-1:-1:-1;;;;;25500:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;25496:88:0;;;25571:1;25564:8;;;;;25496:88;25596:12;-1:-1:-1;;25638:16:0;;25665:402;25680:5;25672:13;;:5;:13;;;25665:402;;;25744:1;25727:13;;;25726:19;;;25718:27;;25761:20;;:::i;:::-;-1:-1:-1;;;;;;25784:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;25761:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25831:27;;25827:229;;;25886:8;;;;-1:-1:-1;25879:15:0;;-1:-1:-1;;;;25879:15:0;25827:229;25920:12;;:26;;;-1:-1:-1;25916:140:0;;;25975:6;25967:14;;25916:140;;;26039:1;26030:6;:10;26022:18;;25916:140;25665:402;;;;;-1:-1:-1;;;;;;26084:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;-1:-1:-1;;24976:1149:0;;;;:::o;10834:103::-;10903:26;10913:7;10922:6;10903:9;:26::i;:::-;10834:103;;:::o;32358:99::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32432:8;:17;;-1:-1:-1;;;;;;32432:17:0;-1:-1:-1;;;;;32432:17:0;;;;;;;;;;32358:99::o;16897:708::-;16978:18;;16953:21;16963:10;16953:9;:21::i;:::-;:43;;16945:99;;;;-1:-1:-1;;;16945:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17097:17;;17081:13;;:33;17063:15;:51;17055:101;;;;-1:-1:-1;;;17055:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17184:15;17168:13;:31;17236:9;;17258:23;:21;:23::i;:::-;17300:31;17315:15;17300:14;:31::i;:::-;17427:16;;17383:13;;17377:45;;;-1:-1:-1;;;17377:45:0;;17416:4;17377:45;;;;;;17352:22;;17377:67;;17427:16;;-1:-1:-1;;;;;17383:13:0;;;;17377:30;;:45;;;;;;;;;;;;;;;17383:13;17377:45;;;5:2:-1;;;;30:1;27;20:12;5:2;17377:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17377:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17377:45:0;;:67;:49;:67;:::i;:::-;17352:92;;17465:28;17478:14;17465:12;:28::i;:::-;-1:-1:-1;17519:8:0;;17538:22;;17519:42;;;-1:-1:-1;;;17519:42:0;;;;;;;;;;-1:-1:-1;;17519:8:0;;;-1:-1:-1;;;;;17519:8:0;;:18;;:42;;;;;;;;;;;;;;-1:-1:-1;17519:8:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;17519:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17519:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17519:42:0;17579:18;;;;;;;;17519:42;;-1:-1:-1;17579:18:0;;;;;;17519:42;17579:18;;;16897:708;;;:::o;34277:118::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34372:15:0;;;;;:8;:15;;;;;;;-1:-1:-1;;34353:34:0;;34372:15;;;;34371:16;34353:34;;;34277:118::o;31976:370::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32073:22;;32069:215;;32141:2;32120:17;:23;;32112:72;;;;-1:-1:-1;;;32112:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32228:3;32207:17;:24;;32199:73;;;;-1:-1:-1;;;32199:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32302:16;:36;31976:370::o;22962:39::-;;;;;;;;;;;;;:::o;12704:21::-;;;-1:-1:-1;;;;;12704:21:0;;:::o;32823:101::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32898:7;:18;;-1:-1:-1;;;;;;32898:18:0;-1:-1:-1;;;;;32898:18:0;;;;;;;;;;32823:101::o;19476:130::-;19559:13;;19553:45;;;-1:-1:-1;;;19553:45:0;;19592:4;19553:45;;;;;;19526:7;;-1:-1:-1;;;;;19559:13:0;;19553:30;;:45;;;;;;;;;;;;;;19559:13;19553:45;;;5:2:-1;;;;30:1;27;20:12;31425:138:0;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31518:16;:36;;-1:-1:-1;;;;;;31518:36:0;-1:-1:-1;;;;;31518:36:0;;;;;;;;;;31425:138::o;12017:87::-;12089:7;12082:14;;;;;;;;-1:-1:-1;;12082:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12056:13;;12082:14;;12089:7;;12082:14;;12089:7;12082:14;;;;;;;;;;;;;;;;;;;;;;;;13115:37;;;;:::o;35230:245::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35327:2;35316:7;:13;;35308:57;;;;;-1:-1:-1;;;35308:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35396:3;35385:7;:14;;35377:58;;;;;-1:-1:-1;;;35377:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35446:11;:21;35230:245::o;12878:43::-;;;;;;;;;;;;;;;:::o;31286:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31373:13;:30;;-1:-1:-1;;;;;;31373:30:0;-1:-1:-1;;;;;31373:30:0;;;;;;;;;;31286:127::o;8688:261::-;8773:4;8790:129;8799:12;:10;:12::i;:::-;8813:7;8822:96;8861:15;8822:96;;;;;;;;;;;;;;;;;:11;:25;8834:12;:10;:12::i;:::-;-1:-1:-1;;;;;8822:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8822:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;33067:119::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33133:7;;33150:8;;33127:43;;;-1:-1:-1;;;33127:43:0;;-1:-1:-1;;;;;33150:8:0;;;33127:43;;;;33160:9;33127:43;;;;;;33133:7;;;;;33127:22;;:43;;;;;;;;;;;;;;33133:7;;33127:43;;;5:2:-1;;;;30:1;27;20:12;5:2;33127:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33127:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;18458:108:0;18507:7;18534:24;18552:4;18534:9;:24::i;:::-;18527:31;;18458:108;:::o;7686:158::-;7755:4;7772:42;7782:12;:10;:12::i;:::-;7796:9;7807:6;7772:9;:42::i;13233:26::-;;;;:::o;19747:125::-;19795:7;19822:42;19846:17;:15;:17::i;:::-;19822:19;:17;:19::i;:::-;:23;:42;:23;:42;:::i;24713:255::-;-1:-1:-1;;;;;24852:23:0;;24805:7;24852:23;;;:14;:23;;;;;;;;24893:16;:67;;24959:1;24893:67;;;-1:-1:-1;;;;;24912:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;24933:16:0;;24912:38;;;;;;;;24948:1;24912:44;;24893:67;24886:74;24713:255;-1:-1:-1;;;24713:255:0:o;12733:49::-;;;-1:-1:-1;;;;;12733:49:0;;:::o;34772:264::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34876:7;34865;:18;;34857:62;;;;;-1:-1:-1;;;34857:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;34949:5;34938:7;:16;;34930:59;;;;;-1:-1:-1;;;34930:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35000:18;:28;34772:264::o;4167:125::-;4231:4;4255:29;:16;4276:7;4255:29;:20;:29;:::i;30932:96::-;30980:40;30989:12;:10;:12::i;:::-;31003:6;;-1:-1:-1;;;;;31003:6:0;31011:8;30980;:40::i;34534:127::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34628:16:0;;;;;;;;:9;:16;;;;;:24;;-1:-1:-1;;34628:24:0;;;;;;;;;;34534:127::o;23494:1211::-;23687:23;22747:80;;;;;;;;;;;;;;;;;;;23816:6;:4;:6::i;:::-;23800:24;;;;;;23843:12;:10;:12::i;:::-;23882:4;23737:165;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23737:165:0;-1:-1:-1;;;;;23737:165:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;23737:165:0;;;23713:200;;;;;;23687:226;;23926:18;22882:71;;;;;;;;;;;;;;;;;;;23971:140;;;;;;;;-1:-1:-1;;;;;23971:140:0;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;23971:140:0;;;;;23947:175;;;;;;-1:-1:-1;;;24176:123:0;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;24176:123:0;;;;;;24152:158;;;;;;;;;-1:-1:-1;24343:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23947:175;;-1:-1:-1;24152:158:0;;-1:-1:-1;;;24343:26:0;;;;;;;23971:140;-1:-1:-1;;24343:26:0;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;24343:26:0;;-1:-1:-1;;24343:26:0;;;-1:-1:-1;;;;;;;24388:23:0;;24380:85;;;;-1:-1:-1;;;24380:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24493:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;24484:28;;24476:86;;;;-1:-1:-1;;;24476:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24588:6;24581:3;:13;;24573:75;;;;-1:-1:-1;;;24573:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24666:31;24676:9;24687;24666;:31::i;:::-;24659:38;;;;23494:1211;;;;;;;:::o;18574:443::-;18621:7;18641:21;18671:13;;;;;;;;;-1:-1:-1;;;;;18671:13:0;-1:-1:-1;;;;;18665:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18665:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18665:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18665:34:0;;-1:-1:-1;18710:17:0;18730;:15;:17::i;32937:116::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33003:7;;33020:6;;32997:41;;;-1:-1:-1;;;32997:41:0;;-1:-1:-1;;;;;33020:6:0;;;32997:41;;;;33028:9;32997:41;;;;;;33003:7;;;;;32997:22;;:41;;;;;;;;;;;;;;33003:7;;32997:41;;;5:2:-1;;;;30:1;27;20:12;13703:18:0;;;;;;:::o;12928:40::-;;;;;;;;;;;;;;;:::o;13387:68::-;;;-1:-1:-1;;;;;13387:68:0;;:::o;35048:170::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35143:3;35132:7;:14;;35124:55;;;;;-1:-1:-1;;;35124:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;35191:9;:19;35048:170::o;7852:134::-;-1:-1:-1;;;;;7951:18:0;;;7924:7;7951:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7852:134::o;13496:23::-;;;;:::o;13159:31::-;;;;:::o;13462:20::-;;;-1:-1:-1;;;13462:20:0;;;;;:::o;22836:117::-;22882:71;;;;;;;;;;;;;;;;;;22836:117;:::o;13273:33::-;;;;:::o;12975:38::-;;;;;;;;;;;;;;;:::o;13076:32::-;;;;:::o;22568:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;30819:100::-;30869:42;30878:12;:10;:12::i;:::-;30892:8;;-1:-1:-1;;;;;30892:8:0;30902;30869;:42::i;33673:354::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33769:14;;33765:202;;33821:2;33808:9;:15;;33800:70;;;;-1:-1:-1;;;33800:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33906:2;33893:9;:15;;33885:70;;;;-1:-1:-1;;;33885:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33985:22;:34;33673:354::o;13626:28::-;;;;:::o;32608:95::-;4040:30;4057:12;:10;:12::i;4040:30::-;4032:107;;;;-1:-1:-1;;;4032:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32679:6;:14;;-1:-1:-1;;;;;;32679:14:0;-1:-1:-1;;;;;32679:14:0;;;;;;;;;;32608:95::o;13021:41::-;;;;;;;;;;;;;;;:::o;13198:24::-;;;;:::o;13566:46::-;;;;:::o;3445:98::-;3525:10;3445:98;:::o;10108:338::-;-1:-1:-1;;;;;10202:19:0;;10194:68;;;;-1:-1:-1;;;10194:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10281:21:0;;10273:68;;;;-1:-1:-1;;;10273:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10354:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10406:32;;;;;;;;;;;;;;;;;10108:338;;;:::o;15179:1669::-;15273:6;;;;:32;;;;-1:-1:-1;;;;;;15283:14:0;;;;;;:8;:14;;;;;;;;:22;;:14;:22;;15273:32;:56;;;;-1:-1:-1;;;;;;15309:12:0;;;;;;:8;:12;;;;;;;;:20;;:12;:20;;15273:56;15270:125;;;15344:51;;-1:-1:-1;;;15344:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:125;-1:-1:-1;;;;;15411:16:0;;;;;;:9;:16;;;;;;;;:24;;:16;:24;;:50;;-1:-1:-1;;;;;;15439:14:0;;;;;;:9;:14;;;;;;;;:22;;:14;:22;15411:50;15408:101;;;15477:32;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;-1:-1:-1;;;15477:32:0;;;;;;;;;;;;;;15408:101;-1:-1:-1;;;;;15602:17:0;;15531:15;15602:17;;;:11;:17;;;;;;15531:15;;15602:17;;:26;;;:54;;-1:-1:-1;;;;;;15632:15:0;;;;;;:11;:15;;;;;;;;:24;15602:54;15599:1242;;;15685:9;;:14;15681:176;;15733:9;;15722:21;;:6;;:21;:10;:21;:::i;:::-;15713:30;-1:-1:-1;15764:18:0;:6;15713:30;15764:18;:10;:18;:::i;:::-;15826:8;;15755:27;;-1:-1:-1;15796:48:0;;15812:4;;-1:-1:-1;;;;;15826:8:0;15837:6;15796:15;:48::i;:::-;15882:17;;:22;15878:548;;15946:3;;15933:8;;:17;;;:12;:17;:::i;:::-;15922:8;:28;15987:17;;15976:29;;:6;;:29;:10;:29;:::i;:::-;15965:40;-1:-1:-1;16030:20:0;:6;15965:40;16030:20;:10;:20;:::i;:::-;16021:29;;16065:46;16081:4;16095;16102:8;16065:15;:46::i;:::-;16139:10;:22;;;;;;16191:8;;16179;;:20;16176:239;;;16230:16;16241:4;16230:10;:16::i;:::-;16228:19;16219:47;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;-1:-1:-1;;;16219:47:0;;;;;;;;;;;;;;;16285:48;16309:4;16316;16322:10;;16285:15;:48::i;:::-;16365:1;16352:10;:14;;;16385:8;:12;16176:239;16450:11;;:16;;;;:30;;-1:-1:-1;;;;;;16470:10:0;;;;;;:6;:10;;;;;;;;16450:30;16446:244;;;16496:14;16513:23;16524:11;;16513:6;:10;;:23;;;;:::i;:::-;16551:9;:19;;;;;;16496:40;-1:-1:-1;16593:18:0;:6;16496:40;16593:18;:10;:18;:::i;:::-;16584:27;;16630:44;16646:4;16660;16667:6;16630:15;:44::i;:::-;16446:244;;16715:33;16731:4;16737:2;16741:6;16715:15;:33::i;:::-;15599:1242;;;16793:33;16809:4;16815:2;16819:6;16793:15;:33::i;:::-;15179:1669;;;;;:::o;5900:192::-;5986:7;6022:12;6014:6;;;;6006:29;;;;-1:-1:-1;;;6006:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6006:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6058:5:0;;;5900:192::o;5567:181::-;5625:7;5657:5;;;5681:6;;;;5673:46;;;;;-1:-1:-1;;;5673:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;22250:170;-1:-1:-1;;;;;22333:19:0;;;;;;;:10;:19;;;;;;22318:55;;22333:19;;22366:6;22318:14;:55::i;:::-;22384:28;22396:7;22405:6;22384:11;:28::i;4680:154::-;4748:32;:16;4772:7;4748:32;:23;:32;:::i;:::-;4796:30;;-1:-1:-1;;;;;4796:30:0;;;;;;;;4680:154;:::o;6100:252::-;6158:7;6184:6;6180:47;;-1:-1:-1;6214:1:0;6207:8;;6180:47;6251:5;;;6255:1;6251;:5;:1;6275:5;;;;;:10;6267:56;;;;-1:-1:-1;;;6267:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:132;6418:7;6445:39;6449:1;6452;6445:39;;;;;;;;;;;;;;;;;:3;:39::i;26133:394::-;-1:-1:-1;;;;;26250:21:0;;;26224:23;26250:21;;;:10;:21;;;;;;;;;;26309:20;26261:9;26309;:20::i;:::-;-1:-1:-1;;;;;26341:21:0;;;;;;;:10;:21;;;;;;:33;;-1:-1:-1;;;;;;26341:33:0;;;;;;;;;;26392:54;;26282:47;;-1:-1:-1;26341:33:0;26392:54;;;;;;26341:21;26392:54;26459:60;26474:15;26491:9;26502:16;26459:14;:60::i;4525:146::-;4590:29;:16;4611:7;4590:29;:20;:29;:::i;:::-;4635:28;;-1:-1:-1;;;;;4635:28:0;;;;;;;;4525:146;:::o;10454:232::-;10526:22;10532:7;10541:6;10526:5;:22::i;:::-;10559:119;10568:7;10577:12;:10;:12::i;:::-;10591:86;10630:6;10591:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10591:20:0;;;;;;:11;:20;;;;;;10612:12;:10;:12::i;17617:113::-;17689:17;;:33;;17711:10;17689:33;:21;:33;:::i;17742:256::-;17812:8;;-1:-1:-1;;;;;17812:8:0;:22;17809:182;;17869:8;;17850:53;;;-1:-1:-1;;;17850:53:0;;;;;;;;;;-1:-1:-1;;;;;17869:8:0;;;;17850:37;;:53;;;;;17869:8;;17850:53;;;;;;;;17869:8;;17850:53;;;5:2:-1;;;;30:1;27;20:12;5:2;17850:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17928:1:0;17917:9;:12;-1:-1:-1;;17949:29:0;;;;;;;;;;;;;;;;;17742:256;:::o;18006:438::-;18095:13;;18118:15;;18089:55;;;-1:-1:-1;;;18089:55:0;;-1:-1:-1;;;;;18118:15:0;;;18089:55;;;;;;;;;;;;18062:14;;18095:13;;;;;18089:28;;:55;;;;;;;;;;;;;;;18062:14;18095:13;18089:55;;;5:2:-1;;;;30:1;27;20:12;5:2;18089:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18089:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18188:15:0;;18392:8;;18169:267;;;-1:-1:-1;;;18169:267:0;;18293:4;18169:267;;;;;;;;;;-1:-1:-1;18169:267:0;;;;;;;;;;;;-1:-1:-1;;;;;18188:15:0;18392:8;;;;;18169:267;;;;18420:15;18169:267;;;;;;18188:15;;;;;18169:97;;:267;;;;;18089:55;;18169:267;;;;;;;;;18188:15;18169:267;;;5:2:-1;;;;30:1;27;20:12;5:2;18169:267:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18169:267:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18169:267:0;;18006:438;-1:-1:-1;;18006:438:0:o;11413:203::-;11485:4;-1:-1:-1;;;;;11510:21:0;;11502:68;;;;-1:-1:-1;;;11502:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11588:20:0;:11;:20;;;;;;;;;;;;;;;11413:203::o;28286:153::-;28396:9;28286:153;:::o;5756:136::-;5814:7;5841:43;5845:1;5848;5841:43;;;;;;;;;;;;;;;;;:3;:43::i;21875:189::-;-1:-1:-1;;;;;21971:16:0;;;;;;;:10;:16;;;;;;;21989:14;;;;;;;;21956:56;;21971:16;;;;21989:14;22005:6;21956:14;:56::i;:::-;22023:33;22039:4;22045:2;22049:6;22023:15;:33::i;:::-;21875:189;;;:::o;26535:851::-;26641:6;-1:-1:-1;;;;;26631:16:0;:6;-1:-1:-1;;;;;26631:16:0;;;:30;;;;;26660:1;26651:6;:10;26631:30;26627:752;;;-1:-1:-1;;;;;26682:20:0;;;26678:337;;-1:-1:-1;;;;;26742:22:0;;26723:16;26742:22;;;:14;:22;;;;;;;;;26803:13;:60;;26862:1;26803:60;;;-1:-1:-1;;;;;26819:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;26839:13:0;;26819:34;;;;;;;;26851:1;26819:40;;26803:60;26783:80;-1:-1:-1;26882:17:0;26902:21;26783:80;26916:6;26902:21;:13;:21;:::i;:::-;26882:41;;26942:57;26959:6;26967:9;26978;26989;26942:16;:57::i;:::-;26678:337;;;;-1:-1:-1;;;;;27035:20:0;;;27031:337;;-1:-1:-1;;;;;27095:22:0;;27076:16;27095:22;;;:14;:22;;;;;;;;;27156:13;:60;;27215:1;27156:60;;;-1:-1:-1;;;;;27172:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;27192:13:0;;27172:34;;;;;;;;27204:1;27172:40;;27156:60;27136:80;-1:-1:-1;27235:17:0;27255:21;27136:80;27269:6;27255:21;:13;:21;:::i;:::-;27235:41;;27295:57;27312:6;27320:9;27331;27342;27295:16;:57::i;9752:348::-;-1:-1:-1;;;;;9828:21:0;;9820:67;;;;-1:-1:-1;;;9820:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9921:68;9944:6;9921:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9921:18:0;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;9900:18:0;;:9;:18;;;;;;;;;;:89;10015:12;;:24;;10032:6;10015:24;:16;:24;:::i;:::-;10000:12;:39;10055:37;;;;;;;;10081:1;;-1:-1:-1;;;;;10055:37:0;;;;;;;;;;;;9752:348;;:::o;11222:183::-;11302:18;11306:4;11312:7;11302:3;:18::i;:::-;11294:64;;;;-1:-1:-1;;;11294:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11369:20:0;11392:5;11369:20;;;;;;;;;;;:28;;-1:-1:-1;;11369:28:0;;;11222:183::o;6500:193::-;6586:7;6623:12;6616:5;6608:28;;;;-1:-1:-1;;;6608:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6608:28:0;;6647:9;6663:1;6659;:5;;;;;;;6500:193;-1:-1:-1;;;;;6500:193:0:o;11036:178::-;11114:18;11118:4;11124:7;11114:3;:18::i;:::-;11113:19;11105:63;;;;;-1:-1:-1;;;11105:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;11179:27:0;11202:4;11179:27;;;11036:178::o;8957:471::-;-1:-1:-1;;;;;9055:20:0;;9047:70;;;;-1:-1:-1;;;9047:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9136:23:0;;9128:71;;;;-1:-1:-1;;;9128:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9232;9254:6;9232:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9232:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;9212:17:0;;;:9;:17;;;;;;;;;;;:91;;;;9337:20;;;;;;;:32;;9362:6;9337:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;9314:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;9385:35;;;;;;;9314:20;;9385:35;;;;;;;;;;;;;8957:471;;;:::o;27394:715::-;27573:18;27594:87;27601:12;27594:87;;;;;;;;;;;;;;;;;:6;:87::i;:::-;27573:108;;27713:1;27698:12;:16;;;:85;;;;-1:-1:-1;;;;;;27718:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;27741:16:0;;27718:40;;;;;;;;;:50;:65;;;:50;;:65;27698:85;27694:339;;;-1:-1:-1;;;;;27800:22:0;;;;;;:11;:22;;;;;;;;:40;-1:-1:-1;;27823:16:0;;27800:40;;;;;;;;27838:1;27800:46;:57;;;27694:339;;;27929:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27890:22:0;;-1:-1:-1;27890:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;-1:-1:-1;;27890:72:0;;;;;;;;;;;;;27977:25;;;:14;:25;;;;;;:44;;28005:16;;;27977:44;;;;;;;;;;27694:339;28050:51;;;;;;;;;;;;;;-1:-1:-1;;;;;28050:51:0;;;;;;;;;;;27394:715;;;;;:::o;28117:161::-;28192:6;28230:12;28223:5;28219:9;;28211:32;;;;-1:-1:-1;;;28211:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;28211:32:0;-1:-1:-1;28268:1:0;;28117:161;-1:-1:-1;;28117:161:0:o;30178:5300::-;;;;;;;;;;-1:-1:-1;30178:5300:0;;;;;;;;:::o;9436:308::-;-1:-1:-1;;;;;9512:21:0;;9504:65;;;;;-1:-1:-1;;;9504:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:12;;:24;;9614:6;9597:24;:16;:24;:::i;:::-;9582:12;:39;-1:-1:-1;;;;;9653:18:0;;:9;:18;;;;;;;;;;;:30;;9676:6;9653:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;9632:18:0;;:9;:18;;;;;;;;;;;:51;;;;9699:37;;;;;;;9632:18;;:9;;9699:37;;;;;;;;;;9436:308;;:::o
Swarm Source
bzzr://54d725ed1626a8974fb9f11aad7cd6f4fced9bd65236e47193bd4a4ab7db8bf5
Loading...
Loading
Loading...
Loading
OVERVIEW
A deflationary DEFI token that incorporates transactional lotto pool rewards with buyback features and anti-dump mechanics.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.