ERC-20
Overview
Max Total Supply
10,000 TRIFORCE
Holders
59
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
21.915227910450070246 TRIFORCEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Triforce
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-17 */ pragma solidity ^0.7.4; /** 🔥 The Spiritual Stones are required to access the Sacred Ethereum Realm and obtain the Triforce. Will you be brave enough to collect all of them and become the Triforce holder ? 🔥 ⭕ The Triforce's rules ⭕ - The Spiritual Stones are required to access the Sacred Ethereum Realm and obtain the Triforce. The Triforce will give specific advantages to those who have managed to acquire it during their journey. - You’ll have your Spiritual Stone for one hour unless someone beats your condition which will make him becoming the new Spiritual Stone's owner. - Once the hour is finished, the counter will be reset and everyone will be able to compete again for the Spiritual Stones. - If you sell any tokens at all while holding a Stone, you are not worthy anymore to own a Spiritual Stone. See more details on our website: https://triforceeth.com Website: https://triforceeth.com Twitter: https://twitter.com/TheTriforceETH Telegram: https://t.me/TheTriforceEntry */ // SPDX-License-Identifier: Unlicensed 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; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 ); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts); function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Auth { address internal owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } abstract contract ERC20Interface { function balanceOf(address whom) public view virtual returns (uint256); } contract Triforce is IERC20, Auth { using SafeMath for uint256; string constant _name = "TRIFORCE"; string constant _symbol = "TRIFORCE"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; uint256 _totalSupply = 10000 * (10**_decimals); uint256 private _liqAddBlock = 0; uint256 public biggestBuy = 0; uint256 public biggestBuySum = 0; uint256 public lowestBuy = uint256(-1); uint256 public lastRubyChange = 0; uint256 public lastSapphireChange = 0; uint256 public lastEmeraldChange = 0; uint256 public resetPeriod = 1 hours; address[] private rewardedAddresses; address[] private _sniipers; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public hasSold; mapping(address => bool) private _liquidityHolders; mapping(address => bool) private _isSniiper; mapping(address => uint256) public totalBuySumPerAddress; mapping(address => uint256) public totalRewardsPerAddress; uint256 public marketingFee = 9; uint256 public sapphireFee = 3; // Biggest buy sum uint256 public rubyFee = 2; // Biggest buy uint256 public emeraldFee = 1; // Lowest buy uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver; address public marketingWallet; address public Sapphire; address public Ruby; address public Emerald; IDEXRouter public router; address public pair; bool _hasLiqBeenAdded = false; bool sniiperProtection = true; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount = _totalSupply / 100; uint256 public _maxWalletAmount = _totalSupply / 50; uint256 public swapThreshold = _totalSupply / 200; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event AutoLiquify(uint256 amountETH, uint256 amountToken); event NewSapphire(address ring, uint256 buyAmount); event NewRuby(address ring, uint256 buyAmount); event NewEmerald(address ring, uint256 buyAmount); event SapphirePayout(address ring, uint256 amountETH); event RubyPayout(address ring, uint256 amountETH); event EmeraldPayout(address ring, uint256 amountETH); event SapphireSold(address ring, uint256 amountETH); event RubySold(address ring, uint256 amountETH); event EmeraldSold(address ring, uint256 amountETH); constructor() Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = uint256(-1); isFeeExempt[DEAD] = true; isTxLimitExempt[DEAD] = true; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[pair] = true; _liquidityHolders[msg.sender] = true; autoLiquidityReceiver = msg.sender; marketingWallet = msg.sender; Sapphire = msg.sender; Ruby = msg.sender; Emerald = msg.sender; totalFee = marketingFee.add(rubyFee).add(emeraldFee).add(sapphireFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function setMaxTxAmount(uint256 amount) external authorized { _maxTxAmount = amount; } function setMaxWalletAmount(uint256 amount) external authorized { _maxWalletAmount = amount; } function setFees( uint256 newMarketingFee, uint256 newSapphireFee, uint256 newRubyFee, uint256 newEmeraldFee ) external authorized { marketingFee = newMarketingFee; sapphireFee = newSapphireFee; rubyFee = newRubyFee; emeraldFee = newEmeraldFee; totalFee = marketingFee.add(rubyFee).add(emeraldFee).add(sapphireFee); totalFeeIfSelling = totalFee; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setSwapThreshold(uint256 threshold) external authorized { swapThreshold = threshold; } function setFeeReceivers( address newLiquidityReceiver, address newMarketingWallet ) external authorized { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (_liquidityHolders[from] && to == pair) { _hasLiqBeenAdded = true; _liqAddBlock = block.number; } } function setResetPeriodInSeconds(uint256 newResetPeriod) external authorized { resetPeriod = newResetPeriod; } function _resetSapphire() internal { biggestBuySum = 0; Sapphire = marketingWallet; lastSapphireChange = block.timestamp; } function _resetRuby() internal { biggestBuy = 0; Ruby = marketingWallet; lastRubyChange = block.timestamp; } function _resetEmerald() internal { lowestBuy = uint256(-1); Emerald = marketingWallet; lastEmeraldChange = block.timestamp; } function epochResetSapphire() external view returns (uint256) { return lastSapphireChange + resetPeriod; } function epochResetRuby() external view returns (uint256) { return lastRubyChange + resetPeriod; } function epochResetEmerald() external view returns (uint256) { return lastEmeraldChange + resetPeriod; } function approxETHRewards() external view returns ( uint256, uint256, uint256 ) { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 receivedETH = router.getAmountsOut(swapThreshold, path)[1]; uint256 amountETHSapphire = receivedETH.mul(sapphireFee).div(totalFee); uint256 amountETHRuby = receivedETH.mul(rubyFee).div(totalFee); uint256 amountETHEmerald = receivedETH.mul(emeraldFee).div(totalFee); return (amountETHSapphire, amountETHRuby, amountETHEmerald); } function disableSniiperProtection() public authorized { sniiperProtection = false; } function byeByeSniipers() public authorized lockTheSwap { if (_sniipers.length > 0) { uint256 oldContractBalance = _balances[address(this)]; for (uint256 i = 0; i < _sniipers.length; i++) { _balances[address(this)] = _balances[address(this)].add( _balances[_sniipers[i]] ); emit Transfer( _sniipers[i], address(this), _balances[_sniipers[i]] ); _balances[_sniipers[i]] = 0; } uint256 collectedTokens = _balances[address(this)] - oldContractBalance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( collectedTokens, 0, path, marketingWallet, block.timestamp ); } } function _checkTxLimit( address sender, address recipient, uint256 amount ) internal { if (block.timestamp - lastSapphireChange > resetPeriod) { _resetSapphire(); } if (block.timestamp - lastRubyChange > resetPeriod) { _resetRuby(); } if (block.timestamp - lastEmeraldChange > resetPeriod) { _resetEmerald(); } if ( sender != owner && recipient != owner && !isTxLimitExempt[recipient] && recipient != ZERO && recipient != DEAD && recipient != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); uint256 contractBalanceRecipient = balanceOf(recipient); require( contractBalanceRecipient + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount" ); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); uint256 usedEth = router.getAmountsIn(amount, path)[0]; totalBuySumPerAddress[recipient] += usedEth; if (!hasSold[recipient]) { if (totalBuySumPerAddress[recipient] > biggestBuySum) { biggestBuySum = totalBuySumPerAddress[recipient]; lastSapphireChange = block.timestamp; if (Sapphire != recipient) { Sapphire = recipient; emit NewSapphire(Sapphire, biggestBuySum); } } if (usedEth > biggestBuy) { biggestBuy = usedEth; lastRubyChange = block.timestamp; if (Ruby != recipient) { Ruby = recipient; emit NewRuby(Ruby, biggestBuy); } } if (usedEth < lowestBuy) { lowestBuy = usedEth; lastEmeraldChange = block.timestamp; if (Emerald != recipient) { Emerald = recipient; emit NewEmerald(Emerald, lowestBuy); } } } } if ( sender != owner && recipient != owner && !isTxLimitExempt[sender] && sender != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); if (Sapphire == sender) { emit SapphireSold(Sapphire, biggestBuySum); _resetSapphire(); hasSold[sender] = true; } if (Ruby == sender) { emit RubySold(Ruby, biggestBuy); _resetRuby(); hasSold[sender] = true; } if (Emerald == sender) { emit EmeraldSold(Emerald, lowestBuy); _resetEmerald(); hasSold[sender] = true; } } } function setSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != uint256(-1)) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } _transferFrom(sender, recipient, amount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if (sniiperProtection) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(sender, recipient); } else { if ( _liqAddBlock > 0 && sender == pair && !_liquidityHolders[sender] && !_liquidityHolders[recipient] ) { if (block.number - _liqAddBlock < 2) { if (!_isSniiper[recipient]) { _sniipers.push(recipient); } _isSniiper[recipient] = true; } } } } if ( msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBack(); } _checkTxLimit(sender, recipient, amount); require(!isWalletToWallet(sender, recipient), "Don't cheat"); _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(msg.sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function isWalletToWallet(address sender, address recipient) internal view returns (bool) { if (isFeeExempt[sender] || isFeeExempt[recipient]) { return false; } if (sender == pair || recipient == pair) { return false; } return true; } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = swapThreshold; uint256 amountToSwap = tokensToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee); uint256 amountETHSapphire = amountETH.mul(sapphireFee).div(totalFee); uint256 amountETHRuby = amountETH.mul(rubyFee).div(totalFee); uint256 amountETHEmerald = amountETH.mul(emeraldFee).div(totalFee); (bool tmpSuccess, ) = payable(marketingWallet).call{ value: amountETHMarketing, gas: 30000 }(""); (bool tmpSuccess2, ) = payable(Sapphire).call{ value: amountETHSapphire, gas: 30000 }(""); if (totalRewardsPerAddress[Sapphire] == 0) { rewardedAddresses.push(Sapphire); } totalRewardsPerAddress[Sapphire] += amountETHSapphire; emit SapphirePayout(Sapphire, amountETHSapphire); (bool tmpSuccess3, ) = payable(Ruby).call{ value: amountETHRuby, gas: 30000 }(""); if (totalRewardsPerAddress[Ruby] == 0) { rewardedAddresses.push(Ruby); } totalRewardsPerAddress[Ruby] += amountETHRuby; emit RubyPayout(Ruby, amountETHRuby); (bool tmpSuccess4, ) = payable(Emerald).call{ value: amountETHEmerald, gas: 30000 }(""); if (totalRewardsPerAddress[Emerald] == 0) { rewardedAddresses.push(Emerald); } totalRewardsPerAddress[Emerald] += amountETHEmerald; emit EmeraldPayout(Emerald, amountETHEmerald); // only to supress warning msg tmpSuccess = false; tmpSuccess2 = false; tmpSuccess3 = false; tmpSuccess4 = false; } function getAllRewards() external view returns (address[] memory, uint256[] memory) { address[] memory mAddresses = new address[](rewardedAddresses.length); uint256[] memory mRewards = new uint256[](rewardedAddresses.length); for (uint256 i = 0; i < rewardedAddresses.length; i++) { mAddresses[i] = rewardedAddresses[i]; mRewards[i] = totalRewardsPerAddress[rewardedAddresses[i]]; } return (mAddresses, mRewards); } function recoverLosteth() external authorized { payable(msg.sender).transfer(address(this).balance); } function recoverLostTokens(address _token, uint256 _amount) external authorized { IERC20(_token).transfer(msg.sender, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"EmeraldPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"EmeraldSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewEmerald","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewRuby","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewSapphire","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RubyPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RubySold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"SapphirePayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"SapphireSold","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"},{"inputs":[],"name":"Emerald","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ruby","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Sapphire","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approxETHRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuySum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"byeByeSniipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emeraldFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epochResetEmerald","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epochResetRuby","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epochResetSapphire","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllRewards","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasSold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastEmeraldChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRubyChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSapphireChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lowestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rubyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sapphireFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newSapphireFee","type":"uint256"},{"internalType":"uint256","name":"newRubyFee","type":"uint256"},{"internalType":"uint256","name":"newEmeraldFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalBuySumPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardsPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031990811661dead178255600380548216815560048054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1790915569021e19e0c9bab2400000600581905560006006819055600781905560088190556000196009908155600a829055600b829055600c829055610e10600d55601955601a92909255601b929092556001601c55601d819055601e556025805460ff60b81b1961ffff60a01b19909116600160a81b1716600160b81b17905560649004602655603260055481620000d357fe5b0460275560c860055481620000e457fe5b04602855348015620000f557600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560048054602480549094166001600160a01b039182161793849055845163c45a015560e01b8152945193169363c45a01559381830193929091829003018186803b1580156200017557600080fd5b505afa1580156200018a573d6000803e3d6000fd5b505050506040513d6020811015620001a157600080fd5b5051602454604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620001f057600080fd5b505afa15801562000205573d6000803e3d6000fd5b505050506040513d60208110156200021c57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200026c57600080fd5b505af115801562000281573d6000803e3d6000fd5b505050506040513d60208110156200029857600080fd5b5051602580546001600160a01b039283166001600160a01b0319918216178255306000818152601160209081526040808320602454881684528252808320600019905560028054881684526012808452828520805460ff19908116600190811790925592548a168652601380865284872080548516831790553380885292865284872080548516831790558787528487208054851683179055828752855283862080548416821790559585528285208054831687179055965490971683528083208054881685179055858352601582529091208054909516909117909355601f805482168317905582548116821783556021805482168317905560228054821683179055602380549091169091179055601a54601c54601b54601954620003e594620003d1939284929162001f596200043f821b17901c565b6200043f60201b62001f591790919060201c565b601d819055601e55600554336000818152601060209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3620004a1565b6000828201838110156200049a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61373b80620004b16000396000f3fe6080604052600436106103c75760003560e01c80637d1db4a5116101f2578063ca33e64c1161010d578063ed14f20a116100a0578063f84ba65d1161006f578063f84ba65d14610d1e578063f887ea4014610d59578063fe9fbb8014610d6e578063feec927814610da1576103ce565b8063ed14f20a14610c70578063f0b37c0414610ca3578063f1d08cdf14610cd6578063f2fde38b14610ceb576103ce565b8063dec2ba0f116100dc578063dec2ba0f14610bc6578063df20fd4914610bff578063eaa2897714610c31578063ec28438a14610c46576103ce565b8063ca33e64c14610b4c578063ca987b0e14610b61578063db840df514610b76578063dd62ed3e14610b8b576103ce565b80639d0014b111610185578063a9059cbb11610154578063a9059cbb14610a98578063b6a5d7de14610ad1578063c02ae01214610b04578063c0e5fec814610b19576103ce565b80639d0014b114610a09578063a0f29cf814610a33578063a4b45c0014610a48578063a8aa1b3114610a83576103ce565b80638eb6889f116101c15780638eb6889f146109ca578063944c1d97146109df57806395d89b411461041157806399a6ba82146109f4576103ce565b80637d1db4a514610958578063893d20e81461096d57806389edeb67146109825780638b42507f14610997576103ce565b80633f4218e0116102e25780635b8b7815116102755780636fcba377116102445780636fcba377146108aa57806370a08231146108e6578063712a890a1461091957806375f0a87414610943576103ce565b80635b8b781514610830578063658d4b7f146108455780636b67c4df146108805780636c0a24eb14610895576103ce565b80634db6fb83116102b15780634db6fb83146107a0578063515b5a73146107d3578063556e8501146107e8578063571ac8b0146107fd576103ce565b80633f4218e01461069557806342f82280146106c857806345b35f56146106dd5780634a74bb021461078b576103ce565b806323b872dd1161035a5780632f54bf6e116103295780632f54bf6e146105ef578063313ce5671461062257806333596f501461064d578063340943c714610662576103ce565b806323b872dd14610558578063251aa9a01461059b57806327a14fc2146105b05780632b112e49146105da576103ce565b80630a1b5d2e116103965780630a1b5d2e146104e857806318160ddd146105195780631df4ccfc1461052e5780632111bb2f14610543576103ce565b80630283a362146103d35780630445b667146103ea57806306fdde0314610411578063095ea7b31461049b576103ce565b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610db6565b005b3480156103f657600080fd5b506103ff610e0d565b60408051918252519081900360200190f35b34801561041d57600080fd5b50610426610e13565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610460578181015183820152602001610448565b50505050905090810190601f16801561048d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a757600080fd5b506104d4600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610e35565b604080519115158252519081900360200190f35b3480156104f457600080fd5b506104fd610e9c565b604080516001600160a01b039092168252519081900360200190f35b34801561052557600080fd5b506103ff610eab565b34801561053a57600080fd5b506103ff610eb1565b34801561054f57600080fd5b506103ff610eb7565b34801561056457600080fd5b506104d46004803603606081101561057b57600080fd5b506001600160a01b03813581169160208101359091169060400135610ebd565b3480156105a757600080fd5b506103ff610f82565b3480156105bc57600080fd5b506103e8600480360360208110156105d357600080fd5b5035610f88565b3480156105e657600080fd5b506103ff610fd5565b3480156105fb57600080fd5b506104d46004803603602081101561061257600080fd5b50356001600160a01b031661101e565b34801561062e57600080fd5b50610637611032565b6040805160ff9092168252519081900360200190f35b34801561065957600080fd5b506103e8611037565b34801561066e57600080fd5b506106776110ae565b60408051938452602084019290925282820152519081900360600190f35b3480156106a157600080fd5b506104d4600480360360208110156106b857600080fd5b50356001600160a01b0316611365565b3480156106d457600080fd5b506103ff61137a565b3480156106e957600080fd5b506106f2611380565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561073657818101518382015260200161071e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561077557818101518382015260200161075d565b5050505090500194505050505060405180910390f35b34801561079757600080fd5b506104d46114dd565b3480156107ac57600080fd5b506103ff600480360360208110156107c357600080fd5b50356001600160a01b03166114ed565b3480156107df57600080fd5b506103ff6114ff565b3480156107f457600080fd5b506103ff611505565b34801561080957600080fd5b506104d46004803603602081101561082057600080fd5b50356001600160a01b031661150b565b34801561083c57600080fd5b506103e8611519565b34801561085157600080fd5b506103e86004803603604081101561086857600080fd5b506001600160a01b038135169060200135151561187c565b34801561088c57600080fd5b506103ff6118ef565b3480156108a157600080fd5b506103ff6118f5565b3480156108b657600080fd5b506103e8600480360360808110156108cd57600080fd5b50803590602081013590604081013590606001356118fb565b3480156108f257600080fd5b506103ff6004803603602081101561090957600080fd5b50356001600160a01b031661197b565b34801561092557600080fd5b506103e86004803603602081101561093c57600080fd5b5035611996565b34801561094f57600080fd5b506104fd6119e3565b34801561096457600080fd5b506103ff6119f2565b34801561097957600080fd5b506104fd6119f8565b34801561098e57600080fd5b506103ff611a07565b3480156109a357600080fd5b506104d4600480360360208110156109ba57600080fd5b50356001600160a01b0316611a11565b3480156109d657600080fd5b506103ff611a26565b3480156109eb57600080fd5b506103ff611a2c565b348015610a0057600080fd5b506104fd611a32565b348015610a1557600080fd5b506103e860048036036020811015610a2c57600080fd5b5035611a41565b348015610a3f57600080fd5b506104fd611a8e565b348015610a5457600080fd5b506103e860048036036040811015610a6b57600080fd5b506001600160a01b0381358116916020013516611a9d565b348015610a8f57600080fd5b506104fd611b13565b348015610aa457600080fd5b506104d460048036036040811015610abb57600080fd5b506001600160a01b038135169060200135611b22565b348015610add57600080fd5b506103e860048036036020811015610af457600080fd5b50356001600160a01b0316611b2f565b348015610b1057600080fd5b506103ff611b99565b348015610b2557600080fd5b506103ff60048036036020811015610b3c57600080fd5b50356001600160a01b0316611b9f565b348015610b5857600080fd5b506104fd611bb1565b348015610b6d57600080fd5b506103ff611bc0565b348015610b8257600080fd5b506103ff611bc6565b348015610b9757600080fd5b506103ff60048036036040811015610bae57600080fd5b506001600160a01b0381358116916020013516611bd0565b348015610bd257600080fd5b506103e860048036036040811015610be957600080fd5b506001600160a01b038135169060200135611bfb565b348015610c0b57600080fd5b506103e860048036036040811015610c2257600080fd5b50803515159060200135611cc2565b348015610c3d57600080fd5b506103ff611d2c565b348015610c5257600080fd5b506103e860048036036020811015610c6957600080fd5b5035611d36565b348015610c7c57600080fd5b506104d460048036036020811015610c9357600080fd5b50356001600160a01b0316611d83565b348015610caf57600080fd5b506103e860048036036020811015610cc657600080fd5b50356001600160a01b0316611d98565b348015610ce257600080fd5b506103ff611dfc565b348015610cf757600080fd5b506103e860048036036020811015610d0e57600080fd5b50356001600160a01b0316611e02565b348015610d2a57600080fd5b506103e860048036036040811015610d4157600080fd5b506001600160a01b0381351690602001351515611eb3565b348015610d6557600080fd5b506104fd611f26565b348015610d7a57600080fd5b506104d460048036036020811015610d9157600080fd5b50356001600160a01b0316611f35565b348015610dad57600080fd5b506103ff611f53565b610dbf33611f35565b610dfe576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6025805460ff60a81b19169055565b60285481565b604080518082019091526008815267545249464f52434560c01b602082015290565b3360008181526011602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6022546001600160a01b031681565b60055490565b601d5481565b60085481565b6001600160a01b038316600090815260116020908152604080832033845290915281205460001914610f6a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152601182528381203382529091529190912054610f45918490611fb3565b6001600160a01b03851660009081526011602090815260408083203384529091529020555b610f7584848461204a565b50600190505b9392505050565b600c5481565b610f9133611f35565b610fd0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602755565b60035460009061101990610ff1906001600160a01b031661197b565b6002546110139061100a906001600160a01b031661197b565b60055490612392565b90612392565b905090565b6000546001600160a01b0390811691161490565b601290565b61104033611f35565b61107f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f193505050501580156110ab573d6000803e3d6000fd5b50565b6040805160028082526060808301845260009384938493909160208301908036833701905050905030816000815181106110e457fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561113857600080fd5b505afa15801561114c573d6000803e3d6000fd5b505050506040513d602081101561116257600080fd5b505181518290600190811061117357fe5b6001600160a01b03928316602091820292909201810191909152602480546028546040805163d06ca61f60e01b815260048101838152948101918252875160448201528751600097949094169563d06ca61f959394899493926064019185810191028083838c5b838110156111f25781810151838201526020016111da565b50505050905001935050505060006040518083038186803b15801561121657600080fd5b505afa15801561122a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561125357600080fd5b810190808051604051939291908464010000000082111561127357600080fd5b90830190602082018581111561128857600080fd5b82518660208202830111640100000000821117156112a557600080fd5b82525081516020918201928201910280838360005b838110156112d25781810151838201526020016112ba565b505050509050016040525050506001815181106112eb57fe5b602002602001015190506000611318601d54611312601a54856123d490919063ffffffff16565b9061242d565b90506000611337601d54611312601b54866123d490919063ffffffff16565b90506000611356601d54611312601c54876123d490919063ffffffff16565b92989197509195509350505050565b60126020526000908152604090205460ff1681565b601c5481565b6060806060600e8054905067ffffffffffffffff811180156113a157600080fd5b506040519080825280602002602001820160405280156113cb578160200160208202803683370190505b50600e5490915060609067ffffffffffffffff811180156113eb57600080fd5b50604051908082528060200260200182016040528015611415578160200160208202803683370190505b50905060005b600e548110156114d357600e818154811061143257fe5b9060005260206000200160009054906101000a90046001600160a01b031683828151811061145c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060186000600e838154811061148d57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106114c057fe5b602090810291909101015260010161141b565b5090925090509091565b602554600160b81b900460ff1681565b60176020526000908152604090205481565b600b5481565b601b5481565b6000610e9682600019610e35565b61152233611f35565b611561576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6025805460ff60b01b1916600160b01b179055600f541561186d5730600090815260106020526040812054905b600f548110156116b6576115e460106000600f84815481106115ac57fe5b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526010909352205490611f59565b30600081815260106020526040902091909155600f80548390811061160557fe5b6000918252602082200154600f80546001600160a01b03909216926000805160206136e683398151915292601092908790811061163e57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201902054815190815290519081900390910190a3600060106000600f848154811061168957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560010161158e565b5030600090815260106020526040908190205481516002808252606082810190945291849003929181602001602082028036833701905050905030816000815181106116fe57fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175257600080fd5b505afa158015611766573d6000803e3d6000fd5b505050506040513d602081101561177c57600080fd5b505181518290600190811061178d57fe5b6001600160a01b0392831660209182029290920181019190915260248054825460405163791ac94760e01b815260048101888152600094820185905291861660648201819052426084830181905260a060448401908152895160a48501528951959098169763791ac947978b97968b96949593949360c4019187810191028083838b5b83811015611828578181015183820152602001611810565b505050509050019650505050505050600060405180830381600087803b15801561185157600080fd5b505af1158015611865573d6000803e3d6000fd5b505050505050505b6025805460ff60b01b19169055565b61188533611f35565b6118c4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b60195481565b60275481565b61190433611f35565b611943576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6019849055601a839055601b829055601c81905561196d8361196783818887611f59565b90611f59565b601d819055601e5550505050565b6001600160a01b031660009081526010602052604090205490565b61199f33611f35565b6119de576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600d55565b6020546001600160a01b031681565b60265481565b6000546001600160a01b031690565b600d54600c540190565b60136020526000908152604090205460ff1681565b60075481565b600d5481565b6023546001600160a01b031681565b611a4a33611f35565b611a89576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602855565b6021546001600160a01b031681565b611aa633611f35565b611ae5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f80546001600160a01b039384166001600160a01b03199182161790915560208054929093169116179055565b6025546001600160a01b031681565b6000610f7b33848461204a565b611b383361101e565b611b72576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600a5481565b60186020526000908152604090205481565b601f546001600160a01b031681565b601e5481565b600d54600b540190565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b611c0433611f35565b611c43576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b505050506040513d6020811015611cbc57600080fd5b50505050565b611ccb33611f35565b611d0a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60258054921515600160b81b0260ff60b81b1990931692909217909155602855565b600d54600a540190565b611d3f33611f35565b611d7e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602655565b60146020526000908152604090205460ff1681565b611da13361101e565b611ddb576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b601a5481565b611e0b3361101e565b611e45576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b611ebc33611f35565b611efb576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6024546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b60095481565b600082820183811015610f7b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081848411156120425760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612007578181015183820152602001611fef565b50505050905090810190601f1680156120345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602554600090600160b01b900460ff16156120715761206a84848461246f565b9050610f7b565b602554600160a81b900460ff16156121ae57602554600160a01b900460ff166120a35761209e848461253e565b6121ae565b60006006541180156120c257506025546001600160a01b038581169116145b80156120e757506001600160a01b03841660009081526015602052604090205460ff16155b801561210c57506001600160a01b03831660009081526015602052604090205460ff16155b156121ae576002600654430310156121ae576001600160a01b03831660009081526016602052604090205460ff1661218a57600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383166000908152601660205260409020805460ff191660011790555b6025546001600160a01b031633148015906121d35750602554600160b01b900460ff16155b80156121e85750602554600160b81b900460ff165b801561220557506028543060009081526010602052604090205410155b15612212576122126125dd565b61221d848484612c19565b6122278484613459565b15612267576040805162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152601090915291909120546122b9918490611fb3565b6001600160a01b038516600090815260106020908152604080832093909355601290529081205460ff1615801561230957506001600160a01b03841660009081526012602052604090205460ff16155b612313578261231e565b61231e8585856134e4565b6001600160a01b0385166000908152601060205260409020549091506123449082611f59565b6001600160a01b0385166000818152601060209081526040918290209390935580518481529051919233926000805160206136e68339815191529281900390910190a3506001949350505050565b6000610f7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fb3565b6000826123e357506000610e96565b828202828482816123f057fe5b0414610f7b5760405162461bcd60e51b81526004018080602001828103825260218152602001806136c56021913960400191505060405180910390fd5b6000610f7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613591565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526010909152918220546124c0918490611fb3565b6001600160a01b0380861660009081526010602052604080822093909355908516815220546124ef9083611f59565b6001600160a01b0380851660008181526010602090815260409182902094909455805186815290519193928816926000805160206136e683398151915292918290030190a35060019392505050565b602554600160a01b900460ff16156125875760405162461bcd60e51b815260040180806020018281038252602381526020018061367f6023913960400191505060405180910390fd5b6001600160a01b03821660009081526015602052604090205460ff1680156125bc57506025546001600160a01b038281169116145b156125d9576025805460ff60a01b1916600160a01b179055436006555b5050565b6025805460ff60b01b1916600160b01b17905560285460408051600280825260608083018452849390929190602083019080368337019050509050308160008151811061262657fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561267a57600080fd5b505afa15801561268e573d6000803e3d6000fd5b505050506040513d60208110156126a457600080fd5b50518151829060019081106126b557fe5b6001600160a01b039283166020918202929092018101919091526024805460405163791ac94760e01b81526004810187815260009382018490523060648301819052426084840181905260a060448501908152895160a48601528951959098169763791ac947978b97968b969495939460c4019187810191028083838b5b8381101561274b578181015183820152602001612733565b505050509050019650505050505050600060405180830381600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b50505050600047905060006127ae601d54611312601954856123d490919063ffffffff16565b905060006127cd601d54611312601a54866123d490919063ffffffff16565b905060006127ec601d54611312601b54876123d490919063ffffffff16565b9050600061280b601d54611312601c54886123d490919063ffffffff16565b6020546040519192506000916001600160a01b039091169061753090879084818181858888f193505050503d8060008114612862576040519150601f19603f3d011682016040523d82523d6000602084013e612867565b606091505b50506021546040519192506000916001600160a01b039091169061753090879084818181858888f193505050503d80600081146128c0576040519150601f19603f3d011682016040523d82523d6000602084013e6128c5565b606091505b50506021546001600160a01b031660009081526018602052604090205490915061293c57602154600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602180546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517f1c9644a464f9b4596ccb4cd9d6ae2e5b2f904531d77c684af04720ef172ff626929181900390910190a16022546040516000916001600160a01b03169061753090879084818181858888f193505050503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b50506022546001600160a01b0316600090815260186020526040902054909150612a6c57602254600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602280546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517fc1b8cfe7d73e9741b44df309fe53348b701129c7898b5098a1592abf85da9480929181900390910190a16023546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114612b20576040519150601f19603f3d011682016040523d82523d6000602084013e612b25565b606091505b50506023546001600160a01b0316600090815260186020526040902054909150612b9c57602354600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602380546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517fdfde9c557b79dd687d0f263870feec2c8680b892a7cb5b9d0b6de05ae96eb07a929181900390910190a150506025805460ff60b01b1916905550505050505050505050565b600d54600b5442031115612c2f57612c2f6135f6565b600d54600a5442031115612c4557612c45613623565b600d54600c5442031115612c5b57612c5b613650565b6000546001600160a01b03848116911614801590612c8757506000546001600160a01b03838116911614155b8015612cac57506001600160a01b03821660009081526013602052604090205460ff16155b8015612cc657506003546001600160a01b03838116911614155b8015612ce057506002546001600160a01b03838116911614155b8015612cfa57506025546001600160a01b03838116911614155b8015612d0f57506001600160a01b0382163014155b156131e857602654811115612d54576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6000612d5f8361197b565b90506027548282011115612da45760405162461bcd60e51b81526004018080602001828103825260238152602001806136a26023913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683375050602454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015612e0857600080fd5b505afa158015612e1c573d6000803e3d6000fd5b505050506040513d6020811015612e3257600080fd5b505181518290600090612e4157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612e6f57fe5b6001600160a01b0392831660209182029290920181019190915260248054604080516307c0329d60e21b8152600481018981529381019182528651604482015286516000969390931694631f00ca74948a9489949193919260649092019185810191028083838c5b83811015612eef578181015183820152602001612ed7565b50505050905001935050505060006040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612f5057600080fd5b8101908080516040519392919084640100000000821115612f7057600080fd5b908301906020820185811115612f8557600080fd5b8251866020820283011164010000000082111715612fa257600080fd5b82525081516020918201928201910280838360005b83811015612fcf578181015183820152602001612fb7565b50505050905001604052505050600081518110612fe857fe5b6020908102919091018101516001600160a01b03871660009081526017835260408082208054840190556014909352919091205490915060ff166131e4576008546001600160a01b03861660009081526017602052604090205411156130d4576001600160a01b0380861660008181526017602052604090205460085542600b55602154909116146130d457602180546001600160a01b0319166001600160a01b03878116919091179182905560085460408051939092168352602083015280517fd8392017566df1ffa6b4f86c31885c17f002ea44d57a5400a92a947207d414139281900390910190a15b60075481111561315c57600781905542600a556022546001600160a01b0386811691161461315c57602280546001600160a01b0319166001600160a01b03878116919091179182905560075460408051939092168352602083015280517fa996782a43caa7eed0cdc670af27c0b7a6cfab2d09f2a00b0e76faa05128374a9281900390910190a15b6009548110156131e457600981905542600c556023546001600160a01b038681169116146131e457602380546001600160a01b0319166001600160a01b03878116919091179182905560095460408051939092168352602083015280517f97d4a2b36a5562e7afac62fa1442cb6d016e3a1a349e887d92d59a653bc21bf19281900390910190a15b5050505b6000546001600160a01b0384811691161480159061321457506000546001600160a01b03838116911614155b801561323957506001600160a01b03831660009081526013602052604090205460ff16155b801561325357506025546001600160a01b03848116911614155b801561326857506001600160a01b0382163014155b15613454576026548111156132ad576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6021546001600160a01b038481169116141561333a57602154600854604080516001600160a01b039093168352602083019190915280517fc782cdcc53a5a135011720b45af4ba8f86b2a09ad478fd9a38990ed2fd95c7f29281900390910190a16133166135f6565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b6022546001600160a01b03848116911614156133c757602254600754604080516001600160a01b039093168352602083019190915280517ffe98167efb043c7c3f29cd4f23df26f8d90572d29dd4eb3666b0cb00452de54c9281900390910190a16133a3613623565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b6023546001600160a01b038481169116141561345457602354600954604080516001600160a01b039093168352602083019190915280517f977ca4073d805d49bc230514d0bd448d0b79a638565ff3fbe97e89f5911442e99281900390910190a1613430613650565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b505050565b6001600160a01b03821660009081526012602052604081205460ff168061349857506001600160a01b03821660009081526012602052604090205460ff165b156134a557506000610e96565b6025546001600160a01b03848116911614806134ce57506025546001600160a01b038381169116145b156134db57506000610e96565b50600192915050565b60255460009081906001600160a01b0385811691161461350657601d5461350a565b601e545b9050600061351d606461131286856123d4565b3060009081526010602052604090205490915061353a9082611f59565b30600081815260106020908152604091829020939093558051848152905191926001600160a01b038a16926000805160206136e68339815191529281900390910190a36135878482612392565b9695505050505050565b600081836135e05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612007578181015183820152602001611fef565b5060008385816135ec57fe5b0495945050505050565b6000600855602054602180546001600160a01b0319166001600160a01b0390921691909117905542600b55565b6000600755602054602280546001600160a01b0319166001600160a01b0390921691909117905542600a55565b600019600955602054602380546001600160a01b0319166001600160a01b0390921691909117905542600c5556fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d66be5e8b937b91977484e9140a1b81797a2c0aa6165af6f54fb52e51e96099564736f6c63430007040033
Deployed Bytecode
0x6080604052600436106103c75760003560e01c80637d1db4a5116101f2578063ca33e64c1161010d578063ed14f20a116100a0578063f84ba65d1161006f578063f84ba65d14610d1e578063f887ea4014610d59578063fe9fbb8014610d6e578063feec927814610da1576103ce565b8063ed14f20a14610c70578063f0b37c0414610ca3578063f1d08cdf14610cd6578063f2fde38b14610ceb576103ce565b8063dec2ba0f116100dc578063dec2ba0f14610bc6578063df20fd4914610bff578063eaa2897714610c31578063ec28438a14610c46576103ce565b8063ca33e64c14610b4c578063ca987b0e14610b61578063db840df514610b76578063dd62ed3e14610b8b576103ce565b80639d0014b111610185578063a9059cbb11610154578063a9059cbb14610a98578063b6a5d7de14610ad1578063c02ae01214610b04578063c0e5fec814610b19576103ce565b80639d0014b114610a09578063a0f29cf814610a33578063a4b45c0014610a48578063a8aa1b3114610a83576103ce565b80638eb6889f116101c15780638eb6889f146109ca578063944c1d97146109df57806395d89b411461041157806399a6ba82146109f4576103ce565b80637d1db4a514610958578063893d20e81461096d57806389edeb67146109825780638b42507f14610997576103ce565b80633f4218e0116102e25780635b8b7815116102755780636fcba377116102445780636fcba377146108aa57806370a08231146108e6578063712a890a1461091957806375f0a87414610943576103ce565b80635b8b781514610830578063658d4b7f146108455780636b67c4df146108805780636c0a24eb14610895576103ce565b80634db6fb83116102b15780634db6fb83146107a0578063515b5a73146107d3578063556e8501146107e8578063571ac8b0146107fd576103ce565b80633f4218e01461069557806342f82280146106c857806345b35f56146106dd5780634a74bb021461078b576103ce565b806323b872dd1161035a5780632f54bf6e116103295780632f54bf6e146105ef578063313ce5671461062257806333596f501461064d578063340943c714610662576103ce565b806323b872dd14610558578063251aa9a01461059b57806327a14fc2146105b05780632b112e49146105da576103ce565b80630a1b5d2e116103965780630a1b5d2e146104e857806318160ddd146105195780631df4ccfc1461052e5780632111bb2f14610543576103ce565b80630283a362146103d35780630445b667146103ea57806306fdde0314610411578063095ea7b31461049b576103ce565b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610db6565b005b3480156103f657600080fd5b506103ff610e0d565b60408051918252519081900360200190f35b34801561041d57600080fd5b50610426610e13565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610460578181015183820152602001610448565b50505050905090810190601f16801561048d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a757600080fd5b506104d4600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610e35565b604080519115158252519081900360200190f35b3480156104f457600080fd5b506104fd610e9c565b604080516001600160a01b039092168252519081900360200190f35b34801561052557600080fd5b506103ff610eab565b34801561053a57600080fd5b506103ff610eb1565b34801561054f57600080fd5b506103ff610eb7565b34801561056457600080fd5b506104d46004803603606081101561057b57600080fd5b506001600160a01b03813581169160208101359091169060400135610ebd565b3480156105a757600080fd5b506103ff610f82565b3480156105bc57600080fd5b506103e8600480360360208110156105d357600080fd5b5035610f88565b3480156105e657600080fd5b506103ff610fd5565b3480156105fb57600080fd5b506104d46004803603602081101561061257600080fd5b50356001600160a01b031661101e565b34801561062e57600080fd5b50610637611032565b6040805160ff9092168252519081900360200190f35b34801561065957600080fd5b506103e8611037565b34801561066e57600080fd5b506106776110ae565b60408051938452602084019290925282820152519081900360600190f35b3480156106a157600080fd5b506104d4600480360360208110156106b857600080fd5b50356001600160a01b0316611365565b3480156106d457600080fd5b506103ff61137a565b3480156106e957600080fd5b506106f2611380565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561073657818101518382015260200161071e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561077557818101518382015260200161075d565b5050505090500194505050505060405180910390f35b34801561079757600080fd5b506104d46114dd565b3480156107ac57600080fd5b506103ff600480360360208110156107c357600080fd5b50356001600160a01b03166114ed565b3480156107df57600080fd5b506103ff6114ff565b3480156107f457600080fd5b506103ff611505565b34801561080957600080fd5b506104d46004803603602081101561082057600080fd5b50356001600160a01b031661150b565b34801561083c57600080fd5b506103e8611519565b34801561085157600080fd5b506103e86004803603604081101561086857600080fd5b506001600160a01b038135169060200135151561187c565b34801561088c57600080fd5b506103ff6118ef565b3480156108a157600080fd5b506103ff6118f5565b3480156108b657600080fd5b506103e8600480360360808110156108cd57600080fd5b50803590602081013590604081013590606001356118fb565b3480156108f257600080fd5b506103ff6004803603602081101561090957600080fd5b50356001600160a01b031661197b565b34801561092557600080fd5b506103e86004803603602081101561093c57600080fd5b5035611996565b34801561094f57600080fd5b506104fd6119e3565b34801561096457600080fd5b506103ff6119f2565b34801561097957600080fd5b506104fd6119f8565b34801561098e57600080fd5b506103ff611a07565b3480156109a357600080fd5b506104d4600480360360208110156109ba57600080fd5b50356001600160a01b0316611a11565b3480156109d657600080fd5b506103ff611a26565b3480156109eb57600080fd5b506103ff611a2c565b348015610a0057600080fd5b506104fd611a32565b348015610a1557600080fd5b506103e860048036036020811015610a2c57600080fd5b5035611a41565b348015610a3f57600080fd5b506104fd611a8e565b348015610a5457600080fd5b506103e860048036036040811015610a6b57600080fd5b506001600160a01b0381358116916020013516611a9d565b348015610a8f57600080fd5b506104fd611b13565b348015610aa457600080fd5b506104d460048036036040811015610abb57600080fd5b506001600160a01b038135169060200135611b22565b348015610add57600080fd5b506103e860048036036020811015610af457600080fd5b50356001600160a01b0316611b2f565b348015610b1057600080fd5b506103ff611b99565b348015610b2557600080fd5b506103ff60048036036020811015610b3c57600080fd5b50356001600160a01b0316611b9f565b348015610b5857600080fd5b506104fd611bb1565b348015610b6d57600080fd5b506103ff611bc0565b348015610b8257600080fd5b506103ff611bc6565b348015610b9757600080fd5b506103ff60048036036040811015610bae57600080fd5b506001600160a01b0381358116916020013516611bd0565b348015610bd257600080fd5b506103e860048036036040811015610be957600080fd5b506001600160a01b038135169060200135611bfb565b348015610c0b57600080fd5b506103e860048036036040811015610c2257600080fd5b50803515159060200135611cc2565b348015610c3d57600080fd5b506103ff611d2c565b348015610c5257600080fd5b506103e860048036036020811015610c6957600080fd5b5035611d36565b348015610c7c57600080fd5b506104d460048036036020811015610c9357600080fd5b50356001600160a01b0316611d83565b348015610caf57600080fd5b506103e860048036036020811015610cc657600080fd5b50356001600160a01b0316611d98565b348015610ce257600080fd5b506103ff611dfc565b348015610cf757600080fd5b506103e860048036036020811015610d0e57600080fd5b50356001600160a01b0316611e02565b348015610d2a57600080fd5b506103e860048036036040811015610d4157600080fd5b506001600160a01b0381351690602001351515611eb3565b348015610d6557600080fd5b506104fd611f26565b348015610d7a57600080fd5b506104d460048036036020811015610d9157600080fd5b50356001600160a01b0316611f35565b348015610dad57600080fd5b506103ff611f53565b610dbf33611f35565b610dfe576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6025805460ff60a81b19169055565b60285481565b604080518082019091526008815267545249464f52434560c01b602082015290565b3360008181526011602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6022546001600160a01b031681565b60055490565b601d5481565b60085481565b6001600160a01b038316600090815260116020908152604080832033845290915281205460001914610f6a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152601182528381203382529091529190912054610f45918490611fb3565b6001600160a01b03851660009081526011602090815260408083203384529091529020555b610f7584848461204a565b50600190505b9392505050565b600c5481565b610f9133611f35565b610fd0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602755565b60035460009061101990610ff1906001600160a01b031661197b565b6002546110139061100a906001600160a01b031661197b565b60055490612392565b90612392565b905090565b6000546001600160a01b0390811691161490565b601290565b61104033611f35565b61107f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f193505050501580156110ab573d6000803e3d6000fd5b50565b6040805160028082526060808301845260009384938493909160208301908036833701905050905030816000815181106110e457fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561113857600080fd5b505afa15801561114c573d6000803e3d6000fd5b505050506040513d602081101561116257600080fd5b505181518290600190811061117357fe5b6001600160a01b03928316602091820292909201810191909152602480546028546040805163d06ca61f60e01b815260048101838152948101918252875160448201528751600097949094169563d06ca61f959394899493926064019185810191028083838c5b838110156111f25781810151838201526020016111da565b50505050905001935050505060006040518083038186803b15801561121657600080fd5b505afa15801561122a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561125357600080fd5b810190808051604051939291908464010000000082111561127357600080fd5b90830190602082018581111561128857600080fd5b82518660208202830111640100000000821117156112a557600080fd5b82525081516020918201928201910280838360005b838110156112d25781810151838201526020016112ba565b505050509050016040525050506001815181106112eb57fe5b602002602001015190506000611318601d54611312601a54856123d490919063ffffffff16565b9061242d565b90506000611337601d54611312601b54866123d490919063ffffffff16565b90506000611356601d54611312601c54876123d490919063ffffffff16565b92989197509195509350505050565b60126020526000908152604090205460ff1681565b601c5481565b6060806060600e8054905067ffffffffffffffff811180156113a157600080fd5b506040519080825280602002602001820160405280156113cb578160200160208202803683370190505b50600e5490915060609067ffffffffffffffff811180156113eb57600080fd5b50604051908082528060200260200182016040528015611415578160200160208202803683370190505b50905060005b600e548110156114d357600e818154811061143257fe5b9060005260206000200160009054906101000a90046001600160a01b031683828151811061145c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060186000600e838154811061148d57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106114c057fe5b602090810291909101015260010161141b565b5090925090509091565b602554600160b81b900460ff1681565b60176020526000908152604090205481565b600b5481565b601b5481565b6000610e9682600019610e35565b61152233611f35565b611561576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6025805460ff60b01b1916600160b01b179055600f541561186d5730600090815260106020526040812054905b600f548110156116b6576115e460106000600f84815481106115ac57fe5b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526010909352205490611f59565b30600081815260106020526040902091909155600f80548390811061160557fe5b6000918252602082200154600f80546001600160a01b03909216926000805160206136e683398151915292601092908790811061163e57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201902054815190815290519081900390910190a3600060106000600f848154811061168957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560010161158e565b5030600090815260106020526040908190205481516002808252606082810190945291849003929181602001602082028036833701905050905030816000815181106116fe57fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175257600080fd5b505afa158015611766573d6000803e3d6000fd5b505050506040513d602081101561177c57600080fd5b505181518290600190811061178d57fe5b6001600160a01b0392831660209182029290920181019190915260248054825460405163791ac94760e01b815260048101888152600094820185905291861660648201819052426084830181905260a060448401908152895160a48501528951959098169763791ac947978b97968b96949593949360c4019187810191028083838b5b83811015611828578181015183820152602001611810565b505050509050019650505050505050600060405180830381600087803b15801561185157600080fd5b505af1158015611865573d6000803e3d6000fd5b505050505050505b6025805460ff60b01b19169055565b61188533611f35565b6118c4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b60195481565b60275481565b61190433611f35565b611943576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6019849055601a839055601b829055601c81905561196d8361196783818887611f59565b90611f59565b601d819055601e5550505050565b6001600160a01b031660009081526010602052604090205490565b61199f33611f35565b6119de576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600d55565b6020546001600160a01b031681565b60265481565b6000546001600160a01b031690565b600d54600c540190565b60136020526000908152604090205460ff1681565b60075481565b600d5481565b6023546001600160a01b031681565b611a4a33611f35565b611a89576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602855565b6021546001600160a01b031681565b611aa633611f35565b611ae5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f80546001600160a01b039384166001600160a01b03199182161790915560208054929093169116179055565b6025546001600160a01b031681565b6000610f7b33848461204a565b611b383361101e565b611b72576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600a5481565b60186020526000908152604090205481565b601f546001600160a01b031681565b601e5481565b600d54600b540190565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b611c0433611f35565b611c43576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b505050506040513d6020811015611cbc57600080fd5b50505050565b611ccb33611f35565b611d0a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60258054921515600160b81b0260ff60b81b1990931692909217909155602855565b600d54600a540190565b611d3f33611f35565b611d7e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602655565b60146020526000908152604090205460ff1681565b611da13361101e565b611ddb576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b601a5481565b611e0b3361101e565b611e45576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b611ebc33611f35565b611efb576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6024546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b60095481565b600082820183811015610f7b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081848411156120425760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612007578181015183820152602001611fef565b50505050905090810190601f1680156120345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602554600090600160b01b900460ff16156120715761206a84848461246f565b9050610f7b565b602554600160a81b900460ff16156121ae57602554600160a01b900460ff166120a35761209e848461253e565b6121ae565b60006006541180156120c257506025546001600160a01b038581169116145b80156120e757506001600160a01b03841660009081526015602052604090205460ff16155b801561210c57506001600160a01b03831660009081526015602052604090205460ff16155b156121ae576002600654430310156121ae576001600160a01b03831660009081526016602052604090205460ff1661218a57600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383166000908152601660205260409020805460ff191660011790555b6025546001600160a01b031633148015906121d35750602554600160b01b900460ff16155b80156121e85750602554600160b81b900460ff165b801561220557506028543060009081526010602052604090205410155b15612212576122126125dd565b61221d848484612c19565b6122278484613459565b15612267576040805162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152601090915291909120546122b9918490611fb3565b6001600160a01b038516600090815260106020908152604080832093909355601290529081205460ff1615801561230957506001600160a01b03841660009081526012602052604090205460ff16155b612313578261231e565b61231e8585856134e4565b6001600160a01b0385166000908152601060205260409020549091506123449082611f59565b6001600160a01b0385166000818152601060209081526040918290209390935580518481529051919233926000805160206136e68339815191529281900390910190a3506001949350505050565b6000610f7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fb3565b6000826123e357506000610e96565b828202828482816123f057fe5b0414610f7b5760405162461bcd60e51b81526004018080602001828103825260218152602001806136c56021913960400191505060405180910390fd5b6000610f7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613591565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526010909152918220546124c0918490611fb3565b6001600160a01b0380861660009081526010602052604080822093909355908516815220546124ef9083611f59565b6001600160a01b0380851660008181526010602090815260409182902094909455805186815290519193928816926000805160206136e683398151915292918290030190a35060019392505050565b602554600160a01b900460ff16156125875760405162461bcd60e51b815260040180806020018281038252602381526020018061367f6023913960400191505060405180910390fd5b6001600160a01b03821660009081526015602052604090205460ff1680156125bc57506025546001600160a01b038281169116145b156125d9576025805460ff60a01b1916600160a01b179055436006555b5050565b6025805460ff60b01b1916600160b01b17905560285460408051600280825260608083018452849390929190602083019080368337019050509050308160008151811061262657fe5b6001600160a01b03928316602091820292909201810191909152602454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561267a57600080fd5b505afa15801561268e573d6000803e3d6000fd5b505050506040513d60208110156126a457600080fd5b50518151829060019081106126b557fe5b6001600160a01b039283166020918202929092018101919091526024805460405163791ac94760e01b81526004810187815260009382018490523060648301819052426084840181905260a060448501908152895160a48601528951959098169763791ac947978b97968b969495939460c4019187810191028083838b5b8381101561274b578181015183820152602001612733565b505050509050019650505050505050600060405180830381600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b50505050600047905060006127ae601d54611312601954856123d490919063ffffffff16565b905060006127cd601d54611312601a54866123d490919063ffffffff16565b905060006127ec601d54611312601b54876123d490919063ffffffff16565b9050600061280b601d54611312601c54886123d490919063ffffffff16565b6020546040519192506000916001600160a01b039091169061753090879084818181858888f193505050503d8060008114612862576040519150601f19603f3d011682016040523d82523d6000602084013e612867565b606091505b50506021546040519192506000916001600160a01b039091169061753090879084818181858888f193505050503d80600081146128c0576040519150601f19603f3d011682016040523d82523d6000602084013e6128c5565b606091505b50506021546001600160a01b031660009081526018602052604090205490915061293c57602154600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602180546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517f1c9644a464f9b4596ccb4cd9d6ae2e5b2f904531d77c684af04720ef172ff626929181900390910190a16022546040516000916001600160a01b03169061753090879084818181858888f193505050503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b50506022546001600160a01b0316600090815260186020526040902054909150612a6c57602254600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602280546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517fc1b8cfe7d73e9741b44df309fe53348b701129c7898b5098a1592abf85da9480929181900390910190a16023546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114612b20576040519150601f19603f3d011682016040523d82523d6000602084013e612b25565b606091505b50506023546001600160a01b0316600090815260186020526040902054909150612b9c57602354600e80546001810182556000919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b039092169190911790555b602380546001600160a01b0390811660009081526018602090815260409182902080548a019055925481519216825291810187905281517fdfde9c557b79dd687d0f263870feec2c8680b892a7cb5b9d0b6de05ae96eb07a929181900390910190a150506025805460ff60b01b1916905550505050505050505050565b600d54600b5442031115612c2f57612c2f6135f6565b600d54600a5442031115612c4557612c45613623565b600d54600c5442031115612c5b57612c5b613650565b6000546001600160a01b03848116911614801590612c8757506000546001600160a01b03838116911614155b8015612cac57506001600160a01b03821660009081526013602052604090205460ff16155b8015612cc657506003546001600160a01b03838116911614155b8015612ce057506002546001600160a01b03838116911614155b8015612cfa57506025546001600160a01b03838116911614155b8015612d0f57506001600160a01b0382163014155b156131e857602654811115612d54576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6000612d5f8361197b565b90506027548282011115612da45760405162461bcd60e51b81526004018080602001828103825260238152602001806136a26023913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683375050602454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015612e0857600080fd5b505afa158015612e1c573d6000803e3d6000fd5b505050506040513d6020811015612e3257600080fd5b505181518290600090612e4157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612e6f57fe5b6001600160a01b0392831660209182029290920181019190915260248054604080516307c0329d60e21b8152600481018981529381019182528651604482015286516000969390931694631f00ca74948a9489949193919260649092019185810191028083838c5b83811015612eef578181015183820152602001612ed7565b50505050905001935050505060006040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612f5057600080fd5b8101908080516040519392919084640100000000821115612f7057600080fd5b908301906020820185811115612f8557600080fd5b8251866020820283011164010000000082111715612fa257600080fd5b82525081516020918201928201910280838360005b83811015612fcf578181015183820152602001612fb7565b50505050905001604052505050600081518110612fe857fe5b6020908102919091018101516001600160a01b03871660009081526017835260408082208054840190556014909352919091205490915060ff166131e4576008546001600160a01b03861660009081526017602052604090205411156130d4576001600160a01b0380861660008181526017602052604090205460085542600b55602154909116146130d457602180546001600160a01b0319166001600160a01b03878116919091179182905560085460408051939092168352602083015280517fd8392017566df1ffa6b4f86c31885c17f002ea44d57a5400a92a947207d414139281900390910190a15b60075481111561315c57600781905542600a556022546001600160a01b0386811691161461315c57602280546001600160a01b0319166001600160a01b03878116919091179182905560075460408051939092168352602083015280517fa996782a43caa7eed0cdc670af27c0b7a6cfab2d09f2a00b0e76faa05128374a9281900390910190a15b6009548110156131e457600981905542600c556023546001600160a01b038681169116146131e457602380546001600160a01b0319166001600160a01b03878116919091179182905560095460408051939092168352602083015280517f97d4a2b36a5562e7afac62fa1442cb6d016e3a1a349e887d92d59a653bc21bf19281900390910190a15b5050505b6000546001600160a01b0384811691161480159061321457506000546001600160a01b03838116911614155b801561323957506001600160a01b03831660009081526013602052604090205460ff16155b801561325357506025546001600160a01b03848116911614155b801561326857506001600160a01b0382163014155b15613454576026548111156132ad576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6021546001600160a01b038481169116141561333a57602154600854604080516001600160a01b039093168352602083019190915280517fc782cdcc53a5a135011720b45af4ba8f86b2a09ad478fd9a38990ed2fd95c7f29281900390910190a16133166135f6565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b6022546001600160a01b03848116911614156133c757602254600754604080516001600160a01b039093168352602083019190915280517ffe98167efb043c7c3f29cd4f23df26f8d90572d29dd4eb3666b0cb00452de54c9281900390910190a16133a3613623565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b6023546001600160a01b038481169116141561345457602354600954604080516001600160a01b039093168352602083019190915280517f977ca4073d805d49bc230514d0bd448d0b79a638565ff3fbe97e89f5911442e99281900390910190a1613430613650565b6001600160a01b0383166000908152601460205260409020805460ff191660011790555b505050565b6001600160a01b03821660009081526012602052604081205460ff168061349857506001600160a01b03821660009081526012602052604090205460ff165b156134a557506000610e96565b6025546001600160a01b03848116911614806134ce57506025546001600160a01b038381169116145b156134db57506000610e96565b50600192915050565b60255460009081906001600160a01b0385811691161461350657601d5461350a565b601e545b9050600061351d606461131286856123d4565b3060009081526010602052604090205490915061353a9082611f59565b30600081815260106020908152604091829020939093558051848152905191926001600160a01b038a16926000805160206136e68339815191529281900390910190a36135878482612392565b9695505050505050565b600081836135e05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612007578181015183820152602001611fef565b5060008385816135ec57fe5b0495945050505050565b6000600855602054602180546001600160a01b0319166001600160a01b0390921691909117905542600b55565b6000600755602054602280546001600160a01b0319166001600160a01b0390921691909117905542600a55565b600019600955602054602380546001600160a01b0319166001600160a01b0390921691909117905542600c5556fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d66be5e8b937b91977484e9140a1b81797a2c0aa6165af6f54fb52e51e96099564736f6c63430007040033
Deployed Bytecode Sourcemap
6543:19928:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15150:98;;;;;;;;;;;;;:::i;:::-;;8653:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10468:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12140:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12140:248:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8277:19;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8277:19:0;;;;;;;;;;;;;;10778:102;;;;;;;;;;;;;:::i;8090:27::-;;;;;;;;;;;;;:::i;7072:32::-;;;;;;;;;;;;;:::i;20013:431::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20013:431:0;;;;;;;;;;;;;;;;;:::i;7240:36::-;;;;;;;;;;;;;:::i;11373:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11373:108:0;;:::i;10988:142::-;;;;;;;;;;;;;:::i;5969:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5969:103:0;-1:-1:-1;;;;;5969:103:0;;:::i;10676:94::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26178:116;;;;;;;;;;;;;:::i;14475:667::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;7512:43;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7512:43:0;-1:-1:-1;;;;;7512:43:0;;:::i;8040:29::-;;;;;;;;;;;;;:::i;25647:523::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8493:40;;;;;;;;;;;;;:::i;7769:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7769:56:0;-1:-1:-1;;;;;7769:56:0;;:::i;7196:37::-;;;;;;;;;;;;;:::i;7992:26::-;;;;;;;;;;;;;:::i;12396:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12396:116:0;-1:-1:-1;;;;;12396:116:0;;:::i;15256:1078::-;;;;;;;;;;;;;:::i;12520:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12520:120:0;;;;;;;;;;:::i;7898:31::-;;;;;;;;;;;;;:::i;8595:51::-;;;;;;;;;;;;;:::i;11489:447::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11489:447:0;;;;;;;;;;;;;;;;;:::i;11138:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11138:119:0;-1:-1:-1;;;;;11138:119:0;;:::i;13469:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13469:147:0;;:::i;8210:30::-;;;;;;;;;;;;;:::i;8540:48::-;;;;;;;;;;;;;:::i;10888:92::-;;;;;;;;;;;;;:::i;14349:118::-;;;;;;;;;;;;;:::i;7562:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7562:47:0;-1:-1:-1;;;;;7562:47:0;;:::i;7036:29::-;;;;;;;;;;;;;:::i;7283:36::-;;;;;;;;;;;;;:::i;8303:22::-;;;;;;;;;;;;;:::i;12807:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12807:109:0;;:::i;8247:23::-;;;;;;;;;;;;;:::i;12924:238::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12924:238:0;;;;;;;;;;:::i;8365:19::-;;;;;;;;;;;;;:::i;19817:188::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19817:188:0;;;;;;;;:::i;5762:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5762:94:0;-1:-1:-1;;;;;5762:94:0;;:::i;7156:33::-;;;;;;;;;;;;;:::i;7832:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7832:57:0;-1:-1:-1;;;;;7832:57:0;;:::i;8167:36::-;;;;;;;;;;;;;:::i;8124:::-;;;;;;;;;;;;;:::i;14101:120::-;;;;;;;;;;;;;:::i;11944:188::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11944:188:0;;;;;;;;;;:::i;26302:166::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26302:166:0;;;;;;;;:::i;19590:219::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19590:219:0;;;;;;;;;:::i;14229:112::-;;;;;;;;;;;;;:::i;11265:100::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11265:100:0;;:::i;7616:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7616:39:0;-1:-1:-1;;;;;7616:39:0;;:::i;5864:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5864:97:0;-1:-1:-1;;;;;5864:97:0;;:::i;7936:30::-;;;;;;;;;;;;;:::i;6195:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6195:173:0;-1:-1:-1;;;;;6195:173:0;;:::i;12648:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12648:151:0;;;;;;;;;;:::i;8334:24::-;;;;;;;;;;;;;:::i;6080:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6080:107:0;-1:-1:-1;;;;;6080:107:0;;:::i;7111:38::-;;;;;;;;;;;;;:::i;15150:98::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;15215:17:::1;:25:::0;;-1:-1:-1;;;;15215:25:0::1;::::0;;15150:98::o;8653:49::-;;;;:::o;10468:94::-;10549:5;;;;;;;;;;;;-1:-1:-1;;;10549:5:0;;;;10468:94;:::o;12140:248::-;12276:10;12242:4;12264:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12264:32:0;;;;;;;;;;;:41;;;12321:37;;;;;;;12242:4;;12264:32;;12276:10;;12321:37;;;;;;;;-1:-1:-1;12376:4:0;12140:248;;;;;:::o;8277:19::-;;;-1:-1:-1;;;;;8277:19:0;;:::o;10778:102::-;10860:12;;10778:102;:::o;8090:27::-;;;;:::o;7072:32::-;;;;:::o;20013:431::-;-1:-1:-1;;;;;20168:19:0;;20147:4;20168:19;;;:11;:19;;;;;;;;20188:10;20168:31;;;;;;;;-1:-1:-1;;20168:46:0;20164:200;;20265:87;;;;;;;;;;;-1:-1:-1;;;20265:87:0;;;;;;;;-1:-1:-1;;;;;20265:19:0;;-1:-1:-1;20265:19:0;;;:11;:19;;;;;20285:10;20265:31;;;;;;;;;;:87;;20319:6;;20265:53;:87::i;:::-;-1:-1:-1;;;;;20231:19:0;;;;;;:11;:19;;;;;;;;20251:10;20231:31;;;;;;;:121;20164:200;20374:40;20388:6;20396:9;20407:6;20374:13;:40::i;:::-;;20432:4;20425:11;;20013:431;;;;;;:::o;7240:36::-;;;;:::o;11373:108::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;11448:16:::1;:25:::0;11373:108::o;10988:142::-;11116:4;;11041:7;;11068:54;;11106:15;;-1:-1:-1;;;;;11116:4:0;11106:9;:15::i;:::-;11095:4;;11068:33;;11085:15;;-1:-1:-1;;;;;11095:4:0;11085:9;:15::i;:::-;11068:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;11061:61;;10988:142;:::o;5969:103::-;6024:4;6059:5;-1:-1:-1;;;;;6059:5:0;;;6048:16;;;;5969:103::o;10676:94::-;6730:2;10676:94;:::o;26178:116::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;26235:51:::1;::::0;26243:10:::1;::::0;26264:21:::1;26235:51:::0;::::1;;;::::0;::::1;::::0;;;26264:21;26243:10;26235:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26178:116::o:0;14475:667::-;14670:16;;;14684:1;14670:16;;;14646:21;14670:16;;;;;14567:7;;;;;;14670:16;;;;;;;;;;;;-1:-1:-1;14670:16:0;14646:40;;14715:4;14697;14702:1;14697:7;;;;;;;;-1:-1:-1;;;;;14697:23:0;;;:7;;;;;;;;;;:23;;;;14741:6;;:13;;;-1:-1:-1;;;14741:13:0;;;;:6;;;;;:11;;:13;;;;;14697:7;;14741:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14741:13:0;14731:7;;:4;;14736:1;;14731:7;;;;;;-1:-1:-1;;;;;14731:23:0;;;:7;;;;;;;;;;:23;;;;14787:6;;;14808:13;;14787:41;;;-1:-1:-1;;;14787:41:0;;;;;;;;;;;;;;;;;;;;;;14765:19;;14787:6;;;;;:20;;14808:13;;14823:4;;14787:41;;;;;;;;;;;;;14765:19;14787:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14787:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14787:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14829:1;14787:44;;;;;;;;;;;;;;14765:66;;14842:25;14870:42;14903:8;;14870:28;14886:11;;14870;:15;;:28;;;;:::i;:::-;:32;;:42::i;:::-;14842:70;;14923:21;14947:38;14976:8;;14947:24;14963:7;;14947:11;:15;;:24;;;;:::i;:38::-;14923:62;;14996:24;15023:41;15055:8;;15023:27;15039:10;;15023:11;:15;;:27;;;;:::i;:41::-;15083:17;;15102:13;;-1:-1:-1;15083:17:0;;-1:-1:-1;14475:667:0;-1:-1:-1;;;;14475:667:0:o;7512:43::-;;;;;;;;;;;;;;;:::o;8040:29::-;;;;:::o;25647:523::-;25722:16;25740;25774:27;25818:17;:24;;;;25804:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25804:39:0;-1:-1:-1;25896:17:0;:24;25774:69;;-1:-1:-1;25854:25:0;;25882:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25882:39:0;;25854:67;;25937:9;25932:191;25956:17;:24;25952:28;;25932:191;;;26018:17;26036:1;26018:20;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26018:20:0;26002:10;26013:1;26002:13;;;;;;;;;;;;;:36;-1:-1:-1;;;;;26002:36:0;;;-1:-1:-1;;;;;26002:36:0;;;;;26067:22;:44;26090:17;26108:1;26090:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26090:20:0;26067:44;;;;;;;;;;;;;26053:11;;:8;;26062:1;;26053:11;;;;;;;;;;;;;;;:58;25982:3;;25932:191;;;-1:-1:-1;26141:10:0;;-1:-1:-1;26153:8:0;-1:-1:-1;25647:523:0;;:::o;8493:40::-;;;-1:-1:-1;;;8493:40:0;;;;;:::o;7769:56::-;;;;;;;;;;;;;:::o;7196:37::-;;;;:::o;7992:26::-;;;;:::o;12396:116::-;12451:4;12475:29;12483:7;-1:-1:-1;;12475:7:0;:29::i;15256:1078::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;8745:16:::1;:23:::0;;-1:-1:-1;;;;8745:23:0::1;-1:-1:-1::0;;;8745:23:0::1;::::0;;15327:9:::2;:16:::0;:20;15323:1004:::2;;15411:4;15364:26;15393:24:::0;;;:9:::2;:24;::::0;;;;;;15432:416:::2;15456:9;:16:::0;15452:20;::::2;15432:416;;;15525:93;15576:9;:23;15586:9;15596:1;15586:12;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;15586:12:0::2;15576:23:::0;;;;::::2;::::0;;;;;;;;;;;15543:4:::2;15525:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:93::i;:::-;15516:4;15498:24;::::0;;;:9:::2;:24;::::0;;;;:120;;;;15673:9:::2;:12:::0;;15683:1;;15673:12;::::2;;;;;;::::0;;;::::2;::::0;;::::2;::::0;15754:9:::2;:12:::0;;-1:-1:-1;;;;;15673:12:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;15642:144:0;15744:9:::2;::::0;15754;15764:1;;15754:12;::::2;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;15754:12:0::2;15744:23:::0;;;;::::2;::::0;;;;;;;;;;;15642:144;;;;;;;;;;;;;;;::::2;15831:1;15805:9;:23;15815:9;15825:1;15815:12;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;15815:12:0::2;15805:23:::0;;;::::2;::::0;;;;;;;;:27;15815:12;15474:3:::2;15432:416;;;-1:-1:-1::0;15906:4:0::2;15862:23;15888:24:::0;;;:9:::2;:24;::::0;;;;;;;15989:16;;16003:1:::2;15989:16:::0;;;15965:21:::2;15989:16:::0;;::::2;::::0;;;15888:62;;;::::2;::::0;15965:21;15989:16:::2;;;;;;;;;;;::::0;-1:-1:-1;15989:16:0::2;15965:40;;16038:4;16020;16025:1;16020:7;;;;;;;;-1:-1:-1::0;;;;;16020:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;16068:6:::2;::::0;:13:::2;::::0;;-1:-1:-1;;;16068:13:0;;;;:6;;;::::2;::::0;:11:::2;::::0;:13:::2;::::0;;::::2;::::0;16020:7;;16068:13;;;;;:6;:13;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;16068:13:0;16058:7;;:4;;16063:1:::2;::::0;16058:7;::::2;;;;;-1:-1:-1::0;;;;;16058:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;16098:6:::2;::::0;;16251:15;;16098:217:::2;::::0;-1:-1:-1;;;16098:217:0;;::::2;::::0;::::2;::::0;;;:6:::2;:217:::0;;;;;;16251:15;;::::2;16098:217:::0;;;;;;16285:15:::2;16098:217:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::2;::::0;:57:::2;::::0;16174:15;;16098:6;16228:4;;16251:15;;16285;;16098:217;;;;;;::::2;::::0;::::2;::::0;;;:6;:217:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;15323:1004;;;;8791:16:::1;:24:::0;;-1:-1:-1;;;;8791:24:0::1;::::0;;15256:1078::o;12520:120::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12604:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12604:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12520:120::o;7898:31::-;;;;:::o;8595:51::-;;;;:::o;11489:447::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;11672:12:::1;:30:::0;;;11713:11:::1;:28:::0;;;11752:7:::1;:20:::0;;;11783:10:::1;:26:::0;;;11831:58:::1;11727:14:::0;11831:41:::1;11796:13:::0;11831:41;11687:15;11762:10;11831:16:::1;:25::i;:::-;:29:::0;::::1;:41::i;:58::-;11820:8;:69:::0;;;11900:17:::1;:28:::0;-1:-1:-1;;;;11489:447:0:o;11138:119::-;-1:-1:-1;;;;;11231:18:0;11204:7;11231:18;;;:9;:18;;;;;;;11138:119::o;13469:147::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;13580:11:::1;:28:::0;13469:147::o;8210:30::-;;;-1:-1:-1;;;;;8210:30:0;;:::o;8540:48::-;;;;:::o;10888:92::-;10940:7;10967:5;-1:-1:-1;;;;;10967:5:0;10888:92;:::o;14349:118::-;14448:11;;14428:17;;:31;14349:118;:::o;7562:47::-;;;;;;;;;;;;;;;:::o;7036:29::-;;;;:::o;7283:36::-;;;;:::o;8303:22::-;;;-1:-1:-1;;;;;8303:22:0;;:::o;12807:109::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;12883:13:::1;:25:::0;12807:109::o;8247:23::-;;;-1:-1:-1;;;;;8247:23:0;;:::o;12924:238::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;13063:21:::1;:44:::0;;-1:-1:-1;;;;;13063:44:0;;::::1;-1:-1:-1::0;;;;;;13063:44:0;;::::1;;::::0;;;13118:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;12924:238::o;8365:19::-;;;-1:-1:-1;;;;;8365:19:0;;:::o;19817:188::-;19924:4;19953:44;19967:10;19979:9;19990:6;19953:13;:44::i;5762:94::-;5597:19;5605:10;5597:7;:19::i;:::-;5589:38;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5822:19:0::1;;::::0;;;5844:4:::1;5822:19;::::0;;;;;;;:26;;-1:-1:-1;;5822:26:0::1;::::0;;::::1;::::0;;5762:94::o;7156:33::-;;;;:::o;7832:57::-;;;;;;;;;;;;;:::o;8167:36::-;;;-1:-1:-1;;;;;8167:36:0;;:::o;8124:::-;;;;:::o;14101:120::-;14202:11;;14181:18;;:32;14101:120;:::o;11944:188::-;-1:-1:-1;;;;;12096:19:0;;;12064:7;12096:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11944:188::o;26302:166::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;26416:44:::1;::::0;;-1:-1:-1;;;26416:44:0;;26440:10:::1;26416:44;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;26416:23:0;::::1;::::0;::::1;::::0;:44;;;;;::::1;::::0;;;;;;;;-1:-1:-1;26416:23:0;:44;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;26302:166:0:o;19590:219::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;19720:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;19720:38:0::1;-1:-1:-1::0;;;;19720:38:0;;::::1;::::0;;;::::1;::::0;;;19769:13:::1;:32:::0;19590:219::o;14229:112::-;14322:11;;14305:14;;:28;14229:112;:::o;11265:100::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;11336:12:::1;:21:::0;11265:100::o;7616:39::-;;;;;;;;;;;;;;;:::o;5864:97::-;5597:19;5605:10;5597:7;:19::i;:::-;5589:38;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5926:19:0::1;5948:5;5926:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;5926:27:0::1;::::0;;5864:97::o;7936:30::-;;;;:::o;6195:173::-;5597:19;5605:10;5597:7;:19::i;:::-;5589:38;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;-1:-1:-1;;;5589:38:0;;;;;;;;;;;;;;;6271:5:::1;:11:::0;;-1:-1:-1;;;;;;6271:11:0::1;-1:-1:-1::0;;;;;6271:11:0;::::1;::::0;;::::1;::::0;;6293:19;;;-1:-1:-1;6293:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;6293:26:0::1;::::0;;::::1;::::0;;;6335:25;;;;;;;::::1;::::0;;;;;;;;;::::1;6195:173:::0;:::o;12648:151::-;5694:24;5707:10;5694:12;:24::i;:::-;5686:48;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;-1:-1:-1;;;5686:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12759:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;12759:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12648:151::o;8334:24::-;;;-1:-1:-1;;;;;8334:24:0;;:::o;6080:107::-;-1:-1:-1;;;;;6160:19:0;6136:4;6160:19;;;:14;:19;;;;;;;;;6080:107::o;7111:38::-;;;;:::o;1093:179::-;1151:7;1183:5;;;1207:6;;;;1199:46;;;;;-1:-1:-1;;;1199:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1424:224;1544:7;1580:12;1572:6;;;;1564:29;;;;-1:-1:-1;;;1564:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1616:5:0;;;1424:224::o;20452:1725::-;20599:16;;20578:4;;-1:-1:-1;;;20599:16:0;;;;20595:97;;;20639:41;20654:6;20662:9;20673:6;20639:14;:41::i;:::-;20632:48;;;;20595:97;20706:17;;-1:-1:-1;;;20706:17:0;;;;20702:686;;;20745:16;;-1:-1:-1;;;20745:16:0;;;;20740:637;;20782:37;20801:6;20809:9;20782:18;:37::i;:::-;20740:637;;;20901:1;20886:12;;:16;:55;;;;-1:-1:-1;20937:4:0;;-1:-1:-1;;;;;20927:14:0;;;20937:4;;20927:14;20886:55;:106;;;;-1:-1:-1;;;;;;20967:25:0;;;;;;:17;:25;;;;;;;;20966:26;20886:106;:160;;;;-1:-1:-1;;;;;;21018:28:0;;;;;;:17;:28;;;;;;;;21017:29;20886:160;20860:502;;;21123:1;21108:12;;21093;:27;:31;21089:254;;;-1:-1:-1;;;;;21158:21:0;;;;;;:10;:21;;;;;;;;21153:112;;21212:9;:25;;;;;;;-1:-1:-1;21212:25:0;;;;;;;;-1:-1:-1;;;;;;21212:25:0;-1:-1:-1;;;;;21212:25:0;;;;;21153:112;-1:-1:-1;;;;;21291:21:0;;;;;;:10;:21;;;;;:28;;-1:-1:-1;;21291:28:0;21315:4;21291:28;;;21089:254;21430:4;;-1:-1:-1;;;;;21430:4:0;21416:10;:18;;;;:52;;-1:-1:-1;21452:16:0;;-1:-1:-1;;;21452:16:0;;;;21451:17;21416:52;:90;;;;-1:-1:-1;21485:21:0;;-1:-1:-1;;;21485:21:0;;;;21416:90;:148;;;;-1:-1:-1;21551:13:0;;21541:4;21523:24;;;;:9;:24;;;;;;:41;;21416:148;21398:215;;;21591:10;:8;:10::i;:::-;21623:40;21637:6;21645:9;21656:6;21623:13;:40::i;:::-;21683:35;21700:6;21708:9;21683:16;:35::i;:::-;21682:36;21674:60;;;;;-1:-1:-1;;;21674:60:0;;;;;;;;;;;;-1:-1:-1;;;21674:60:0;;;;;;;;;;;;;;;21765:90;;;;;;;;;;;-1:-1:-1;;;21765:90:0;;;;;;;;-1:-1:-1;;;;;21765:17:0;;-1:-1:-1;21765:17:0;;;:9;:17;;;;;;;;:90;;21801:6;;21765:21;:90::i;:::-;-1:-1:-1;;;;;21745:17:0;;;;;;:9;:17;;;;;;;;:110;;;;21892:11;:19;;;;;;;;21891:20;:47;;;;-1:-1:-1;;;;;;21916:22:0;;;;;;:11;:22;;;;;;;;21915:23;21891:47;:119;;22004:6;21891:119;;;21954:34;21962:6;21970:9;21981:6;21954:7;:34::i;:::-;-1:-1:-1;;;;;22044:20:0;;;;;;:9;:20;;;;;;21866:144;;-1:-1:-1;22044:40:0;;21866:144;22044:24;:40::i;:::-;-1:-1:-1;;;;;22021:20:0;;;;;;:9;:20;;;;;;;;;:63;;;;22100:47;;;;;;;22021:20;;22109:10;;-1:-1:-1;;;;;;;;;;;22100:47:0;;;;;;;;;-1:-1:-1;22165:4:0;;20452:1725;-1:-1:-1;;;;20452:1725:0:o;1280:136::-;1338:7;1365:43;1369:1;1372;1365:43;;;;;;;;;;;;;;;;;:3;:43::i;1656:246::-;1714:7;1738:6;1734:47;;-1:-1:-1;1768:1:0;1761:8;;1734:47;1803:5;;;1807:1;1803;:5;:1;1827:5;;;;;:10;1819:56;;;;-1:-1:-1;;;1819:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:132;1968:7;1995:39;1999:1;2002;1995:39;;;;;;;;;;;;;;;;;:3;:39::i;22185:401::-;22349:90;;;;;;;;;;;-1:-1:-1;;;22349:90:0;;;;;;;;-1:-1:-1;;;;;22349:17:0;;22312:4;22349:17;;;:9;:17;;;;;;;:90;;22385:6;;22349:21;:90::i;:::-;-1:-1:-1;;;;;22329:17:0;;;;;;;:9;:17;;;;;;:110;;;;22473:20;;;;;;;:32;;22498:6;22473:24;:32::i;:::-;-1:-1:-1;;;;;22450:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;22521:35;;;;;;;22450:20;;22521:35;;;;-1:-1:-1;;;;;;;;;;;22521:35:0;;;;;;;;-1:-1:-1;22574:4:0;22185:401;;;;;:::o;13170:291::-;13252:16;;-1:-1:-1;;;13252:16:0;;;;13251:17;13243:65;;;;-1:-1:-1;;;13243:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13323:23:0;;;;;;:17;:23;;;;;;;;:37;;;;-1:-1:-1;13356:4:0;;-1:-1:-1;;;;;13350:10:0;;;13356:4;;13350:10;13323:37;13319:135;;;13377:16;:23;;-1:-1:-1;;;;13377:23:0;-1:-1:-1;;;13377:23:0;;;13430:12;13415;:27;13319:135;13170:291;;:::o;23437:2202::-;8745:16;:23;;-1:-1:-1;;;;8745:23:0;-1:-1:-1;;;8745:23:0;;;23515:13:::1;::::0;23614:16:::1;::::0;;23628:1:::1;23614:16:::0;;;23590:21:::1;23614:16:::0;;::::1;::::0;;23515:13;;23590:21;;23614:16;23628:1;23614:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23614:16:0::1;23590:40;;23659:4;23641;23646:1;23641:7;;;;;;;;-1:-1:-1::0;;;;;23641:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23685:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;23685:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;23641:7;;23685:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;23685:13:0;23675:7;;:4;;23680:1:::1;::::0;23675:7;::::1;;;;;-1:-1:-1::0;;;;;23675:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23711:6:::1;::::0;;:188:::1;::::0;-1:-1:-1;;;23711:188:0;;::::1;::::0;::::1;::::0;;;:6:::1;:188:::0;;;;;;23853:4:::1;23711:188:::0;;;;;;23873:15:::1;23711:188:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::1;::::0;:57:::1;::::0;23783:12;;23711:6;23826:4;;23853;;23873:15;;23711:188;;;;;::::1;::::0;::::1;::::0;;;:6;:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23912:17;23932:21;23912:41;;23964:26;23993:41;24025:8;;23993:27;24007:12;;23993:9;:13;;:27;;;;:::i;:41::-;23964:70;;24045:25;24073:40;24104:8;;24073:26;24087:11;;24073:9;:13;;:26;;;;:::i;:40::-;24045:68;;24124:21;24148:36;24175:8;;24148:22;24162:7;;24148:9;:13;;:22;;;;:::i;:36::-;24124:60;;24195:24;24222:39;24252:8;;24222:25;24236:10;;24222:9;:13;;:25;;;;:::i;:39::-;24304:15;::::0;24296:109:::1;::::0;24195:66;;-1:-1:-1;24275:15:0::1;::::0;-1:-1:-1;;;;;24304:15:0;;::::1;::::0;24385:5:::1;::::0;24347:18;;24275:15;24296:109;24275:15;24296:109;24347:18;24304:15;24385:5;24296:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;24447:8:0::1;::::0;24439:101:::1;::::0;24274:131;;-1:-1:-1;24417:16:0::1;::::0;-1:-1:-1;;;;;24447:8:0;;::::1;::::0;24520:5:::1;::::0;24483:17;;24417:16;24439:101;24417:16;24439:101;24483:17;24447:8;24520:5;24439:101:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;24578:8:0::1;::::0;-1:-1:-1;;;;;24578:8:0::1;24555:32;::::0;;;:22:::1;:32;::::0;;;;;24416:124;;-1:-1:-1;24551:102:0::1;;24632:8;::::0;24609:17:::1;:32:::0;;24632:8;24609:32;::::1;::::0;;24632:8:::1;24609:32:::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;24609:32:0::1;-1:-1:-1::0;;;;;24632:8:0;;::::1;24609:32:::0;;;::::1;::::0;;24551:102:::1;24686:8;::::0;;-1:-1:-1;;;;;24686:8:0;;::::1;24663:32;::::0;;;:22:::1;:32;::::0;;;;;;;;:53;;;::::1;::::0;;24747:8;;24732:43;;24747:8;::::1;24732:43:::0;;;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;24817:4;::::0;24809:93:::1;::::0;24787:16:::1;::::0;-1:-1:-1;;;;;24817:4:0::1;::::0;24882:5:::1;::::0;24849:13;;24787:16;24809:93;24787:16;24809:93;24849:13;24817:4;24882:5;24809:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;24940:4:0::1;::::0;-1:-1:-1;;;;;24940:4:0::1;24917:28;::::0;;;:22:::1;:28;::::0;;;;;24786:116;;-1:-1:-1;24913:94:0::1;;24990:4;::::0;24967:17:::1;:28:::0;;24990:4;24967:28;::::1;::::0;;24990:4:::1;24967:28:::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;24967:28:0::1;-1:-1:-1::0;;;;;24990:4:0;;::::1;24967:28:::0;;;::::1;::::0;;24913:94:::1;25040:4;::::0;;-1:-1:-1;;;;;25040:4:0;;::::1;25017:28;::::0;;;:22:::1;:28;::::0;;;;;;;;:45;;;::::1;::::0;;25089:4;;25078:31;;25089:4;::::1;25078:31:::0;;;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;25151:7;::::0;25143:99:::1;::::0;25121:16:::1;::::0;-1:-1:-1;;;;;25151:7:0::1;::::0;25222:5:::1;::::0;25186:16;;25121;25143:99;25121:16;25143:99;25186:16;25151:7;25222:5;25143:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;25280:7:0::1;::::0;-1:-1:-1;;;;;25280:7:0::1;25257:31;::::0;;;:22:::1;:31;::::0;;;;;25120:122;;-1:-1:-1;25253:100:0::1;;25333:7;::::0;25310:17:::1;:31:::0;;25333:7;25310:31;::::1;::::0;;25333:7:::1;25310:31:::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;25310:31:0::1;-1:-1:-1::0;;;;;25333:7:0;;::::1;25310:31:::0;;;::::1;::::0;;25253:100:::1;25386:7;::::0;;-1:-1:-1;;;;;25386:7:0;;::::1;25363:31;::::0;;;:22:::1;:31;::::0;;;;;;;;:51;;;::::1;::::0;;25444:7;;25430:40;;25444:7;::::1;25430:40:::0;;;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;;8791:16:0;:24;;-1:-1:-1;;;;8791:24:0;;;-1:-1:-1;;;;;;;;;;23437:2202:0:o;16342:3240::-;16513:11;;16492:18;;16474:15;:36;:50;16470:99;;;16541:16;:14;:16::i;:::-;16618:11;;16601:14;;16583:15;:32;:46;16579:91;;;16646:12;:10;:12::i;:::-;16722:11;;16702:17;;16684:15;:35;:49;16680:97;;;16750:15;:13;:15::i;:::-;16815:5;;-1:-1:-1;;;;;16805:15:0;;;16815:5;;16805:15;;;;:50;;-1:-1:-1;16850:5:0;;-1:-1:-1;;;;;16837:18:0;;;16850:5;;16837:18;;16805:50;:94;;;;-1:-1:-1;;;;;;16873:26:0;;;;;;:15;:26;;;;;;;;16872:27;16805:94;:128;;;;-1:-1:-1;16929:4:0;;-1:-1:-1;;;;;16916:17:0;;;16929:4;;16916:17;;16805:128;:162;;;;-1:-1:-1;16963:4:0;;-1:-1:-1;;;;;16950:17:0;;;16963:4;;16950:17;;16805:162;:196;;;;-1:-1:-1;16997:4:0;;-1:-1:-1;;;;;16984:17:0;;;16997:4;;16984:17;;16805:196;:239;;;;-1:-1:-1;;;;;;17018:26:0;;17039:4;17018:26;;16805:239;16787:1969;;;17089:12;;17079:6;:22;;17071:41;;;;;-1:-1:-1;;;17071:41:0;;;;;;;;;;;;-1:-1:-1;;;17071:41:0;;;;;;;;;;;;;;;17127:32;17162:20;17172:9;17162;:20::i;:::-;17127:55;;17260:16;;17250:6;17223:24;:33;:53;;17197:150;;;;-1:-1:-1;;;17197:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17386:16;;;17400:1;17386:16;;;17362:21;17386:16;;;;;17362:21;17386:16;;;;;;;;-1:-1:-1;;17427:6:0;;:13;;;-1:-1:-1;;;17427:13:0;;;;17362:40;;-1:-1:-1;;;;;;17427:6:0;;;;:11;;-1:-1:-1;17427:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17427:13:0;17417:7;;:4;;17422:1;;17417:7;;;;;;;;;:23;-1:-1:-1;;;;;17417:23:0;;;-1:-1:-1;;;;;17417:23:0;;;;;17473:4;17455;17460:1;17455:7;;;;;;;;-1:-1:-1;;;;;17455:23:0;;;:7;;;;;;;;;;:23;;;;17511:6;;;:33;;;-1:-1:-1;;;17511:33:0;;;;;;;;;;;;;;;;;;;;;;17493:15;;17511:6;;;;;:19;;17531:6;;17539:4;;17511:33;;;;;;;;;;;;;;;;;17493:15;17511:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17511:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17511:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17545:1;17511:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17562:32:0;;;;;;:21;:32;;;;;;:43;;;;;;17625:7;:18;;;;;;;;17511:36;;-1:-1:-1;17625:18:0;;17620:1125;;17703:13;;-1:-1:-1;;;;;17668:32:0;;;;;;:21;:32;;;;;;:48;17664:392;;;-1:-1:-1;;;;;17757:32:0;;;;;;;:21;:32;;;;;;17741:13;:48;17833:15;17812:18;:36;17875:8;;;;;:21;17871:166;;17925:8;:20;;-1:-1:-1;;;;;;17925:20:0;-1:-1:-1;;;;;17925:20:0;;;;;;;;;;;17999:13;;17977:36;;;17989:8;;;;17977:36;;;;;;;;;;;;;;;;;;17871:166;18088:10;;18078:7;:20;18074:313;;;18123:10;:20;;;18183:15;18166:14;:32;18225:4;;-1:-1:-1;;;;;18225:17:0;;;:4;;:17;18221:147;;18271:4;:16;;-1:-1:-1;;;;;;18271:16:0;-1:-1:-1;;;;;18271:16:0;;;;;;;;;;;18333:10;;18319:25;;;18327:4;;;;18319:25;;;;;;;;;;;;;;;;;;18221:147;18419:9;;18409:7;:19;18405:325;;;18453:9;:19;;;18515:15;18495:17;:35;18557:7;;-1:-1:-1;;;;;18557:20:0;;;:7;;:20;18553:158;;18606:7;:19;;-1:-1:-1;;;;;;18606:19:0;-1:-1:-1;;;;;18606:19:0;;;;;;;;;;;18677:9;;18657:30;;;18668:7;;;;18657:30;;;;;;;;;;;;;;;;;;18553:158;16787:1969;;;;18794:5;;-1:-1:-1;;;;;18784:15:0;;;18794:5;;18784:15;;;;:50;;-1:-1:-1;18829:5:0;;-1:-1:-1;;;;;18816:18:0;;;18829:5;;18816:18;;18784:50;:91;;;;-1:-1:-1;;;;;;18852:23:0;;;;;;:15;:23;;;;;;;;18851:24;18784:91;:122;;;;-1:-1:-1;18902:4:0;;-1:-1:-1;;;;;18892:14:0;;;18902:4;;18892:14;;18784:122;:165;;;;-1:-1:-1;;;;;;18923:26:0;;18944:4;18923:26;;18784:165;18766:809;;;18994:12;;18984:6;:22;;18976:41;;;;;-1:-1:-1;;;18976:41:0;;;;;;;;;;;;-1:-1:-1;;;18976:41:0;;;;;;;;;;;;;;;19036:8;;-1:-1:-1;;;;;19036:18:0;;;:8;;:18;19032:177;;;19093:8;;19103:13;;19080:37;;;-1:-1:-1;;;;;19093:8:0;;;19080:37;;;;;;;;;;;;;;;;;;;;;19136:16;:14;:16::i;:::-;-1:-1:-1;;;;;19171:15:0;;;;;;:7;:15;;;;;:22;;-1:-1:-1;;19171:22:0;19189:4;19171:22;;;19032:177;19227:4;;-1:-1:-1;;;;;19227:14:0;;;:4;;:14;19223:158;;;19276:4;;19282:10;;19267:26;;;-1:-1:-1;;;;;19276:4:0;;;19267:26;;;;;;;;;;;;;;;;;;;;;19312:12;:10;:12::i;:::-;-1:-1:-1;;;;;19343:15:0;;;;;;:7;:15;;;;;:22;;-1:-1:-1;;19343:22:0;19361:4;19343:22;;;19223:158;19399:7;;-1:-1:-1;;;;;19399:17:0;;;:7;;:17;19395:169;;;19454:7;;19463:9;;19442:31;;;-1:-1:-1;;;;;19454:7:0;;;19442:31;;;;;;;;;;;;;;;;;;;;;19492:15;:13;:15::i;:::-;-1:-1:-1;;;;;19526:15:0;;;;;;:7;:15;;;;;:22;;-1:-1:-1;;19526:22:0;19544:4;19526:22;;;19395:169;16342:3240;;;:::o;23087:342::-;-1:-1:-1;;;;;23224:19:0;;23198:4;23224:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;23247:22:0;;;;;;:11;:22;;;;;;;;23224:45;23220:90;;;-1:-1:-1;23293:5:0;23286:12;;23220:90;23334:4;;-1:-1:-1;;;;;23324:14:0;;;23334:4;;23324:14;;:35;;-1:-1:-1;23355:4:0;;-1:-1:-1;;;;;23342:17:0;;;23355:4;;23342:17;23324:35;23320:80;;;-1:-1:-1;23383:5:0;23376:12;;23320:80;-1:-1:-1;23417:4:0;23087:342;;;;:::o;22594:485::-;22758:4;;22714:7;;;;-1:-1:-1;;;;;22758:17:0;;;:4;;:17;:74;;22824:8;;22758:74;;;22791:17;;22758:74;22734:98;-1:-1:-1;22843:17:0;22863:34;22893:3;22863:25;:6;22734:98;22863:10;:25::i;:34::-;22953:4;22935:24;;;;:9;:24;;;;;;22843:54;;-1:-1:-1;22935:39:0;;22843:54;22935:28;:39::i;:::-;22926:4;22908:24;;;;:9;:24;;;;;;;;;:66;;;;22990:42;;;;;;;22926:4;;-1:-1:-1;;;;;22990:42:0;;;-1:-1:-1;;;;;;;;;;;22990:42:0;;;;;;;;;23050:21;:6;23061:9;23050:10;:21::i;:::-;23043:28;22594:485;-1:-1:-1;;;;;;22594:485:0:o;2050:223::-;2170:7;2205:12;2198:5;2190:28;;;;-1:-1:-1;;;2190:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2229:9;2245:1;2241;:5;;;;;;;2050:223;-1:-1:-1;;;;;2050:223:0:o;13624:155::-;13686:1;13670:13;:17;13709:15;;13698:8;:26;;-1:-1:-1;;;;;;13698:26:0;-1:-1:-1;;;;;13709:15:0;;;13698:26;;;;;;13756:15;13735:18;:36;13624:155::o;13787:140::-;13842:1;13829:10;:14;13861:15;;13854:4;:22;;-1:-1:-1;;;;;;13854:22:0;-1:-1:-1;;;;;13861:15:0;;;13854:22;;;;;;13904:15;13887:14;:32;13787:140::o;13935:158::-;-1:-1:-1;;13980:9:0;:23;14024:15;;14014:7;:25;;-1:-1:-1;;;;;;14014:25:0;-1:-1:-1;;;;;14024:15:0;;;14014:25;;;;;;14070:15;14050:17;:35;13935:158::o
Swarm Source
ipfs://d66be5e8b937b91977484e9140a1b81797a2c0aa6165af6f54fb52e51e960995
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.