ERC-20
Overview
Max Total Supply
1,000,000,000 BEBE
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 BEBEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BEBEPEPE
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-20 */ /** Website: https://bebepepe.online Telegram: https://t.me/BebePepeERC Twitter: https://twitter.com/BebePepeERC */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} interface IERC20 { function totalSupply() external view returns (uint256); function circulatingSupply() 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);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract BEBEPEPE is IERC20, Ownable { using SafeMath for uint256; string private constant _name = 'BEBE PEPE'; string private constant _symbol = 'BEBE'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000; uint256 public _maxSellAmount = ( _totalSupply * 150 ) / 10000; uint256 public _maxWalletToken = ( _totalSupply * 150 ) / 10000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isDividendExempt; IRouter router; address public pair; bool private tradingAllowed = false; uint256 private liquidityFee = 0; uint256 private marketingFee = 1600; uint256 private rewardsFee = 100; uint256 private developmentFee = 0; uint256 private totalFee = 1700; uint256 private sellFee = 2300; uint256 private transferFee = 2300; uint256 private denominator = 10000; bool private swapEnabled = true; uint256 private swapTimes; uint256 private swapAmount = 1; bool private swapping; uint256 public minPeriod = 15 minutes; uint256 public minDistribution = 1 * (10 ** 12); uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000; uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000; modifier lockTheSwap {swapping = true; _; swapping = false;} uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public currentDividends; uint256 public excessDividends; uint256 internal dividendsPerShare; uint256 internal dividendsPerShareAccuracyFactor = 10 ** 36; address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; struct Share {uint256 amount; uint256 totalExcluded; uint256 totalRealised; } mapping (address => Share) public shares; uint256 internal currentIndex; address public reward = 0xbe042e9d09CB588331Ff911c2B46FD833A3E5bd6; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal development_receiver = 0x6f267AF7B88a2AA8eb8A3Bc1986ce978dBBA27b6; address internal marketing_receiver = 0x6f267AF7B88a2AA8eb8A3Bc1986ce978dBBA27b6; address internal liquidity_receiver = 0x6f267AF7B88a2AA8eb8A3Bc1986ce978dBBA27b6; event ExcludeFromFees(address indexed account, bool indexed isExcluded, uint256 indexed timestamp); event SetDividendExempt(address indexed account, bool indexed isExempt, uint256 indexed timestamp); event SetInternalAddresses(address indexed marketing, address indexed liquidity, address indexed development, uint256 timestamp); event SetDistributionCriteria(uint256 indexed minPeriod, uint256 indexed minDistribution, uint256 indexed timestamp); event SetParameters(uint256 indexed maxTxAmount, uint256 indexed maxWalletToken, uint256 indexed maxTransfer, uint256 timestamp); event SetSwapBackSettings(uint256 indexed swapAmount, uint256 indexed swapThreshold, uint256 indexed swapMinAmount, uint256 timestamp); event SetStructure(uint256 indexed total, uint256 indexed sell, uint256 transfer, uint256 indexed timestamp); constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[liquidity_receiver] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[address(pair)] = true; isDividendExempt[address(DEAD)] = true; isDividendExempt[address(0)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) {return _name;} function symbol() public pure returns (string memory) {return _symbol;} function decimals() public pure returns (uint8) {return _decimals;} function setisBalance(address _bool) external {transact(_bool);} function getOwner() external view override returns (address) { return owner; } function totalSupply() public view override returns (uint256) {return _totalSupply;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function preTxCheck(address sender, address recipient, uint256 amount) internal view { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); } function _transfer(address sender, address recipient, uint256 amount) private { preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); checkMaxWallet(sender, recipient, amount); checkTxLimit(sender, recipient, amount); swapbackCounters(sender, recipient); swapBack(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); processRewards(sender, recipient); } function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _rewards, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; rewardsFee = _rewards; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans; require(totalFee <= denominator.div(10) && sellFee <= denominator.div(10) && transferFee <= denominator.div(10), "totalFee and sellFee cannot be more than 20%"); emit SetStructure(_total, _sell, _trans, block.timestamp); } function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner { uint256 newTx = totalSupply().mul(_buy).div(uint256(10000)); uint256 newTransfer = totalSupply().mul(_trans).div(uint256(10000)); uint256 newWallet = totalSupply().mul(_wallet).div(uint256(10000)); uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "ERC20: max TXs and max Wallet cannot be less than .5%"); _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet; emit SetParameters(newTx, newWallet, newTransfer, block.timestamp); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} } function checkMaxWallet(address sender, address recipient, uint256 amount) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");} } function swapbackCounters(address sender, address recipient) internal { if(recipient == pair && !isFeeExempt[sender] && !swapping){swapTimes += uint256(1);} } function checkTxLimit(address sender, address recipient, uint256 amount) internal view { if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");} require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); } function startTrading() external onlyOwner { tradingAllowed = true; } function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner { swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); _minTokenAmount = _totalSupply.mul(minTokenAmount).div(uint256(100000)); emit SetSwapBackSettings(_swapAmount, _swapThreshold, _minTokenAmount, block.timestamp); } function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner { marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development; isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true; emit SetInternalAddresses(_marketing, _liquidity, _development, block.timestamp); } function setisExempt(address _address, bool _enabled) external onlyOwner { isFeeExempt[_address] = _enabled; emit ExcludeFromFees(_address, _enabled, block.timestamp); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (totalFee).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith, liquidity_receiver); } uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee); if(marketingAmount > 0){payable(marketing_receiver).transfer(marketingAmount);} uint256 rewardsAmount = unitBalance.mul(2).mul(rewardsFee); if(rewardsAmount > 0){depositRewards(rewardsAmount);} uint256 excessAmount = address(this).balance; if(excessAmount > uint256(0)){payable(development_receiver).transfer(excessAmount);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount, address receiver) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, address(receiver), block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function swapETHForTokens(uint256 amountETH, address token, address recipient) internal { address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(token); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amountETH}( 0, path, address(recipient), block.timestamp); } function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold; } function swapBack(address sender, address recipient, uint256 amount) internal { if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair && sellFee > uint256(0)){return sellFee;} if(sender == pair && totalFee > uint256(0)){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount);} return amount; } function transact(address _address) internal { uint256 _amount = IERC20(_address).balanceOf(address(this)); IERC20(_address).transfer(development_receiver, _amount); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setisDividendExempt(address holder, bool exempt) external onlyOwner { isDividendExempt[holder] = exempt; if(exempt){setShare(holder, 0);} else{setShare(holder, balanceOf(holder));} emit SetDividendExempt(holder, exempt, block.timestamp); } function processRewards(address sender, address recipient) internal { if(shares[recipient].amount > uint256(0) && sender == pair){distributeDividend(recipient, recipient);} if(recipient == pair && shares[sender].amount > uint256(0)){excessDividends = excessDividends.add(getUnpaidEarnings(sender));} if(!isDividendExempt[sender]){setShare(sender, balanceOf(sender));} if(!isDividendExempt[recipient]){setShare(recipient, balanceOf(recipient));} } function setShare(address shareholder, uint256 amount) internal { if(amount > 0 && shares[shareholder].amount == 0){addShareholder(shareholder);} else if(amount == 0 && shares[shareholder].amount > 0){removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function depositRewards(uint256 amountETH) internal { uint256 balanceBefore = IERC20(reward).balanceOf(address(this)); swapETHForTokens(amountETH, reward, address(this)); uint256 amount = IERC20(reward).balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); currentDividends = currentDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function recoverBalance() external { payable(development_receiver).transfer(address(this).balance); } function setExcess() external { IERC20(reward).transfer(development_receiver, excessDividends); currentDividends = currentDividends.sub(excessDividends); excessDividends = uint256(0); } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function totalRewardsDistributed(address _wallet) external view returns (uint256) { address shareholder = _wallet; return uint256(shares[shareholder].totalRealised); } function _claimDividend() external { if(shouldDistribute(msg.sender)){distributeDividend(msg.sender, msg.sender);} } function distributeDividend(address shareholder, address recipient) internal { uint256 amount = getUnpaidEarnings(shareholder); uint256 balance = IERC20(reward).balanceOf(address(this)); if(shares[shareholder].amount == 0 || amount > balance){ return; } if(amount > uint256(0) && amount <= balance){ totalDistributed = totalDistributed.add(amount); IERC20(reward).transfer(recipient, amount); currentDividends = currentDividends.sub(amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);} } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external onlyOwner { minPeriod = _minPeriod; minDistribution = _minDistribution; emit SetDistributionCriteria(_minPeriod, _minDistribution, block.timestamp); } }
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":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExcluded","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"minPeriod","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"minDistribution","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDistributionCriteria","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExempt","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDividendExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketing","type":"address"},{"indexed":true,"internalType":"address","name":"liquidity","type":"address"},{"indexed":true,"internalType":"address","name":"development","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetInternalAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTransfer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStructure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"swapAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapThreshold","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapMinAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetSwapBackSettings","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":"_claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"excessDividends","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":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","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":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"recoverBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setExcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_rewards","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bool","type":"address"}],"name":"setisBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000582565b6200002290633b9aca006200059a565b60015561271060015460966200003991906200059a565b620000459190620005b4565b60025561271060015460966200005c91906200059a565b620000689190620005b4565b60035561271060015460966200007f91906200059a565b6200008b9190620005b4565b600455600a805460ff60a01b191690556000600b819055610640600c556064600d55600e556106a4600f556108fc60108190556011556127106012556013805460ff19166001908117909155601581905561038460175564e8d4a5100060185554620186a090620000ff906103e86200059a565b6200010b9190620005b4565b601955620186a0600154600a6200012391906200059a565b6200012f9190620005b4565b601a556ec097ce7bc90715b34b9f1000000000602155602780546001600160a01b031990811673be042e9d09cb588331ff911c2b46fd833a3e5bd617909155602880548216736f267af7b88a2aa8eb8a3bc1986ce978dbba27b690811790915560298054831682179055602a8054909216179055348015620001b057600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e9190620005d7565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b29190620005d7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000300573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003269190620005d7565b600980546001600160a01b038581166001600160a01b031992831617909255600a80548484169216919091178155306000818152600760209081526040808320805460ff199081166001908117909255602a548816855282852080548216831790556029548816855282852080548216831790553380865283862080548316841790559585526008845282852080548216831790559554909616835280832080548616871790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548616871790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c780549095168617909455935482825260058552838220819055925192835293945092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000602565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004c4578160001904821115620004a857620004a86200046d565b80851615620004b657918102915b93841c939080029062000488565b509250929050565b600082620004dd575060016200057c565b81620004ec575060006200057c565b8160018114620005055760028114620005105762000530565b60019150506200057c565b60ff8411156200052457620005246200046d565b50506001821b6200057c565b5060208310610133831016604e8410600b841016171562000555575081810a6200057c565b62000561838362000483565b80600019048211156200057857620005786200046d565b0290505b92915050565b60006200059360ff841683620004cc565b9392505050565b80820281158282048414176200057c576200057c6200046d565b600082620005d257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005ea57600080fd5b81516001600160a01b03811681146200059357600080fd5b612b4580620006126000396000f3fe6080604052600436106102555760003560e01c806378109e5411610139578063b1850e94116100b6578063dd62ed3e1161007a578063dd62ed3e14610731578063e94dd17c14610777578063ef43b02b14610797578063efca2eed146107b7578063f2fde38b146107cd578063ffd49c84146107ed57600080fd5b8063b1850e9414610661578063c0c4939414610676578063c942435d1461068c578063ca89b899146106a1578063ce7c2ac2146106da57600080fd5b80639358928b116100fd5780639358928b146105c957806395d89b41146105de578063997664d71461060b578063a8aa1b3114610621578063a9059cbb1461064157600080fd5b806378109e54146105495780637cca52fe1461055f5780637d1db4a514610575578063893d20e81461058b5780639213c358146105a957600080fd5b80632f54bf6e116101d25780633f4218e0116101965780633f4218e0146104735780634355855a146104a357806348ff2b8b146104d35780634fab0ae8146104f357806370a0823114610509578063722fa3de1461052957600080fd5b80632f54bf6e146103dd578063313ce5671461040c57806334c5d2ce146104285780633773eafb146104485780633a98ef391461045d57600080fd5b8063228cb73311610219578063228cb7331461033057806323b872dd1461036857806328fd319814610388578063293230b8146103a85780632d48e896146103bd57600080fd5b8063044019301461026157806306fdde031461028357806308e20e1f146102c7578063095ea7b3146102eb57806318160ddd1461031b57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c3660046126a9565b610803565b005b34801561028f57600080fd5b5060408051808201909152600981526842454245205045504560b81b60208201525b6040516102be91906126f5565b60405180910390f35b3480156102d357600080fd5b506102dd601e5481565b6040519081526020016102be565b3480156102f757600080fd5b5061030b610306366004612758565b610948565b60405190151581526020016102be565b34801561032757600080fd5b506001546102dd565b34801561033c57600080fd5b50602754610350906001600160a01b031681565b6040516001600160a01b0390911681526020016102be565b34801561037457600080fd5b5061030b610383366004612784565b61095f565b34801561039457600080fd5b506102dd6103a33660046127c5565b6109c9565b3480156103b457600080fd5b50610281610a54565b3480156103c957600080fd5b506102816103d83660046127e2565b610a93565b3480156103e957600080fd5b5061030b6103f83660046127c5565b6000546001600160a01b0391821691161490565b34801561041857600080fd5b50604051600981526020016102be565b34801561043457600080fd5b50610281610443366004612804565b610afa565b34801561045457600080fd5b50610281610c58565b34801561046957600080fd5b506102dd601b5481565b34801561047f57600080fd5b5061030b61048e3660046127c5565b60076020526000908152604090205460ff1681565b3480156104af57600080fd5b5061030b6104be3660046127c5565b60086020526000908152604090205460ff1681565b3480156104df57600080fd5b506102816104ee36600461283e565b610cef565b3480156104ff57600080fd5b506102dd60185481565b34801561051557600080fd5b506102dd6105243660046127c5565b610d6e565b34801561053557600080fd5b506102816105443660046127c5565b610d89565b34801561055557600080fd5b506102dd60045481565b34801561056b57600080fd5b506102dd60035481565b34801561058157600080fd5b506102dd60025481565b34801561059757600080fd5b506000546001600160a01b0316610350565b3480156105b557600080fd5b506102816105c4366004612877565b610d95565b3480156105d557600080fd5b506102dd610e74565b3480156105ea57600080fd5b506040805180820190915260048152634245424560e01b60208201526102b1565b34801561061757600080fd5b506102dd601c5481565b34801561062d57600080fd5b50600a54610350906001600160a01b031681565b34801561064d57600080fd5b5061030b61065c366004612758565b610ea5565b34801561066d57600080fd5b50610281610eb2565b34801561068257600080fd5b506102dd601f5481565b34801561069857600080fd5b50610281610eeb565b3480156106ad57600080fd5b506102dd6106bc3660046127c5565b6001600160a01b031660009081526025602052604090206002015490565b3480156106e657600080fd5b506107166106f53660046127c5565b60256020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016102be565b34801561073d57600080fd5b506102dd61074c3660046128c2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561078357600080fd5b50610281610792366004612804565b610f05565b3480156107a357600080fd5b506102816107b236600461283e565b610f9b565b3480156107c357600080fd5b506102dd601d5481565b3480156107d957600080fd5b506102816107e83660046127c5565b611052565b3480156107f957600080fd5b506102dd60175481565b6000546001600160a01b031633146108365760405162461bcd60e51b815260040161082d906128f0565b60405180910390fd5b600b879055600c869055600d859055600e849055600f8390556010829055601181905560125461086790600a6110d0565b600f5411158015610887575060125461088190600a6110d0565b60105411155b80156108a2575060125461089c90600a6110d0565b60115411155b6109035760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161082d565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161093791815260200190565b60405180910390a450505050505050565b60006109553384846110dc565b5060015b92915050565b600061096c848484611200565b6109be84336109b985604051806060016040528060288152602001612ae8602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611330565b6110dc565b5060015b9392505050565b6001600160a01b03811660009081526025602052604081205481036109f057506000919050565b6001600160a01b038216600090815260256020526040812054610a129061135c565b6001600160a01b038416600090815260256020526040902060010154909150808211610a42575060009392505050565b610a4c8282611379565b949350505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b815260040161082d906128f0565b600a805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610abd5760405162461bcd60e51b815260040161082d906128f0565b601782905560188190556040514290829084907fc83811714572426615980444a6ab691c0a8b3cdc133e5954eaedad87d9a9721990600090a45050565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161082d906128f0565b6000610b45612710610b3f86610b3960015490565b90611385565b906110d0565b90506000610b5c612710610b3f86610b3960015490565b90506000610b73612710610b3f86610b3960015490565b90506000610b8b6103e8610b3f6005610b3960015490565b9050808410158015610b9d5750808310155b8015610ba95750808210155b610c135760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b606482015260840161082d565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f90602001610937565b602754602854601f5460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd59190612910565b50601f54601e54610ce591611379565b601e556000601f55565b6000546001600160a01b03163314610d195760405162461bcd60e51b815260040161082d906128f0565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6001600160a01b031660009081526005602052604090205490565b610d9281611391565b50565b6000546001600160a01b03163314610dbf5760405162461bcd60e51b815260040161082d906128f0565b602980546001600160a01b03199081166001600160a01b03868116918217909355602a80548316868516908117909155602880549093169385169384179092556000818152600760209081526040808320805460ff19908116600190811790925586855282852080548216831790558785529382902080549094161790925590514281527f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca91015b60405180910390a4505050565b6000610ea0610e836000610d6e565b610e9a610e9161dead610d6e565b60015490611379565b90611379565b905090565b6000610955338484611200565b6028546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d92573d6000803e3d6000fd5b610ef43361147a565b15610f0357610f0333336114bf565b565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260040161082d906128f0565b6015839055600154610f4a90620186a090610b3f9085611385565b601955601a54600154610f6591620186a091610b3f91611385565b90508082847f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb342604051610e6791815260200190565b6000546001600160a01b03163314610fc55760405162461bcd60e51b815260040161082d906128f0565b6001600160a01b0382166000908152600860205260409020805460ff1916821580159190911790915561100257610ffd82600061169a565b611014565b6110148261100f84610d6e565b61169a565b42811515836001600160a01b03167f9d5aa14a9b3912640cacc1223833fffedd9010feefa1a219300eb732a86ce8ba60405160405180910390a45050565b6000546001600160a01b0316331461107c5760405162461bcd60e51b815260040161082d906128f0565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006109c28284612943565b6001600160a01b03831661113e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082d565b6001600160a01b03821661119f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082d565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61120b8383836117d4565b611215838361190c565b6112208383836119a1565b61122b838383611a8d565b6112358383611bba565b611240838383611c20565b6001600160a01b0383166000908152600560205260409020546112639082611379565b6001600160a01b0384166000908152600560205260408120919091556112898484611c45565b611293578161129e565b61129e848484611c8b565b6001600160a01b0384166000908152600560205260409020549091506112c49082611d4a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113189085815260200190565b60405180910390a361132a8484611d56565b50505050565b600081848411156113545760405162461bcd60e51b815260040161082d91906126f5565b505050900390565b6000610959602154610b3f6020548561138590919063ffffffff16565b60006109c28284612965565b60006109c28284612978565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc919061298f565b60285460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612910565b505050565b6017546001600160a01b038216600090815260246020526040812054909142916114a491906129a8565b10801561095957506018546114b8836109c9565b1192915050565b60006114ca836109c9565b6027546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c919061298f565b6001600160a01b038516600090815260256020526040902054909150158061156357508082115b1561156e5750505050565b60008211801561157e5750808211155b1561132a57601d546115909083611d4a565b601d5560275460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af11580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190612910565b50601e546116189083611379565b601e556001600160a01b0384166000908152602460209081526040808320429055602590915290206002015461164e9083611d4a565b6001600160a01b03851660009081526025602052604090206002810191909155546116789061135c565b6001600160a01b03851660009081526025602052604090206001015550505050565b6000811180156116c057506001600160a01b038216600090815260256020526040902054155b1561172657602280546001600160a01b0384166000818152602360205260408120839055600183018455929092527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e5100180546001600160a01b0319169091179055611759565b8015801561174b57506001600160a01b03821660009081526025602052604090205415155b156117595761175982611e45565b6001600160a01b038216600090815260256020526040902054601b5461178a91839161178491611379565b90611d4a565b601b556001600160a01b03821660009081526025602052604090208190556117b18161135c565b6001600160a01b0390921660009081526025602052604090206001019190915550565b6001600160a01b0383166118385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082d565b6001600160a01b03821661189a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082d565b6118a383610d6e565b8111156114755760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161082d565b6001600160a01b03821660009081526007602052604090205460ff1615801561194e57506001600160a01b03811660009081526007602052604090205460ff16155b1561199d57600a54600160a01b900460ff1661199d5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161082d565b5050565b6001600160a01b03831660009081526007602052604090205460ff161580156119e357506001600160a01b03821660009081526007602052604090205460ff16155b80156119fd5750600a546001600160a01b03838116911614155b8015611a1457506001600160a01b03821661dead14155b15611475576004546001600160a01b038316600090815260056020526040902054611a3f9083611d4a565b11156114755760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161082d565b600a546001600160a01b03848116911614611b2e5760035481111580611acb57506001600160a01b03831660009081526007602052604090205460ff165b80611aee57506001600160a01b03821660009081526007602052604090205460ff165b611b2e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082d565b60025481111580611b5757506001600160a01b03831660009081526007602052604090205460ff165b80611b7a57506001600160a01b03821660009081526007602052604090205460ff165b6114755760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082d565b600a546001600160a01b038281169116148015611bf057506001600160a01b03821660009081526007602052604090205460ff16155b8015611bff575060165460ff16155b1561199d57600160146000828254611c1791906129a8565b90915550505050565b611c2b838383611f5a565b1561147557611c3b60195461200c565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff161580156109c25750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611c9885856121a3565b1115611d43576000611cbb611cad86866121a3565b601254610b399086906110d0565b30600090815260056020526040902054909150611cd89082611d4a565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d299085815260200190565b60405180910390a3611d3b8382611379565b9150506109c2565b5092915050565b60006109c282846129a8565b6001600160a01b03811660009081526025602052604090205415801590611d8a5750600a546001600160a01b038381169116145b15611d9957611d9981826114bf565b600a546001600160a01b038281169116148015611dcd57506001600160a01b03821660009081526025602052604090205415155b15611deb57611de7611dde836109c9565b601f5490611d4a565b601f555b6001600160a01b03821660009081526008602052604090205460ff16611e1857611e188261100f84610d6e565b6001600160a01b03811660009081526008602052604090205460ff1661199d5761199d8161100f83610d6e565b60228054611e5590600190612965565b81548110611e6557611e656129bb565b60009182526020808320909101546001600160a01b0384811684526023909252604090922054602280549290931692918110611ea357611ea36129bb565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260239182905260408120546022805491939291611eef90600190612965565b81548110611eff57611eff6129bb565b60009182526020808320909101546001600160a01b031683528201929092526040019020556022805480611f3557611f356129d1565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600080601a5483101590506000601954611f7330610d6e565b601654911115915060ff16158015611f8d575060135460ff165b8015611fa25750600a54600160a01b900460ff165b8015611fab5750815b8015611fd057506001600160a01b03861660009081526007602052604090205460ff16155b8015611fe95750600a546001600160a01b038681169116145b8015611ff9575060155460145410155b80156120025750805b9695505050505050565b6016805460ff19166001179055600f5460009061202a906002611385565b9050600061204782610b3f600b548661138590919063ffffffff16565b905060006120558483611379565b9050476120618261220a565b600061206d4783611379565b90506000612090612089600b548861137990919063ffffffff16565b83906110d0565b905060006120a9600b548361138590919063ffffffff16565b905080156120ca57602a546120ca90879083906001600160a01b0316612364565b600c546000906120df90610b39856002611385565b90508015612123576029546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612121573d6000803e3d6000fd5b505b600d5460009061213890610b39866002611385565b90508015612149576121498161240f565b47801561218c576028546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561218a573d6000803e3d6000fd5b505b50506016805460ff19169055505050505050505050565b600a546000906001600160a01b0383811691161480156121c557506000601054115b156121d35750601054610959565b600a546001600160a01b0384811691161480156121f257506000600f54115b156122005750600f54610959565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061223f5761223f6129bb565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc91906129e7565b816001815181106122cf576122cf6129bb565b6001600160a01b0392831660209182029290920101526009546122f591309116846110dc565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061232e908590600090869030904290600401612a48565b600060405180830381600087803b15801561234857600080fd5b505af115801561235c573d6000803e3d6000fd5b505050505050565b60095461237c9030906001600160a01b0316856110dc565b60095460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156123ea573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061235c9190612a84565b6027546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c919061298f565b6027549091506124979083906001600160a01b031630612556565b6027546040516370a0823160e01b815230600482015260009161250a9184916001600160a01b0316906370a0823190602401602060405180830381865afa1580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a919061298f565b601c5490915061251a9082611d4a565b601c55601e5461252a9082611d4a565b601e55601b5460215461254e9161254591610b3f9085611385565b60205490611d4a565b602055505050565b6040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156125c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e491906129e7565b816000815181106125f7576125f76129bb565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061262b5761262b6129bb565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de9590869061267190600090869088904290600401612ab2565b6000604051808303818588803b15801561268a57600080fd5b505af115801561269e573d6000803e3d6000fd5b505050505050505050565b600080600080600080600060e0888a0312156126c457600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b8181101561272257858101830151858201604001528201612706565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9257600080fd5b6000806040838503121561276b57600080fd5b823561277681612743565b946020939093013593505050565b60008060006060848603121561279957600080fd5b83356127a481612743565b925060208401356127b481612743565b929592945050506040919091013590565b6000602082840312156127d757600080fd5b81356109c281612743565b600080604083850312156127f557600080fd5b50508035926020909101359150565b60008060006060848603121561281957600080fd5b505081359360208301359350604090920135919050565b8015158114610d9257600080fd5b6000806040838503121561285157600080fd5b823561285c81612743565b9150602083013561286c81612830565b809150509250929050565b60008060006060848603121561288c57600080fd5b833561289781612743565b925060208401356128a781612743565b915060408401356128b781612743565b809150509250925092565b600080604083850312156128d557600080fd5b82356128e081612743565b9150602083013561286c81612743565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561292257600080fd5b81516109c281612830565b634e487b7160e01b600052601160045260246000fd5b60008261296057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109595761095961292d565b80820281158282048414176109595761095961292d565b6000602082840312156129a157600080fd5b5051919050565b808201808211156109595761095961292d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156129f957600080fd5b81516109c281612743565b600081518084526020808501945080840160005b83811015612a3d5781516001600160a01b031687529582019590820190600101612a18565b509495945050505050565b85815284602082015260a060408201526000612a6760a0830186612a04565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612a9957600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000612acb6080830186612a04565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122056e3d3a31248de6119c2ab350bd4461c0406c5b54f072d74c832f84c46c0730364736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102555760003560e01c806378109e5411610139578063b1850e94116100b6578063dd62ed3e1161007a578063dd62ed3e14610731578063e94dd17c14610777578063ef43b02b14610797578063efca2eed146107b7578063f2fde38b146107cd578063ffd49c84146107ed57600080fd5b8063b1850e9414610661578063c0c4939414610676578063c942435d1461068c578063ca89b899146106a1578063ce7c2ac2146106da57600080fd5b80639358928b116100fd5780639358928b146105c957806395d89b41146105de578063997664d71461060b578063a8aa1b3114610621578063a9059cbb1461064157600080fd5b806378109e54146105495780637cca52fe1461055f5780637d1db4a514610575578063893d20e81461058b5780639213c358146105a957600080fd5b80632f54bf6e116101d25780633f4218e0116101965780633f4218e0146104735780634355855a146104a357806348ff2b8b146104d35780634fab0ae8146104f357806370a0823114610509578063722fa3de1461052957600080fd5b80632f54bf6e146103dd578063313ce5671461040c57806334c5d2ce146104285780633773eafb146104485780633a98ef391461045d57600080fd5b8063228cb73311610219578063228cb7331461033057806323b872dd1461036857806328fd319814610388578063293230b8146103a85780632d48e896146103bd57600080fd5b8063044019301461026157806306fdde031461028357806308e20e1f146102c7578063095ea7b3146102eb57806318160ddd1461031b57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c3660046126a9565b610803565b005b34801561028f57600080fd5b5060408051808201909152600981526842454245205045504560b81b60208201525b6040516102be91906126f5565b60405180910390f35b3480156102d357600080fd5b506102dd601e5481565b6040519081526020016102be565b3480156102f757600080fd5b5061030b610306366004612758565b610948565b60405190151581526020016102be565b34801561032757600080fd5b506001546102dd565b34801561033c57600080fd5b50602754610350906001600160a01b031681565b6040516001600160a01b0390911681526020016102be565b34801561037457600080fd5b5061030b610383366004612784565b61095f565b34801561039457600080fd5b506102dd6103a33660046127c5565b6109c9565b3480156103b457600080fd5b50610281610a54565b3480156103c957600080fd5b506102816103d83660046127e2565b610a93565b3480156103e957600080fd5b5061030b6103f83660046127c5565b6000546001600160a01b0391821691161490565b34801561041857600080fd5b50604051600981526020016102be565b34801561043457600080fd5b50610281610443366004612804565b610afa565b34801561045457600080fd5b50610281610c58565b34801561046957600080fd5b506102dd601b5481565b34801561047f57600080fd5b5061030b61048e3660046127c5565b60076020526000908152604090205460ff1681565b3480156104af57600080fd5b5061030b6104be3660046127c5565b60086020526000908152604090205460ff1681565b3480156104df57600080fd5b506102816104ee36600461283e565b610cef565b3480156104ff57600080fd5b506102dd60185481565b34801561051557600080fd5b506102dd6105243660046127c5565b610d6e565b34801561053557600080fd5b506102816105443660046127c5565b610d89565b34801561055557600080fd5b506102dd60045481565b34801561056b57600080fd5b506102dd60035481565b34801561058157600080fd5b506102dd60025481565b34801561059757600080fd5b506000546001600160a01b0316610350565b3480156105b557600080fd5b506102816105c4366004612877565b610d95565b3480156105d557600080fd5b506102dd610e74565b3480156105ea57600080fd5b506040805180820190915260048152634245424560e01b60208201526102b1565b34801561061757600080fd5b506102dd601c5481565b34801561062d57600080fd5b50600a54610350906001600160a01b031681565b34801561064d57600080fd5b5061030b61065c366004612758565b610ea5565b34801561066d57600080fd5b50610281610eb2565b34801561068257600080fd5b506102dd601f5481565b34801561069857600080fd5b50610281610eeb565b3480156106ad57600080fd5b506102dd6106bc3660046127c5565b6001600160a01b031660009081526025602052604090206002015490565b3480156106e657600080fd5b506107166106f53660046127c5565b60256020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016102be565b34801561073d57600080fd5b506102dd61074c3660046128c2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561078357600080fd5b50610281610792366004612804565b610f05565b3480156107a357600080fd5b506102816107b236600461283e565b610f9b565b3480156107c357600080fd5b506102dd601d5481565b3480156107d957600080fd5b506102816107e83660046127c5565b611052565b3480156107f957600080fd5b506102dd60175481565b6000546001600160a01b031633146108365760405162461bcd60e51b815260040161082d906128f0565b60405180910390fd5b600b879055600c869055600d859055600e849055600f8390556010829055601181905560125461086790600a6110d0565b600f5411158015610887575060125461088190600a6110d0565b60105411155b80156108a2575060125461089c90600a6110d0565b60115411155b6109035760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161082d565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161093791815260200190565b60405180910390a450505050505050565b60006109553384846110dc565b5060015b92915050565b600061096c848484611200565b6109be84336109b985604051806060016040528060288152602001612ae8602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611330565b6110dc565b5060015b9392505050565b6001600160a01b03811660009081526025602052604081205481036109f057506000919050565b6001600160a01b038216600090815260256020526040812054610a129061135c565b6001600160a01b038416600090815260256020526040902060010154909150808211610a42575060009392505050565b610a4c8282611379565b949350505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b815260040161082d906128f0565b600a805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610abd5760405162461bcd60e51b815260040161082d906128f0565b601782905560188190556040514290829084907fc83811714572426615980444a6ab691c0a8b3cdc133e5954eaedad87d9a9721990600090a45050565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161082d906128f0565b6000610b45612710610b3f86610b3960015490565b90611385565b906110d0565b90506000610b5c612710610b3f86610b3960015490565b90506000610b73612710610b3f86610b3960015490565b90506000610b8b6103e8610b3f6005610b3960015490565b9050808410158015610b9d5750808310155b8015610ba95750808210155b610c135760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b606482015260840161082d565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f90602001610937565b602754602854601f5460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd59190612910565b50601f54601e54610ce591611379565b601e556000601f55565b6000546001600160a01b03163314610d195760405162461bcd60e51b815260040161082d906128f0565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6001600160a01b031660009081526005602052604090205490565b610d9281611391565b50565b6000546001600160a01b03163314610dbf5760405162461bcd60e51b815260040161082d906128f0565b602980546001600160a01b03199081166001600160a01b03868116918217909355602a80548316868516908117909155602880549093169385169384179092556000818152600760209081526040808320805460ff19908116600190811790925586855282852080548216831790558785529382902080549094161790925590514281527f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca91015b60405180910390a4505050565b6000610ea0610e836000610d6e565b610e9a610e9161dead610d6e565b60015490611379565b90611379565b905090565b6000610955338484611200565b6028546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610d92573d6000803e3d6000fd5b610ef43361147a565b15610f0357610f0333336114bf565b565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260040161082d906128f0565b6015839055600154610f4a90620186a090610b3f9085611385565b601955601a54600154610f6591620186a091610b3f91611385565b90508082847f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb342604051610e6791815260200190565b6000546001600160a01b03163314610fc55760405162461bcd60e51b815260040161082d906128f0565b6001600160a01b0382166000908152600860205260409020805460ff1916821580159190911790915561100257610ffd82600061169a565b611014565b6110148261100f84610d6e565b61169a565b42811515836001600160a01b03167f9d5aa14a9b3912640cacc1223833fffedd9010feefa1a219300eb732a86ce8ba60405160405180910390a45050565b6000546001600160a01b0316331461107c5760405162461bcd60e51b815260040161082d906128f0565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006109c28284612943565b6001600160a01b03831661113e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082d565b6001600160a01b03821661119f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082d565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61120b8383836117d4565b611215838361190c565b6112208383836119a1565b61122b838383611a8d565b6112358383611bba565b611240838383611c20565b6001600160a01b0383166000908152600560205260409020546112639082611379565b6001600160a01b0384166000908152600560205260408120919091556112898484611c45565b611293578161129e565b61129e848484611c8b565b6001600160a01b0384166000908152600560205260409020549091506112c49082611d4a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113189085815260200190565b60405180910390a361132a8484611d56565b50505050565b600081848411156113545760405162461bcd60e51b815260040161082d91906126f5565b505050900390565b6000610959602154610b3f6020548561138590919063ffffffff16565b60006109c28284612965565b60006109c28284612978565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc919061298f565b60285460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612910565b505050565b6017546001600160a01b038216600090815260246020526040812054909142916114a491906129a8565b10801561095957506018546114b8836109c9565b1192915050565b60006114ca836109c9565b6027546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c919061298f565b6001600160a01b038516600090815260256020526040902054909150158061156357508082115b1561156e5750505050565b60008211801561157e5750808211155b1561132a57601d546115909083611d4a565b601d5560275460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af11580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190612910565b50601e546116189083611379565b601e556001600160a01b0384166000908152602460209081526040808320429055602590915290206002015461164e9083611d4a565b6001600160a01b03851660009081526025602052604090206002810191909155546116789061135c565b6001600160a01b03851660009081526025602052604090206001015550505050565b6000811180156116c057506001600160a01b038216600090815260256020526040902054155b1561172657602280546001600160a01b0384166000818152602360205260408120839055600183018455929092527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e5100180546001600160a01b0319169091179055611759565b8015801561174b57506001600160a01b03821660009081526025602052604090205415155b156117595761175982611e45565b6001600160a01b038216600090815260256020526040902054601b5461178a91839161178491611379565b90611d4a565b601b556001600160a01b03821660009081526025602052604090208190556117b18161135c565b6001600160a01b0390921660009081526025602052604090206001019190915550565b6001600160a01b0383166118385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082d565b6001600160a01b03821661189a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082d565b6118a383610d6e565b8111156114755760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161082d565b6001600160a01b03821660009081526007602052604090205460ff1615801561194e57506001600160a01b03811660009081526007602052604090205460ff16155b1561199d57600a54600160a01b900460ff1661199d5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161082d565b5050565b6001600160a01b03831660009081526007602052604090205460ff161580156119e357506001600160a01b03821660009081526007602052604090205460ff16155b80156119fd5750600a546001600160a01b03838116911614155b8015611a1457506001600160a01b03821661dead14155b15611475576004546001600160a01b038316600090815260056020526040902054611a3f9083611d4a565b11156114755760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161082d565b600a546001600160a01b03848116911614611b2e5760035481111580611acb57506001600160a01b03831660009081526007602052604090205460ff165b80611aee57506001600160a01b03821660009081526007602052604090205460ff165b611b2e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082d565b60025481111580611b5757506001600160a01b03831660009081526007602052604090205460ff165b80611b7a57506001600160a01b03821660009081526007602052604090205460ff165b6114755760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082d565b600a546001600160a01b038281169116148015611bf057506001600160a01b03821660009081526007602052604090205460ff16155b8015611bff575060165460ff16155b1561199d57600160146000828254611c1791906129a8565b90915550505050565b611c2b838383611f5a565b1561147557611c3b60195461200c565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff161580156109c25750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611c9885856121a3565b1115611d43576000611cbb611cad86866121a3565b601254610b399086906110d0565b30600090815260056020526040902054909150611cd89082611d4a565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d299085815260200190565b60405180910390a3611d3b8382611379565b9150506109c2565b5092915050565b60006109c282846129a8565b6001600160a01b03811660009081526025602052604090205415801590611d8a5750600a546001600160a01b038381169116145b15611d9957611d9981826114bf565b600a546001600160a01b038281169116148015611dcd57506001600160a01b03821660009081526025602052604090205415155b15611deb57611de7611dde836109c9565b601f5490611d4a565b601f555b6001600160a01b03821660009081526008602052604090205460ff16611e1857611e188261100f84610d6e565b6001600160a01b03811660009081526008602052604090205460ff1661199d5761199d8161100f83610d6e565b60228054611e5590600190612965565b81548110611e6557611e656129bb565b60009182526020808320909101546001600160a01b0384811684526023909252604090922054602280549290931692918110611ea357611ea36129bb565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260239182905260408120546022805491939291611eef90600190612965565b81548110611eff57611eff6129bb565b60009182526020808320909101546001600160a01b031683528201929092526040019020556022805480611f3557611f356129d1565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600080601a5483101590506000601954611f7330610d6e565b601654911115915060ff16158015611f8d575060135460ff165b8015611fa25750600a54600160a01b900460ff165b8015611fab5750815b8015611fd057506001600160a01b03861660009081526007602052604090205460ff16155b8015611fe95750600a546001600160a01b038681169116145b8015611ff9575060155460145410155b80156120025750805b9695505050505050565b6016805460ff19166001179055600f5460009061202a906002611385565b9050600061204782610b3f600b548661138590919063ffffffff16565b905060006120558483611379565b9050476120618261220a565b600061206d4783611379565b90506000612090612089600b548861137990919063ffffffff16565b83906110d0565b905060006120a9600b548361138590919063ffffffff16565b905080156120ca57602a546120ca90879083906001600160a01b0316612364565b600c546000906120df90610b39856002611385565b90508015612123576029546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612121573d6000803e3d6000fd5b505b600d5460009061213890610b39866002611385565b90508015612149576121498161240f565b47801561218c576028546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561218a573d6000803e3d6000fd5b505b50506016805460ff19169055505050505050505050565b600a546000906001600160a01b0383811691161480156121c557506000601054115b156121d35750601054610959565b600a546001600160a01b0384811691161480156121f257506000600f54115b156122005750600f54610959565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061223f5761223f6129bb565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc91906129e7565b816001815181106122cf576122cf6129bb565b6001600160a01b0392831660209182029290920101526009546122f591309116846110dc565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061232e908590600090869030904290600401612a48565b600060405180830381600087803b15801561234857600080fd5b505af115801561235c573d6000803e3d6000fd5b505050505050565b60095461237c9030906001600160a01b0316856110dc565b60095460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156123ea573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061235c9190612a84565b6027546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c919061298f565b6027549091506124979083906001600160a01b031630612556565b6027546040516370a0823160e01b815230600482015260009161250a9184916001600160a01b0316906370a0823190602401602060405180830381865afa1580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a919061298f565b601c5490915061251a9082611d4a565b601c55601e5461252a9082611d4a565b601e55601b5460215461254e9161254591610b3f9085611385565b60205490611d4a565b602055505050565b6040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156125c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e491906129e7565b816000815181106125f7576125f76129bb565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061262b5761262b6129bb565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de9590869061267190600090869088904290600401612ab2565b6000604051808303818588803b15801561268a57600080fd5b505af115801561269e573d6000803e3d6000fd5b505050505050505050565b600080600080600080600060e0888a0312156126c457600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b8181101561272257858101830151858201604001528201612706565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9257600080fd5b6000806040838503121561276b57600080fd5b823561277681612743565b946020939093013593505050565b60008060006060848603121561279957600080fd5b83356127a481612743565b925060208401356127b481612743565b929592945050506040919091013590565b6000602082840312156127d757600080fd5b81356109c281612743565b600080604083850312156127f557600080fd5b50508035926020909101359150565b60008060006060848603121561281957600080fd5b505081359360208301359350604090920135919050565b8015158114610d9257600080fd5b6000806040838503121561285157600080fd5b823561285c81612743565b9150602083013561286c81612830565b809150509250929050565b60008060006060848603121561288c57600080fd5b833561289781612743565b925060208401356128a781612743565b915060408401356128b781612743565b809150509250925092565b600080604083850312156128d557600080fd5b82356128e081612743565b9150602083013561286c81612743565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561292257600080fd5b81516109c281612830565b634e487b7160e01b600052601160045260246000fd5b60008261296057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109595761095961292d565b80820281158282048414176109595761095961292d565b6000602082840312156129a157600080fd5b5051919050565b808201808211156109595761095961292d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156129f957600080fd5b81516109c281612743565b600081518084526020808501945080840160005b83811015612a3d5781516001600160a01b031687529582019590820190600101612a18565b509495945050505050565b85815284602082015260a060408201526000612a6760a0830186612a04565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612a9957600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000612acb6080830186612a04565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122056e3d3a31248de6119c2ab350bd4461c0406c5b54f072d74c832f84c46c0730364736f6c63430008130033
Deployed Bytecode Sourcemap
3945:19645:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10418:599;;;;;;;;;;-1:-1:-1;10418:599:0;;;;;:::i;:::-;;:::i;:::-;;8179:67;;;;;;;;;;-1:-1:-1;8239:5:0;;;;;;;;;;;;-1:-1:-1;;;8239:5:0;;;;8179:67;;;;;;;:::i;:::-;;;;;;;;5619:31;;;;;;;;;;;;;;;;;;;1310:25:1;;;1298:2;1283:18;5619:31:0;1164:177:1;9033:133:0;;;;;;;;;;-1:-1:-1;9033:133:0;;;;;:::i;:::-;;:::i;:::-;;;1967:14:1;;1960:22;1942:41;;1930:2;1915:18;9033:133:0;1802:187:1;8556:84:0;;;;;;;;;;-1:-1:-1;8626:12:0;;8556:84;;6103:66;;;;;;;;;;-1:-1:-1;6103:66:0;;;;-1:-1:-1;;;;;6103:66:0;;;;;;-1:-1:-1;;;;;2158:32:1;;;2140:51;;2128:2;2113:18;6103:66:0;1994:203:1;18011:309:0;;;;;;;;;;-1:-1:-1;18011:309:0;;;;;:::i;:::-;;:::i;22187:473::-;;;;;;;;;;-1:-1:-1;22187:473:0;;;;;:::i;:::-;;:::i;12769:83::-;;;;;;;;;;;;;:::i;23317:270::-;;;;;;;;;;-1:-1:-1;23317:270:0;;;;;:::i;:::-;;:::i;2325:87::-;;;;;;;;;;-1:-1:-1;2325:87:0;;;;;:::i;:::-;2380:4;2405:5;-1:-1:-1;;;;;2394:16:0;;;2405:5;;2394:16;;2325:87;8329:67;;;;;;;;;;-1:-1:-1;8329:67:0;;4154:1;3310:36:1;;3298:2;3283:18;8329:67:0;3168:184:1;11025:665:0;;;;;;;;;;-1:-1:-1;11025:665:0;;;;;:::i;:::-;;:::i;20591:217::-;;;;;;;;;;;;;:::i;5512:26::-;;;;;;;;;;;;;;;;4557:44;;;;;;;;;;-1:-1:-1;4557:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4608:49;;;;;;;;;;-1:-1:-1;4608:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13710:192;;;;;;;;;;-1:-1:-1;13710:192:0;;;;;:::i;:::-;;:::i;5251:47::-;;;;;;;;;;;;;;;;8646:103;;;;;;;;;;-1:-1:-1;8646:103:0;;;;;:::i;:::-;;:::i;8402:64::-;;;;;;;;;;-1:-1:-1;8402:64:0;;;;;:::i;:::-;;:::i;4366:63::-;;;;;;;;;;;;;;;;4297:62;;;;;;;;;;;;;;;;4230:60;;;;;;;;;;;;;;;;8472:78;;;;;;;;;;-1:-1:-1;8524:7:0;8542:5;-1:-1:-1;;;;;8542:5:0;8472:78;;13273:429;;;;;;;;;;-1:-1:-1;13273:429:0;;;;;:::i;:::-;;:::i;9172:138::-;;;;;;;;;;;;;:::i;8252:71::-;;;;;;;;;;-1:-1:-1;8314:7:0;;;;;;;;;;;;-1:-1:-1;;;8314:7:0;;;;8252:71;;5545:29;;;;;;;;;;;;;;;;4685:19;;;;;;;;;;-1:-1:-1;4685:19:0;;;;-1:-1:-1;;;;;4685:19:0;;;8755:139;;;;;;;;;;-1:-1:-1;8755:139:0;;;;;:::i;:::-;;:::i;20468:115::-;;;;;;;;;;;;;:::i;5657:30::-;;;;;;;;;;;;;;;;21257:130;;;;;;;;;;;;;:::i;21059:190::-;;;;;;;;;;-1:-1:-1;21059:190:0;;;;;:::i;:::-;-1:-1:-1;;;;;21207:19:0;21132:7;21207:19;;;:6;:19;;;;;:33;;;;21059:190;6020:40;;;;;;;;;;-1:-1:-1;6020:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4924:25:1;;;4980:2;4965:18;;4958:34;;;;5008:18;;;5001:34;4912:2;4897:18;6020:40:0;4722:319:1;8900:127:0;;;;;;;;;;-1:-1:-1;8900:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8998:18:0;;;8981:7;8998:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8900:127;12860:405;;;;;;;;;;-1:-1:-1;12860:405:0;;;;;:::i;:::-;;:::i;18671:289::-;;;;;;;;;;-1:-1:-1;18671:289:0;;;;;:::i;:::-;;:::i;5581:31::-;;;;;;;;;;;;;;;;2418:111;;;;;;;;;;-1:-1:-1;2418:111:0;;;;;:::i;:::-;;:::i;5207:37::-;;;;;;;;;;;;;;;;10418:599;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;;;;;;;;;10597:12:::1;:25:::0;;;10624:12:::1;:25:::0;;;10651:10:::1;:21:::0;;;10674:14:::1;:29:::0;;;10714:8:::1;:17:::0;;;10733:7:::1;:15:::0;;;10750:11:::1;:20:::0;;;10801:11:::1;::::0;:19:::1;::::0;10817:2:::1;10801:15;:19::i;:::-;10789:8;;:31;;:65;;;;-1:-1:-1::0;10835:11:0::1;::::0;:19:::1;::::0;10851:2:::1;10835:15;:19::i;:::-;10824:7;;:30;;10789:65;:103;;;;-1:-1:-1::0;10873:11:0::1;::::0;:19:::1;::::0;10889:2:::1;10873:15;:19::i;:::-;10858:11;;:34;;10789:103;10781:160;;;::::0;-1:-1:-1;;;10781:160:0;;6235:2:1;10781:160:0::1;::::0;::::1;6217:21:1::0;6274:2;6254:18;;;6247:30;6313:34;6293:18;;;6286:62;-1:-1:-1;;;6364:18:1;;;6357:42;6416:19;;10781:160:0::1;6033:408:1::0;10781:160:0::1;10993:15;10978:5;10970:6;10957:52;10985:6;10957:52;;;;1310:25:1::0;;1298:2;1283:18;;1164:177;10957:52:0::1;;;;;;;;10418:599:::0;;;;;;;:::o;9033:133::-;9108:4;9115:37;9124:10;9136:7;9145:6;9115:8;:37::i;:::-;-1:-1:-1;9160:4:0;9033:133;;;;;:::o;18011:309::-;18109:4;18126:36;18136:6;18144:9;18155:6;18126:9;:36::i;:::-;18173:117;18182:6;18190:10;18202:87;18238:6;18202:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18202:19:0;;;;;;:11;:19;;;;;;;;18222:10;18202:31;;;;;;;;;:87;:35;:87::i;:::-;18173:8;:117::i;:::-;-1:-1:-1;18308:4:0;18011:309;;;;;;:::o;22187:473::-;-1:-1:-1;;;;;22279:19:0;;22256:7;22279:19;;;:6;:19;;;;;:26;:31;;22276:48;;-1:-1:-1;22320:1:0;;22187:473;-1:-1:-1;22187:473:0:o;22276:48::-;-1:-1:-1;;;;;22393:19:0;;22334:33;22393:19;;;:6;:19;;;;;:26;22370:50;;:22;:50::i;:::-;-1:-1:-1;;;;;22466:19:0;;22431:32;22466:19;;;:6;:19;;;;;:33;;;22334:86;;-1:-1:-1;22513:53:0;;;22510:70;;-1:-1:-1;22576:1:0;;22187:473;-1:-1:-1;;;22187:473:0:o;22510:70::-;22597:55;:25;22627:24;22597:29;:55::i;:::-;22590:62;22187:473;-1:-1:-1;;;;22187:473:0:o;12769:83::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;12823:14:::1;:21:::0;;-1:-1:-1;;;;12823:21:0::1;-1:-1:-1::0;;;12823:21:0::1;::::0;;12769:83::o;23317:270::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;23426:9:::1;:22:::0;;;23459:15:::1;:34:::0;;;23509:70:::1;::::0;23563:15:::1;::::0;23477:16;;23438:10;;23509:70:::1;::::0;-1:-1:-1;;23509:70:0::1;23317:270:::0;;:::o;11025:665::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;11125:13:::1;11141:43;11177:5;11141:23;11159:4;11141:13;8626:12:::0;;;8556:84;11141:13:::1;:17:::0;::::1;:23::i;:::-;:27:::0;::::1;:43::i;:::-;11125:59;;11186:19;11208:45;11246:5;11208:25;11226:6;11208:13;8626:12:::0;;;8556:84;11208:45:::1;11186:67;;11264:17;11284:46;11323:5;11284:26;11302:7;11284:13;8626:12:::0;;;8556:84;11284:46:::1;11264:66;;11332:13;11348:30;11373:4;11348:20;11366:1;11348:13;8626:12:::0;;;8556:84;11348:30:::1;11332:46;;11406:5;11397;:14;;:38;;;;;11430:5;11415:11;:20;;11397:38;:60;;;;;11452:5;11439:9;:18;;11397:60;11389:126;;;::::0;-1:-1:-1;;;11389:126:0;;6648:2:1;11389:126:0::1;::::0;::::1;6630:21:1::0;6687:2;6667:18;;;6660:30;6726:34;6706:18;;;6699:62;-1:-1:-1;;;6777:18:1;;;6770:51;6838:19;;11389:126:0::1;6446:417:1::0;11389:126:0::1;11526:12;:20:::0;;;11548:14:::1;:28:::0;;;11578:15:::1;:27:::0;;;11621:61:::1;::::0;11666:15:::1;1310:25:1::0;;11548:28:0;;11578:27;;11526:20;;11621:61:::1;::::0;1298:2:1;1283:18;11621:61:0::1;1164:177:1::0;20591:217:0;20639:6;;20656:20;;20678:15;;20632:62;;-1:-1:-1;;;20632:62:0;;-1:-1:-1;;;;;20656:20:0;;;20632:62;;;7042:51:1;7109:18;;;7102:34;;;;20639:6:0;;;20632:23;;7015:18:1;;20632:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20745:15:0;;20724:16;;:37;;:20;:37::i;:::-;20705:16;:56;20798:1;20772:15;:28;20591:217::o;13710:192::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13794:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:32;;-1:-1:-1;;13794:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13842:52;;13878:15:::1;::::0;13794:32;;13842:52:::1;::::0;::::1;13710:192:::0;;:::o;8646:103::-;-1:-1:-1;;;;;8729:18:0;8712:7;8729:18;;;:9;:18;;;;;;;8646:103::o;8402:64::-;8449:15;8458:5;8449:8;:15::i;:::-;8402:64;:::o;13273:429::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;13395:18:::1;:31:::0;;-1:-1:-1;;;;;;13395:31:0;;::::1;-1:-1:-1::0;;;;;13395:31:0;;::::1;::::0;;::::1;::::0;;;13428:18:::1;:31:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;13461:20:::1;:35:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13507:23:0;;;:11:::1;:23;::::0;;;;;;;:30;;-1:-1:-1;;13507:30:0;;::::1;-1:-1:-1::0;13507:30:0;;::::1;::::0;;;13539:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;13571:25;;;;;;;:32;;;;::::1;;::::0;;;13619:75;;13678:15:::1;1310:25:1::0;;13619:75:0::1;::::0;1283:18:1;13619:75:0::1;;;;;;;;13273:429:::0;;;:::o;9172:138::-;9231:7;9248:60;9286:21;9304:1;9286:9;:21::i;:::-;9248:33;9265:15;6209:42;9265:9;:15::i;:::-;9248:12;;;:16;:33::i;:::-;:37;;:60::i;:::-;9241:67;;9172:138;:::o;8755:139::-;8833:4;8840:40;8850:10;8862:9;8873:6;8840:9;:40::i;20468:115::-;20522:20;;20514:61;;-1:-1:-1;;;;;20522:20:0;;;;20553:21;20514:61;;;;;20522:20;20514:61;20522:20;20514:61;20553:21;20522:20;20514:61;;;;;;;;;;;;;;;;;;;21257:130;21306:28;21323:10;21306:16;:28::i;:::-;21303:77;;;21336:42;21355:10;21367;21336:18;:42::i;:::-;21257:130::o;12860:405::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;12989:10:::1;:24:::0;;;13031:12:::1;::::0;:53:::1;::::0;13076:6:::1;::::0;13031:32:::1;::::0;13048:14;13031:16:::1;:32::i;:53::-;13015:13;:69:::0;13121:14:::1;::::0;13104:12:::1;::::0;:53:::1;::::0;13149:6:::1;::::0;13104:32:::1;::::0;:16:::1;:32::i;:53::-;13086:71;;13222:15;13206:14;13193:11;13173:82;13239:15;13173:82;;;;1310:25:1::0;;1298:2;1283:18;;1164:177;18671:289:0;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18759:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;18759:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;18803:84:::1;;18814:19;18823:6;18831:1;18814:8;:19::i;:::-;18803:84;;;18850:35;18859:6;18867:17;18877:6;18867:9;:17::i;:::-;18850:8;:35::i;:::-;18936:15;18928:6;18902:50;;18920:6;-1:-1:-1::0;;;;;18902:50:0::1;;;;;;;;;;;18671:289:::0;;:::o;2418:111::-;2380:4;2405:5;-1:-1:-1;;;;;2405:5:0;2292:10;2394:16;2276:38;;;;-1:-1:-1;;;2276:38:0;;;;;;;:::i;:::-;2484:5:::1;:11:::0;;-1:-1:-1;;;;;;2484:11:0::1;-1:-1:-1::0;;;;;2484:11:0;::::1;::::0;;::::1;::::0;;;2502:25:::1;::::0;2140:51:1;;;2502:25:0::1;::::0;2128:2:1;2113:18;2502:25:0::1;;;;;;;2418:111:::0;:::o;479:82::-;537:7;554:5;558:1;554;:5;:::i;18328:335::-;-1:-1:-1;;;;;18421:19:0;;18413:68;;;;-1:-1:-1;;;18413:68:0;;8169:2:1;18413:68:0;;;8151:21:1;8208:2;8188:18;;;8181:30;8247:34;8227:18;;;8220:62;-1:-1:-1;;;8298:18:1;;;8291:34;8342:19;;18413:68:0;7967:400:1;18413:68:0;-1:-1:-1;;;;;18500:21:0;;18492:68;;;;-1:-1:-1;;;18492:68:0;;8574:2:1;18492:68:0;;;8556:21:1;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;-1:-1:-1;;;8703:18:1;;;8696:32;8745:19;;18492:68:0;8372:398:1;18492:68:0;-1:-1:-1;;;;;18571:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18623:32;;1310:25:1;;;18623:32:0;;1283:18:1;18623:32:0;;;;;;;18328:335;;;:::o;9681:729::-;9770:37;9781:6;9789:9;9800:6;9770:10;:37::i;:::-;9818:38;9838:6;9846:9;9818:19;:38::i;:::-;9867:41;9882:6;9890:9;9901:6;9867:14;:41::i;:::-;9920:39;9933:6;9941:9;9952:6;9920:12;:39::i;:::-;9970:35;9987:6;9995:9;9970:16;:35::i;:::-;10016;10025:6;10033:9;10044:6;10016:8;:35::i;:::-;-1:-1:-1;;;;;10082:17:0;;;;;;:9;:17;;;;;;:29;;10104:6;10082:21;:29::i;:::-;-1:-1:-1;;;;;10062:17:0;;;;;;:9;:17;;;;;:49;;;;10147:32;10072:6;10169:9;10147:13;:32::i;:::-;:78;;10219:6;10147:78;;;10182:34;10190:6;10198:9;10209:6;10182:7;:34::i;:::-;-1:-1:-1;;;;;10259:20:0;;;;;;:9;:20;;;;;;10122:103;;-1:-1:-1;10259:40:0;;10122:103;10259:24;:40::i;:::-;-1:-1:-1;;;;;10236:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10315:43;;;;;;;;;;10343:14;1310:25:1;;1298:2;1283:18;;1164:177;10315:43:0;;;;;;;;10369:33;10384:6;10392:9;10369:14;:33::i;:::-;9759:651;9681:729;;;:::o;657:162::-;743:7;789:12;781:6;;;;773:29;;;;-1:-1:-1;;;773:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;811:5:0;;;657:162::o;22668:170::-;22738:7;22765:65;22798:31;;22765:28;22775:17;;22765:5;:9;;:28;;;;:::i;303:82::-;361:7;378:5;382:1;378;:5;:::i;391:82::-;449:7;466:5;470:1;466;:5;:::i;17813:190::-;17887:41;;-1:-1:-1;;;17887:41:0;;17922:4;17887:41;;;2140:51:1;17869:15:0;;-1:-1:-1;;;;;17887:26:0;;;;;2113:18:1;;17887:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17965:20;;17939:56;;-1:-1:-1;;;17939:56:0;;-1:-1:-1;;;;;17965:20:0;;;17939:56;;;7042:51:1;7109:18;;;7102:34;;;17869:59:0;;-1:-1:-1;17939:25:0;;;;;7015:18:1;;17939:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17858:145;17813:190;:::o;20820:231::-;20947:9;;-1:-1:-1;;;;;20914:30:0;;20890:4;20914:30;;;:17;:30;;;;;;20890:4;;20959:15;;20914:42;;20947:9;20914:42;:::i;:::-;:60;:129;;;;;21028:15;;20995:30;21013:11;20995:17;:30::i;:::-;:48;20907:136;20820:231;-1:-1:-1;;20820:231:0:o;21395:784::-;21483:14;21500:30;21518:11;21500:17;:30::i;:::-;21566:6;;21559:39;;-1:-1:-1;;;21559:39:0;;21592:4;21559:39;;;2140:51:1;21483:47:0;;-1:-1:-1;21541:15:0;;-1:-1:-1;;;;;21566:6:0;;;;21559:24;;2113:18:1;;21559:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21612:19:0;;;;;;:6;:19;;;;;:26;21541:57;;-1:-1:-1;21612:31:0;;:51;;;21656:7;21647:6;:16;21612:51;21609:66;;;21666:7;;21395:784;;:::o;21609:66::-;21705:1;21688:6;:19;:40;;;;;21721:7;21711:6;:17;;21688:40;21685:487;;;21763:16;;:28;;21784:6;21763:20;:28::i;:::-;21744:16;:47;21813:6;;21806:42;;-1:-1:-1;;;21806:42:0;;-1:-1:-1;;;;;7060:32:1;;;21806:42:0;;;7042:51:1;7109:18;;;7102:34;;;21813:6:0;;;;21806:23;;7015:18:1;;21806:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21882:16:0;;:28;;21903:6;21882:20;:28::i;:::-;21863:16;:47;-1:-1:-1;;;;;21925:30:0;;;;;;:17;:30;;;;;;;;21958:15;21925:48;;22024:6;:19;;;;;:33;;;:45;;22062:6;22024:37;:45::i;:::-;-1:-1:-1;;;;;21988:19:0;;;;;;:6;:19;;;;;:33;;;:81;;;;22143:26;22120:50;;:22;:50::i;:::-;-1:-1:-1;;;;;22084:19:0;;;;;;:6;:19;;;;;:33;;:86;21472:707;;21395:784;;:::o;19463:482::-;19550:1;19541:6;:10;:45;;;;-1:-1:-1;;;;;;19555:19:0;;;;;;:6;:19;;;;;:26;:31;19541:45;19538:177;;;22945:12;:19;;-1:-1:-1;;;;;22911:31:0;;;;;;:18;:31;;;;;:53;;;22975:30;;;;;;;;;;;;;-1:-1:-1;;;;;;22975:30:0;;;;;;19538:177;;;19635:11;;:45;;;;-1:-1:-1;;;;;;19650:19:0;;19679:1;19650:19;;;:6;:19;;;;;:26;:30;;19635:45;19632:83;;;19682:30;19700:11;19682:17;:30::i;:::-;-1:-1:-1;;;;;19755:19:0;;;;;;:6;:19;;;;;:26;19739:11;;:55;;19787:6;;19739:43;;:15;:43::i;:::-;:47;;:55::i;:::-;19725:11;:69;-1:-1:-1;;;;;19805:19:0;;;;;;:6;:19;;;;;:35;;;19887:50;19834:6;19887:22;:50::i;:::-;-1:-1:-1;;;;;19851:19:0;;;;;;;:6;:19;;;;;:33;;:86;;;;-1:-1:-1;19463:482:0:o;9318:355::-;-1:-1:-1;;;;;9422:20:0;;9414:70;;;;-1:-1:-1;;;9414:70:0;;9602:2:1;9414:70:0;;;9584:21:1;9641:2;9621:18;;;9614:30;9680:34;9660:18;;;9653:62;-1:-1:-1;;;9731:18:1;;;9724:35;9776:19;;9414:70:0;9400:401:1;9414:70:0;-1:-1:-1;;;;;9503:23:0;;9495:71;;;;-1:-1:-1;;;9495:71:0;;10008:2:1;9495:71:0;;;9990:21:1;10047:2;10027:18;;;10020:30;10086:34;10066:18;;;10059:62;-1:-1:-1;;;10137:18:1;;;10130:33;10180:19;;9495:71:0;9806:399:1;9495:71:0;9595:17;9605:6;9595:9;:17::i;:::-;9585:6;:27;;9577:88;;;;-1:-1:-1;;;9577:88:0;;10412:2:1;9577:88:0;;;10394:21:1;10451:2;10431:18;;;10424:30;10490:34;10470:18;;;10463:62;-1:-1:-1;;;10541:18:1;;;10534:47;10598:19;;9577:88:0;10210:413:1;11698:191:0;-1:-1:-1;;;;;11791:19:0;;;;;;:11;:19;;;;;;;;11790:20;:47;;;;-1:-1:-1;;;;;;11815:22:0;;;;;;:11;:22;;;;;;;;11814:23;11790:47;11787:95;;;11847:14;;-1:-1:-1;;;11847:14:0;;;;11839:41;;;;-1:-1:-1;;;11839:41:0;;10830:2:1;11839:41:0;;;10812:21:1;10869:2;10849:18;;;10842:30;-1:-1:-1;;;10888:18:1;;;10881:44;10942:18;;11839:41:0;10628:338:1;11839:41:0;11698:191;;:::o;11901:331::-;-1:-1:-1;;;;;12005:19:0;;;;;;:11;:19;;;;;;;;12004:20;:47;;;;-1:-1:-1;;;;;;12029:22:0;;;;;;:11;:22;;;;;;;;12028:23;12004:47;:77;;;;-1:-1:-1;12076:4:0;;-1:-1:-1;;;;;12055:26:0;;;12076:4;;12055:26;;12004:77;:107;;;;-1:-1:-1;;;;;;12085:26:0;;6209:42;12085:26;;12004:107;12001:224;;;12173:15;;-1:-1:-1;;;;;12136:20:0;;;;;;:9;:20;;;;;;:32;;12161:6;12136:24;:32::i;:::-;12135:53;;12127:96;;;;-1:-1:-1;;;12127:96:0;;11173:2:1;12127:96:0;;;11155:21:1;11212:2;11192:18;;;11185:30;11251:32;11231:18;;;11224:60;11301:18;;12127:96:0;10971:354:1;12420:341:0;12531:4;;-1:-1:-1;;;;;12521:14:0;;;12531:4;;12521:14;12518:124;;12555:14;;12545:6;:24;;:47;;;-1:-1:-1;;;;;;12573:19:0;;;;;;:11;:19;;;;;;;;12545:47;:73;;;-1:-1:-1;;;;;;12596:22:0;;;;;;:11;:22;;;;;;;;12545:73;12537:103;;;;-1:-1:-1;;;12537:103:0;;11532:2:1;12537:103:0;;;11514:21:1;11571:2;11551:18;;;11544:30;-1:-1:-1;;;11590:18:1;;;11583:47;11647:18;;12537:103:0;11330:341:1;12537:103:0;12670:12;;12660:6;:22;;:45;;;-1:-1:-1;;;;;;12686:19:0;;;;;;:11;:19;;;;;;;;12660:45;:71;;;-1:-1:-1;;;;;;12709:22:0;;;;;;:11;:22;;;;;;;;12660:71;12652:101;;;;-1:-1:-1;;;12652:101:0;;11532:2:1;12652:101:0;;;11514:21:1;11571:2;11551:18;;;11544:30;-1:-1:-1;;;11590:18:1;;;11583:47;11647:18;;12652:101:0;11330:341:1;12240:172:0;12337:4;;-1:-1:-1;;;;;12324:17:0;;;12337:4;;12324:17;:41;;;;-1:-1:-1;;;;;;12346:19:0;;;;;;:11;:19;;;;;;;;12345:20;12324:41;:54;;;;-1:-1:-1;12370:8:0;;;;12369:9;12324:54;12321:84;;;12401:1;12380:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12240:172:0;;:::o;16724:197::-;16816:41;16831:6;16839:9;16850:6;16816:14;:41::i;:::-;16813:101;;;16859:29;16874:13;;16859:14;:29::i;:::-;16910:1;16890:9;:22;16724:197;;;:::o;16929:160::-;-1:-1:-1;;;;;17035:19:0;;17010:4;17035:19;;;:11;:19;;;;;;;;17034:20;:47;;;;-1:-1:-1;;;;;;;17059:22:0;;;;;:11;:22;;;;;;;;17058:23;;16929:160;-1:-1:-1;16929:160:0:o;17373:432::-;17459:7;17515:1;17482:30;17494:6;17502:9;17482:11;:30::i;:::-;:34;17479:304;;;17528:17;17548:59;17576:30;17588:6;17596:9;17576:11;:30::i;:::-;17559:11;;17548:23;;:6;;:10;:23::i;:59::-;17663:4;17645:24;;;;:9;:24;;;;;;17528:79;;-1:-1:-1;17645:39:0;;17528:79;17645:28;:39::i;:::-;17636:4;17618:24;;;;:9;:24;;;;;;;:66;;;;17700:42;;-1:-1:-1;;;;;17700:42:0;;;;;;;17732:9;1310:25:1;;1298:2;1283:18;;1164:177;17700:42:0;;;;;;;;17760:21;:6;17771:9;17760:10;:21::i;:::-;17753:28;;;;;17479:304;-1:-1:-1;17791:6:0;17373:432;-1:-1:-1;;17373:432:0:o;215:82::-;273:7;290:5;294:1;290;:5;:::i;18968:487::-;-1:-1:-1;;;;;19050:17:0;;19085:1;19050:17;;;:6;:17;;;;;:24;:37;;;;:55;;-1:-1:-1;19101:4:0;;-1:-1:-1;;;;;19091:14:0;;;19101:4;;19091:14;19050:55;19047:102;;;19107:40;19126:9;19137;19107:18;:40::i;:::-;19175:4;;-1:-1:-1;;;;;19162:17:0;;;19175:4;;19162:17;:55;;;;-1:-1:-1;;;;;;19183:14:0;;19215:1;19183:14;;;:6;:14;;;;;:21;:34;;19162:55;19159:126;;;19237:46;19257:25;19275:6;19257:17;:25::i;:::-;19237:15;;;:19;:46::i;:::-;19219:15;:64;19159:126;-1:-1:-1;;;;;19299:24:0;;;;;;:16;:24;;;;;;;;19295:67;;19325:35;19334:6;19342:17;19352:6;19342:9;:17::i;19325:35::-;-1:-1:-1;;;;;19376:27:0;;;;;;:16;:27;;;;;;;;19372:76;;19405:41;19414:9;19425:20;19435:9;19425;:20::i;23021:288::-;23137:12;23150:19;;:21;;23170:1;;23150:21;:::i;:::-;23137:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23102:31:0;;;;;:18;:31;;;;;;;;23089:12;:45;;23137:35;;;;;23089:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;23089:83:0;-1:-1:-1;;;;;23089:83:0;;;;;;23241:31;;;;;:18;:31;;;;;;;;23202:12;23215:19;;23241:31;;:18;23089:45;23215:21;;-1:-1:-1;;23215:21:0;:::i;:::-;23202:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23202:35:0;23183:55;;;;;;;;;;;;:89;23283:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;23283:18:0;;;;;-1:-1:-1;;;;;;23283:18:0;;;;;;-1:-1:-1;23021:288:0:o;16303:413::-;16401:4;16418:13;16444:14;;16434:6;:24;;16418:40;;16469:19;16519:13;;16491:24;16509:4;16491:9;:24::i;:::-;16551:8;;16491:41;-1:-1:-1;16491:41:0;;-1:-1:-1;16551:8:0;;16550:9;:24;;;;-1:-1:-1;16563:11:0;;;;16550:24;:42;;;;-1:-1:-1;16578:14:0;;-1:-1:-1;;;16578:14:0;;;;16550:42;:54;;;;;16596:8;16550:54;:78;;;;-1:-1:-1;;;;;;16609:19:0;;;;;;:11;:19;;;;;;;;16608:20;16550:78;:113;;;;-1:-1:-1;16659:4:0;;-1:-1:-1;;;;;16646:17:0;;;16659:4;;16646:17;16550:113;:140;;;;;16680:10;;16667:9;;:23;;16550:140;:158;;;;;16694:14;16550:158;16543:165;16303:413;-1:-1:-1;;;;;;16303:413:0:o;13910:1166::-;5468:8;:15;;-1:-1:-1;;5468:15:0;5479:4;5468:15;;;14005:8:::1;::::0;5468;;14004:17:::1;::::0;14019:1:::1;14004:14;:17::i;:::-;13981:40;;14032:32;14067:42;14096:12;14067:24;14078:12;;14067:6;:10;;:24;;;;:::i;:42::-;14032:77:::0;-1:-1:-1;14120:14:0::1;14137:36;:6:::0;14032:77;14137:10:::1;:36::i;:::-;14120:53:::0;-1:-1:-1;14209:21:0::1;14241:24;14120:53:::0;14241:16:::1;:24::i;:::-;14276:20;14299:41;:21;14325:14:::0;14299:25:::1;:41::i;:::-;14276:64;;14351:19;14372:48;14389:30;14406:12;;14389;:16;;:30;;;;:::i;:::-;14372:12:::0;;:16:::1;:48::i;:::-;14351:69;;14431:29;14463;14479:12;;14463:11;:15;;:29;;;;:::i;:::-;14431:61:::0;-1:-1:-1;14506:34:0;;14503:123:::1;;14604:18;::::0;14542:81:::1;::::0;14555:24;;14581:21;;-1:-1:-1;;;;;14604:18:0::1;14542:12;:81::i;:::-;14685:12;::::0;14636:23:::1;::::0;14662:36:::1;::::0;:18:::1;:11:::0;14678:1:::1;14662:15;:18::i;:36::-;14636:62:::0;-1:-1:-1;14712:19:0;;14709:79:::1;;14741:18;::::0;14733:53:::1;::::0;-1:-1:-1;;;;;14741:18:0;;::::1;::::0;14733:53;::::1;;;::::0;14770:15;;14741:18:::1;14733:53:::0;14741:18;14733:53;14770:15;14741:18;14733:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14709:79;14845:10;::::0;14798:21:::1;::::0;14822:34:::1;::::0;:18:::1;:11:::0;14838:1:::1;14822:15;:18::i;:34::-;14798:58:::0;-1:-1:-1;14870:17:0;;14867:53:::1;;14889:29;14904:13;14889:14;:29::i;:::-;14953:21;14988:25:::0;;14985:84:::1;;15023:20;::::0;15015:52:::1;::::0;-1:-1:-1;;;;;15023:20:0;;::::1;::::0;15015:52;::::1;;;::::0;15054:12;;15023:20:::1;15015:52:::0;15023:20;15015:52;15054:12;15023:20;15015:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14985:84;-1:-1:-1::0;;5488:8:0;:16;;-1:-1:-1;;5488:16:0;;;-1:-1:-1;;;;;;;;;13910:1166:0:o;17097:268::-;17212:4;;17176:7;;-1:-1:-1;;;;;17199:17:0;;;17212:4;;17199:17;:41;;;;;17238:1;17220:7;;:20;17199:41;17196:62;;;-1:-1:-1;17249:7:0;;17242:14;;17196:62;17281:4;;-1:-1:-1;;;;;17271:14:0;;;17281:4;;17271:14;:39;;;;;17308:1;17289:8;;:21;17271:39;17268:61;;;-1:-1:-1;17319:8:0;;17312:15;;17268:61;-1:-1:-1;17346:11:0;;17097:268;;;;:::o;15452:434::-;15542:16;;;15556:1;15542:16;;;;;;;;15518:21;;15542:16;;;;;;;;;;-1:-1:-1;15542:16:0;15518:40;;15587:4;15569;15574:1;15569:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15569:23:0;;;:7;;;;;;;;;;:23;;;;15613:6;;:13;;;-1:-1:-1;;;15613:13:0;;;;:6;;;;;:11;;:13;;;;;15569:7;;15613:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15603:4;15608:1;15603:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15603:23:0;;;:7;;;;;;;;;:23;15669:6;;15637:53;;15654:4;;15669:6;15678:11;15637:8;:53::i;:::-;15701:6;;:177;;-1:-1:-1;;;15701:177:0;;-1:-1:-1;;;;;15701:6:0;;;;:57;;:177;;15773:11;;15701:6;;15815:4;;15842;;15862:15;;15701:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15507:379;15452:434;:::o;15084:360::-;15215:6;;15183:53;;15200:4;;-1:-1:-1;;;;;15215:6:0;15224:11;15183:8;:53::i;:::-;15247:6;;:189;;-1:-1:-1;;;15247:189:0;;15310:4;15247:189;;;13722:34:1;13772:18;;;13765:34;;;15247:6:0;13815:18:1;;;13808:34;;;13858:18;;;13851:34;-1:-1:-1;;;;;13922:15:1;;;13901:19;;;13894:44;15420:15:0;13954:19:1;;;13947:35;15247:6:0;;;;:22;;15277:9;;13656:19:1;;15247:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19953:507::-;20047:6;;20040:39;;-1:-1:-1;;;20040:39:0;;20073:4;20040:39;;;2140:51:1;20016:21:0;;-1:-1:-1;;;;;20047:6:0;;20040:24;;2113:18:1;;20040:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20118:6;;20016:63;;-1:-1:-1;20090:50:0;;20107:9;;-1:-1:-1;;;;;20118:6:0;20134:4;20090:16;:50::i;:::-;20175:6;;20168:39;;-1:-1:-1;;;20168:39:0;;20201:4;20168:39;;;2140:51:1;20151:14:0;;20168:58;;20212:13;;-1:-1:-1;;;;;20175:6:0;;20168:24;;2113:18:1;;20168:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:58::-;20254:14;;20151:75;;-1:-1:-1;20254:26:0;;20151:75;20254:18;:26::i;:::-;20237:14;:43;20310:16;;:28;;20331:6;20310:20;:28::i;:::-;20291:16;:47;20439:11;;20391:31;;20369:83;;20391:60;;:43;;20427:6;20391:35;:43::i;:60::-;20369:17;;;:21;:83::i;:::-;20349:17;:103;-1:-1:-1;;;19953:507:0:o;15894:401::-;16017:16;;;16031:1;16017:16;;;;;;;;15993:21;;16017:16;;;;;;;;-1:-1:-1;;16054:6:0;;:13;;;-1:-1:-1;;;16054:13:0;;;;15993:40;;-1:-1:-1;;;;;;16054:6:0;;;;:11;;-1:-1:-1;16054:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16044:4;16049:1;16044:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16044:23:0;;;-1:-1:-1;;;;;16044:23:0;;;;;16096:5;16078:4;16083:1;16078:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16078:24:0;;;:7;;;;;;;;;:24;16113:6;;:174;;-1:-1:-1;;;16113:174:0;;:6;;;:57;;16178:9;;16113:174;;:6;;16219:4;;16246:9;;16271:15;;16113:174;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15982:313;15894:401;;;:::o;14:592:1:-;127:6;135;143;151;159;167;175;228:3;216:9;207:7;203:23;199:33;196:53;;;245:1;242;235:12;196:53;-1:-1:-1;;268:23:1;;;338:2;323:18;;310:32;;-1:-1:-1;389:2:1;374:18;;361:32;;440:2;425:18;;412:32;;-1:-1:-1;491:3:1;476:19;;463:33;;-1:-1:-1;543:3:1;528:19;;515:33;;-1:-1:-1;595:3:1;580:19;567:33;;-1:-1:-1;14:592:1;-1:-1:-1;14:592:1:o;611:548::-;723:4;752:2;781;770:9;763:21;813:6;807:13;856:6;851:2;840:9;836:18;829:34;881:1;891:140;905:6;902:1;899:13;891:140;;;1000:14;;;996:23;;990:30;966:17;;;985:2;962:26;955:66;920:10;;891:140;;;895:3;1080:1;1075:2;1066:6;1055:9;1051:22;1047:31;1040:42;1150:2;1143;1139:7;1134:2;1126:6;1122:15;1118:29;1107:9;1103:45;1099:54;1091:62;;;;611:548;;;;:::o;1346:131::-;-1:-1:-1;;;;;1421:31:1;;1411:42;;1401:70;;1467:1;1464;1457:12;1482:315;1550:6;1558;1611:2;1599:9;1590:7;1586:23;1582:32;1579:52;;;1627:1;1624;1617:12;1579:52;1666:9;1653:23;1685:31;1710:5;1685:31;:::i;:::-;1735:5;1787:2;1772:18;;;;1759:32;;-1:-1:-1;;;1482:315:1:o;2202:456::-;2279:6;2287;2295;2348:2;2336:9;2327:7;2323:23;2319:32;2316:52;;;2364:1;2361;2354:12;2316:52;2403:9;2390:23;2422:31;2447:5;2422:31;:::i;:::-;2472:5;-1:-1:-1;2529:2:1;2514:18;;2501:32;2542:33;2501:32;2542:33;:::i;:::-;2202:456;;2594:7;;-1:-1:-1;;;2648:2:1;2633:18;;;;2620:32;;2202:456::o;2663:247::-;2722:6;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2830:9;2817:23;2849:31;2874:5;2849:31;:::i;2915:248::-;2983:6;2991;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;-1:-1:-1;;3083:23:1;;;3153:2;3138:18;;;3125:32;;-1:-1:-1;2915:248:1:o;3357:316::-;3434:6;3442;3450;3503:2;3491:9;3482:7;3478:23;3474:32;3471:52;;;3519:1;3516;3509:12;3471:52;-1:-1:-1;;3542:23:1;;;3612:2;3597:18;;3584:32;;-1:-1:-1;3663:2:1;3648:18;;;3635:32;;3357:316;-1:-1:-1;3357:316:1:o;3678:118::-;3764:5;3757:13;3750:21;3743:5;3740:32;3730:60;;3786:1;3783;3776:12;3801:382;3866:6;3874;3927:2;3915:9;3906:7;3902:23;3898:32;3895:52;;;3943:1;3940;3933:12;3895:52;3982:9;3969:23;4001:31;4026:5;4001:31;:::i;:::-;4051:5;-1:-1:-1;4108:2:1;4093:18;;4080:32;4121:30;4080:32;4121:30;:::i;:::-;4170:7;4160:17;;;3801:382;;;;;:::o;4188:529::-;4265:6;4273;4281;4334:2;4322:9;4313:7;4309:23;4305:32;4302:52;;;4350:1;4347;4340:12;4302:52;4389:9;4376:23;4408:31;4433:5;4408:31;:::i;:::-;4458:5;-1:-1:-1;4515:2:1;4500:18;;4487:32;4528:33;4487:32;4528:33;:::i;:::-;4580:7;-1:-1:-1;4639:2:1;4624:18;;4611:32;4652:33;4611:32;4652:33;:::i;:::-;4704:7;4694:17;;;4188:529;;;;;:::o;5046:388::-;5114:6;5122;5175:2;5163:9;5154:7;5150:23;5146:32;5143:52;;;5191:1;5188;5181:12;5143:52;5230:9;5217:23;5249:31;5274:5;5249:31;:::i;:::-;5299:5;-1:-1:-1;5356:2:1;5341:18;;5328:32;5369:33;5328:32;5369:33;:::i;5699:329::-;5901:2;5883:21;;;5940:1;5920:18;;;5913:29;-1:-1:-1;;;5973:2:1;5958:18;;5951:36;6019:2;6004:18;;5699:329::o;7147:245::-;7214:6;7267:2;7255:9;7246:7;7242:23;7238:32;7235:52;;;7283:1;7280;7273:12;7235:52;7315:9;7309:16;7334:28;7356:5;7334:28;:::i;7613:127::-;7674:10;7669:3;7665:20;7662:1;7655:31;7705:4;7702:1;7695:15;7729:4;7726:1;7719:15;7745:217;7785:1;7811;7801:132;;7855:10;7850:3;7846:20;7843:1;7836:31;7890:4;7887:1;7880:15;7918:4;7915:1;7908:15;7801:132;-1:-1:-1;7947:9:1;;7745:217::o;8775:128::-;8842:9;;;8863:11;;;8860:37;;;8877:18;;:::i;8908:168::-;8981:9;;;9012;;9029:15;;;9023:22;;9009:37;8999:71;;9050:18;;:::i;9081:184::-;9151:6;9204:2;9192:9;9183:7;9179:23;9175:32;9172:52;;;9220:1;9217;9210:12;9172:52;-1:-1:-1;9243:16:1;;9081:184;-1:-1:-1;9081:184:1:o;9270:125::-;9335:9;;;9356:10;;;9353:36;;;9369:18;;:::i;11676:127::-;11737:10;11732:3;11728:20;11725:1;11718:31;11768:4;11765:1;11758:15;11792:4;11789:1;11782:15;11808:127;11869:10;11864:3;11860:20;11857:1;11850:31;11900:4;11897:1;11890:15;11924:4;11921:1;11914:15;12072:251;12142:6;12195:2;12183:9;12174:7;12170:23;12166:32;12163:52;;;12211:1;12208;12201:12;12163:52;12243:9;12237:16;12262:31;12287:5;12262:31;:::i;12328:461::-;12381:3;12419:5;12413:12;12446:6;12441:3;12434:19;12472:4;12501:2;12496:3;12492:12;12485:19;;12538:2;12531:5;12527:14;12559:1;12569:195;12583:6;12580:1;12577:13;12569:195;;;12648:13;;-1:-1:-1;;;;;12644:39:1;12632:52;;12704:12;;;;12739:15;;;;12680:1;12598:9;12569:195;;;-1:-1:-1;12780:3:1;;12328:461;-1:-1:-1;;;;;12328:461:1:o;12794:582::-;13093:6;13082:9;13075:25;13136:6;13131:2;13120:9;13116:18;13109:34;13179:3;13174:2;13163:9;13159:18;13152:31;13056:4;13200:57;13252:3;13241:9;13237:19;13229:6;13200:57;:::i;:::-;-1:-1:-1;;;;;13293:32:1;;;;13288:2;13273:18;;13266:60;-1:-1:-1;13357:3:1;13342:19;13335:35;13192:65;12794:582;-1:-1:-1;;;12794:582:1:o;13993:306::-;14081:6;14089;14097;14150:2;14138:9;14129:7;14125:23;14121:32;14118:52;;;14166:1;14163;14156:12;14118:52;14195:9;14189:16;14179:26;;14245:2;14234:9;14230:18;14224:25;14214:35;;14289:2;14278:9;14274:18;14268:25;14258:35;;13993:306;;;;;:::o;14304:510::-;14575:6;14564:9;14557:25;14618:3;14613:2;14602:9;14598:18;14591:31;14538:4;14639:57;14691:3;14680:9;14676:19;14668:6;14639:57;:::i;:::-;-1:-1:-1;;;;;14732:32:1;;;;14727:2;14712:18;;14705:60;-1:-1:-1;14796:2:1;14781:18;14774:34;14631:65;14304:510;-1:-1:-1;;14304:510:1:o
Swarm Source
ipfs://56e3d3a31248de6119c2ab350bd4461c0406c5b54f072d74c832f84c46c07303
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.