ERC-20
Overview
Max Total Supply
1,000,000,000 CARB
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,879,713.926478805 CARBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CARB
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-23 */ /* $CARB - Classic Arbitrum Jeets are dumping their $ARB airdrops for ARBITRUM network and insidors selling, which it's price going sub 1$. $CARB is the classic version of $ARB, with 0% tax and no BS, a truly decentralized token that is stealth launching to give power back to ARBITRUM fans. Join: https://t.me/classicarbitrum */ pragma solidity 0.8.9; // SPDX-License-Identifier: Unlicensed abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } } 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 DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _initialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); 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 CARB is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet; address public lpLocker; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public swapEnabled = true; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyBurnFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellBurnFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForBurn; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; mapping (address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event BuyBackTriggered(uint256 amount); constructor() ERC20("Classic ARB", "CARB") { address newOwner = address(owner()); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 10; uint256 _buyLiquidityFee = 0; uint256 _buyBurnFee = 0; uint256 _sellMarketingFee = 20; uint256 _sellLiquidityFee = 0; uint256 _sellBurnFee = 0; uint256 totalSupply = 1 * 1e9 * 1e9; maxTransactionAmount = (totalSupply * 2 / 100) + (1 * 1e9); // 2% maxTransactionAmountTxn swapTokensAtAmount = totalSupply * 25 / 100000; // 0.025% swap wallet maxWallet = (totalSupply * 3 / 100) + (1 * 1e9); // 3% max wallet buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyBurnFee = _buyBurnFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyBurnFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellBurnFee = _sellBurnFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellBurnFee; marketingWallet = address(0x45bed549c93748efDD490caf3398C5cBC13B7132); // Marketing Wallet lpLocker = address(0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214); // LP Locker CA (Unicrypt) excludeFromFees(newOwner, true); // Owner address excludeFromFees(address(this), true); // CA excludeFromFees(address(0xdead), true); // Burn address excludeFromFees(marketingWallet, true); // Marketing Wallet excludeFromFees(lpLocker, true); // LP Locker excludeFromMaxTransaction(newOwner, true); // Owner address excludeFromMaxTransaction(address(this), true); // CA excludeFromMaxTransaction(address(0xdead), true); // Burn address excludeFromMaxTransaction(marketingWallet, true); // Marketing Wallet excludeFromMaxTransaction(lpLocker, true); // LP Locker _initialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable { } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner { require(_maxTransactionAmount >= (totalSupply() * 2 / 100)/1e9, "Cannot set maxTransactionAmount lower than 2%"); require(_maxWallet >= (totalSupply() * 3 / 100)/1e9, "Cannot set maxWallet lower than 3%"); maxTransactionAmount = (_maxTransactionAmount * 1e9) + (1 * 1e9) ; maxWallet = (_maxWallet * 1e9) + (1 * 1e9); } function removeLimits() external onlyOwner { maxTransactionAmount = totalSupply(); maxWallet = totalSupply(); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateFees(uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _buyBurnFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee, uint256 _sellBurnFee) external onlyOwner { buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyBurnFee = _buyBurnFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyBurnFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellBurnFee = _sellBurnFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellBurnFee; require(sellTotalFees <= 5, "Must keep sell fees at 5% or less"); require(buyTotalFees <= 5, "Must keep buy fees at 5% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function updateSwapEnabled(bool enabled) external{ require(msg.sender == marketingWallet, "Only the Owner can Call this function"); swapEnabled = enabled; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(amount == 0) { super._transfer(from, to, 0); return; } if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ){ //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount && swapEnabled, "Sell transfer amount exceeds the maxTransactionAmount."); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if(takeFee){ // fees when sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForMarketing += fees * sellMarketingFee / sellTotalFees; tokensForBurn += fees * sellBurnFee / sellTotalFees; } // fees when buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForMarketing += fees * buyMarketingFee / buyTotalFees; tokensForBurn += fees * buyBurnFee / buyTotalFees; } if(fees > 0){ super._transfer(from, address(this), (fees - tokensForBurn)); } if(tokensForBurn > 0){ super._transfer(from, deadAddress, tokensForBurn); tokensForBurn = 0; } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; (bool success,) = address(marketingWallet).call{value: ethForMarketing}(""); if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity); } (success,) = address(marketingWallet).call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[],"name":"lpLocker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyBurnFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellBurnFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600b805460ff191660011790553480156200001e57600080fd5b50604080518082018252600b81526a21b630b9b9b4b19020a92160a91b60208083019182528351808501909452600484526321a0a92160e11b9084015281519192916200006e91600391620008aa565b50805162000084906004906020840190620008aa565b505050600062000099620004cb60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000906000805160206200310c833981519152908290a3506000620000eb6005546001600160a01b031690565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d6200010f816001620004cf565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200015557600080fd5b505afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000190919062000950565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001d957600080fd5b505afa158015620001ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000214919062000950565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200025d57600080fd5b505af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000298919062000950565b6001600160a01b031660a0819052620002b3906001620004cf565b60a051620002c390600162000549565b600a60008060148180670de0b6b3a76400006064620002e482600262000991565b620002f09190620009b3565b6200030090633b9aca00620009d6565b600855620186a06200031482601962000991565b620003209190620009b3565b60095560646200033282600362000991565b6200033e9190620009b3565b6200034e90633b9aca00620009d6565b600a55600d879055600e869055600f859055846200036d8789620009d6565b620003799190620009d6565b600c5560118490556012839055601382905581620003988486620009d6565b620003a49190620009d6565b601055600680546001600160a01b03199081167345bed549c93748efdd490caf3398c5cbc13b7132179091556007805490911673663a5c229c09b049e36dcc11a9b0d4a8eb9db214179055620003fc8960016200059d565b620004093060016200059d565b6200041861dead60016200059d565b60065462000431906001600160a01b031660016200059d565b6007546200044a906001600160a01b031660016200059d565b62000457896001620004cf565b62000464306001620004cf565b6200047361dead6001620004cf565b6006546200048c906001600160a01b03166001620004cf565b600754620004a5906001600160a01b03166001620004cf565b620004b1898262000647565b620004bc8962000743565b50505050505050505062000a2e565b3390565b6005546001600160a01b031633146200051e5760405162461bcd60e51b81526020600482018190526024820152600080516020620030ec83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005e85760405162461bcd60e51b81526020600482018190526024820152600080516020620030ec833981519152604482015260640162000515565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200069f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000515565b620006bb816002546200084060201b620012791790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620006ee9183906200127962000840821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146200078e5760405162461bcd60e51b81526020600482018190526024820152600080516020620030ec833981519152604482015260640162000515565b6001600160a01b038116620007f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000515565b6005546040516001600160a01b038084169216906000805160206200310c83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806200084f8385620009d6565b905083811015620008a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000515565b9392505050565b828054620008b890620009f1565b90600052602060002090601f016020900481019282620008dc576000855562000927565b82601f10620008f757805160ff191683800117855562000927565b8280016001018555821562000927579182015b82811115620009275782518255916020019190600101906200090a565b506200093592915062000939565b5090565b5b808211156200093557600081556001016200093a565b6000602082840312156200096357600080fd5b81516001600160a01b0381168114620008a357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620009ae57620009ae6200097b565b500290565b600082620009d157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620009ec57620009ec6200097b565b500190565b600181811c9082168062000a0657607f821691505b6020821081141562000a2857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161266e62000a7e600039600081816104650152610c8e01526000818161035e01528181611ed901528181611fa101528181611fdd0152818161204f01526120ac015261266e6000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063b62496f5116100c1578063e2f456051161007a578063e2f45605146107c9578063e71dc3f5146107df578063f11a24d3146107f5578063f2fde38b1461080b578063f63743421461082b578063f8b45b051461084157600080fd5b8063b62496f5146106e7578063c024666814610717578063c8c8ebe414610737578063d257b34f1461074d578063d85ba0631461076d578063dd62ed3e1461078357600080fd5b80639a7a23d6116101135780639a7a23d614610631578063a2240e1914610651578063a457c2d714610671578063a9059cbb14610691578063aacebbe3146106b1578063adb873bd146106d157600080fd5b80638da5cb5b146105a857806392136913146105c6578063924de9b7146105dc57806395d89b41146105fc578063992c58e41461061157600080fd5b8063313ce567116101f357806370a08231116101ac57806370a08231146104f0578063715018a614610526578063751039fc1461053d5780637571336a1461055257806375f0a874146105725780637bce5a041461059257600080fd5b8063313ce56714610417578063395093511461043357806349bd5a5e146104535780634fbee193146104875780636a486a8e146104c05780636ddd1713146104d657600080fd5b806318160ddd1161024557806318160ddd146103805780631a8145bb1461039f5780631d777856146103b55780631f3fed8f146103cb57806323b872dd146103e157806327c8f8351461040157600080fd5b806303fc20131461028d57806306fdde03146102ca578063095ea7b3146102ec57806310d5de531461031c5780631694505e1461034c57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506007546102ad906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102d657600080fd5b506102df610857565b6040516102c19190612167565b3480156102f857600080fd5b5061030c6103073660046121d4565b6108e9565b60405190151581526020016102c1565b34801561032857600080fd5b5061030c610337366004612200565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038c57600080fd5b506002545b6040519081526020016102c1565b3480156103ab57600080fd5b5061039160155481565b3480156103c157600080fd5b5061039160165481565b3480156103d757600080fd5b5061039160145481565b3480156103ed57600080fd5b5061030c6103fc36600461221d565b610900565b34801561040d57600080fd5b506102ad61dead81565b34801561042357600080fd5b50604051600981526020016102c1565b34801561043f57600080fd5b5061030c61044e3660046121d4565b610969565b34801561045f57600080fd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b34801561049357600080fd5b5061030c6104a2366004612200565b6001600160a01b031660009081526017602052604090205460ff1690565b3480156104cc57600080fd5b5061039160105481565b3480156104e257600080fd5b50600b5461030c9060ff1681565b3480156104fc57600080fd5b5061039161050b366004612200565b6001600160a01b031660009081526020819052604090205490565b34801561053257600080fd5b5061053b61099f565b005b34801561054957600080fd5b5061053b610a1c565b34801561055e57600080fd5b5061053b61056d36600461226e565b610a54565b34801561057e57600080fd5b506006546102ad906001600160a01b031681565b34801561059e57600080fd5b50610391600d5481565b3480156105b457600080fd5b506005546001600160a01b03166102ad565b3480156105d257600080fd5b5061039160115481565b3480156105e857600080fd5b5061053b6105f73660046122a3565b610aa9565b34801561060857600080fd5b506102df610b24565b34801561061d57600080fd5b5061053b61062c3660046122be565b610b33565b34801561063d57600080fd5b5061053b61064c36600461226e565b610c62565b34801561065d57600080fd5b5061053b61066c366004612301565b610d42565b34801561067d57600080fd5b5061030c61068c3660046121d4565b610ecb565b34801561069d57600080fd5b5061030c6106ac3660046121d4565b610f1a565b3480156106bd57600080fd5b5061053b6106cc366004612200565b610f27565b3480156106dd57600080fd5b5061039160135481565b3480156106f357600080fd5b5061030c610702366004612200565b60196020526000908152604090205460ff1681565b34801561072357600080fd5b5061053b61073236600461226e565b610fae565b34801561074357600080fd5b5061039160085481565b34801561075957600080fd5b5061030c610768366004612323565b611037565b34801561077957600080fd5b50610391600c5481565b34801561078f57600080fd5b5061039161079e36600461233c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d557600080fd5b5061039160095481565b3480156107eb57600080fd5b50610391600f5481565b34801561080157600080fd5b50610391600e5481565b34801561081757600080fd5b5061053b610826366004612200565b61118e565b34801561083757600080fd5b5061039160125481565b34801561084d57600080fd5b50610391600a5481565b60606003805461086690612375565b80601f016020809104026020016040519081016040528092919081815260200182805461089290612375565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f63384846112df565b5060015b92915050565b600061090d848484611404565b61095f843361095a856040518060600160405280602881526020016125ec602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611a0d565b6112df565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f691859061095a9086611279565b6005546001600160a01b031633146109d25760405162461bcd60e51b81526004016109c9906123b0565b60405180910390fd5b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a465760405162461bcd60e51b81526004016109c9906123b0565b600254600855600254600a55565b6005546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6006546001600160a01b03163314610b115760405162461bcd60e51b815260206004820152602560248201527f4f6e6c7920746865204f776e65722063616e2043616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016109c9565b600b805460ff1916911515919091179055565b60606004805461086690612375565b6005546001600160a01b03163314610b5d5760405162461bcd60e51b81526004016109c9906123b0565b600d869055600e859055600f84905583610b7786886123fb565b610b8191906123fb565b600c5560118390556012829055601381905580610b9e83856123fb565b610ba891906123fb565b601081905560051015610c075760405162461bcd60e51b815260206004820152602160248201527f4d757374206b6565702073656c6c2066656573206174203525206f72206c65736044820152607360f81b60648201526084016109c9565b6005600c541115610c5a5760405162461bcd60e51b815260206004820181905260248201527f4d757374206b656570206275792066656573206174203525206f72206c65737360448201526064016109c9565b505050505050565b6005546001600160a01b03163314610c8c5760405162461bcd60e51b81526004016109c9906123b0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610d345760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109c9565b610d3e8282611a47565b5050565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b81526004016109c9906123b0565b633b9aca006064610d7c60025490565b610d87906002612413565b610d919190612432565b610d9b9190612432565b821015610e005760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526c6c6f776572207468616e20322560981b60648201526084016109c9565b633b9aca006064610e1060025490565b610e1b906003612413565b610e259190612432565b610e2f9190612432565b811015610e895760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261332560f01b60648201526084016109c9565b610e9782633b9aca00612413565b610ea590633b9aca006123fb565b600855610eb681633b9aca00612413565b610ec490633b9aca006123fb565b600a555050565b60006108f6338461095a85604051806060016040528060258152602001612614602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611a0d565b60006108f6338484611404565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016109c9906123b0565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fd85760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146110645760405162461bcd60e51b81526004016109c9906123b0565b620186a061107160025490565b61107c906001612413565b6110869190612432565b8210156110f35760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109c9565b6103e86110ff60025490565b61110a906005612413565b6111149190612432565b8211156111805760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109c9565b50600981905560015b919050565b6005546001600160a01b031633146111b85760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b03811661121d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061128683856123fb565b9050838110156112d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c9565b9392505050565b6001600160a01b0383166113415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c9565b6001600160a01b0382166113a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661142a5760405162461bcd60e51b81526004016109c990612454565b6001600160a01b0382166114505760405162461bcd60e51b81526004016109c990612499565b806114665761146183836000611a9b565b505050565b6005546001600160a01b0384811691161480159061149257506005546001600160a01b03838116911614155b80156114a657506001600160a01b03821615155b80156114bd57506001600160a01b03821661dead14155b80156114d35750600554600160a01b900460ff16155b156116c2576001600160a01b03831660009081526019602052604090205460ff16801561151957506001600160a01b03821660009081526018602052604090205460ff16155b156115fd5760085481111561158e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016109c9565b600a546001600160a01b0383166000908152602081905260409020546115b490836123fb565b11156115f85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109c9565b6116c2565b6001600160a01b03821660009081526019602052604090205460ff16801561163e57506001600160a01b03831660009081526018602052604090205460ff16155b156116c25760085481111580156116575750600b5460ff165b6116c25760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016109c9565b30600090815260208190526040902054600954811080159081906116f05750600554600160a01b900460ff16155b801561171557506001600160a01b03851660009081526019602052604090205460ff16155b801561173a57506001600160a01b03851660009081526017602052604090205460ff16155b801561175f57506001600160a01b03841660009081526017602052604090205460ff16155b1561178d576005805460ff60a01b1916600160a01b17905561177f611ba4565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526017602052604090205460ff600160a01b9092048216159116806117db57506001600160a01b03851660009081526017602052604090205460ff165b156117e4575060005b600081156119f9576001600160a01b03861660009081526019602052604090205460ff16801561181657506000601054115b156118d45761183b606461183560105488611d7f90919063ffffffff16565b90611dfe565b90506010546012548261184e9190612413565b6118589190612432565b6015600082825461186991906123fb565b909155505060105460115461187e9083612413565b6118889190612432565b6014600082825461189991906123fb565b90915550506010546013546118ae9083612413565b6118b89190612432565b601660008282546118c991906123fb565b909155506119b19050565b6001600160a01b03871660009081526019602052604090205460ff1680156118fe57506000600c54115b156119b15761191d6064611835600c5488611d7f90919063ffffffff16565b9050600c54600e54826119309190612413565b61193a9190612432565b6015600082825461194b91906123fb565b9091555050600c54600d546119609083612413565b61196a9190612432565b6014600082825461197b91906123fb565b9091555050600c54600f546119909083612413565b61199a9190612432565b601660008282546119ab91906123fb565b90915550505b80156119cf576119cf8730601654846119ca91906124dc565b611a9b565b601654156119ec576119e68761dead601654611a9b565b60006016555b6119f681866124dc565b94505b611a04878787611a9b565b50505050505050565b60008184841115611a315760405162461bcd60e51b81526004016109c99190612167565b506000611a3e84866124dc565b95945050505050565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611ac15760405162461bcd60e51b81526004016109c990612454565b6001600160a01b038216611ae75760405162461bcd60e51b81526004016109c990612499565b611b24816040518060600160405280602681526020016125c6602691396001600160a01b0386166000908152602081905260409020549190611a0d565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611b539082611279565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016113f7565b3060009081526020819052604081205490506000601454601554611bc891906123fb565b9050811580611bd5575080155b15611bde575050565b600060028260155485611bf19190612413565b611bfb9190612432565b611c059190612432565b90506000611c138483611e40565b905047611c1f82611e82565b6000611c2b4783611e40565b90506000611c488661183560145485611d7f90919063ffffffff16565b90506000611c5682846124dc565b60006015819055601481905560065460405192935090916001600160a01b039091169084908381818185875af1925050503d8060008114611cb3576040519150601f19603f3d011682016040523d82523d6000602084013e611cb8565b606091505b50509050600087118015611ccc5750600082115b15611d1f57611cdb8783612049565b601554604080518881526020810185905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b505050505050505050505050565b600082611d8e575060006108fa565b6000611d9a8385612413565b905082611da78583612432565b146112d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c9565b60006112d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612139565b60006112d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a0d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611eb757611eb76124f3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3057600080fd5b505afa158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190612509565b81600181518110611f7b57611f7b6124f3565b60200260200101906001600160a01b031690816001600160a01b031681525050611fc6307f0000000000000000000000000000000000000000000000000000000000000000846112df565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061201b908590600090869030904290600401612526565b600060405180830381600087803b15801561203557600080fd5b505af1158015610c5a573d6000803e3d6000fd5b612074307f0000000000000000000000000000000000000000000000000000000000000000846112df565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c4016060604051808303818588803b1580156120f957600080fd5b505af115801561210d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121329190612597565b5050505050565b6000818361215a5760405162461bcd60e51b81526004016109c99190612167565b506000611a3e8486612432565b600060208083528351808285015260005b8181101561219457858101830151858201604001528201612178565b818111156121a6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121d157600080fd5b50565b600080604083850312156121e757600080fd5b82356121f2816121bc565b946020939093013593505050565b60006020828403121561221257600080fd5b81356112d8816121bc565b60008060006060848603121561223257600080fd5b833561223d816121bc565b9250602084013561224d816121bc565b929592945050506040919091013590565b8035801515811461118957600080fd5b6000806040838503121561228157600080fd5b823561228c816121bc565b915061229a6020840161225e565b90509250929050565b6000602082840312156122b557600080fd5b6112d88261225e565b60008060008060008060c087890312156122d757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561231457600080fd5b50508035926020909101359150565b60006020828403121561233557600080fd5b5035919050565b6000806040838503121561234f57600080fd5b823561235a816121bc565b9150602083013561236a816121bc565b809150509250929050565b600181811c9082168061238957607f821691505b602082108114156123aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561240e5761240e6123e5565b500190565b600081600019048311821515161561242d5761242d6123e5565b500290565b60008261244f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156124ee576124ee6123e5565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561251b57600080fd5b81516112d8816121bc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125ac57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206a281ecf8c96a2df63108581cdbde161675f45af03a176de7076b3049751e4c564736f6c634300080900334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063b62496f5116100c1578063e2f456051161007a578063e2f45605146107c9578063e71dc3f5146107df578063f11a24d3146107f5578063f2fde38b1461080b578063f63743421461082b578063f8b45b051461084157600080fd5b8063b62496f5146106e7578063c024666814610717578063c8c8ebe414610737578063d257b34f1461074d578063d85ba0631461076d578063dd62ed3e1461078357600080fd5b80639a7a23d6116101135780639a7a23d614610631578063a2240e1914610651578063a457c2d714610671578063a9059cbb14610691578063aacebbe3146106b1578063adb873bd146106d157600080fd5b80638da5cb5b146105a857806392136913146105c6578063924de9b7146105dc57806395d89b41146105fc578063992c58e41461061157600080fd5b8063313ce567116101f357806370a08231116101ac57806370a08231146104f0578063715018a614610526578063751039fc1461053d5780637571336a1461055257806375f0a874146105725780637bce5a041461059257600080fd5b8063313ce56714610417578063395093511461043357806349bd5a5e146104535780634fbee193146104875780636a486a8e146104c05780636ddd1713146104d657600080fd5b806318160ddd1161024557806318160ddd146103805780631a8145bb1461039f5780631d777856146103b55780631f3fed8f146103cb57806323b872dd146103e157806327c8f8351461040157600080fd5b806303fc20131461028d57806306fdde03146102ca578063095ea7b3146102ec57806310d5de531461031c5780631694505e1461034c57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506007546102ad906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102d657600080fd5b506102df610857565b6040516102c19190612167565b3480156102f857600080fd5b5061030c6103073660046121d4565b6108e9565b60405190151581526020016102c1565b34801561032857600080fd5b5061030c610337366004612200565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506102ad7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561038c57600080fd5b506002545b6040519081526020016102c1565b3480156103ab57600080fd5b5061039160155481565b3480156103c157600080fd5b5061039160165481565b3480156103d757600080fd5b5061039160145481565b3480156103ed57600080fd5b5061030c6103fc36600461221d565b610900565b34801561040d57600080fd5b506102ad61dead81565b34801561042357600080fd5b50604051600981526020016102c1565b34801561043f57600080fd5b5061030c61044e3660046121d4565b610969565b34801561045f57600080fd5b506102ad7f000000000000000000000000e267ed379067eea6f192ce6999e2f840189b015981565b34801561049357600080fd5b5061030c6104a2366004612200565b6001600160a01b031660009081526017602052604090205460ff1690565b3480156104cc57600080fd5b5061039160105481565b3480156104e257600080fd5b50600b5461030c9060ff1681565b3480156104fc57600080fd5b5061039161050b366004612200565b6001600160a01b031660009081526020819052604090205490565b34801561053257600080fd5b5061053b61099f565b005b34801561054957600080fd5b5061053b610a1c565b34801561055e57600080fd5b5061053b61056d36600461226e565b610a54565b34801561057e57600080fd5b506006546102ad906001600160a01b031681565b34801561059e57600080fd5b50610391600d5481565b3480156105b457600080fd5b506005546001600160a01b03166102ad565b3480156105d257600080fd5b5061039160115481565b3480156105e857600080fd5b5061053b6105f73660046122a3565b610aa9565b34801561060857600080fd5b506102df610b24565b34801561061d57600080fd5b5061053b61062c3660046122be565b610b33565b34801561063d57600080fd5b5061053b61064c36600461226e565b610c62565b34801561065d57600080fd5b5061053b61066c366004612301565b610d42565b34801561067d57600080fd5b5061030c61068c3660046121d4565b610ecb565b34801561069d57600080fd5b5061030c6106ac3660046121d4565b610f1a565b3480156106bd57600080fd5b5061053b6106cc366004612200565b610f27565b3480156106dd57600080fd5b5061039160135481565b3480156106f357600080fd5b5061030c610702366004612200565b60196020526000908152604090205460ff1681565b34801561072357600080fd5b5061053b61073236600461226e565b610fae565b34801561074357600080fd5b5061039160085481565b34801561075957600080fd5b5061030c610768366004612323565b611037565b34801561077957600080fd5b50610391600c5481565b34801561078f57600080fd5b5061039161079e36600461233c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d557600080fd5b5061039160095481565b3480156107eb57600080fd5b50610391600f5481565b34801561080157600080fd5b50610391600e5481565b34801561081757600080fd5b5061053b610826366004612200565b61118e565b34801561083757600080fd5b5061039160125481565b34801561084d57600080fd5b50610391600a5481565b60606003805461086690612375565b80601f016020809104026020016040519081016040528092919081815260200182805461089290612375565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f63384846112df565b5060015b92915050565b600061090d848484611404565b61095f843361095a856040518060600160405280602881526020016125ec602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611a0d565b6112df565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f691859061095a9086611279565b6005546001600160a01b031633146109d25760405162461bcd60e51b81526004016109c9906123b0565b60405180910390fd5b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a465760405162461bcd60e51b81526004016109c9906123b0565b600254600855600254600a55565b6005546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6006546001600160a01b03163314610b115760405162461bcd60e51b815260206004820152602560248201527f4f6e6c7920746865204f776e65722063616e2043616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016109c9565b600b805460ff1916911515919091179055565b60606004805461086690612375565b6005546001600160a01b03163314610b5d5760405162461bcd60e51b81526004016109c9906123b0565b600d869055600e859055600f84905583610b7786886123fb565b610b8191906123fb565b600c5560118390556012829055601381905580610b9e83856123fb565b610ba891906123fb565b601081905560051015610c075760405162461bcd60e51b815260206004820152602160248201527f4d757374206b6565702073656c6c2066656573206174203525206f72206c65736044820152607360f81b60648201526084016109c9565b6005600c541115610c5a5760405162461bcd60e51b815260206004820181905260248201527f4d757374206b656570206275792066656573206174203525206f72206c65737360448201526064016109c9565b505050505050565b6005546001600160a01b03163314610c8c5760405162461bcd60e51b81526004016109c9906123b0565b7f000000000000000000000000e267ed379067eea6f192ce6999e2f840189b01596001600160a01b0316826001600160a01b03161415610d345760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109c9565b610d3e8282611a47565b5050565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b81526004016109c9906123b0565b633b9aca006064610d7c60025490565b610d87906002612413565b610d919190612432565b610d9b9190612432565b821015610e005760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526c6c6f776572207468616e20322560981b60648201526084016109c9565b633b9aca006064610e1060025490565b610e1b906003612413565b610e259190612432565b610e2f9190612432565b811015610e895760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261332560f01b60648201526084016109c9565b610e9782633b9aca00612413565b610ea590633b9aca006123fb565b600855610eb681633b9aca00612413565b610ec490633b9aca006123fb565b600a555050565b60006108f6338461095a85604051806060016040528060258152602001612614602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611a0d565b60006108f6338484611404565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016109c9906123b0565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fd85760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146110645760405162461bcd60e51b81526004016109c9906123b0565b620186a061107160025490565b61107c906001612413565b6110869190612432565b8210156110f35760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109c9565b6103e86110ff60025490565b61110a906005612413565b6111149190612432565b8211156111805760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109c9565b50600981905560015b919050565b6005546001600160a01b031633146111b85760405162461bcd60e51b81526004016109c9906123b0565b6001600160a01b03811661121d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061128683856123fb565b9050838110156112d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c9565b9392505050565b6001600160a01b0383166113415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c9565b6001600160a01b0382166113a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661142a5760405162461bcd60e51b81526004016109c990612454565b6001600160a01b0382166114505760405162461bcd60e51b81526004016109c990612499565b806114665761146183836000611a9b565b505050565b6005546001600160a01b0384811691161480159061149257506005546001600160a01b03838116911614155b80156114a657506001600160a01b03821615155b80156114bd57506001600160a01b03821661dead14155b80156114d35750600554600160a01b900460ff16155b156116c2576001600160a01b03831660009081526019602052604090205460ff16801561151957506001600160a01b03821660009081526018602052604090205460ff16155b156115fd5760085481111561158e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016109c9565b600a546001600160a01b0383166000908152602081905260409020546115b490836123fb565b11156115f85760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109c9565b6116c2565b6001600160a01b03821660009081526019602052604090205460ff16801561163e57506001600160a01b03831660009081526018602052604090205460ff16155b156116c25760085481111580156116575750600b5460ff165b6116c25760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016109c9565b30600090815260208190526040902054600954811080159081906116f05750600554600160a01b900460ff16155b801561171557506001600160a01b03851660009081526019602052604090205460ff16155b801561173a57506001600160a01b03851660009081526017602052604090205460ff16155b801561175f57506001600160a01b03841660009081526017602052604090205460ff16155b1561178d576005805460ff60a01b1916600160a01b17905561177f611ba4565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526017602052604090205460ff600160a01b9092048216159116806117db57506001600160a01b03851660009081526017602052604090205460ff165b156117e4575060005b600081156119f9576001600160a01b03861660009081526019602052604090205460ff16801561181657506000601054115b156118d45761183b606461183560105488611d7f90919063ffffffff16565b90611dfe565b90506010546012548261184e9190612413565b6118589190612432565b6015600082825461186991906123fb565b909155505060105460115461187e9083612413565b6118889190612432565b6014600082825461189991906123fb565b90915550506010546013546118ae9083612413565b6118b89190612432565b601660008282546118c991906123fb565b909155506119b19050565b6001600160a01b03871660009081526019602052604090205460ff1680156118fe57506000600c54115b156119b15761191d6064611835600c5488611d7f90919063ffffffff16565b9050600c54600e54826119309190612413565b61193a9190612432565b6015600082825461194b91906123fb565b9091555050600c54600d546119609083612413565b61196a9190612432565b6014600082825461197b91906123fb565b9091555050600c54600f546119909083612413565b61199a9190612432565b601660008282546119ab91906123fb565b90915550505b80156119cf576119cf8730601654846119ca91906124dc565b611a9b565b601654156119ec576119e68761dead601654611a9b565b60006016555b6119f681866124dc565b94505b611a04878787611a9b565b50505050505050565b60008184841115611a315760405162461bcd60e51b81526004016109c99190612167565b506000611a3e84866124dc565b95945050505050565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611ac15760405162461bcd60e51b81526004016109c990612454565b6001600160a01b038216611ae75760405162461bcd60e51b81526004016109c990612499565b611b24816040518060600160405280602681526020016125c6602691396001600160a01b0386166000908152602081905260409020549190611a0d565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611b539082611279565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016113f7565b3060009081526020819052604081205490506000601454601554611bc891906123fb565b9050811580611bd5575080155b15611bde575050565b600060028260155485611bf19190612413565b611bfb9190612432565b611c059190612432565b90506000611c138483611e40565b905047611c1f82611e82565b6000611c2b4783611e40565b90506000611c488661183560145485611d7f90919063ffffffff16565b90506000611c5682846124dc565b60006015819055601481905560065460405192935090916001600160a01b039091169084908381818185875af1925050503d8060008114611cb3576040519150601f19603f3d011682016040523d82523d6000602084013e611cb8565b606091505b50509050600087118015611ccc5750600082115b15611d1f57611cdb8783612049565b601554604080518881526020810185905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b505050505050505050505050565b600082611d8e575060006108fa565b6000611d9a8385612413565b905082611da78583612432565b146112d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c9565b60006112d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612139565b60006112d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a0d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611eb757611eb76124f3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3057600080fd5b505afa158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190612509565b81600181518110611f7b57611f7b6124f3565b60200260200101906001600160a01b031690816001600160a01b031681525050611fc6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846112df565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061201b908590600090869030904290600401612526565b600060405180830381600087803b15801561203557600080fd5b505af1158015610c5a573d6000803e3d6000fd5b612074307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846112df565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c4016060604051808303818588803b1580156120f957600080fd5b505af115801561210d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121329190612597565b5050505050565b6000818361215a5760405162461bcd60e51b81526004016109c99190612167565b506000611a3e8486612432565b600060208083528351808285015260005b8181101561219457858101830151858201604001528201612178565b818111156121a6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121d157600080fd5b50565b600080604083850312156121e757600080fd5b82356121f2816121bc565b946020939093013593505050565b60006020828403121561221257600080fd5b81356112d8816121bc565b60008060006060848603121561223257600080fd5b833561223d816121bc565b9250602084013561224d816121bc565b929592945050506040919091013590565b8035801515811461118957600080fd5b6000806040838503121561228157600080fd5b823561228c816121bc565b915061229a6020840161225e565b90509250929050565b6000602082840312156122b557600080fd5b6112d88261225e565b60008060008060008060c087890312156122d757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561231457600080fd5b50508035926020909101359150565b60006020828403121561233557600080fd5b5035919050565b6000806040838503121561234f57600080fd5b823561235a816121bc565b9150602083013561236a816121bc565b809150509250929050565b600181811c9082168061238957607f821691505b602082108114156123aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561240e5761240e6123e5565b500190565b600081600019048311821515161561242d5761242d6123e5565b500290565b60008261244f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156124ee576124ee6123e5565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561251b57600080fd5b81516112d8816121bc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125ac57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206a281ecf8c96a2df63108581cdbde161675f45af03a176de7076b3049751e4c564736f6c63430008090033
Deployed Bytecode Sourcemap
15861:10866:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16148:23;;;;;;;;;;-1:-1:-1;16148:23:0;;;;-1:-1:-1;;;;;16148:23:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;16148:23:0;;;;;;;;7315:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8138:154::-;;;;;;;;;;-1:-1:-1;8138:154:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;8138:154:0;1280:187:1;16753:64:0;;;;;;;;;;-1:-1:-1;16753:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15929:51;;;;;;;;;;;;;;;7599:99;;;;;;;;;;-1:-1:-1;7681:12:0;;7599:99;;;2105:25:1;;;2093:2;2078:18;7599:99:0;1959:177:1;16625:33:0;;;;;;;;;;;;;;;;16662:28;;;;;;;;;;;;;;;;16588:33;;;;;;;;;;;;;;;;8297:313;;;;;;;;;;-1:-1:-1;8297:313:0;;;;;:::i;:::-;;:::i;16028:53::-;;;;;;;;;;;;16074:6;16028:53;;7511:83;;;;;;;;;;-1:-1:-1;7511:83:0;;7588:1;2744:36:1;;2732:2;2717:18;7511:83:0;2602:184:1;8615:203:0;;;;;;;;;;-1:-1:-1;8615:203:0;;;;;:::i;:::-;;:::i;15986:38::-;;;;;;;;;;;;;;;22358:116;;;;;;;;;;-1:-1:-1;22358:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;22441:28:0;22423:4;22441:28;;;:19;:28;;;;;;;;;22358:116;16453:28;;;;;;;;;;;;;;;;16286:30;;;;;;;;;;-1:-1:-1;16286:30:0;;;;;;;;7703:118;;;;;;;;;;-1:-1:-1;7703:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7798:18:0;7777:7;7798:18;;;;;;;;;;;;7703:118;11275:133;;;;;;;;;;;;;:::i;:::-;;20444:119;;;;;;;;;;;;;:::i;20569:135::-;;;;;;;;;;-1:-1:-1;20569:135:0;;;;;:::i;:::-;;:::i;16114:30::-;;;;;;;;;;-1:-1:-1;16114:30:0;;;;-1:-1:-1;;;;;16114:30:0;;;16353;;;;;;;;;;;;;;;;11091:70;;;;;;;;;;-1:-1:-1;11150:6:0;;-1:-1:-1;;;;;11150:6:0;11091:70;;16485:31;;;;;;;;;;;;;;;;22183:170;;;;;;;;;;-1:-1:-1;22183:170:0;;;;;:::i;:::-;;:::i;7411:95::-;;;;;;;;;;;;;:::i;20709:688::-;;;;;;;;;;-1:-1:-1;20709:688:0;;;;;:::i;:::-;;:::i;21574:227::-;;;;;;;;;;-1:-1:-1;21574:227:0;;;;;:::i;:::-;;:::i;20013:426::-;;;;;;;;;;-1:-1:-1;20013:426:0;;;;;:::i;:::-;;:::i;8823:256::-;;;;;;;;;;-1:-1:-1;8823:256:0;;;;;:::i;:::-;;:::i;7826:160::-;;;;;;;;;;-1:-1:-1;7826:160:0;;;;;:::i;:::-;;:::i;21982:193::-;;;;;;;;;;-1:-1:-1;21982:193:0;;;;;:::i;:::-;;:::i;16555:26::-;;;;;;;;;;;;;;;;16823:58;;;;;;;;;;-1:-1:-1;16823:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21402:167;;;;;;;;;;-1:-1:-1;21402:167:0;;;;;:::i;:::-;;:::i;16178:35::-;;;;;;;;;;;;;;;;19648:360;;;;;;;;;;-1:-1:-1;19648:360:0;;;;;:::i;:::-;;:::i;16322:27::-;;;;;;;;;;;;;;;;7991:142;;;;;;;;;;-1:-1:-1;7991:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;8101:18:0;;;8080:7;8101:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7991:142;16217:33;;;;;;;;;;;;;;;;16421:25;;;;;;;;;;;;;;;;16387:30;;;;;;;;;;;;;;;;11413:223;;;;;;;;;;-1:-1:-1;11413:223:0;;;;;:::i;:::-;;:::i;16520:31::-;;;;;;;;;;;;;;;;16256:24;;;;;;;;;;;;;;;;7315:91;7369:13;7396:5;7389:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:91;:::o;8138:154::-;8221:4;8232:39;516:10;8255:7;8264:6;8232:8;:39::i;:::-;-1:-1:-1;8283:4:0;8138:154;;;;;:::o;8297:313::-;8416:4;8427:36;8437:6;8445:9;8456:6;8427:9;:36::i;:::-;8468:121;8477:6;516:10;8499:89;8537:6;8499:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8499:19:0;;;;;;:11;:19;;;;;;;;516:10;8499:33;;;;;;;;;;:37;:89::i;:::-;8468:8;:121::i;:::-;-1:-1:-1;8601:4:0;8297:313;;;;;:::o;8615:203::-;516:10;8703:4;8746:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8746:34:0;;;;;;;;;;8703:4;;8714:83;;8737:7;;8746:50;;8785:10;8746:38;:50::i;11275:133::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;;;;;;;;;11360:6:::1;::::0;11339:40:::1;::::0;11376:1:::1;::::0;-1:-1:-1;;;;;11360:6:0::1;::::0;11339:40:::1;::::0;11376:1;;11339:40:::1;11384:6;:19:::0;;-1:-1:-1;;;;;;11384:19:0::1;::::0;;11275:133::o;20444:119::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;7681:12;;20492:20:::1;:36:::0;7681:12;;20533:9:::1;:25:::0;20444:119::o;20569:135::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20653:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20653:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20569:135::o;22183:170::-;22265:15;;-1:-1:-1;;;;;22265:15:0;22251:10;:29;22243:79;;;;-1:-1:-1;;;22243:79:0;;5768:2:1;22243:79:0;;;5750:21:1;5807:2;5787:18;;;5780:30;5846:34;5826:18;;;5819:62;-1:-1:-1;;;5897:18:1;;;5890:35;5942:19;;22243:79:0;5566:401:1;22243:79:0;22327:11;:21;;-1:-1:-1;;22327:21:0;;;;;;;;;;22183:170::o;7411:95::-;7467:13;7494:7;7487:14;;;;;:::i;20709:688::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;20905:15:::1;:34:::0;;;20944:15:::1;:34:::0;;;20983:10:::1;:24:::0;;;20996:11;21027:33:::1;20962:16:::0;20923;21027:33:::1;:::i;:::-;:46;;;;:::i;:::-;21012:12;:61:::0;21078:16:::1;:36:::0;;;21119:16:::1;:36:::0;;;21160:11:::1;:26:::0;;;21174:12;21207:35:::1;21138:17:::0;21097;21207:35:::1;:::i;:::-;:49;;;;:::i;:::-;21191:13;:65:::0;;;21286:1:::1;-1:-1:-1::0;21269:18:0::1;21261:64;;;::::0;-1:-1:-1;;;21261:64:0;;6439:2:1;21261:64:0::1;::::0;::::1;6421:21:1::0;6478:2;6458:18;;;6451:30;6517:34;6497:18;;;6490:62;-1:-1:-1;;;6568:18:1;;;6561:31;6609:19;;21261:64:0::1;6237:397:1::0;21261:64:0::1;21354:1;21338:12;;:17;;21330:62;;;::::0;-1:-1:-1;;;21330:62:0;;6841:2:1;21330:62:0::1;::::0;::::1;6823:21:1::0;;;6860:18;;;6853:30;6919:34;6899:18;;;6892:62;6971:18;;21330:62:0::1;6639:356:1::0;21330:62:0::1;20709:688:::0;;;;;;:::o;21574:227::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;21675:13:::1;-1:-1:-1::0;;;;;21667:21:0::1;:4;-1:-1:-1::0;;;;;21667:21:0::1;;;21659:91;;;::::0;-1:-1:-1;;;21659:91:0;;7202:2:1;21659:91:0::1;::::0;::::1;7184:21:1::0;7241:2;7221:18;;;7214:30;7280:34;7260:18;;;7253:62;7351:27;7331:18;;;7324:55;7396:19;;21659:91:0::1;7000:421:1::0;21659:91:0::1;21755:41;21784:4;21790:5;21755:28;:41::i;:::-;21574:227:::0;;:::o;20013:426::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;20169:3:::1;20164;20144:13;7681:12:::0;;;7599:99;20144:13:::1;:17;::::0;20160:1:::1;20144:17;:::i;:::-;:23;;;;:::i;:::-;20143:29;;;;:::i;:::-;20118:21;:54;;20110:112;;;::::0;-1:-1:-1;;;20110:112:0;;8023:2:1;20110:112:0::1;::::0;::::1;8005:21:1::0;8062:2;8042:18;;;8035:30;8101:34;8081:18;;;8074:62;-1:-1:-1;;;8152:18:1;;;8145:43;8205:19;;20110:112:0::1;7821:409:1::0;20110:112:0::1;20275:3;20270;20250:13;7681:12:::0;;;7599:99;20250:13:::1;:17;::::0;20266:1:::1;20250:17;:::i;:::-;:23;;;;:::i;:::-;20249:29;;;;:::i;:::-;20235:10;:43;;20227:90;;;::::0;-1:-1:-1;;;20227:90:0;;8437:2:1;20227:90:0::1;::::0;::::1;8419:21:1::0;8476:2;8456:18;;;8449:30;8515:34;8495:18;;;8488:62;-1:-1:-1;;;8566:18:1;;;8559:32;8608:19;;20227:90:0::1;8235:398:1::0;20227:90:0::1;20346:27;:21:::0;20370:3:::1;20346:27;:::i;:::-;20345:41;::::0;20378:7:::1;20345:41;:::i;:::-;20322:20;:64:::0;20405:16:::1;:10:::0;20418:3:::1;20405:16;:::i;:::-;20404:30;::::0;20426:7:::1;20404:30;:::i;:::-;20392:9;:42:::0;-1:-1:-1;;20013:426:0:o;8823:256::-;8916:4;8927:129;516:10;8950:7;8959:96;8998:15;8959:96;;;;;;;;;;;;;;;;;516:10;8959:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8959:34:0;;;;;;;;;;;;:38;:96::i;7826:160::-;7912:4;7923:42;516:10;7947:9;7958:6;7923:9;:42::i;21982:193::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;22113:15:::1;::::0;22070:59:::1;::::0;-1:-1:-1;;;;;22113:15:0;;::::1;::::0;22070:59;::::1;::::0;::::1;::::0;22113:15:::1;::::0;22070:59:::1;22134:15;:36:::0;;-1:-1:-1;;;;;;22134:36:0::1;-1:-1:-1::0;;;;;22134:36:0;;;::::1;::::0;;;::::1;::::0;;21982:193::o;21402:167::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21481:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;21481:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21530:34;;1420:41:1;;;21530:34:0::1;::::0;1393:18:1;21530:34:0::1;;;;;;;21402:167:::0;;:::o;19648:360::-;11200:6;;19729:4;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;19780:6:::1;19760:13;7681:12:::0;;;7599:99;19760:13:::1;:17;::::0;19776:1:::1;19760:17;:::i;:::-;:26;;;;:::i;:::-;19747:9;:39;;19739:105;;;::::0;-1:-1:-1;;;19739:105:0;;8840:2:1;19739:105:0::1;::::0;::::1;8822:21:1::0;8879:2;8859:18;;;8852:30;8918:34;8898:18;;;8891:62;-1:-1:-1;;;8969:18:1;;;8962:51;9030:19;;19739:105:0::1;8638:417:1::0;19739:105:0::1;19890:4;19870:13;7681:12:::0;;;7599:99;19870:13:::1;:17;::::0;19886:1:::1;19870:17;:::i;:::-;:24;;;;:::i;:::-;19857:9;:37;;19849:102;;;::::0;-1:-1:-1;;;19849:102:0;;9262:2:1;19849:102:0::1;::::0;::::1;9244:21:1::0;9301:2;9281:18;;;9274:30;9340:34;9320:18;;;9313:62;-1:-1:-1;;;9391:18:1;;;9384:50;9451:19;;19849:102:0::1;9060:416:1::0;19849:102:0::1;-1:-1:-1::0;19956:18:0::1;:30:::0;;;19998:4:::1;11264:1;19648:360:::0;;;:::o;11413:223::-;11200:6;;-1:-1:-1;;;;;11200:6:0;516:10;11200:22;11192:67;;;;-1:-1:-1;;;11192:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11496:22:0;::::1;11488:73;;;::::0;-1:-1:-1;;;11488:73:0;;9683:2:1;11488:73:0::1;::::0;::::1;9665:21:1::0;9722:2;9702:18;;;9695:30;9761:34;9741:18;;;9734:62;-1:-1:-1;;;9812:18:1;;;9805:36;9858:19;;11488:73:0::1;9481:402:1::0;11488:73:0::1;11592:6;::::0;11571:38:::1;::::0;-1:-1:-1;;;;;11571:38:0;;::::1;::::0;11592:6:::1;::::0;11571:38:::1;::::0;11592:6:::1;::::0;11571:38:::1;11614:6;:17:::0;;-1:-1:-1;;;;;;11614:17:0::1;-1:-1:-1::0;;;;;11614:17:0;;;::::1;::::0;;;::::1;::::0;;11413:223::o;665:158::-;723:7;;749:5;753:1;749;:5;:::i;:::-;737:17;;772:1;767;:6;;759:46;;;;-1:-1:-1;;;759:46:0;;10090:2:1;759:46:0;;;10072:21:1;10129:2;10109:18;;;10102:30;10168:29;10148:18;;;10141:57;10215:18;;759:46:0;9888:351:1;759:46:0;817:1;665:158;-1:-1:-1;;;665:158:0:o;10356:330::-;-1:-1:-1;;;;;10465:19:0;;10457:68;;;;-1:-1:-1;;;10457:68:0;;10446:2:1;10457:68:0;;;10428:21:1;10485:2;10465:18;;;10458:30;10524:34;10504:18;;;10497:62;-1:-1:-1;;;10575:18:1;;;10568:34;10619:19;;10457:68:0;10244:400:1;10457:68:0;-1:-1:-1;;;;;10538:21:0;;10530:68;;;;-1:-1:-1;;;10530:68:0;;10851:2:1;10530:68:0;;;10833:21:1;10890:2;10870:18;;;10863:30;10929:34;10909:18;;;10902:62;-1:-1:-1;;;10980:18:1;;;10973:32;11022:19;;10530:68:0;10649:398:1;10530:68:0;-1:-1:-1;;;;;10603:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10649:32;;2105:25:1;;;10649:32:0;;2078:18:1;10649:32:0;;;;;;;;10356:330;;;:::o;22479:2434::-;-1:-1:-1;;;;;22584:18:0;;22576:68;;;;-1:-1:-1;;;22576:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22657:16:0;;22649:64;;;;-1:-1:-1;;;22649:64:0;;;;;;;:::i;:::-;22725:11;22722:68;;22744:28;22760:4;22766:2;22770:1;22744:15;:28::i;:::-;22479:2434;;;:::o;22722:68::-;11150:6;;-1:-1:-1;;;;;22805:15:0;;;11150:6;;22805:15;;;;:37;;-1:-1:-1;11150:6:0;;-1:-1:-1;;;;;22829:13:0;;;11150:6;;22829:13;;22805:37;:62;;;;-1:-1:-1;;;;;;22851:16:0;;;;22805:62;:92;;;;-1:-1:-1;;;;;;22876:21:0;;22890:6;22876:21;;22805:92;:110;;;;-1:-1:-1;22907:8:0;;-1:-1:-1;;;22907:8:0;;;;22906:9;22805:110;22795:661;;;-1:-1:-1;;;;;22948:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;22984:35:0;;;;;;:31;:35;;;;;;;;22983:36;22948:71;22944:506;;;23048:20;;23038:6;:30;;23030:96;;;;-1:-1:-1;;;23030:96:0;;12064:2:1;23030:96:0;;;12046:21:1;12103:2;12083:18;;;12076:30;12142:34;12122:18;;;12115:62;-1:-1:-1;;;12193:18:1;;;12186:51;12254:19;;23030:96:0;11862:417:1;23030:96:0;23169:9;;-1:-1:-1;;;;;7798:18:0;;7777:7;7798:18;;;;;;;;;;;23143:22;;:6;:22;:::i;:::-;:35;;23135:67;;;;-1:-1:-1;;;23135:67:0;;12486:2:1;23135:67:0;;;12468:21:1;12525:2;12505:18;;;12498:30;-1:-1:-1;;;12544:18:1;;;12537:49;12603:18;;23135:67:0;12284:343:1;23135:67:0;22944:506;;;-1:-1:-1;;;;;23248:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;23282:37:0;;;;;;:31;:37;;;;;;;;23281:38;23248:71;23244:206;;;23348:20;;23338:6;:30;;:45;;;;-1:-1:-1;23372:11:0;;;;23338:45;23330:112;;;;-1:-1:-1;;;23330:112:0;;12834:2:1;23330:112:0;;;12816:21:1;12873:2;12853:18;;;12846:30;12912:34;12892:18;;;12885:62;-1:-1:-1;;;12963:18:1;;;12956:52;13025:19;;23330:112:0;12632:418:1;23330:112:0;23509:4;23460:28;7798:18;;;;;;;;;;;23559;;23535:42;;;;;;;23593:24;;-1:-1:-1;23609:8:0;;-1:-1:-1;;;23609:8:0;;;;23608:9;23593:24;:64;;;;-1:-1:-1;;;;;;23626:31:0;;;;;;:25;:31;;;;;;;;23625:32;23593:64;:98;;;;-1:-1:-1;;;;;;23666:25:0;;;;;;:19;:25;;;;;;;;23665:26;23593:98;:130;;;;-1:-1:-1;;;;;;23700:23:0;;;;;;:19;:23;;;;;;;;23699:24;23593:130;23584:211;;;23735:8;:15;;-1:-1:-1;;;;23735:15:0;-1:-1:-1;;;23735:15:0;;;23757:10;:8;:10::i;:::-;23773:8;:16;;-1:-1:-1;;;;23773:16:0;;;23584:211;23815:8;;-1:-1:-1;;;;;23835:25:0;;23799:12;23835:25;;;:19;:25;;;;;;23815:8;-1:-1:-1;;;23815:8:0;;;;;23814:9;;23835:25;;:52;;-1:-1:-1;;;;;;23864:23:0;;;;;;:19;:23;;;;;;;;23835:52;23832:84;;;-1:-1:-1;23905:5:0;23832:84;23920:12;23944:7;23941:930;;;-1:-1:-1;;;;;23993:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;24042:1;24026:13;;:17;23993:50;23989:642;;;24058:34;24088:3;24058:25;24069:13;;24058:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;24051:41;;24147:13;;24128:16;;24121:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;24099:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;24215:13:0;;24196:16;;24189:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;24167:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;24273:13:0;;24259:11;;24252:18;;:4;:18;:::i;:::-;:34;;;;:::i;:::-;24235:13;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;23989:642:0;;-1:-1:-1;23989:642:0;;-1:-1:-1;;;;;24336:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;24386:1;24371:12;;:16;24336:51;24333:298;;;24403:33;24432:3;24403:24;24414:12;;24403:6;:10;;:24;;;;:::i;:33::-;24396:40;;24490:12;;24472:15;;24465:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;24443:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;24556:12:0;;24538:15;;24531:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;24509:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;24612:12:0;;24599:10;;24592:17;;:4;:17;:::i;:::-;:32;;;;:::i;:::-;24575:13;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;24333:298:0;24644:8;;24641:90;;24664:60;24680:4;24694;24709:13;;24702:4;:20;;;;:::i;:::-;24664:15;:60::i;:::-;24741:13;;:17;24738:108;;24766:49;24782:4;16074:6;24801:13;;24766:15;:49::i;:::-;24838:1;24822:13;:17;24738:108;24851:14;24861:4;24851:14;;:::i;:::-;;;23941:930;24875:33;24891:4;24897:2;24901:6;24875:15;:33::i;:::-;22571:2342;;;;22479:2434;;;:::o;956:169::-;1042:7;1072:12;1064:6;;;;1056:29;;;;-1:-1:-1;;;1056:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1090:9:0;1102:5;1106:1;1102;:5;:::i;:::-;1090:17;956:169;-1:-1:-1;;;;;956:169:0:o;21806:171::-;-1:-1:-1;;;;;21883:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21883:39:0;;;;;;;;;;21932:40;;21883:39;;:31;21932:40;;;21806:171;;:::o;9084:510::-;-1:-1:-1;;;;;9198:20:0;;9190:70;;;;-1:-1:-1;;;9190:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9273:23:0;;9265:71;;;;-1:-1:-1;;;9265:71:0;;;;;;;:::i;:::-;9413;9435:6;9413:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9413:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;9393:17:0;;;:9;:17;;;;;;;;;;;:91;;;;9512:20;;;;;;;:32;;9537:6;9512:24;:32::i;:::-;-1:-1:-1;;;;;9489:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;9554:35;2105:25:1;;;9489:20:0;;9554:35;;;;;;2078:18:1;9554:35:0;1959:177:1;25604:1117:0;25681:4;25637:23;7798:18;;;;;;;;;;;25637:50;;25692:25;25741:18;;25720;;:39;;;;:::i;:::-;25692:67;-1:-1:-1;25771:20:0;;;:46;;-1:-1:-1;25795:22:0;;25771:46;25768:60;;;25820:7;;25604:1117::o;25768:60::-;25832:23;25917:1;25897:17;25876:18;;25858:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;25832:86;-1:-1:-1;25923:26:0;25952:36;:15;25832:86;25952:19;:36::i;:::-;25923:65;-1:-1:-1;26021:21:0;26047:36;25923:65;26047:16;:36::i;:::-;26089:18;26110:44;:21;26136:17;26110:25;:44::i;:::-;26089:65;;26159:23;26185:57;26224:17;26185:34;26200:18;;26185:10;:14;;:34;;;;:::i;:57::-;26159:83;-1:-1:-1;26249:23:0;26275:28;26159:83;26275:10;:28;:::i;:::-;26331:1;26310:18;:22;;;26337:18;:22;;;26394:15;;26386:57;;26249:54;;-1:-1:-1;26331:1:0;;-1:-1:-1;;;;;26394:15:0;;;;26423;;26331:1;26386:57;26331:1;26386:57;26423:15;26394;26386:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26368:75;;;26469:1;26451:15;:19;:42;;;;;26492:1;26474:15;:19;26451:42;26448:186;;;26500:46;26513:15;26530;26500:12;:46::i;:::-;26609:18;;26557:71;;;13597:25:1;;;13653:2;13638:18;;13631:34;;;13681:18;;;13674:34;;;;26557:71:0;;;;;;13585:2:1;26557:71:0;;;26448:186;26661:15;;26653:63;;-1:-1:-1;;;;;26661:15:0;;;;26690:21;;26653:63;;;;26690:21;26661:15;26653:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;25604:1117:0:o;1128:204::-;1186:7;1204:6;1200:32;;-1:-1:-1;1225:1:0;1218:8;;1200:32;1236:9;1248:5;1252:1;1248;:5;:::i;:::-;1236:17;-1:-1:-1;1275:1:0;1266:5;1270:1;1236:17;1266:5;:::i;:::-;:10;1258:56;;;;-1:-1:-1;;;1258:56:0;;13921:2:1;1258:56:0;;;13903:21:1;13960:2;13940:18;;;13933:30;13999:34;13979:18;;;13972:62;-1:-1:-1;;;14050:18:1;;;14043:31;14091:19;;1258:56:0;13719:397:1;1335:123:0;1393:7;1414:39;1418:1;1421;1414:39;;;;;;;;;;;;;;;;;:3;:39::i;826:127::-;884:7;905:43;909:1;912;905:43;;;;;;;;;;;;;;;;;:3;:43::i;24918:389::-;25002:16;;;25016:1;25002:16;;;;;;;;24978:21;;25002:16;;;;;;;;;;-1:-1:-1;25002:16:0;24978:40;;25041:4;25023;25028:1;25023:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;25023:23:0;;;-1:-1:-1;;;;;25023:23:0;;;;;25063:15;-1:-1:-1;;;;;25063:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25053:4;25058:1;25053:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;25053:32:0;;;-1:-1:-1;;;;;25053:32:0;;;;;25090:62;25107:4;25122:15;25140:11;25090:8;:62::i;:::-;25157:145;;-1:-1:-1;;;25157:145:0;;-1:-1:-1;;;;;25157:15:0;:66;;;;:145;;25229:11;;25246:1;;25253:4;;25271;;25282:15;;25157:145;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25310:289;25385:62;25402:4;25417:15;25435:11;25385:8;:62::i;:::-;25452:142;;-1:-1:-1;;;25452:142:0;;25515:4;25452:142;;;15967:34:1;16017:18;;;16010:34;;;25543:1:0;16060:18:1;;;16053:34;;;16103:18;;;16096:34;16074:6:0;16146:19:1;;;16139:44;25574:15:0;16199:19:1;;;16192:35;25452:15:0;-1:-1:-1;;;;;25452:31:0;;;;25491:9;;15901:19:1;;25452:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25310:289;;:::o;1461:168::-;1547:7;1576:12;1569:5;1561:28;;;;-1:-1:-1;;;1561:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1594:9:0;1606:5;1610:1;1606;:5;:::i;222:597:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;879:70;824:131;:::o;960:315::-;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1472:247::-;1531:6;1584:2;1572:9;1563:7;1559:23;1555:32;1552:52;;;1600:1;1597;1590:12;1552:52;1639:9;1626:23;1658:31;1683:5;1658:31;:::i;2141:456::-;2218:6;2226;2234;2287:2;2275:9;2266:7;2262:23;2258:32;2255:52;;;2303:1;2300;2293:12;2255:52;2342:9;2329:23;2361:31;2386:5;2361:31;:::i;:::-;2411:5;-1:-1:-1;2468:2:1;2453:18;;2440:32;2481:33;2440:32;2481:33;:::i;:::-;2141:456;;2533:7;;-1:-1:-1;;;2587:2:1;2572:18;;;;2559:32;;2141:456::o;2791:160::-;2856:20;;2912:13;;2905:21;2895:32;;2885:60;;2941:1;2938;2931:12;2956:315;3021:6;3029;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;:::-;3206:5;-1:-1:-1;3230:35:1;3261:2;3246:18;;3230:35;:::i;:::-;3220:45;;2956:315;;;;;:::o;3276:180::-;3332:6;3385:2;3373:9;3364:7;3360:23;3356:32;3353:52;;;3401:1;3398;3391:12;3353:52;3424:26;3440:9;3424:26;:::i;3461:523::-;3565:6;3573;3581;3589;3597;3605;3658:3;3646:9;3637:7;3633:23;3629:33;3626:53;;;3675:1;3672;3665:12;3626:53;-1:-1:-1;;3698:23:1;;;3768:2;3753:18;;3740:32;;-1:-1:-1;3819:2:1;3804:18;;3791:32;;3870:2;3855:18;;3842:32;;-1:-1:-1;3921:3:1;3906:19;;3893:33;;-1:-1:-1;3973:3:1;3958:19;3945:33;;-1:-1:-1;3461:523:1;-1:-1:-1;3461:523:1:o;3989:248::-;4057:6;4065;4118:2;4106:9;4097:7;4093:23;4089:32;4086:52;;;4134:1;4131;4124:12;4086:52;-1:-1:-1;;4157:23:1;;;4227:2;4212:18;;;4199:32;;-1:-1:-1;3989:248:1:o;4242:180::-;4301:6;4354:2;4342:9;4333:7;4329:23;4325:32;4322:52;;;4370:1;4367;4360:12;4322:52;-1:-1:-1;4393:23:1;;4242:180;-1:-1:-1;4242:180:1:o;4427:388::-;4495:6;4503;4556:2;4544:9;4535:7;4531:23;4527:32;4524:52;;;4572:1;4569;4562:12;4524:52;4611:9;4598:23;4630:31;4655:5;4630:31;:::i;:::-;4680:5;-1:-1:-1;4737:2:1;4722:18;;4709:32;4750:33;4709:32;4750:33;:::i;:::-;4802:7;4792:17;;;4427:388;;;;;:::o;4820:380::-;4899:1;4895:12;;;;4942;;;4963:61;;5017:4;5009:6;5005:17;4995:27;;4963:61;5070:2;5062:6;5059:14;5039:18;5036:38;5033:161;;;5116:10;5111:3;5107:20;5104:1;5097:31;5151:4;5148:1;5141:15;5179:4;5176:1;5169:15;5033:161;;4820:380;;;:::o;5205:356::-;5407:2;5389:21;;;5426:18;;;5419:30;5485:34;5480:2;5465:18;;5458:62;5552:2;5537:18;;5205:356::o;5972:127::-;6033:10;6028:3;6024:20;6021:1;6014:31;6064:4;6061:1;6054:15;6088:4;6085:1;6078:15;6104:128;6144:3;6175:1;6171:6;6168:1;6165:13;6162:39;;;6181:18;;:::i;:::-;-1:-1:-1;6217:9:1;;6104:128::o;7426:168::-;7466:7;7532:1;7528;7524:6;7520:14;7517:1;7514:21;7509:1;7502:9;7495:17;7491:45;7488:71;;;7539:18;;:::i;:::-;-1:-1:-1;7579:9:1;;7426:168::o;7599:217::-;7639:1;7665;7655:132;;7709:10;7704:3;7700:20;7697:1;7690:31;7744:4;7741:1;7734:15;7772:4;7769:1;7762:15;7655:132;-1:-1:-1;7801:9:1;;7599:217::o;11052:401::-;11254:2;11236:21;;;11293:2;11273:18;;;11266:30;11332:34;11327:2;11312:18;;11305:62;-1:-1:-1;;;11398:2:1;11383:18;;11376:35;11443:3;11428:19;;11052:401::o;11458:399::-;11660:2;11642:21;;;11699:2;11679:18;;;11672:30;11738:34;11733:2;11718:18;;11711:62;-1:-1:-1;;;11804:2:1;11789:18;;11782:33;11847:3;11832:19;;11458:399::o;13055:125::-;13095:4;13123:1;13120;13117:8;13114:34;;;13128:18;;:::i;:::-;-1:-1:-1;13165:9:1;;13055:125::o;14253:127::-;14314:10;14309:3;14305:20;14302:1;14295:31;14345:4;14342:1;14335:15;14369:4;14366:1;14359:15;14385:251;14455:6;14508:2;14496:9;14487:7;14483:23;14479:32;14476:52;;;14524:1;14521;14514:12;14476:52;14556:9;14550:16;14575:31;14600:5;14575:31;:::i;14641:980::-;14903:4;14951:3;14940:9;14936:19;14982:6;14971:9;14964:25;15008:2;15046:6;15041:2;15030:9;15026:18;15019:34;15089:3;15084:2;15073:9;15069:18;15062:31;15113:6;15148;15142:13;15179:6;15171;15164:22;15217:3;15206:9;15202:19;15195:26;;15256:2;15248:6;15244:15;15230:29;;15277:1;15287:195;15301:6;15298:1;15295:13;15287:195;;;15366:13;;-1:-1:-1;;;;;15362:39:1;15350:52;;15457:15;;;;15422:12;;;;15398:1;15316:9;15287:195;;;-1:-1:-1;;;;;;;15538:32:1;;;;15533:2;15518:18;;15511:60;-1:-1:-1;;;15602:3:1;15587:19;15580:35;15499:3;14641:980;-1:-1:-1;;;14641:980:1:o;16238:306::-;16326:6;16334;16342;16395:2;16383:9;16374:7;16370:23;16366:32;16363:52;;;16411:1;16408;16401:12;16363:52;16440:9;16434:16;16424:26;;16490:2;16479:9;16475:18;16469:25;16459:35;;16534:2;16523:9;16519:18;16513:25;16503:35;;16238:306;;;;;:::o
Swarm Source
ipfs://6a281ecf8c96a2df63108581cdbde161675f45af03a176de7076b3049751e4c5
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.