ERC-20
Overview
Max Total Supply
1,000,000,000 YieldFi
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,539,966.647279347 YieldFiValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
YieldFiDAO
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-10 */ /** YieldFi DAO - YieldFi TELEGRAM: https://t.me/YieldFiDAO TWITTER: https://twitter.com/YieldFiDAO WEBSITE : https://yieldfidao.com/ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.7; abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function factory() external view returns (address); } interface IUniswapV2Router01 { 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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 YieldFiDAO is Context, IERC20 { // Ownership moved to in-contract for customizability. address private _owner; mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isSniperOrBlacklisted; mapping (address => bool) private _liquidityHolders; mapping (address => uint256) buyLog; uint256 buyCoolDown = 30 seconds; uint256 private startingSupply = 100_0000_000; string private _name = "YieldFi DAO"; string private _symbol = "YieldFi"; uint256 public _buyFee = 1200; uint256 public _sellFee = 1200; uint256 public _transferFee = 1200; uint256 constant public maxBuyTaxes = 2500; uint256 constant public maxSellTaxes = 5000; uint256 constant public maxTransferTaxes = 2500; uint256 public _liquidityRatio = 20; uint256 public _marketingRatio = 50; uint256 public _devRatio = 30; uint256 private constant masterTaxDivisor = 10_000; uint256 private constant MAX = ~uint256(0); uint8 constant private _decimals = 9; uint256 private _tTotal = startingSupply * 10**_decimals; uint256 private _tFeeTotal; IUniswapV2Router02 public dexRouter; address public lpPair; // UNI ROUTER address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address payable private _marketingWallet = payable(0xFECfB138a120a5e81E1Efa4371608670e76AcabE); address payable private _teamWallet = payable(0xFECfB138a120a5e81E1Efa4371608670e76AcabE); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 private maxTxPercent = 5; uint256 private maxTxDivisor = 100; uint256 private _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor; // 1% uint256 private maxWalletPercent = 40; uint256 private maxWalletDivisor = 100; uint256 private _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor; // 10% uint256 private swapThreshold = (_tTotal * 5) / 10_000; // 0.05% uint256 private swapAmount = (_tTotal * 5) / 1_000; // 0.5% bool private sniperProtection = false; bool public _hasLiqBeenAdded = false; uint256 private _liqAddStatus = 0; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; uint256 private _initialLiquidityAmount = 0; uint256 private snipeBlockAmt = 0; uint256 public snipersCaught = 0; bool private sameBlockActive = false; mapping (address => uint256) private lastTrade; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SniperCaught(address sniperAddress); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller =/= owner."); _; } constructor () payable { _tOwned[_msgSender()] = _tTotal; // Set the owner. _owner = msg.sender; dexRouter = IUniswapV2Router02(_routerAddress); lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _allowances[address(this)][address(dexRouter)] = type(uint256).max; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[owner()] = true; // Approve the owner for UniSwap, timesaver. _approve(_msgSender(), _routerAddress, _tTotal); // Transfer tTotal to the _msgSender. emit Transfer(address(0), _msgSender(), _tTotal); } receive() external payable {} // Ownable removed as a lib and added here to allow for custom transfers and recnouncements. // This allows for removal of ownership privelages from the owner once renounced or transferred. function owner() public view returns (address) { return _owner; } function transferOwner(address newOwner) external onlyOwner() { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (_marketingWallet == payable(_owner)) _marketingWallet = payable(newOwner); _allowances[_owner][newOwner] = balanceOf(_owner); if(balanceOf(_owner) > 0) { _transfer(_owner, newOwner, balanceOf(_owner)); } _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFees(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function setNewRouter(address newRouter) public onlyOwner() { IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter); address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown."); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function isSniperOrBlacklisted(address account) public view returns (bool) { return _isSniperOrBlacklisted[account]; } function setBuyCoolDownTime(uint256 Seconds) public onlyOwner{ uint256 timeInSeconds = Seconds * 1 seconds; buyCoolDown = timeInSeconds; } function isProtected(uint256 rInitializer) external onlyOwner { require (_liqAddStatus == 0, "Error."); _liqAddStatus = rInitializer; } function setBlacklistEnabled(address account, bool enabled) external onlyOwner() { _isSniperOrBlacklisted[account] = enabled; } function setStartingProtections(uint8 _block) external onlyOwner{ require (snipeBlockAmt == 0 && !_hasLiqBeenAdded, "Starting Protections have already been executed."); snipeBlockAmt = _block; } function setProtectionSettings(bool antiSnipe, bool antiBlock) external onlyOwner() { sniperProtection = false; sameBlockActive = false; } function setTaxes(uint256 buyFee, uint256 sellFee, uint256 transferFee) external onlyOwner { require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _buyFee = buyFee; _sellFee = sellFee; _transferFee = transferFee; } function setRatios(uint256 liquidity, uint256 marketing, uint256 dev) external onlyOwner { require (liquidity + marketing + dev == 100, "Must add up to 100%"); _liquidityRatio = liquidity; _marketingRatio = marketing; _devRatio = dev; } function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _maxTxAmount = check; } function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner { uint256 check = (_tTotal * percent) / divisor; require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply."); _maxWalletSize = check; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; } function setWallets(address payable marketingWallet, address payable teamWallet) external onlyOwner { _marketingWallet = payable(marketingWallet); _teamWallet = payable(teamWallet); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function _hasLimits(address from, address to) private view returns (bool) { return from != owner() && to != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: Zero address."); require(to != address(0), "ERC20: Zero address."); require(amount > 0, "Must >0."); if(_hasLimits(from, to)) { if (sameBlockActive) { if (lpPairs[from]){ require(lastTrade[to] != block.number); lastTrade[to] = block.number; } else { require(lastTrade[from] != block.number); lastTrade[from] = block.number; } } if(lpPairs[from] || lpPairs[to]){ require(amount <= _maxTxAmount, "Exceeds the maxTxAmount."); } if(to != _routerAddress && !lpPairs[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } if (lpPairs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _finalizeTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { if (_liquidityRatio + _marketingRatio + _devRatio == 0) return; uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _marketingRatio + _devRatio)) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; swapTokensForEth(toSwapForEth); uint256 currentBalance = address(this).balance; uint256 liquidityBalance = ((currentBalance * _liquidityRatio) / (_liquidityRatio + _marketingRatio + _devRatio)) / 2; if (toLiquify > 0) { addLiquidity(toLiquify, liquidityBalance); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (contractTokenBalance - toLiquify > 0) { _marketingWallet.transfer(((currentBalance - liquidityBalance) * _marketingRatio) / (_marketingRatio + _devRatio)); _teamWallet.transfer(address(this).balance); } } function swapTokensForEth(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable DEAD, block.timestamp ); } function _checkLiquidityAdd(address from, address to) private { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { if (snipeBlockAmt != 2) { _liqAddBlock = block.number + 5000; } else { _liqAddBlock = block.number; } _liquidityHolders[from] = true; _hasLiqBeenAdded = true; _liqAddStamp = block.timestamp; swapAndLiquifyEnabled = true; emit SwapAndLiquifyEnabledUpdated(true); } } function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) { if (sniperProtection){ if (isSniperOrBlacklisted(from) || isSniperOrBlacklisted(to)) { revert("Sniper rejected."); } if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } else { if (_liqAddBlock > 0 && lpPairs[from] && _hasLimits(from, to) ) { if (block.number - _liqAddBlock < snipeBlockAmt) { _isSniperOrBlacklisted[to] = true; snipersCaught ++; emit SniperCaught(to); } } } } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { uint256 currentFee; if (from == lpPair) { if (balanceOf(to) > 0){ require(block.timestamp - buyLog[to] >= buyCoolDown, "Buy cooldown"); } buyLog[to] = block.timestamp; currentFee = _buyFee; } else if (to == lpPair) { currentFee = _sellFee; } else { currentFee = _transferFee; } if (_hasLimits(from, to)){ if (_liqAddStatus == 0 || _liqAddStatus != startingSupply/10) { revert(); } } uint256 feeAmount = amount * currentFee / masterTaxDivisor; _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rInitializer","type":"uint256"}],"name":"isProtected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniperOrBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Seconds","type":"uint256"}],"name":"setBuyCoolDownTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"antiSnipe","type":"bool"},{"internalType":"bool","name":"antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_block","type":"uint8"}],"name":"setStartingProtections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWallet","type":"address"},{"internalType":"address payable","name":"teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6000600355601e600955633b9aca00600a5560c0604052600b60808190526a5969656c6446692044414f60a81b60a09081526200003e91908162000639565b50604080518082019091526007808252665969656c64466960c81b60209092019182526200006f91600c9162000639565b506104b0600d556104b0600e556104b0600f5560146010556032601155601e6012556009600a620000a191906200077d565b600a54620000b091906200083e565b601381905560178054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0319918216179091556018805473fecfb138a120a5e81e1efa4371608670e76acabe92168217905560198054600161ff0160a01b03191690911790556005601a8190556064601b819055916200012c91906200083e565b62000138919062000711565b601c556028601d556064601e55601e54601d546013546200015a91906200083e565b62000166919062000711565b601f5561271060135460056200017d91906200083e565b62000189919062000711565b6020556103e86013546005620001a091906200083e565b620001ac919062000711565b6021556022805461ffff1916905560006023819055602481905560258190556026819055602781905560288190556029805460ff19169055601354338083526001602090815260408085209390935583546001600160a01b0319908116909217909355601754601580546001600160a01b03909216919092168117909155815163c45a015560e01b81529151909263c45a01559260048082019391829003018186803b1580156200025c57600080fd5b505afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620006df565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002f457600080fd5b505afa15801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f9190620006df565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200037757600080fd5b505af11580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b29190620006df565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600260209081526040808320805460ff191660019081179091553084526004835281842060155490951684529390915281206000199055600590620004236000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526005909252812080548316600190811790915561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549093168117909255600790620004ab6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620004f7620004df3390565b6017546013546001600160a01b039091169062000538565b60135460405190815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620008b3565b6001600160a01b0383166200058a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620005d85760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000581565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b828054620006479062000860565b90600052602060002090601f0160209004810192826200066b5760008555620006b6565b82601f106200068657805160ff1916838001178555620006b6565b82800160010185558215620006b6579182015b82811115620006b657825182559160200191906001019062000699565b50620006c4929150620006c8565b5090565b5b80821115620006c45760008155600101620006c9565b600060208284031215620006f257600080fd5b81516001600160a01b03811681146200070a57600080fd5b9392505050565b6000826200072f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620007755781600019048211156200075957620007596200089d565b808516156200076757918102915b93841c939080029062000739565b509250929050565b60006200070a60ff841683600082620007995750600162000838565b81620007a85750600062000838565b8160018114620007c15760028114620007cc57620007ec565b600191505062000838565b60ff841115620007e057620007e06200089d565b50506001821b62000838565b5060208310610133831016604e8410600b841016171562000811575081810a62000838565b6200081d838362000734565b80600019048211156200083457620008346200089d565b0290505b92915050565b60008160001904831182151516156200085b576200085b6200089d565b500290565b600181811c908216806200087557607f821691505b602082108114156200089757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612a9680620008c36000396000f3fe6080604052600436106102975760003560e01c8063590f897e1161015a578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e1461078f578063e79d4160146107d5578063e9dae5ed146107eb578063eafb5a3c1461080b578063eec2744e1461082b578063fb78680d1461084b57600080fd5b8063a9059cbb146106f9578063b1b08f71146103c9578063b3d514fb14610719578063c49b9a801461072f578063cdfdb7dc1461074f578063d3f6a1571461076f57600080fd5b8063893d20e811610113578063893d20e81461065757806389fd9bc1146106755780638da5cb5b1461065757806395d89b41146106ae578063a457c2d7146106c3578063a8edc797146106e357600080fd5b8063590f897e146105ac578063590ffdce146105c257806370a08231146105e2578063715018a61461060257806380c581d11461061757806381c6f11b1461063757600080fd5b80633df9a8d2116101fe5780634a74bb02116101b75780634a74bb02146104dd5780634ef3cce5146104fe5780634fb2e45d146105145780634fbee1931461053457806350a8e0161461056d578063571ac8b01461058c57600080fd5b80633df9a8d2146104315780633f3cf56c1461044757806340b9a54b146104675780634129ecee1461047d578063452ed4f11461049d578063469c0ef5146104bd57600080fd5b806323b872dd1161025057806323b872dd1461038957806326003957146103a95780632b28fc7a146103c9578063313ce567146103df578063384f6b51146103fb578063395093511461041157600080fd5b806303fd2a45146102a3578063044df726146102d657806306fdde03146102f85780630758d9241461031a578063095ea7b31461033a57806318160ddd1461036a57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102e257600080fd5b506102f66102f13660046126bf565b61086b565b005b34801561030457600080fd5b5061030d6108b8565b6040516102cd91906127c5565b34801561032657600080fd5b506015546102b9906001600160a01b031681565b34801561034657600080fd5b5061035a610355366004612678565b61094a565b60405190151581526020016102cd565b34801561037657600080fd5b506013545b6040519081526020016102cd565b34801561039557600080fd5b5061035a6103a4366004612602565b610960565b3480156103b557600080fd5b506102f66103c43660046126f4565b6109d8565b3480156103d557600080fd5b5061037b6109c481565b3480156103eb57600080fd5b50604051600981526020016102cd565b34801561040757600080fd5b5061037b60105481565b34801561041d57600080fd5b5061035a61042c366004612678565b610a55565b34801561043d57600080fd5b5061037b600f5481565b34801561045357600080fd5b506102f66104623660046126f4565b610a91565b34801561047357600080fd5b5061037b600d5481565b34801561048957600080fd5b506102f66104983660046127a2565b610b0e565b3480156104a957600080fd5b506016546102b9906001600160a01b031681565b3480156104c957600080fd5b506102f66104d83660046126db565b610bbd565b3480156104e957600080fd5b5060195461035a90600160a81b900460ff1681565b34801561050a57600080fd5b5061037b60115481565b34801561052057600080fd5b506102f661052f36600461258f565b610bfb565b34801561054057600080fd5b5061035a61054f36600461258f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561057957600080fd5b5060225461035a90610100900460ff1681565b34801561059857600080fd5b5061035a6105a736600461258f565b610d8f565b3480156105b857600080fd5b5061037b600e5481565b3480156105ce57600080fd5b506102f66105dd366004612643565b610da3565b3480156105ee57600080fd5b5061037b6105fd36600461258f565b610df8565b34801561060e57600080fd5b506102f6610e13565b34801561062357600080fd5b506102f6610632366004612643565b610e92565b34801561064357600080fd5b506102f66106523660046126db565b610f6b565b34801561066357600080fd5b506000546001600160a01b03166102b9565b34801561068157600080fd5b5061035a61069036600461258f565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106ba57600080fd5b5061030d610fd3565b3480156106cf57600080fd5b5061035a6106de366004612678565b610fe2565b3480156106ef57600080fd5b5061037b60125481565b34801561070557600080fd5b5061035a610714366004612678565b611019565b34801561072557600080fd5b5061037b61138881565b34801561073b57600080fd5b506102f661074a3660046126a4565b611030565b34801561075b57600080fd5b506102f661076a366004612716565b6110b2565b34801561077b57600080fd5b506102f661078a3660046125c9565b611144565b34801561079b57600080fd5b5061037b6107aa3660046125c9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107e157600080fd5b5061037b60285481565b3480156107f757600080fd5b506102f6610806366004612716565b61119c565b34801561081757600080fd5b506102f661082636600461258f565b611242565b34801561083757600080fd5b506102f6610846366004612643565b6115c8565b34801561085757600080fd5b506102f6610866366004612770565b61161d565b6000546001600160a01b0316331461089e5760405162461bcd60e51b81526004016108959061281a565b60405180910390fd5b50506022805460ff19908116909155602980549091169055565b6060600b80546108c7906129c6565b80601f01602080910402602001604051908101604052809291908181526020018280546108f3906129c6565b80156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b6000610957338484611686565b50600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109c5576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109bf9084906129af565b90915550505b6109d084848461177f565b949350505050565b6000546001600160a01b03163314610a025760405162461bcd60e51b81526004016108959061281a565b60008183601354610a139190612990565b610a1d919061296e565b90506103e8601354610a2f919061296e565b811015610a4e5760405162461bcd60e51b815260040161089590612845565b601f555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610957918590610a8c908690612956565b611686565b6000546001600160a01b03163314610abb5760405162461bcd60e51b81526004016108959061281a565b60008183601354610acc9190612990565b610ad6919061296e565b90506103e8601354610ae8919061296e565b811015610b075760405162461bcd60e51b815260040161089590612845565b601c555050565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016108959061281a565b602754158015610b505750602254610100900460ff16155b610bb55760405162461bcd60e51b815260206004820152603060248201527f5374617274696e672050726f74656374696f6e73206861766520616c7265616460448201526f3c903132b2b71032bc32b1baba32b21760811b6064820152608401610895565b60ff16602755565b6000546001600160a01b03163314610be75760405162461bcd60e51b81526004016108959061281a565b6000610bf4826001612990565b6009555050565b6000546001600160a01b03163314610c255760405162461bcd60e51b81526004016108959061281a565b6001600160a01b038116610c4b5760405162461bcd60e51b815260040161089590612888565b6001600160a01b03811661dead1415610c765760405162461bcd60e51b815260040161089590612888565b60008054610c8f916001600160a01b0390911690610da3565b610c9a816001610da3565b6000546018546001600160a01b0390811691161415610ccf57601880546001600160a01b0319166001600160a01b0383161790555b600054610ce4906001600160a01b0316610df8565b600080546001600160a01b039081168252600460209081526040808420868416855290915282209290925580549091610d1d9116610df8565b1115610d4457600054610d42906001600160a01b031682610d3d82610df8565b61177f565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610d9d8260001961094a565b92915050565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016108959061281a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b03163314610e3d5760405162461bcd60e51b81526004016108959061281a565b60008054610e56916001600160a01b0390911690610da3565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b81526004016108959061281a565b80610ee357506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610f3f5762093a8060035442610efd91906129af565b11610f3f5760405162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b6044820152606401610895565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6000546001600160a01b03163314610f955760405162461bcd60e51b81526004016108959061281a565b60235415610fce5760405162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b6044820152606401610895565b602355565b6060600c80546108c7906129c6565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610957918590610a8c9086906129af565b600061102633848461177f565b5060019392505050565b6000546001600160a01b0316331461105a5760405162461bcd60e51b81526004016108959061281a565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110a790831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110dc5760405162461bcd60e51b81526004016108959061281a565b806110e78385612956565b6110f19190612956565b6064146111365760405162461bcd60e51b81526020600482015260136024820152724d7573742061646420757020746f203130302560681b6044820152606401610895565b601092909255601155601255565b6000546001600160a01b0316331461116e5760405162461bcd60e51b81526004016108959061281a565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000546001600160a01b031633146111c65760405162461bcd60e51b81526004016108959061281a565b6109c483111580156111da57506113888211155b80156111e857506109c48111155b6112345760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610895565b600d92909255600e55600f55565b6000546001600160a01b0316331461126c5760405162461bcd60e51b81526004016108959061281a565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e491906125ac565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561132c57600080fd5b505afa158015611340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136491906125ac565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b1580156113aa57600080fd5b505afa1580156113be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e291906125ac565b90506001600160a01b03811661158857816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146391906125ac565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ab57600080fd5b505afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e391906125ac565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561152b57600080fd5b505af115801561153f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156391906125ac565b601680546001600160a01b0319166001600160a01b03929092169190911790556115a4565b601680546001600160a01b0319166001600160a01b0383161790555b50601580546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146115f25760405162461bcd60e51b81526004016108959061281a565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116475760405162461bcd60e51b81526004016108959061281a565b82846013546116569190612990565b611660919061296e565b6020556013548190611673908490612990565b61167d919061296e565b60215550505050565b6001600160a01b0383166116d25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610895565b6001600160a01b03821661171e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610895565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117ce5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610895565b6001600160a01b03831661181b5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610895565b600082116118565760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610895565b6118608484611b26565b15611a4e5760295460ff1615611917576001600160a01b03841660009081526002602052604090205460ff16156118d6576001600160a01b0383166000908152602a60205260409020544314156118b657600080fd5b6001600160a01b0383166000908152602a60205260409020439055611917565b6001600160a01b0384166000908152602a60205260409020544314156118fb57600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b03841660009081526002602052604090205460ff168061195657506001600160a01b03831660009081526002602052604090205460ff165b156119ad57601c548211156119ad5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610895565b6017546001600160a01b038481169116148015906119e457506001600160a01b03831660009081526002602052604090205460ff16155b15611a4e57601f54826119f685610df8565b611a009190612956565b1115611a4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610895565b6001600160a01b03841660009081526005602052604090205460019060ff1680611a9057506001600160a01b03841660009081526005602052604090205460ff165b15611a99575060005b6001600160a01b03841660009081526002602052604090205460ff1615611b1157601954600160a01b900460ff16158015611add5750601954600160a81b900460ff165b15611b11576000611aed30610df8565b90506020548110611b0f576021548110611b0657506021545b611b0f81611be4565b505b611b1d85858584611de1565b95945050505050565b600080546001600160a01b03848116911614801590611b5357506000546001600160a01b03838116911614155b8015611b7857506001600160a01b03821660009081526007602052604090205460ff16155b8015611b9d57506001600160a01b03831660009081526007602052604090205460ff16155b8015611bb457506001600160a01b03821661dead14155b8015611bc857506001600160a01b03821615155b8015611bdd57506001600160a01b0383163014155b9392505050565b6019805460ff60a01b1916600160a01b179055601254601154601054611c0a9190612956565b611c149190612956565b611c1d57611dd1565b60006002601254601154601054611c349190612956565b611c3e9190612956565b601054611c4b9085612990565b611c55919061296e565b611c5f919061296e565b90506000611c6d82846129af565b9050611c78816120a0565b600047905060006002601254601154601054611c949190612956565b611c9e9190612956565b601054611cab9085612990565b611cb5919061296e565b611cbf919061296e565b90508315611d1357611cd184826121f0565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6000611d1f85876129af565b1115611dcc576018546012546011546001600160a01b03909216916108fc91611d4791612956565b601154611d5485876129af565b611d5e9190612990565b611d68919061296e565b6040518115909202916000818181858888f19350505050158015611d90573d6000803e3d6000fd5b506019546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611dca573d6000803e3d6000fd5b505b505050505b506019805460ff60a01b19169055565b60225460009060ff1615611fcd576001600160a01b03851660009081526006602052604090205460ff1680611e2e57506001600160a01b03841660009081526006602052604090205460ff165b15611e6e5760405162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b6044820152606401610895565b602254610100900460ff16611f0457611e878585612299565b602254610100900460ff16158015611ea45750611ea48585611b26565b15611eff5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610895565b611fcd565b6000602454118015611f2e57506001600160a01b03851660009081526002602052604090205460ff165b8015611f3f5750611f3f8585611b26565b15611fcd57602754602454611f5490436129af565b1015611fcd576001600160a01b0384166000908152600660205260408120805460ff191660011790556028805491611f8b83612a01565b90915550506040516001600160a01b03851681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b6001600160a01b03851660009081526001602052604081208054859290611ff59084906129af565b9091555060009050826120085783612013565b6120138686866123d6565b6001600160a01b038616600090815260016020526040812080549293508392909190612040908490612956565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161208c91815260200190565b60405180910390a350600195945050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d5576120d5612a32565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561212957600080fd5b505afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216191906125ac565b8160018151811061217457612174612a32565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac947906121ba9085906000908690309042906004016128e5565b600060405180830381600087803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b505050505050565b60155460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561225957600080fd5b505af115801561226d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122929190612742565b5050505050565b602254610100900460ff16156122fd5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610895565b6123078282611b26565b15801561232157506016546001600160a01b038281169116145b15610f67576027546002146123445761233c43611388612956565b602455612349565b436024555b6001600160a01b03821660009081526007602052604090819020805460ff191660019081179091556022805461ff001916610100179055426025556019805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159916123ca91901515815260200190565b60405180910390a15050565b60165460009081906001600160a01b03868116911614156124895760006123fc85610df8565b1115612465576009546001600160a01b03851660009081526008602052604090205461242890426129af565b10156124655760405162461bcd60e51b815260206004820152600c60248201526b213abc9031b7b7b63237bbb760a11b6044820152606401610895565b506001600160a01b0383166000908152600860205260409020429055600d546124ad565b6016546001600160a01b03858116911614156124a85750600e546124ad565b50600f545b6124b78585611b26565b156124e45760235415806124da5750600a80546124d4919061296e565b60235414155b156124e457600080fd5b60006127106124f38386612990565b6124fd919061296e565b30600090815260016020526040812080549293508392909190612521908490612956565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361257081856129af565b9695505050505050565b8035801515811461258a57600080fd5b919050565b6000602082840312156125a157600080fd5b8135611bdd81612a48565b6000602082840312156125be57600080fd5b8151611bdd81612a48565b600080604083850312156125dc57600080fd5b82356125e781612a48565b915060208301356125f781612a48565b809150509250929050565b60008060006060848603121561261757600080fd5b833561262281612a48565b9250602084013561263281612a48565b929592945050506040919091013590565b6000806040838503121561265657600080fd5b823561266181612a48565b915061266f6020840161257a565b90509250929050565b6000806040838503121561268b57600080fd5b823561269681612a48565b946020939093013593505050565b6000602082840312156126b657600080fd5b611bdd8261257a565b600080604083850312156126d257600080fd5b6126618361257a565b6000602082840312156126ed57600080fd5b5035919050565b6000806040838503121561270757600080fd5b50508035926020909101359150565b60008060006060848603121561272b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561275757600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561278657600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156127b457600080fd5b813560ff81168114611bdd57600080fd5b600060208083528351808285015260005b818110156127f2578581018301518582016040015282016127d6565b81811115612804576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129355784516001600160a01b031683529383019391830191600101612910565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561296957612969612a1c565b500190565b60008261298b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156129aa576129aa612a1c565b500290565b6000828210156129c1576129c1612a1c565b500390565b600181811c908216806129da57607f821691505b602082108114156129fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a1557612a15612a1c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612a5d57600080fd5b5056fea264697066735822122078d5ad1d0cfb666923115512cdbf7dfff6350440803bf2c32a379970cd42e09864736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102975760003560e01c8063590f897e1161015a578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e1461078f578063e79d4160146107d5578063e9dae5ed146107eb578063eafb5a3c1461080b578063eec2744e1461082b578063fb78680d1461084b57600080fd5b8063a9059cbb146106f9578063b1b08f71146103c9578063b3d514fb14610719578063c49b9a801461072f578063cdfdb7dc1461074f578063d3f6a1571461076f57600080fd5b8063893d20e811610113578063893d20e81461065757806389fd9bc1146106755780638da5cb5b1461065757806395d89b41146106ae578063a457c2d7146106c3578063a8edc797146106e357600080fd5b8063590f897e146105ac578063590ffdce146105c257806370a08231146105e2578063715018a61461060257806380c581d11461061757806381c6f11b1461063757600080fd5b80633df9a8d2116101fe5780634a74bb02116101b75780634a74bb02146104dd5780634ef3cce5146104fe5780634fb2e45d146105145780634fbee1931461053457806350a8e0161461056d578063571ac8b01461058c57600080fd5b80633df9a8d2146104315780633f3cf56c1461044757806340b9a54b146104675780634129ecee1461047d578063452ed4f11461049d578063469c0ef5146104bd57600080fd5b806323b872dd1161025057806323b872dd1461038957806326003957146103a95780632b28fc7a146103c9578063313ce567146103df578063384f6b51146103fb578063395093511461041157600080fd5b806303fd2a45146102a3578063044df726146102d657806306fdde03146102f85780630758d9241461031a578063095ea7b31461033a57806318160ddd1461036a57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102e257600080fd5b506102f66102f13660046126bf565b61086b565b005b34801561030457600080fd5b5061030d6108b8565b6040516102cd91906127c5565b34801561032657600080fd5b506015546102b9906001600160a01b031681565b34801561034657600080fd5b5061035a610355366004612678565b61094a565b60405190151581526020016102cd565b34801561037657600080fd5b506013545b6040519081526020016102cd565b34801561039557600080fd5b5061035a6103a4366004612602565b610960565b3480156103b557600080fd5b506102f66103c43660046126f4565b6109d8565b3480156103d557600080fd5b5061037b6109c481565b3480156103eb57600080fd5b50604051600981526020016102cd565b34801561040757600080fd5b5061037b60105481565b34801561041d57600080fd5b5061035a61042c366004612678565b610a55565b34801561043d57600080fd5b5061037b600f5481565b34801561045357600080fd5b506102f66104623660046126f4565b610a91565b34801561047357600080fd5b5061037b600d5481565b34801561048957600080fd5b506102f66104983660046127a2565b610b0e565b3480156104a957600080fd5b506016546102b9906001600160a01b031681565b3480156104c957600080fd5b506102f66104d83660046126db565b610bbd565b3480156104e957600080fd5b5060195461035a90600160a81b900460ff1681565b34801561050a57600080fd5b5061037b60115481565b34801561052057600080fd5b506102f661052f36600461258f565b610bfb565b34801561054057600080fd5b5061035a61054f36600461258f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561057957600080fd5b5060225461035a90610100900460ff1681565b34801561059857600080fd5b5061035a6105a736600461258f565b610d8f565b3480156105b857600080fd5b5061037b600e5481565b3480156105ce57600080fd5b506102f66105dd366004612643565b610da3565b3480156105ee57600080fd5b5061037b6105fd36600461258f565b610df8565b34801561060e57600080fd5b506102f6610e13565b34801561062357600080fd5b506102f6610632366004612643565b610e92565b34801561064357600080fd5b506102f66106523660046126db565b610f6b565b34801561066357600080fd5b506000546001600160a01b03166102b9565b34801561068157600080fd5b5061035a61069036600461258f565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106ba57600080fd5b5061030d610fd3565b3480156106cf57600080fd5b5061035a6106de366004612678565b610fe2565b3480156106ef57600080fd5b5061037b60125481565b34801561070557600080fd5b5061035a610714366004612678565b611019565b34801561072557600080fd5b5061037b61138881565b34801561073b57600080fd5b506102f661074a3660046126a4565b611030565b34801561075b57600080fd5b506102f661076a366004612716565b6110b2565b34801561077b57600080fd5b506102f661078a3660046125c9565b611144565b34801561079b57600080fd5b5061037b6107aa3660046125c9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107e157600080fd5b5061037b60285481565b3480156107f757600080fd5b506102f6610806366004612716565b61119c565b34801561081757600080fd5b506102f661082636600461258f565b611242565b34801561083757600080fd5b506102f6610846366004612643565b6115c8565b34801561085757600080fd5b506102f6610866366004612770565b61161d565b6000546001600160a01b0316331461089e5760405162461bcd60e51b81526004016108959061281a565b60405180910390fd5b50506022805460ff19908116909155602980549091169055565b6060600b80546108c7906129c6565b80601f01602080910402602001604051908101604052809291908181526020018280546108f3906129c6565b80156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b6000610957338484611686565b50600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109c5576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109bf9084906129af565b90915550505b6109d084848461177f565b949350505050565b6000546001600160a01b03163314610a025760405162461bcd60e51b81526004016108959061281a565b60008183601354610a139190612990565b610a1d919061296e565b90506103e8601354610a2f919061296e565b811015610a4e5760405162461bcd60e51b815260040161089590612845565b601f555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610957918590610a8c908690612956565b611686565b6000546001600160a01b03163314610abb5760405162461bcd60e51b81526004016108959061281a565b60008183601354610acc9190612990565b610ad6919061296e565b90506103e8601354610ae8919061296e565b811015610b075760405162461bcd60e51b815260040161089590612845565b601c555050565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016108959061281a565b602754158015610b505750602254610100900460ff16155b610bb55760405162461bcd60e51b815260206004820152603060248201527f5374617274696e672050726f74656374696f6e73206861766520616c7265616460448201526f3c903132b2b71032bc32b1baba32b21760811b6064820152608401610895565b60ff16602755565b6000546001600160a01b03163314610be75760405162461bcd60e51b81526004016108959061281a565b6000610bf4826001612990565b6009555050565b6000546001600160a01b03163314610c255760405162461bcd60e51b81526004016108959061281a565b6001600160a01b038116610c4b5760405162461bcd60e51b815260040161089590612888565b6001600160a01b03811661dead1415610c765760405162461bcd60e51b815260040161089590612888565b60008054610c8f916001600160a01b0390911690610da3565b610c9a816001610da3565b6000546018546001600160a01b0390811691161415610ccf57601880546001600160a01b0319166001600160a01b0383161790555b600054610ce4906001600160a01b0316610df8565b600080546001600160a01b039081168252600460209081526040808420868416855290915282209290925580549091610d1d9116610df8565b1115610d4457600054610d42906001600160a01b031682610d3d82610df8565b61177f565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610d9d8260001961094a565b92915050565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016108959061281a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b03163314610e3d5760405162461bcd60e51b81526004016108959061281a565b60008054610e56916001600160a01b0390911690610da3565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b81526004016108959061281a565b80610ee357506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610f3f5762093a8060035442610efd91906129af565b11610f3f5760405162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b6044820152606401610895565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6000546001600160a01b03163314610f955760405162461bcd60e51b81526004016108959061281a565b60235415610fce5760405162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b6044820152606401610895565b602355565b6060600c80546108c7906129c6565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610957918590610a8c9086906129af565b600061102633848461177f565b5060019392505050565b6000546001600160a01b0316331461105a5760405162461bcd60e51b81526004016108959061281a565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110a790831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110dc5760405162461bcd60e51b81526004016108959061281a565b806110e78385612956565b6110f19190612956565b6064146111365760405162461bcd60e51b81526020600482015260136024820152724d7573742061646420757020746f203130302560681b6044820152606401610895565b601092909255601155601255565b6000546001600160a01b0316331461116e5760405162461bcd60e51b81526004016108959061281a565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000546001600160a01b031633146111c65760405162461bcd60e51b81526004016108959061281a565b6109c483111580156111da57506113888211155b80156111e857506109c48111155b6112345760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610895565b600d92909255600e55600f55565b6000546001600160a01b0316331461126c5760405162461bcd60e51b81526004016108959061281a565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e491906125ac565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561132c57600080fd5b505afa158015611340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136491906125ac565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b1580156113aa57600080fd5b505afa1580156113be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e291906125ac565b90506001600160a01b03811661158857816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146391906125ac565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ab57600080fd5b505afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e391906125ac565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561152b57600080fd5b505af115801561153f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156391906125ac565b601680546001600160a01b0319166001600160a01b03929092169190911790556115a4565b601680546001600160a01b0319166001600160a01b0383161790555b50601580546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146115f25760405162461bcd60e51b81526004016108959061281a565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116475760405162461bcd60e51b81526004016108959061281a565b82846013546116569190612990565b611660919061296e565b6020556013548190611673908490612990565b61167d919061296e565b60215550505050565b6001600160a01b0383166116d25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610895565b6001600160a01b03821661171e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610895565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117ce5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610895565b6001600160a01b03831661181b5760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b6044820152606401610895565b600082116118565760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b6044820152606401610895565b6118608484611b26565b15611a4e5760295460ff1615611917576001600160a01b03841660009081526002602052604090205460ff16156118d6576001600160a01b0383166000908152602a60205260409020544314156118b657600080fd5b6001600160a01b0383166000908152602a60205260409020439055611917565b6001600160a01b0384166000908152602a60205260409020544314156118fb57600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b03841660009081526002602052604090205460ff168061195657506001600160a01b03831660009081526002602052604090205460ff165b156119ad57601c548211156119ad5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610895565b6017546001600160a01b038481169116148015906119e457506001600160a01b03831660009081526002602052604090205460ff16155b15611a4e57601f54826119f685610df8565b611a009190612956565b1115611a4e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610895565b6001600160a01b03841660009081526005602052604090205460019060ff1680611a9057506001600160a01b03841660009081526005602052604090205460ff165b15611a99575060005b6001600160a01b03841660009081526002602052604090205460ff1615611b1157601954600160a01b900460ff16158015611add5750601954600160a81b900460ff165b15611b11576000611aed30610df8565b90506020548110611b0f576021548110611b0657506021545b611b0f81611be4565b505b611b1d85858584611de1565b95945050505050565b600080546001600160a01b03848116911614801590611b5357506000546001600160a01b03838116911614155b8015611b7857506001600160a01b03821660009081526007602052604090205460ff16155b8015611b9d57506001600160a01b03831660009081526007602052604090205460ff16155b8015611bb457506001600160a01b03821661dead14155b8015611bc857506001600160a01b03821615155b8015611bdd57506001600160a01b0383163014155b9392505050565b6019805460ff60a01b1916600160a01b179055601254601154601054611c0a9190612956565b611c149190612956565b611c1d57611dd1565b60006002601254601154601054611c349190612956565b611c3e9190612956565b601054611c4b9085612990565b611c55919061296e565b611c5f919061296e565b90506000611c6d82846129af565b9050611c78816120a0565b600047905060006002601254601154601054611c949190612956565b611c9e9190612956565b601054611cab9085612990565b611cb5919061296e565b611cbf919061296e565b90508315611d1357611cd184826121f0565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b6000611d1f85876129af565b1115611dcc576018546012546011546001600160a01b03909216916108fc91611d4791612956565b601154611d5485876129af565b611d5e9190612990565b611d68919061296e565b6040518115909202916000818181858888f19350505050158015611d90573d6000803e3d6000fd5b506019546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611dca573d6000803e3d6000fd5b505b505050505b506019805460ff60a01b19169055565b60225460009060ff1615611fcd576001600160a01b03851660009081526006602052604090205460ff1680611e2e57506001600160a01b03841660009081526006602052604090205460ff165b15611e6e5760405162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b6044820152606401610895565b602254610100900460ff16611f0457611e878585612299565b602254610100900460ff16158015611ea45750611ea48585611b26565b15611eff5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610895565b611fcd565b6000602454118015611f2e57506001600160a01b03851660009081526002602052604090205460ff165b8015611f3f5750611f3f8585611b26565b15611fcd57602754602454611f5490436129af565b1015611fcd576001600160a01b0384166000908152600660205260408120805460ff191660011790556028805491611f8b83612a01565b90915550506040516001600160a01b03851681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b6001600160a01b03851660009081526001602052604081208054859290611ff59084906129af565b9091555060009050826120085783612013565b6120138686866123d6565b6001600160a01b038616600090815260016020526040812080549293508392909190612040908490612956565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161208c91815260200190565b60405180910390a350600195945050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d5576120d5612a32565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561212957600080fd5b505afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216191906125ac565b8160018151811061217457612174612a32565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac947906121ba9085906000908690309042906004016128e5565b600060405180830381600087803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b505050505050565b60155460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561225957600080fd5b505af115801561226d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122929190612742565b5050505050565b602254610100900460ff16156122fd5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610895565b6123078282611b26565b15801561232157506016546001600160a01b038281169116145b15610f67576027546002146123445761233c43611388612956565b602455612349565b436024555b6001600160a01b03821660009081526007602052604090819020805460ff191660019081179091556022805461ff001916610100179055426025556019805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159916123ca91901515815260200190565b60405180910390a15050565b60165460009081906001600160a01b03868116911614156124895760006123fc85610df8565b1115612465576009546001600160a01b03851660009081526008602052604090205461242890426129af565b10156124655760405162461bcd60e51b815260206004820152600c60248201526b213abc9031b7b7b63237bbb760a11b6044820152606401610895565b506001600160a01b0383166000908152600860205260409020429055600d546124ad565b6016546001600160a01b03858116911614156124a85750600e546124ad565b50600f545b6124b78585611b26565b156124e45760235415806124da5750600a80546124d4919061296e565b60235414155b156124e457600080fd5b60006127106124f38386612990565b6124fd919061296e565b30600090815260016020526040812080549293508392909190612521908490612956565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361257081856129af565b9695505050505050565b8035801515811461258a57600080fd5b919050565b6000602082840312156125a157600080fd5b8135611bdd81612a48565b6000602082840312156125be57600080fd5b8151611bdd81612a48565b600080604083850312156125dc57600080fd5b82356125e781612a48565b915060208301356125f781612a48565b809150509250929050565b60008060006060848603121561261757600080fd5b833561262281612a48565b9250602084013561263281612a48565b929592945050506040919091013590565b6000806040838503121561265657600080fd5b823561266181612a48565b915061266f6020840161257a565b90509250929050565b6000806040838503121561268b57600080fd5b823561269681612a48565b946020939093013593505050565b6000602082840312156126b657600080fd5b611bdd8261257a565b600080604083850312156126d257600080fd5b6126618361257a565b6000602082840312156126ed57600080fd5b5035919050565b6000806040838503121561270757600080fd5b50508035926020909101359150565b60008060006060848603121561272b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561275757600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561278657600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156127b457600080fd5b813560ff81168114611bdd57600080fd5b600060208083528351808285015260005b818110156127f2578581018301518582016040015282016127d6565b81811115612804576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b60208082526023908201527f4d7573742062652061626f766520302e3125206f6620746f74616c2073757070604082015262363c9760e91b606082015260800190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129355784516001600160a01b031683529383019391830191600101612910565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561296957612969612a1c565b500190565b60008261298b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156129aa576129aa612a1c565b500290565b6000828210156129c1576129c1612a1c565b500390565b600181811c908216806129da57607f821691505b602082108114156129fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a1557612a15612a1c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612a5d57600080fd5b5056fea264697066735822122078d5ad1d0cfb666923115512cdbf7dfff6350440803bf2c32a379970cd42e09864736f6c63430008070033
Deployed Bytecode Sourcemap
3802:18505:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5380:73;;;;;;;;;;;;5411:42;5380:73;;;;;-1:-1:-1;;;;;4926:32:1;;;4908:51;;4896:2;4881:18;5380:73:0;;;;;;;;13727:161;;;;;;;;;;-1:-1:-1;13727:161:0;;;;;:::i;:::-;;:::i;:::-;;9679:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5205:35::-;;;;;;;;;;-1:-1:-1;5205:35:0;;;;-1:-1:-1;;;;;5205:35:0;;;10292:161;;;;;;;;;;-1:-1:-1;10292:161:0;;;;;:::i;:::-;;:::i;:::-;;;6056:14:1;;6049:22;6031:41;;6019:2;6004:18;10292:161:0;5891:187:1;9414:83:0;;;;;;;;;;-1:-1:-1;9487:7:0;;9414:83;;;13280:25:1;;;13268:2;13253:18;9414:83:0;13134:177:1;10906:306:0;;;;;;;;;;-1:-1:-1;10906:306:0;;;;;:::i;:::-;;:::i;14827:260::-;;;;;;;;;;-1:-1:-1;14827:260:0;;;;;:::i;:::-;;:::i;4679:42::-;;;;;;;;;;;;4717:4;4679:42;;9503:80;;;;;;;;;;-1:-1:-1;9503:80:0;;5099:1;14767:36:1;;14755:2;14740:18;9503:80:0;14625:184:1;4834:35:0;;;;;;;;;;;;;;;;11220:215;;;;;;;;;;-1:-1:-1;11220:215:0;;;;;:::i;:::-;;:::i;4636:34::-;;;;;;;;;;;;;;;;14562:257;;;;;;;;;;-1:-1:-1;14562:257:0;;;;;:::i;:::-;;:::i;4563:29::-;;;;;;;;;;;;;;;;13502:217;;;;;;;;;;-1:-1:-1;13502:217:0;;;;;:::i;:::-;;:::i;5247:21::-;;;;;;;;;;-1:-1:-1;5247:21:0;;;;-1:-1:-1;;;;;5247:21:0;;;13018:161;;;;;;;;;;-1:-1:-1;13018:161:0;;;;;:::i;:::-;;:::i;5691:41::-;;;;;;;;;;-1:-1:-1;5691:41:0;;;;-1:-1:-1;;;5691:41:0;;;;;;4876:35;;;;;;;;;;;;;;;;8442:761;;;;;;;;;;-1:-1:-1;8442:761:0;;;;;:::i;:::-;;:::i;12603:125::-;;;;;;;;;;-1:-1:-1;12603:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;12692:28:0;12668:4;12692:28;;;:19;:28;;;;;;;;;12603:125;6276:36;;;;;;;;;;-1:-1:-1;6276:36:0;;;;;;;;;;;10778:120;;;;;;;;;;-1:-1:-1;10778:120:0;;;;;:::i;:::-;;:::i;4599:30::-;;;;;;;;;;;;;;;;12736:134;;;;;;;;;;-1:-1:-1;12736:134:0;;;;;:::i;:::-;;:::i;9992:117::-;;;;;;;;;;-1:-1:-1;9992:117:0;;;;;:::i;:::-;;:::i;9211:195::-;;;;;;;;;;;;;:::i;12185:410::-;;;;;;;;;;-1:-1:-1;12185:410:0;;;;;:::i;:::-;;:::i;13187:158::-;;;;;;;;;;-1:-1:-1;13187:158:0;;;;;:::i;:::-;;:::i;9765:80::-;;;;;;;;;;-1:-1:-1;9817:7:0;8420:6;-1:-1:-1;;;;;8420:6:0;9765:80;;12878:132;;;;;;;;;;-1:-1:-1;12878:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;12971:31:0;12947:4;12971:31;;;:22;:31;;;;;;;;;12878:132;9589:84;;;;;;;;;;;;;:::i;11443:225::-;;;;;;;;;;-1:-1:-1;11443:225:0;;;;;:::i;:::-;;:::i;4918:29::-;;;;;;;;;;;;;;;;10117:167;;;;;;;;;;-1:-1:-1;10117:167:0;;;;;:::i;:::-;;:::i;4728:43::-;;;;;;;;;;;;4767:4;4728:43;;15606:171;;;;;;;;;;-1:-1:-1;15606:171:0;;;;;:::i;:::-;;:::i;14277:277::-;;;;;;;;;;-1:-1:-1;14277:277:0;;;;;:::i;:::-;;:::i;15392:206::-;;;;;;;;;;-1:-1:-1;15392:206:0;;;;;:::i;:::-;;:::i;9851:133::-;;;;;;;;;;-1:-1:-1;9851:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9953:19:0;;;9935:7;9953:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9851:133;6527:32;;;;;;;;;;;;;;;;13896:373;;;;;;;;;;-1:-1:-1;13896:373:0;;;;;:::i;:::-;;:::i;11676:501::-;;;;;;;;;;-1:-1:-1;11676:501:0;;;;;:::i;:::-;;:::i;13353:141::-;;;;;;;;;;-1:-1:-1;13353:141:0;;;;;:::i;:::-;;:::i;15095:289::-;;;;;;;;;;-1:-1:-1;15095:289:0;;;;;:::i;:::-;;:::i;13727:161::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;13822:16:0::1;:24:::0;;-1:-1:-1;;13822:24:0;;::::1;::::0;;;13857:15:::1;:23:::0;;;;::::1;::::0;;13727:161::o;9679:80::-;9727:13;9751:5;9744:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:80;:::o;10292:161::-;10367:4;10384:39;348:10;10407:7;10416:6;10384:8;:39::i;:::-;-1:-1:-1;10441:4:0;10292:161;;;;:::o;10906:306::-;-1:-1:-1;;;;;11027:19:0;;11006:4;11027:19;;;:11;:19;;;;;;;;11047:10;11027:31;;;;;;;;-1:-1:-1;;11027:52:0;11023:126;;-1:-1:-1;;;;;11096:19:0;;;;;;:11;:19;;;;;;;;11116:10;11096:31;;;;;;;:41;;11131:6;;11096:19;:41;;11131:6;;11096:41;:::i;:::-;;;;-1:-1:-1;;11023:126:0;11168:36;11178:6;11186:9;11197:6;11168:9;:36::i;:::-;11161:43;10906:306;-1:-1:-1;;;;10906:306:0:o;14827:260::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;14917:13:::1;14955:7;14944;14934;;:17;;;;:::i;:::-;14933:29;;;;:::i;:::-;14917:45;;15001:4;14991:7;;:14;;;;:::i;:::-;14981:5;:25;;14973:73;;;;-1:-1:-1::0;;;14973:73:0::1;;;;;;;:::i;:::-;15057:14;:22:::0;-1:-1:-1;;14827:260:0:o;11220:215::-;348:10;11308:4;11357:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11357:34:0;;;;;;;;;;11308:4;;11325:80;;11348:7;;11357:47;;11394:10;;11357:47;:::i;:::-;11325:8;:80::i;14562:257::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;14651:13:::1;14689:7;14678;14668;;:17;;;;:::i;:::-;14667:29;;;;:::i;:::-;14651:45;;14735:4;14725:7;;:14;;;;:::i;:::-;14715:5;:25;;14707:73;;;;-1:-1:-1::0;;;14707:73:0::1;;;;;;;:::i;:::-;14791:12;:20:::0;-1:-1:-1;;14562:257:0:o;13502:217::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;13586:13:::1;::::0;:18;:39;::::1;;;-1:-1:-1::0;13609:16:0::1;::::0;::::1;::::0;::::1;;;13608:17;13586:39;13577:101;;;::::0;-1:-1:-1;;;13577:101:0;;7462:2:1;13577:101:0::1;::::0;::::1;7444:21:1::0;7501:2;7481:18;;;7474:30;7540:34;7520:18;;;7513:62;-1:-1:-1;;;7591:18:1;;;7584:46;7647:19;;13577:101:0::1;7260:412:1::0;13577:101:0::1;13689:22;;:13;:22:::0;13502:217::o;13018:161::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;13090:21:::1;13114:19;:7:::0;13124:9:::1;13114:19;:::i;:::-;13144:11;:27:::0;-1:-1:-1;;13018:161:0:o;8442:761::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8523:22:0;::::1;8515:96;;;;-1:-1:-1::0;;;8515:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8630:16:0;::::1;5411:42;8630:16;;8622:90;;;;-1:-1:-1::0;;;8622:90:0::1;;;;;;;:::i;:::-;8743:6;::::0;;8723:34:::1;::::0;-1:-1:-1;;;;;8743:6:0;;::::1;::::0;8723:19:::1;:34::i;:::-;8768:35;8788:8;8798:4;8768:19;:35::i;:::-;8856:6;::::0;8828:16:::1;::::0;-1:-1:-1;;;;;8828:16:0;;::::1;8856:6:::0;::::1;8828:35;8824:90;;;8878:16;:36:::0;;-1:-1:-1;;;;;;8878:36:0::1;-1:-1:-1::0;;;;;8878:36:0;::::1;;::::0;;8824:90:::1;8977:6;::::0;8967:17:::1;::::0;-1:-1:-1;;;;;8977:6:0::1;8967:9;:17::i;:::-;8935:19;8947:6:::0;;-1:-1:-1;;;;;8947:6:0;;::::1;8935:19:::0;;:11:::1;:19;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:49;;;;9008:6;;8935:19;;8998:17:::1;::::0;9008:6:::1;8998:9;:17::i;:::-;:21;8995:99;;;9046:6;::::0;9036:46:::1;::::0;-1:-1:-1;;;;;9046:6:0::1;9054:8:::0;9064:17:::1;9046:6:::0;9064:9:::1;:17::i;:::-;9036:9;:46::i;:::-;;8995:99;9114:6;:17:::0;;-1:-1:-1;;;;;;9114:17:0::1;-1:-1:-1::0;;;;;9114:17:0;::::1;::::0;;::::1;::::0;;9147:38:::1;::::0;9114:17;;;;9147:38:::1;::::0;9114:6;9147:38:::1;8442:761:::0;:::o;10778:120::-;10831:4;10855:35;10863:7;-1:-1:-1;;10855:7:0;:35::i;:::-;10848:42;10778:120;-1:-1:-1;;10778:120:0:o;12736:134::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12824:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12824:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12736:134::o;9992:117::-;-1:-1:-1;;;;;10085:16:0;10058:7;10085:16;;;:7;:16;;;;;;;9992:117::o;9211:195::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;9298:6:::1;::::0;;9278:34:::1;::::0;-1:-1:-1;;;;;9298:6:0;;::::1;::::0;9278:19:::1;:34::i;:::-;9340:1;9323:19:::0;;-1:-1:-1;;;;;;9323:19:0::1;::::0;;9358:40:::1;::::0;9340:1;;9358:40:::1;::::0;9340:1;;9358:40:::1;9211:195::o:0;12185:410::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;12266:16;12262:326:::1;;-1:-1:-1::0;;;;;;12299:13:0::1;12315:5;12299:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;12299:21:0::1;::::0;;12185:410::o;12262:326::-:1;12357:17;::::0;:22;12353:139:::1;;12446:7;12426:17;;12408:15;:35;;;;:::i;:::-;:45;12400:76;;;::::0;-1:-1:-1;;;12400:76:0;;10140:2:1;12400:76:0::1;::::0;::::1;10122:21:1::0;10179:2;10159:18;;;10152:30;-1:-1:-1;;;10198:18:1;;;10191:48;10256:18;;12400:76:0::1;9938:342:1::0;12400:76:0::1;-1:-1:-1::0;;;;;12506:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;12506:20:0::1;12522:4;12506:20;::::0;;12561:15:::1;12541:17;:35:::0;12262:326:::1;12185:410:::0;;:::o;13187:158::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;13269:13:::1;::::0;:18;13260:38:::1;;;::::0;-1:-1:-1;;;13260:38:0;;11516:2:1;13260:38:0::1;::::0;::::1;11498:21:1::0;11555:1;11535:18;;;11528:29;-1:-1:-1;;;11573:18:1;;;11566:36;11619:18;;13260:38:0::1;11314:329:1::0;13260:38:0::1;13309:13;:28:::0;13187:158::o;9589:84::-;9639:13;9663:7;9656:14;;;;;:::i;11443:225::-;348:10;11536:4;11585:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11585:34:0;;;;;;;;;;11536:4;;11553:85;;11576:7;;11585:52;;11622:15;;11585:52;:::i;10117:167::-;10195:4;10212:42;348:10;10236:9;10247:6;10212:9;:42::i;:::-;-1:-1:-1;10272:4:0;;10117:167;-1:-1:-1;;;10117:167:0:o;15606:171::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;15683:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;15683:32:0::1;-1:-1:-1::0;;;;15683:32:0;;::::1;;::::0;;15731:38:::1;::::0;::::1;::::0;::::1;::::0;15707:8;6056:14:1;6049:22;6031:41;;6019:2;6004:18;;5891:187;15731:38:0::1;;;;;;;;15606:171:::0;:::o;14277:277::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;14410:3;14386:21:::1;14398:9:::0;14386;:21:::1;:::i;:::-;:27;;;;:::i;:::-;14417:3;14386:34;14377:67;;;::::0;-1:-1:-1;;;14377:67:0;;12205:2:1;14377:67:0::1;::::0;::::1;12187:21:1::0;12244:2;12224:18;;;12217:30;-1:-1:-1;;;12263:18:1;;;12256:49;12322:18;;14377:67:0::1;12003:343:1::0;14377:67:0::1;14455:15;:27:::0;;;;14493:15:::1;:27:::0;14531:9:::1;:15:::0;14277:277::o;15392:206::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;15503:16:::1;:43:::0;;-1:-1:-1;;;;;15503:43:0;;::::1;-1:-1:-1::0;;;;;;15503:43:0;;::::1;;::::0;;;15557:11:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;15392:206::o;13896:373::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;4717:4:::1;14006:6;:21;;:65;;;;;4767:4;14048:7;:23;;14006:65;:117;;;;;4821:4;14092:11;:31;;14006:117;13998:170;;;::::0;-1:-1:-1;;;13998:170:0;;9035:2:1;13998:170:0::1;::::0;::::1;9017:21:1::0;9074:2;9054:18;;;9047:30;9113:25;9093:18;;;9086:53;9156:18;;13998:170:0::1;8833:347:1::0;13998:170:0::1;14179:7;:16:::0;;;;14206:8:::1;:18:::0;14235:12:::1;:26:::0;13896:373::o;11676:501::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;11747:29:::1;11798:9;11747:61;;11819:16;11856:10;-1:-1:-1::0;;;;;11856:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11838:47:0::1;;11894:4;11901:10;-1:-1:-1::0;;;;;11901:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11838:81;::::0;-1:-1:-1;;;;;;11838:81:0::1;::::0;;;;;;-1:-1:-1;;;;;5200:15:1;;;11838:81:0::1;::::0;::::1;5182:34:1::0;5252:15;;5232:18;;;5225:43;5117:18;;11838:81:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11819:100:::0;-1:-1:-1;;;;;;11934:22:0;::::1;11930:207;;12000:10;-1:-1:-1::0;;;;;12000:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11982:50:0::1;;12041:4;12048:10;-1:-1:-1::0;;;;;12048:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11982:84;::::0;-1:-1:-1;;;;;;11982:84:0::1;::::0;;;;;;-1:-1:-1;;;;;5200:15:1;;;11982:84:0::1;::::0;::::1;5182:34:1::0;5252:15;;5232:18;;;5225:43;5117:18;;11982:84:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11973:6;:93:::0;;-1:-1:-1;;;;;;11973:93:0::1;-1:-1:-1::0;;;;;11973:93:0;;;::::1;::::0;;;::::1;::::0;;11930:207:::1;;;12108:6;:17:::0;;-1:-1:-1;;;;;;12108:17:0::1;-1:-1:-1::0;;;;;12108:17:0;::::1;;::::0;;11930:207:::1;-1:-1:-1::0;12147:9:0::1;:22:::0;;-1:-1:-1;;;;;;12147:22:0::1;-1:-1:-1::0;;;;;12147:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;11676:501:0:o;13353:141::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13445:31:0;;;::::1;;::::0;;;:22:::1;:31;::::0;;;;:41;;-1:-1:-1;;13445:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13353:141::o;15095:289::-;7222:6;;-1:-1:-1;;;;;7222:6:0;348:10;7222:22;7214:52;;;;-1:-1:-1;;;7214:52:0;;;;;;;:::i;:::-;15295:16:::1;15275;15265:7;;:26;;;;:::i;:::-;15264:47;;;;:::i;:::-;15248:13;:63:::0;15336:7:::1;::::0;15363:13;;15336:23:::1;::::0;15346:13;;15336:23:::1;:::i;:::-;15335:41;;;;:::i;:::-;15322:10;:54:::0;-1:-1:-1;;;;15095:289:0:o;10461:309::-;-1:-1:-1;;;;;10555:20:0;;10547:52;;;;-1:-1:-1;;;10547:52:0;;10823:2:1;10547:52:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:49;10940:18;;10547:52:0;10621:343:1;10547:52:0;-1:-1:-1;;;;;10618:21:0;;10610:53;;;;-1:-1:-1;;;10610:53:0;;10823:2:1;10610:53:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:49;10940:18;;10610:53:0;10621:343:1;10610:53:0;-1:-1:-1;;;;;10676:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10729:33;;13280:25:1;;;10729:33:0;;13253:18:1;10729:33:0;;;;;;;10461:309;;;:::o;16116:1646::-;16195:4;-1:-1:-1;;;;;16220:18:0;;16212:51;;;;-1:-1:-1;;;16212:51:0;;9791:2:1;16212:51:0;;;9773:21:1;9830:2;9810:18;;;9803:30;-1:-1:-1;;;9849:18:1;;;9842:50;9909:18;;16212:51:0;9589:344:1;16212:51:0;-1:-1:-1;;;;;16282:16:0;;16274:49;;;;-1:-1:-1;;;16274:49:0;;9791:2:1;16274:49:0;;;9773:21:1;9830:2;9810:18;;;9803:30;-1:-1:-1;;;9849:18:1;;;9842:50;9909:18;;16274:49:0;9589:344:1;16274:49:0;16351:1;16342:6;:10;16334:31;;;;-1:-1:-1;;;16334:31:0;;10487:2:1;16334:31:0;;;10469:21:1;10526:1;10506:18;;;10499:29;-1:-1:-1;;;10544:18:1;;;10537:38;10592:18;;16334:31:0;10285:331:1;16334:31:0;16379:20;16390:4;16396:2;16379:10;:20::i;:::-;16376:707;;;16420:15;;;;16416:347;;;-1:-1:-1;;;;;16460:13:0;;;;;;:7;:13;;;;;;;;16456:292;;;-1:-1:-1;;;;;16505:13:0;;;;;;:9;:13;;;;;;16522:12;16505:29;;16497:38;;;;;;-1:-1:-1;;;;;16558:13:0;;;;;;:9;:13;;;;;16574:12;16558:28;;16456:292;;;-1:-1:-1;;;;;16643:15:0;;;;;;:9;:15;;;;;;16662:12;16643:31;;16635:40;;;;;;-1:-1:-1;;;;;16698:15:0;;;;;;:9;:15;;;;;16716:12;16698:30;;16456:292;-1:-1:-1;;;;;16780:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;16797:11:0;;;;;;:7;:11;;;;;;;;16780:28;16777:126;;;16846:12;;16836:6;:22;;16828:59;;;;-1:-1:-1;;;16828:59:0;;12553:2:1;16828:59:0;;;12535:21:1;12592:2;12572:18;;;12565:30;12631:26;12611:18;;;12604:54;12675:18;;16828:59:0;12351:348:1;16828:59:0;16926:14;;-1:-1:-1;;;;;16920:20:0;;;16926:14;;16920:20;;;;:36;;-1:-1:-1;;;;;;16945:11:0;;;;;;:7;:11;;;;;;;;16944:12;16920:36;16917:155;;;17011:14;;17001:6;16985:13;16995:2;16985:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16977:79;;;;-1:-1:-1;;;16977:79:0;;11850:2:1;16977:79:0;;;11832:21:1;11889:2;11869:18;;;11862:30;11928:28;11908:18;;;11901:56;11974:18;;16977:79:0;11648:350:1;16977:79:0;-1:-1:-1;;;;;17128:25:0;;17095:12;17128:25;;;:19;:25;;;;;;17110:4;;17128:25;;;:52;;-1:-1:-1;;;;;;17157:23:0;;;;;;:19;:23;;;;;;;;17128:52;17125:98;;;-1:-1:-1;17206:5:0;17125:98;-1:-1:-1;;;;;17239:11:0;;;;;;:7;:11;;;;;;;;17235:457;;;17272:16;;-1:-1:-1;;;17272:16:0;;;;17271:17;:59;;;;-1:-1:-1;17309:21:0;;-1:-1:-1;;;17309:21:0;;;;17271:59;17267:408;;;17365:28;17396:24;17414:4;17396:9;:24::i;:::-;17365:55;;17467:13;;17443:20;:37;17439:221;;17532:10;;17508:20;:34;17505:77;;-1:-1:-1;17569:10:0;;17505:77;17604:36;17619:20;17604:14;:36::i;:::-;17346:329;17267:408;17710:44;17728:4;17734:2;17738:6;17746:7;17710:17;:44::i;:::-;17703:51;16116:1646;-1:-1:-1;;;;;16116:1646:0:o;15785:323::-;15853:4;8420:6;;-1:-1:-1;;;;;15877:15:0;;;8420:6;;15877:15;;;;:45;;-1:-1:-1;8393:7:0;8420:6;-1:-1:-1;;;;;15909:13:0;;;8420:6;;15909:13;;15877:45;:84;;;;-1:-1:-1;;;;;;15940:21:0;;;;;;:17;:21;;;;;;;;15939:22;15877:84;:125;;;;-1:-1:-1;;;;;;15979:23:0;;;;;;:17;:23;;;;;;;;15978:24;15877:125;:152;;;;-1:-1:-1;;;;;;16019:10:0;;5411:42;16019:10;;15877:152;:185;;;;-1:-1:-1;;;;;;16046:16:0;;;;15877:185;:223;;;;-1:-1:-1;;;;;;16079:21:0;;16095:4;16079:21;;15877:223;15870:230;15785:323;-1:-1:-1;;;15785:323:0:o;17770:1015::-;7096:16;:23;;-1:-1:-1;;;;7096:23:0;-1:-1:-1;;;7096:23:0;;;17895:9:::1;::::0;17877:15:::1;::::0;17859::::1;::::0;:33:::1;::::0;17877:15;17859:33:::1;:::i;:::-;:45;;;;:::i;:::-;17855:76;;17924:7;;17855:76;17941:17;18056:1;18042:9;;18024:15;;18006;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;17986:15;::::0;17963:38:::1;::::0;:20;:38:::1;:::i;:::-;17962:90;;;;:::i;:::-;17961:96;;;;:::i;:::-;17941:116:::0;-1:-1:-1;18070:20:0::1;18093:32;17941:116:::0;18093:20;:32:::1;:::i;:::-;18070:55;;18136:30;18153:12;18136:16;:30::i;:::-;18179:22;18204:21;18179:46;;18236:24;18352:1;18338:9;;18320:15;;18302;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;18282:15;::::0;18265:32:::1;::::0;:14;:32:::1;:::i;:::-;18264:84;;;;:::i;:::-;18263:90;;;;:::i;:::-;18236:117:::0;-1:-1:-1;18370:13:0;;18366:161:::1;;18400:41;18413:9;18424:16;18400:12;:41::i;:::-;18461:54;::::0;;14503:25:1;;;14559:2;14544:18;;14537:34;;;14587:18;;;14580:34;;;18461:54:0::1;::::0;14491:2:1;14476:18;18461:54:0::1;;;;;;;18366:161;18576:1;18541:32;18564:9:::0;18541:20;:32:::1;:::i;:::-;:36;18537:241;;;18594:16;::::0;18697:9:::1;::::0;18679:15:::1;::::0;-1:-1:-1;;;;;18594:16:0;;::::1;::::0;:114:::1;::::0;18679:27:::1;::::0;::::1;:::i;:::-;18659:15;::::0;18622:33:::1;18639:16:::0;18622:14;:33:::1;:::i;:::-;18621:53;;;;:::i;:::-;18620:87;;;;:::i;:::-;18594:114;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18723:11:0::1;::::0;:43:::1;::::0;-1:-1:-1;;;;;18723:11:0;;::::1;::::0;18744:21:::1;18723:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;18744:21;18723:11;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18537:241;17844:941;;;;7130:1;-1:-1:-1::0;7142:16:0;:24;;-1:-1:-1;;;;7142:24:0;;;17770:1015::o;20181:1216::-;20302:16;;20281:4;;20302:16;;20298:858;;;-1:-1:-1;;;;;12971:31:0;;12947:4;12971:31;;;:22;:31;;;;;;;;20338:56;;;-1:-1:-1;;;;;;12971:31:0;;12947:4;12971:31;;;:22;:31;;;;;;;;20369:25;20334:123;;;20415:26;;-1:-1:-1;;;20415:26:0;;11171:2:1;20415:26:0;;;11153:21:1;11210:2;11190:18;;;11183:30;-1:-1:-1;;;11229:18:1;;;11222:46;11285:18;;20415:26:0;10969:340:1;20334:123:0;20478:16;;;;;;;20473:672;;20515:28;20534:4;20540:2;20515:18;:28::i;:::-;20567:16;;;;;;;20566:17;:41;;;;;20587:20;20598:4;20604:2;20587:10;:20::i;:::-;20562:137;;;20632:47;;-1:-1:-1;;;20632:47:0;;8629:2:1;20632:47:0;;;8611:21:1;8668:2;8648:18;;;8641:30;8707:34;8687:18;;;8680:62;-1:-1:-1;;;8758:18:1;;;8751:35;8803:19;;20632:47:0;8427:401:1;20562:137:0;20473:672;;;20758:1;20743:12;;:16;:55;;;;-1:-1:-1;;;;;;20785:13:0;;;;;;:7;:13;;;;;;;;20743:55;:101;;;;;20824:20;20835:4;20841:2;20824:10;:20::i;:::-;20739:391;;;20921:13;;20906:12;;20891:27;;:12;:27;:::i;:::-;:43;20887:224;;;-1:-1:-1;;;;;20963:26:0;;;;;;:22;:26;;;;;:33;;-1:-1:-1;;20963:33:0;20992:4;20963:33;;;21023:13;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;21071:16:0;;-1:-1:-1;;;;;4926:32:1;;4908:51;;21071:16:0;;4896:2:1;4881:18;21071:16:0;;;;;;;20887:224;-1:-1:-1;;;;;21168:13:0;;;;;;:7;:13;;;;;:23;;21185:6;;21168:13;:23;;21185:6;;21168:23;:::i;:::-;;;;-1:-1:-1;21202:22:0;;-1:-1:-1;21228:7:0;21227:48;;21269:6;21227:48;;;21239:27;21249:4;21255:2;21259:6;21239:9;:27::i;:::-;-1:-1:-1;;;;;21286:11:0;;;;;;:7;:11;;;;;:29;;21202:73;;-1:-1:-1;21202:73:0;;21286:11;;;:29;;21202:73;;21286:29;:::i;:::-;;;;;;;;21348:2;-1:-1:-1;;;;;21333:34:0;21342:4;-1:-1:-1;;;;;21333:34:0;;21352:14;21333:34;;;;13280:25:1;;13268:2;13253:18;;13134:177;21333:34:0;;;;;;;;-1:-1:-1;21385:4:0;;20181:1216;-1:-1:-1;;;;;20181:1216:0:o;18793:417::-;18884:16;;;18898:1;18884:16;;;;;;;;18860:21;;18884:16;;;;;;;;;;-1:-1:-1;18884:16:0;18860:40;;18929:4;18911;18916:1;18911:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18911:23:0;;;:7;;;;;;;;;;:23;;;;18955:9;;:16;;;-1:-1:-1;;;18955:16:0;;;;:9;;;;;:14;;:16;;;;;18911:7;;18955:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18945:4;18950:1;18945:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18945:26:0;;;:7;;;;;;;;;:26;18984:9;;:218;;-1:-1:-1;;;18984:218:0;;:9;;;:60;;:218;;19059:11;;18984:9;;19129:4;;19156;;19176:15;;18984:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18849:361;18793:417;:::o;19218:332::-;19299:9;;:243;;-1:-1:-1;;;19299:243:0;;19365:4;19299:243;;;5620:34:1;5670:18;;;5663:34;;;19299:9:0;5713:18:1;;;5706:34;;;5756:18;;;5749:34;5411:42:0;5799:19:1;;;5792:44;19516:15:0;5852:19:1;;;5845:35;-1:-1:-1;;;;;19299:9:0;;;;:25;;19332:9;;5554:19:1;;19299:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19218:332;;:::o;19558:615::-;19640:16;;;;;;;19639:17;19631:65;;;;-1:-1:-1;;;19631:65:0;;8225:2:1;19631:65:0;;;8207:21:1;8264:2;8244:18;;;8237:30;8303:34;8283:18;;;8276:62;-1:-1:-1;;;8354:18:1;;;8347:33;8397:19;;19631:65:0;8023:399:1;19631:65:0;19712:20;19723:4;19729:2;19712:10;:20::i;:::-;19711:21;:37;;;;-1:-1:-1;19742:6:0;;-1:-1:-1;;;;;19736:12:0;;;19742:6;;19736:12;19711:37;19707:459;;;19769:13;;19786:1;19769:18;19765:161;;19823:19;:12;19838:4;19823:19;:::i;:::-;19808:12;:34;19765:161;;;19898:12;19883;:27;19765:161;-1:-1:-1;;;;;19942:23:0;;;;;;:17;:23;;;;;;;:30;;-1:-1:-1;;19942:30:0;19968:4;19942:30;;;;;;19987:16;:23;;-1:-1:-1;;19987:23:0;19942:30;19987:23;;;20040:15;20025:12;:30;20072:21;:28;;-1:-1:-1;;;;20072:28:0;-1:-1:-1;;;20072:28:0;;;20120:34;;;;;;6056:14:1;;6049:22;6031:41;;6019:2;6004:18;;5891:187;20120:34:0;;;;;;;;19558:615;;:::o;21405:899::-;21545:6;;21484:7;;;;-1:-1:-1;;;;;21537:14:0;;;21545:6;;21537:14;21533:383;;;21588:1;21572:13;21582:2;21572:9;:13::i;:::-;:17;21568:125;;;21649:11;;-1:-1:-1;;;;;21635:10:0;;;;;;:6;:10;;;;;;21617:28;;:15;:28;:::i;:::-;:43;;21609:68;;;;-1:-1:-1;;;21609:68:0;;7121:2:1;21609:68:0;;;7103:21:1;7160:2;7140:18;;;7133:30;-1:-1:-1;;;7179:18:1;;;7172:42;7231:18;;21609:68:0;6919:336:1;21609:68:0;-1:-1:-1;;;;;;21709:10:0;;;;;;:6;:10;;;;;21722:15;21709:28;;21765:7;;21533:383;;;21802:6;;-1:-1:-1;;;;;21796:12:0;;;21802:6;;21796:12;21792:124;;;-1:-1:-1;21838:8:0;;21792:124;;;-1:-1:-1;21892:12:0;;21792:124;21932:20;21943:4;21949:2;21932:10;:20::i;:::-;21928:156;;;21972:13;;:18;;:56;;;22026:2;22011:14;;:17;;;;:::i;:::-;21994:13;;:34;;21972:56;21968:105;;;22049:8;;;21968:105;22096:17;5000:6;22116:19;22125:10;22116:6;:19;:::i;:::-;:38;;;;:::i;:::-;22183:4;22167:22;;;;:7;:22;;;;;:35;;22096:58;;-1:-1:-1;22096:58:0;;22167:22;;;:35;;22096:58;;22167:35;:::i;:::-;;;;-1:-1:-1;;22218:40:0;;13280:25:1;;;22241:4:0;;-1:-1:-1;;;;;22218:40:0;;;;;13268:2:1;13253:18;22218:40:0;;;;;;;22278:18;22287:9;22278:6;:18;:::i;:::-;22271:25;21405:899;-1:-1:-1;;;;;;21405:899:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:404::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;-1:-1:-1;1013:2:1;998:18;;985:32;1026:33;985:32;1026:33;:::i;:::-;1078:7;1068:17;;;687:404;;;;;:::o;1489:456::-;1566:6;1574;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;-1:-1:-1;1816:2:1;1801:18;;1788:32;1829:33;1788:32;1829:33;:::i;:::-;1489:456;;1881:7;;-1:-1:-1;;;1935:2:1;1920:18;;;;1907:32;;1489:456::o;1950:315::-;2015:6;2023;2076:2;2064:9;2055:7;2051:23;2047:32;2044:52;;;2092:1;2089;2082:12;2044:52;2131:9;2118:23;2150:31;2175:5;2150:31;:::i;:::-;2200:5;-1:-1:-1;2224:35:1;2255:2;2240:18;;2224:35;:::i;:::-;2214:45;;1950:315;;;;;:::o;2270:::-;2338:6;2346;2399:2;2387:9;2378:7;2374:23;2370:32;2367:52;;;2415:1;2412;2405:12;2367:52;2454:9;2441:23;2473:31;2498:5;2473:31;:::i;:::-;2523:5;2575:2;2560:18;;;;2547:32;;-1:-1:-1;;;2270:315:1:o;2590:180::-;2646:6;2699:2;2687:9;2678:7;2674:23;2670:32;2667:52;;;2715:1;2712;2705:12;2667:52;2738:26;2754:9;2738:26;:::i;2775:248::-;2837:6;2845;2898:2;2886:9;2877:7;2873:23;2869:32;2866:52;;;2914:1;2911;2904:12;2866:52;2937:26;2953:9;2937:26;:::i;3028:180::-;3087:6;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;-1:-1:-1;3179:23:1;;3028:180;-1:-1:-1;3028:180:1:o;3213:248::-;3281:6;3289;3342:2;3330:9;3321:7;3317:23;3313:32;3310:52;;;3358:1;3355;3348:12;3310:52;-1:-1:-1;;3381:23:1;;;3451:2;3436:18;;;3423:32;;-1:-1:-1;3213:248:1:o;3466:316::-;3543:6;3551;3559;3612:2;3600:9;3591:7;3587:23;3583:32;3580:52;;;3628:1;3625;3618:12;3580:52;-1:-1:-1;;3651:23:1;;;3721:2;3706:18;;3693:32;;-1:-1:-1;3772:2:1;3757:18;;;3744:32;;3466:316;-1:-1:-1;3466:316:1:o;3787:306::-;3875:6;3883;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3989:9;3983:16;3973:26;;4039:2;4028:9;4024:18;4018:25;4008:35;;4083:2;4072:9;4068:18;4062:25;4052:35;;3787:306;;;;;:::o;4098:385::-;4184:6;4192;4200;4208;4261:3;4249:9;4240:7;4236:23;4232:33;4229:53;;;4278:1;4275;4268:12;4229:53;-1:-1:-1;;4301:23:1;;;4371:2;4356:18;;4343:32;;-1:-1:-1;4422:2:1;4407:18;;4394:32;;4473:2;4458:18;4445:32;;-1:-1:-1;4098:385:1;-1:-1:-1;4098:385:1:o;4488:269::-;4545:6;4598:2;4586:9;4577:7;4573:23;4569:32;4566:52;;;4614:1;4611;4604:12;4566:52;4653:9;4640:23;4703:4;4696:5;4692:16;4685:5;4682:27;4672:55;;4723:1;4720;4713:12;6317:597;6429:4;6458:2;6487;6476:9;6469:21;6519:6;6513:13;6562:6;6557:2;6546:9;6542:18;6535:34;6587:1;6597:140;6611:6;6608:1;6605:13;6597:140;;;6706:14;;;6702:23;;6696:30;6672:17;;;6691:2;6668:26;6661:66;6626:10;;6597:140;;;6755:6;6752:1;6749:13;6746:91;;;6825:1;6820:2;6811:6;6800:9;6796:22;6792:31;6785:42;6746:91;-1:-1:-1;6898:2:1;6877:15;-1:-1:-1;;6873:29:1;6858:45;;;;6905:2;6854:54;;6317:597;-1:-1:-1;;;6317:597:1:o;7677:341::-;7879:2;7861:21;;;7918:2;7898:18;;;7891:30;-1:-1:-1;;;7952:2:1;7937:18;;7930:47;8009:2;7994:18;;7677:341::o;9185:399::-;9387:2;9369:21;;;9426:2;9406:18;;;9399:30;9465:34;9460:2;9445:18;;9438:62;-1:-1:-1;;;9531:2:1;9516:18;;9509:33;9574:3;9559:19;;9185:399::o;12704:425::-;12906:2;12888:21;;;12945:2;12925:18;;;12918:30;12984:34;12979:2;12964:18;;12957:62;13055:31;13050:2;13035:18;;13028:59;13119:3;13104:19;;12704:425::o;13316:980::-;13578:4;13626:3;13615:9;13611:19;13657:6;13646:9;13639:25;13683:2;13721:6;13716:2;13705:9;13701:18;13694:34;13764:3;13759:2;13748:9;13744:18;13737:31;13788:6;13823;13817:13;13854:6;13846;13839:22;13892:3;13881:9;13877:19;13870:26;;13931:2;13923:6;13919:15;13905:29;;13952:1;13962:195;13976:6;13973:1;13970:13;13962:195;;;14041:13;;-1:-1:-1;;;;;14037:39:1;14025:52;;14132:15;;;;14097:12;;;;14073:1;13991:9;13962:195;;;-1:-1:-1;;;;;;;14213:32:1;;;;14208:2;14193:18;;14186:60;-1:-1:-1;;;14277:3:1;14262:19;14255:35;14174:3;13316:980;-1:-1:-1;;;13316:980:1:o;14814:128::-;14854:3;14885:1;14881:6;14878:1;14875:13;14872:39;;;14891:18;;:::i;:::-;-1:-1:-1;14927:9:1;;14814:128::o;14947:217::-;14987:1;15013;15003:132;;15057:10;15052:3;15048:20;15045:1;15038:31;15092:4;15089:1;15082:15;15120:4;15117:1;15110:15;15003:132;-1:-1:-1;15149:9:1;;14947:217::o;15169:168::-;15209:7;15275:1;15271;15267:6;15263:14;15260:1;15257:21;15252:1;15245:9;15238:17;15234:45;15231:71;;;15282:18;;:::i;:::-;-1:-1:-1;15322:9:1;;15169:168::o;15342:125::-;15382:4;15410:1;15407;15404:8;15401:34;;;15415:18;;:::i;:::-;-1:-1:-1;15452:9:1;;15342:125::o;15472:380::-;15551:1;15547:12;;;;15594;;;15615:61;;15669:4;15661:6;15657:17;15647:27;;15615:61;15722:2;15714:6;15711:14;15691:18;15688:38;15685:161;;;15768:10;15763:3;15759:20;15756:1;15749:31;15803:4;15800:1;15793:15;15831:4;15828:1;15821:15;15685:161;;15472:380;;;:::o;15857:135::-;15896:3;-1:-1:-1;;15917:17:1;;15914:43;;;15937:18;;:::i;:::-;-1:-1:-1;15984:1:1;15973:13;;15857:135::o;15997:127::-;16058:10;16053:3;16049:20;16046:1;16039:31;16089:4;16086:1;16079:15;16113:4;16110:1;16103:15;16129:127;16190:10;16185:3;16181:20;16178:1;16171:31;16221:4;16218:1;16211:15;16245:4;16242:1;16235:15;16393:131;-1:-1:-1;;;;;16468:31:1;;16458:42;;16448:70;;16514:1;16511;16504:12;16448:70;16393:131;:::o
Swarm Source
ipfs://78d5ad1d0cfb666923115512cdbf7dfff6350440803bf2c32a379970cd42e098
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.