Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 JACK
Holders
420
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.84301782597468018 JACKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
JACK
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ // SPDX-License-Identifier: MIT /* The premier BlackJack experience, built right into Telegram https://t.me/BlockJackETH https://t.me/BlockjackETHBot */ pragma solidity 0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); 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); } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; uint8 private _decimals; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } 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 _decimals; } 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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } 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); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(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 {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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 JACK is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private swapping; address public developmentReceiver; address public poolReceiver; address public lotteryReceiver; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapBack = false; uint256 public buyTotalFees; uint256 public buyLiquidityFee; uint256 public buyPoolFee; uint256 public buyDevelopmentFee; uint256 public buyLotteryFee; uint256 public sellTotalFees; uint256 public sellLiquidityFee; uint256 public sellPoolFee; uint256 public sellDevelopmentFee; uint256 public sellLotteryFee; uint256 public liquidityTokens; uint256 public poolTokens; uint256 public developmentTokens; uint256 public lotteryTokens; uint8 private DECIMALS = 18; // exclude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping(address => bool) public automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("BlockJack", "JACK", DECIMALS) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); poolReceiver = address(0x2D8fB47798B3c5F030267169912C69F338691e9a); developmentReceiver = address(0xE6Da9FE282f512A8466D99813d8Df0F7072b71c2); lotteryReceiver = address(0xE6Da9FE282f512A8466D99813d8Df0F7072b71c2); uint256 _buyLiquidityFee = 0; uint256 _buyPoolFee = 5; uint256 _buyDevelopmentFee = 5; uint256 _buyLotteryFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellPoolFee = 10; uint256 _sellDevelopmentFee = 10; uint256 _sellLotteryFee = 0; uint256 totalSupply = 1 * 1e8 * 10**DECIMALS; maxTransactionAmount = totalSupply * 1 / 100; maxWallet = totalSupply * 1 / 100; swapTokensAtAmount = (totalSupply * 10) / 10000; excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); buyLiquidityFee = _buyLiquidityFee; buyPoolFee = _buyPoolFee; buyDevelopmentFee = _buyDevelopmentFee; buyLotteryFee = _buyLotteryFee; buyTotalFees = buyLiquidityFee + buyPoolFee + buyDevelopmentFee + buyLotteryFee; sellLiquidityFee = _sellLiquidityFee; sellPoolFee = _sellPoolFee; sellDevelopmentFee = _sellDevelopmentFee; sellLotteryFee = _sellLotteryFee; sellTotalFees = sellLiquidityFee + sellPoolFee + sellDevelopmentFee + sellLotteryFee; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function draw() external onlyOwner { tradingActive = true; swapBack = true; } function setFees( uint8 _buyLiquidityFee, uint8 _buyPoolFee, uint8 _buyDevelopmentFee, uint8 _sellLiquidityFee, uint8 _sellPoolFee, uint8 _sellDevelopmentFee, uint8 _buyLotteryFee, uint8 _sellLotteryFee ) external onlyOwner { buyLiquidityFee = _buyLiquidityFee; buyPoolFee = _buyPoolFee; buyDevelopmentFee = _buyDevelopmentFee; buyLotteryFee = _buyLotteryFee; buyTotalFees = buyLiquidityFee + buyPoolFee + buyDevelopmentFee + buyLotteryFee; sellLiquidityFee = _sellLiquidityFee; sellPoolFee = _sellPoolFee; sellDevelopmentFee = _sellDevelopmentFee; sellLotteryFee = _sellLotteryFee; sellTotalFees = sellLiquidityFee + sellPoolFee + sellDevelopmentFee + sellLotteryFee; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function changePoolReceiver(address addr) external onlyOwner { poolReceiver = addr; } function adjustLimits(uint32 newMaxTx, uint32 newMaxWallet) external onlyOwner { maxTransactionAmount = newMaxTx; maxWallet = newMaxWallet; } 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 excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapBack(bool on) external onlyOwner { swapBack = on; } 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 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 (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } //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, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapBack && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; doSwapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount * sellTotalFees / 100; liquidityTokens += (fees * sellLiquidityFee) / sellTotalFees; poolTokens += (fees * sellPoolFee) / sellTotalFees; developmentTokens += (fees * sellDevelopmentFee) / sellTotalFees; lotteryTokens += (fees * sellLotteryFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; liquidityTokens += (fees * buyLiquidityFee) / buyTotalFees; poolTokens += (fees * buyPoolFee) / buyTotalFees; developmentTokens += (fees * buyDevelopmentFee) / buyTotalFees; lotteryTokens += (fees * buyLotteryFee) / sellTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokens(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function openTrading() external onlyOwner() { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), ( 1 * 1e8 * 1e18)); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); tradingActive = true; swapBack = true; } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable developmentReceiver, block.timestamp ); } function doSwapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = liquidityTokens + poolTokens + developmentTokens + lotteryTokens; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } // Halve the amount of liquidity tokens uint256 tokensForLiquidity = (contractBalance * liquidityTokens) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance - tokensForLiquidity; uint256 initialETHBalance = address(this).balance; swapTokens(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethPool = ethBalance * poolTokens / totalTokensToSwap; uint256 ethDevelopment = ethBalance * developmentTokens / totalTokensToSwap; uint256 ethLottery = ethBalance * lotteryTokens / totalTokensToSwap; uint256 ethLiquidity = ethBalance - ethPool - ethDevelopment - ethLottery; liquidityTokens = 0; poolTokens = 0; developmentTokens = 0; lotteryTokens = 0; if (tokensForLiquidity > 0 && ethLiquidity > 0) { addLiquidity(tokensForLiquidity, ethLiquidity); emit SwapAndLiquify( amountToSwapForETH, ethLiquidity, tokensForLiquidity ); } //there will be no leftover eth in the contract (success, ) = address(poolReceiver).call{value: ethPool}(""); (success, ) = address(lotteryReceiver).call{value: ethPool}(""); (success, ) = address(developmentReceiver).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":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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"newMaxTx","type":"uint32"},{"internalType":"uint32","name":"newMaxWallet","type":"uint32"}],"name":"adjustLimits","outputs":[],"stateMutability":"nonpayable","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":"buyDevelopmentFee","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":"buyLotteryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyPoolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"changePoolReceiver","outputs":[],"stateMutability":"nonpayable","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":[],"name":"developmentReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"draw","outputs":[],"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":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevelopmentFee","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":"sellLotteryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPoolFee","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":[{"internalType":"uint8","name":"_buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"_buyPoolFee","type":"uint8"},{"internalType":"uint8","name":"_buyDevelopmentFee","type":"uint8"},{"internalType":"uint8","name":"_sellLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"_sellPoolFee","type":"uint8"},{"internalType":"uint8","name":"_sellDevelopmentFee","type":"uint8"},{"internalType":"uint8","name":"_buyLotteryFee","type":"uint8"},{"internalType":"uint8","name":"_sellLotteryFee","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBack","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bool","name":"on","type":"bool"}],"name":"updateSwapBack","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
6080604052600f805462ffffff19166001179055601e805460ff191660121790553480156200002d57600080fd5b506040805180820182526009815268426c6f636b4a61636b60b81b602080830191825283518085019094526004808552634a41434b60e01b91850191909152601e54835193949360ff9091169262000086929162000734565b5081516200009c90600590602085019062000734565b506003805460ff191660ff9290921691909117905550620000c69050620000c03390565b62000486565b600a80546001600160a01b0319908116732d8fb47798b3c5f030267169912c69f338691e9a17825560098054821673e6da9fe282f512a8466d99813d8df0f7072b71c2908117909155600b8054909216179055601e54737a250d5630b4cf539739df2c5dacb4c659f2488d91600091600591829184918291819083908190620001539060ff1684620008ef565b62000163906305f5e10062000907565b905060646200017482600162000907565b62000180919062000929565b600c5560646200019282600162000907565b6200019e919062000929565b600e55612710620001b182600a62000907565b620001bd919062000929565b600d55620001cd8a6001620004d8565b600780546001600160a01b0319166001600160a01b038c169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d91906200094c565b6001600160a01b031663c9c65396308c6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c191906200094c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033591906200094c565b600880546001600160a01b0319166001600160a01b0392909216918217905562000361906001620004d8565b6008546200037a906001600160a01b0316600162000551565b601189905560128890556013879055601486905585876200039c8a8c62000977565b620003a8919062000977565b620003b4919062000977565b60105560168590556017849055601883905560198290558183620003d9868862000977565b620003e5919062000977565b620003f1919062000977565b601555620004136200040b6006546001600160a01b031690565b6001620005a5565b62000420306001620005a5565b6200042f61dead6001620005a5565b6200044e620004466006546001600160a01b031690565b6001620004d8565b6200045b306001620004d8565b6200046a61dead6001620004d8565b6200047633826200064f565b50505050505050505050620009cf565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620005275760405162461bcd60e51b815260206004820181905260248201526000805160206200335f83398151915260448201526064015b60405180910390fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6006546001600160a01b03163314620005f05760405162461bcd60e51b815260206004820181905260248201526000805160206200335f83398151915260448201526064016200051e565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006a75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200051e565b8060026000828254620006bb919062000977565b90915550506001600160a01b03821660009081526020819052604081208054839290620006ea90849062000977565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620007429062000992565b90600052602060002090601f016020900481019282620007665760008555620007b1565b82601f106200078157805160ff1916838001178555620007b1565b82800160010185558215620007b1579182015b82811115620007b157825182559160200191906001019062000794565b50620007bf929150620007c3565b5090565b5b80821115620007bf5760008155600101620007c4565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000831578160001904821115620008155762000815620007da565b808516156200082357918102915b93841c9390800290620007f5565b509250929050565b6000826200084a57506001620008e9565b816200085957506000620008e9565b81600181146200087257600281146200087d576200089d565b6001915050620008e9565b60ff841115620008915762000891620007da565b50506001821b620008e9565b5060208310610133831016604e8410600b8410161715620008c2575081810a620008e9565b620008ce8383620007f0565b8060001904821115620008e557620008e5620007da565b0290505b92915050565b60006200090060ff84168362000839565b9392505050565b6000816000190483118215151615620009245762000924620007da565b500290565b6000826200094757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200095f57600080fd5b81516001600160a01b03811681146200090057600080fd5b600082198211156200098d576200098d620007da565b500190565b600181811c90821680620009a757607f821691505b60208210811415620009c957634e487b7160e01b600052602260045260246000fd5b50919050565b61298080620009df6000396000f3fe60806040526004361061031e5760003560e01c806371e65840116101ab578063bbc0c742116100f7578063d8b3449b11610095578063f11a24d31161006f578063f11a24d314610928578063f2fde38b1461093e578063f63743421461095e578063f8b45b051461097457600080fd5b8063d8b3449b146108ac578063dd62ed3e146108cc578063e2f456051461091257600080fd5b8063c9567bf9116100d1578063c9567bf91461084b578063cd38890914610860578063d257b34f14610876578063d85ba0631461089657600080fd5b8063bbc0c742146107f6578063c024666814610815578063c8c8ebe41461083557600080fd5b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb1461077a578063ad3429be1461079a578063b2041411146107b0578063b62496f5146107c657600080fd5b806395d89b41146107255780639a7a23d61461073a578063a457c2d71461075a57600080fd5b806371e658401461067c578063751039fc1461069c5780637571336a146106b157806385956b6f146106d15780638da5cb5b146106e757806392895e4e1461070557600080fd5b8063395093511161026a5780635dbbd338116102235780636ac5eeee116101fd5780636ac5eeee146105fb5780636d3e313e1461061b57806370a0823114610631578063715018a61461066757600080fd5b80635dbbd338146105af57806366750920146105c55780636a486a8e146105e557600080fd5b806339509351146104e657806349bd5a5e146105065780634a62bb65146105265780634b8ce602146105405780634fbee19314610556578063593173c11461058f57600080fd5b806318160ddd116102d757806323b872dd116102b157806323b872dd1461046e578063313ce5671461048e57806334908e56146104b0578063363ee234146104c657600080fd5b806318160ddd1461042357806318a94cf1146104425780631f3876d11461045857600080fd5b806306fdde031461032a578063095ea7b3146103555780630c6fd7b2146103855780630eecae21146103bd57806310d5de53146103d45780631694505e1461040357600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f61098a565b60405161034c919061240d565b60405180910390f35b34801561036157600080fd5b50610375610370366004612477565b610a1c565b604051901515815260200161034c565b34801561039157600080fd5b50600b546103a5906001600160a01b031681565b6040516001600160a01b03909116815260200161034c565b3480156103c957600080fd5b506103d2610a32565b005b3480156103e057600080fd5b506103756103ef3660046124a3565b602080526000908152604090205460ff1681565b34801561040f57600080fd5b506007546103a5906001600160a01b031681565b34801561042f57600080fd5b506002545b60405190815260200161034c565b34801561044e57600080fd5b5061043460185481565b34801561046457600080fd5b50610434601d5481565b34801561047a57600080fd5b506103756104893660046124c7565b610a78565b34801561049a57600080fd5b5060035460405160ff909116815260200161034c565b3480156104bc57600080fd5b5061043460195481565b3480156104d257600080fd5b506103d26104e1366004612519565b610b22565b3480156104f257600080fd5b50610375610501366004612477565b610be0565b34801561051257600080fd5b506008546103a5906001600160a01b031681565b34801561053257600080fd5b50600f546103759060ff1681565b34801561054c57600080fd5b50610434601a5481565b34801561056257600080fd5b506103756105713660046124a3565b6001600160a01b03166000908152601f602052604090205460ff1690565b34801561059b57600080fd5b506009546103a5906001600160a01b031681565b3480156105bb57600080fd5b5061043460125481565b3480156105d157600080fd5b506103d26105e03660046124a3565b610c1c565b3480156105f157600080fd5b5061043460155481565b34801561060757600080fd5b50600f546103759062010000900460ff1681565b34801561062757600080fd5b50610434601b5481565b34801561063d57600080fd5b5061043461064c3660046124a3565b6001600160a01b031660009081526020819052604090205490565b34801561067357600080fd5b506103d2610c68565b34801561068857600080fd5b506103d26106973660046125be565b610c9e565b3480156106a857600080fd5b50610375610ce4565b3480156106bd57600080fd5b506103d26106cc3660046125db565b610d21565b3480156106dd57600080fd5b5061043460175481565b3480156106f357600080fd5b506006546001600160a01b03166103a5565b34801561071157600080fd5b50600a546103a5906001600160a01b031681565b34801561073157600080fd5b5061033f610d75565b34801561074657600080fd5b506103d26107553660046125db565b610d84565b34801561076657600080fd5b50610375610775366004612477565b610e40565b34801561078657600080fd5b50610375610795366004612477565b610ed9565b3480156107a657600080fd5b50610434601c5481565b3480156107bc57600080fd5b5061043460135481565b3480156107d257600080fd5b506103756107e13660046124a3565b60216020526000908152604090205460ff1681565b34801561080257600080fd5b50600f5461037590610100900460ff1681565b34801561082157600080fd5b506103d26108303660046125db565b610ee6565b34801561084157600080fd5b50610434600c5481565b34801561085757600080fd5b506103d2610f6f565b34801561086c57600080fd5b5061043460145481565b34801561088257600080fd5b50610375610891366004612614565b61129a565b3480156108a257600080fd5b5061043460105481565b3480156108b857600080fd5b506103d26108c7366004612641565b6113f1565b3480156108d857600080fd5b506104346108e7366004612674565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561091e57600080fd5b50610434600d5481565b34801561093457600080fd5b5061043460115481565b34801561094a57600080fd5b506103d26109593660046124a3565b61142c565b34801561096a57600080fd5b5061043460165481565b34801561098057600080fd5b50610434600e5481565b606060048054610999906126a2565b80601f01602080910402602001604051908101604052809291908181526020018280546109c5906126a2565b8015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b5050505050905090565b6000610a293384846114c7565b50600192915050565b6006546001600160a01b03163314610a655760405162461bcd60e51b8152600401610a5c906126dd565b60405180910390fd5b600f805462ffff00191662010100179055565b6000610a858484846115eb565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b0a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a5c565b610b1785338584036114c7565b506001949350505050565b6006546001600160a01b03163314610b4c5760405162461bcd60e51b8152600401610a5c906126dd565b60ff80891660118190558882166012819055888316601381905592851660148190559291610b7a9190612728565b610b849190612728565b610b8e9190612728565b60105560ff80861660168190558582166017819055858316601881905592841660198190559291610bbf9190612728565b610bc99190612728565b610bd39190612728565b6015555050505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a29918590610c17908690612728565b6114c7565b6006546001600160a01b03163314610c465760405162461bcd60e51b8152600401610a5c906126dd565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610c925760405162461bcd60e51b8152600401610a5c906126dd565b610c9c6000611d4f565b565b6006546001600160a01b03163314610cc85760405162461bcd60e51b8152600401610a5c906126dd565b600f8054911515620100000262ff000019909216919091179055565b6006546000906001600160a01b03163314610d115760405162461bcd60e51b8152600401610a5c906126dd565b50600f805460ff19169055600190565b6006546001600160a01b03163314610d4b5760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b606060058054610999906126a2565b6006546001600160a01b03163314610dae5760405162461bcd60e51b8152600401610a5c906126dd565b6008546001600160a01b0383811691161415610e325760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a5c565b610e3c8282611da1565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ec25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5c565b610ecf33858584036114c7565b5060019392505050565b6000610a293384846115eb565b6006546001600160a01b03163314610f105760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6006546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a5c906126dd565b600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610fd99030906a52b7d2dcc80cd2e40000006114c7565b600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190612740565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d69190612740565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111479190612740565b600880546001600160a01b039283166001600160a01b03199091161790556007541663f305d719473061118f816001600160a01b031660009081526020819052604090205490565b6000806111a46006546001600160a01b031690565b426040518863ffffffff1660e01b81526004016111c69695949392919061275d565b60606040518083038185885af11580156111e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112099190612798565b505060085460075460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015611262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128691906127c6565b50600f805462ffff00191662010100179055565b6006546000906001600160a01b031633146112c75760405162461bcd60e51b8152600401610a5c906126dd565b620186a06112d460025490565b6112df9060016127e3565b6112e99190612802565b8210156113565760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a5c565b6103e861136260025490565b61136d9060056127e3565b6113779190612802565b8211156113e35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a5c565b50600d81905560015b919050565b6006546001600160a01b0316331461141b5760405162461bcd60e51b8152600401610a5c906126dd565b63ffffffff918216600c5516600e55565b6006546001600160a01b031633146114565760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b0381166114bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5c565b6114c481611d4f565b50565b6001600160a01b0383166115295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5c565b6001600160a01b03821661158a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116115760405162461bcd60e51b8152600401610a5c90612824565b6001600160a01b0382166116375760405162461bcd60e51b8152600401610a5c90612869565b8061164d5761164883836000611df5565b505050565b600f5460ff16156119c0576006546001600160a01b0384811691161480159061168457506006546001600160a01b03838116911614155b801561169857506001600160a01b03821615155b80156116af57506001600160a01b03821661dead14155b80156116c55750600854600160a01b900460ff16155b156119c057600f54610100900460ff1661175d576001600160a01b0383166000908152601f602052604090205460ff168061171857506001600160a01b0382166000908152601f602052604090205460ff165b61175d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a5c565b6001600160a01b03831660009081526021602052604090205460ff16801561179d57506001600160a01b038216600090815260208052604090205460ff16155b1561188157600c548111156118125760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a5c565b600e546001600160a01b0383166000908152602081905260409020546118389083612728565b111561187c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5c565b6119c0565b6001600160a01b03821660009081526021602052604090205460ff1680156118c157506001600160a01b038316600090815260208052604090205460ff16155b1561193757600c5481111561187c5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a5c565b6001600160a01b038216600090815260208052604090205460ff166119c057600e546001600160a01b03831660009081526020819052604090205461197c9083612728565b11156119c05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5c565b30600090815260208190526040902054600d54811080159081906119ec5750600f5462010000900460ff165b8015611a025750600854600160a01b900460ff16155b8015611a2757506001600160a01b03851660009081526021602052604090205460ff16155b8015611a4c57506001600160a01b0385166000908152601f602052604090205460ff16155b8015611a7157506001600160a01b0384166000908152601f602052604090205460ff16155b15611a9f576008805460ff60a01b1916600160a01b179055611a91611f4a565b6008805460ff60a01b191690555b6008546001600160a01b0386166000908152601f602052604090205460ff600160a01b909204821615911680611aed57506001600160a01b0385166000908152601f602052604090205460ff165b15611af6575060005b60008115611d3b576001600160a01b03861660009081526021602052604090205460ff168015611b2857506000601554115b15611c1057606460155486611b3d91906127e3565b611b479190612802565b905060155460165482611b5a91906127e3565b611b649190612802565b601a6000828254611b759190612728565b9091555050601554601754611b8a90836127e3565b611b949190612802565b601b6000828254611ba59190612728565b9091555050601554601854611bba90836127e3565b611bc49190612802565b601c6000828254611bd59190612728565b9091555050601554601954611bea90836127e3565b611bf49190612802565b601d6000828254611c059190612728565b90915550611d1d9050565b6001600160a01b03871660009081526021602052604090205460ff168015611c3a57506000601054115b15611d1d57606460105486611c4f91906127e3565b611c599190612802565b905060105460115482611c6c91906127e3565b611c769190612802565b601a6000828254611c879190612728565b9091555050601054601254611c9c90836127e3565b611ca69190612802565b601b6000828254611cb79190612728565b9091555050601054601354611ccc90836127e3565b611cd69190612802565b601c6000828254611ce79190612728565b9091555050601554601454611cfc90836127e3565b611d069190612802565b601d6000828254611d179190612728565b90915550505b8015611d2e57611d2e873083611df5565b611d3881866128ac565b94505b611d46878787611df5565b50505050505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e1b5760405162461bcd60e51b8152600401610a5c90612824565b6001600160a01b038216611e415760405162461bcd60e51b8152600401610a5c90612869565b6001600160a01b03831660009081526020819052604090205481811015611eb95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ef0908490612728565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3c91815260200190565b60405180910390a350505050565b3060009081526020819052604081205490506000601d54601c54601b54601a54611f749190612728565b611f7e9190612728565b611f889190612728565b90506000821580611f97575081155b15611fa157505050565b600d54611faf9060146127e3565b831115611fc757600d54611fc49060146127e3565b92505b6000600283601a5486611fda91906127e3565b611fe49190612802565b611fee9190612802565b90506000611ffc82866128ac565b90504761200882612211565b600061201482476128ac565b9050600086601b548361202791906127e3565b6120319190612802565b9050600087601c548461204491906127e3565b61204e9190612802565b9050600088601d548561206191906127e3565b61206b9190612802565b90506000818361207b86886128ac565b61208591906128ac565b61208f91906128ac565b6000601a819055601b819055601c819055601d55905087158015906120b45750600081115b15612105576120c3888261236b565b60408051888152602081018390529081018990527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b600a546040516001600160a01b03909116908590600081818185875af1925050503d8060008114612152576040519150601f19603f3d011682016040523d82523d6000602084013e612157565b606091505b5050600b54604051919a506001600160a01b0316908590600081818185875af1925050503d80600081146121a7576040519150601f19603f3d011682016040523d82523d6000602084013e6121ac565b606091505b5050600954604051919a506001600160a01b0316904790600081818185875af1925050503d80600081146121fc576040519150601f19603f3d011682016040523d82523d6000602084013e612201565b606091505b5050505050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612246576122466128c3565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561229f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c39190612740565b816001815181106122d6576122d66128c3565b6001600160a01b0392831660209182029290920101526007546122fc91309116846114c7565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906123359085906000908690309042906004016128d9565b600060405180830381600087803b15801561234f57600080fd5b505af1158015612363573d6000803e3d6000fd5b505050505050565b6007546123839030906001600160a01b0316846114c7565b60075460095460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926123c3923092899260009283921690429060040161275d565b60606040518083038185885af11580156123e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124069190612798565b5050505050565b600060208083528351808285015260005b8181101561243a5785810183015185820160400152820161241e565b8181111561244c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146114c457600080fd5b6000806040838503121561248a57600080fd5b823561249581612462565b946020939093013593505050565b6000602082840312156124b557600080fd5b81356124c081612462565b9392505050565b6000806000606084860312156124dc57600080fd5b83356124e781612462565b925060208401356124f781612462565b929592945050506040919091013590565b803560ff811681146113ec57600080fd5b600080600080600080600080610100898b03121561253657600080fd5b61253f89612508565b975061254d60208a01612508565b965061255b60408a01612508565b955061256960608a01612508565b945061257760808a01612508565b935061258560a08a01612508565b925061259360c08a01612508565b91506125a160e08a01612508565b90509295985092959890939650565b80151581146114c457600080fd5b6000602082840312156125d057600080fd5b81356124c0816125b0565b600080604083850312156125ee57600080fd5b82356125f981612462565b91506020830135612609816125b0565b809150509250929050565b60006020828403121561262657600080fd5b5035919050565b803563ffffffff811681146113ec57600080fd5b6000806040838503121561265457600080fd5b61265d8361262d565b915061266b6020840161262d565b90509250929050565b6000806040838503121561268757600080fd5b823561269281612462565b9150602083013561260981612462565b600181811c908216806126b657607f821691505b602082108114156126d757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561273b5761273b612712565b500190565b60006020828403121561275257600080fd5b81516124c081612462565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156127ad57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156127d857600080fd5b81516124c0816125b0565b60008160001904831182151516156127fd576127fd612712565b500290565b60008261281f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156128be576128be612712565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129295784516001600160a01b031683529383019391830191600101612904565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d4c657745dc30f0d80d816a2d187d7a9b1b35d9b0ae6b8346e73d71cba23e2be64736f6c634300080a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061031e5760003560e01c806371e65840116101ab578063bbc0c742116100f7578063d8b3449b11610095578063f11a24d31161006f578063f11a24d314610928578063f2fde38b1461093e578063f63743421461095e578063f8b45b051461097457600080fd5b8063d8b3449b146108ac578063dd62ed3e146108cc578063e2f456051461091257600080fd5b8063c9567bf9116100d1578063c9567bf91461084b578063cd38890914610860578063d257b34f14610876578063d85ba0631461089657600080fd5b8063bbc0c742146107f6578063c024666814610815578063c8c8ebe41461083557600080fd5b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb1461077a578063ad3429be1461079a578063b2041411146107b0578063b62496f5146107c657600080fd5b806395d89b41146107255780639a7a23d61461073a578063a457c2d71461075a57600080fd5b806371e658401461067c578063751039fc1461069c5780637571336a146106b157806385956b6f146106d15780638da5cb5b146106e757806392895e4e1461070557600080fd5b8063395093511161026a5780635dbbd338116102235780636ac5eeee116101fd5780636ac5eeee146105fb5780636d3e313e1461061b57806370a0823114610631578063715018a61461066757600080fd5b80635dbbd338146105af57806366750920146105c55780636a486a8e146105e557600080fd5b806339509351146104e657806349bd5a5e146105065780634a62bb65146105265780634b8ce602146105405780634fbee19314610556578063593173c11461058f57600080fd5b806318160ddd116102d757806323b872dd116102b157806323b872dd1461046e578063313ce5671461048e57806334908e56146104b0578063363ee234146104c657600080fd5b806318160ddd1461042357806318a94cf1146104425780631f3876d11461045857600080fd5b806306fdde031461032a578063095ea7b3146103555780630c6fd7b2146103855780630eecae21146103bd57806310d5de53146103d45780631694505e1461040357600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f61098a565b60405161034c919061240d565b60405180910390f35b34801561036157600080fd5b50610375610370366004612477565b610a1c565b604051901515815260200161034c565b34801561039157600080fd5b50600b546103a5906001600160a01b031681565b6040516001600160a01b03909116815260200161034c565b3480156103c957600080fd5b506103d2610a32565b005b3480156103e057600080fd5b506103756103ef3660046124a3565b602080526000908152604090205460ff1681565b34801561040f57600080fd5b506007546103a5906001600160a01b031681565b34801561042f57600080fd5b506002545b60405190815260200161034c565b34801561044e57600080fd5b5061043460185481565b34801561046457600080fd5b50610434601d5481565b34801561047a57600080fd5b506103756104893660046124c7565b610a78565b34801561049a57600080fd5b5060035460405160ff909116815260200161034c565b3480156104bc57600080fd5b5061043460195481565b3480156104d257600080fd5b506103d26104e1366004612519565b610b22565b3480156104f257600080fd5b50610375610501366004612477565b610be0565b34801561051257600080fd5b506008546103a5906001600160a01b031681565b34801561053257600080fd5b50600f546103759060ff1681565b34801561054c57600080fd5b50610434601a5481565b34801561056257600080fd5b506103756105713660046124a3565b6001600160a01b03166000908152601f602052604090205460ff1690565b34801561059b57600080fd5b506009546103a5906001600160a01b031681565b3480156105bb57600080fd5b5061043460125481565b3480156105d157600080fd5b506103d26105e03660046124a3565b610c1c565b3480156105f157600080fd5b5061043460155481565b34801561060757600080fd5b50600f546103759062010000900460ff1681565b34801561062757600080fd5b50610434601b5481565b34801561063d57600080fd5b5061043461064c3660046124a3565b6001600160a01b031660009081526020819052604090205490565b34801561067357600080fd5b506103d2610c68565b34801561068857600080fd5b506103d26106973660046125be565b610c9e565b3480156106a857600080fd5b50610375610ce4565b3480156106bd57600080fd5b506103d26106cc3660046125db565b610d21565b3480156106dd57600080fd5b5061043460175481565b3480156106f357600080fd5b506006546001600160a01b03166103a5565b34801561071157600080fd5b50600a546103a5906001600160a01b031681565b34801561073157600080fd5b5061033f610d75565b34801561074657600080fd5b506103d26107553660046125db565b610d84565b34801561076657600080fd5b50610375610775366004612477565b610e40565b34801561078657600080fd5b50610375610795366004612477565b610ed9565b3480156107a657600080fd5b50610434601c5481565b3480156107bc57600080fd5b5061043460135481565b3480156107d257600080fd5b506103756107e13660046124a3565b60216020526000908152604090205460ff1681565b34801561080257600080fd5b50600f5461037590610100900460ff1681565b34801561082157600080fd5b506103d26108303660046125db565b610ee6565b34801561084157600080fd5b50610434600c5481565b34801561085757600080fd5b506103d2610f6f565b34801561086c57600080fd5b5061043460145481565b34801561088257600080fd5b50610375610891366004612614565b61129a565b3480156108a257600080fd5b5061043460105481565b3480156108b857600080fd5b506103d26108c7366004612641565b6113f1565b3480156108d857600080fd5b506104346108e7366004612674565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561091e57600080fd5b50610434600d5481565b34801561093457600080fd5b5061043460115481565b34801561094a57600080fd5b506103d26109593660046124a3565b61142c565b34801561096a57600080fd5b5061043460165481565b34801561098057600080fd5b50610434600e5481565b606060048054610999906126a2565b80601f01602080910402602001604051908101604052809291908181526020018280546109c5906126a2565b8015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b5050505050905090565b6000610a293384846114c7565b50600192915050565b6006546001600160a01b03163314610a655760405162461bcd60e51b8152600401610a5c906126dd565b60405180910390fd5b600f805462ffff00191662010100179055565b6000610a858484846115eb565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b0a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a5c565b610b1785338584036114c7565b506001949350505050565b6006546001600160a01b03163314610b4c5760405162461bcd60e51b8152600401610a5c906126dd565b60ff80891660118190558882166012819055888316601381905592851660148190559291610b7a9190612728565b610b849190612728565b610b8e9190612728565b60105560ff80861660168190558582166017819055858316601881905592841660198190559291610bbf9190612728565b610bc99190612728565b610bd39190612728565b6015555050505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a29918590610c17908690612728565b6114c7565b6006546001600160a01b03163314610c465760405162461bcd60e51b8152600401610a5c906126dd565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610c925760405162461bcd60e51b8152600401610a5c906126dd565b610c9c6000611d4f565b565b6006546001600160a01b03163314610cc85760405162461bcd60e51b8152600401610a5c906126dd565b600f8054911515620100000262ff000019909216919091179055565b6006546000906001600160a01b03163314610d115760405162461bcd60e51b8152600401610a5c906126dd565b50600f805460ff19169055600190565b6006546001600160a01b03163314610d4b5760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b606060058054610999906126a2565b6006546001600160a01b03163314610dae5760405162461bcd60e51b8152600401610a5c906126dd565b6008546001600160a01b0383811691161415610e325760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a5c565b610e3c8282611da1565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ec25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a5c565b610ecf33858584036114c7565b5060019392505050565b6000610a293384846115eb565b6006546001600160a01b03163314610f105760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6006546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a5c906126dd565b600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610fd99030906a52b7d2dcc80cd2e40000006114c7565b600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110509190612740565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d69190612740565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111479190612740565b600880546001600160a01b039283166001600160a01b03199091161790556007541663f305d719473061118f816001600160a01b031660009081526020819052604090205490565b6000806111a46006546001600160a01b031690565b426040518863ffffffff1660e01b81526004016111c69695949392919061275d565b60606040518083038185885af11580156111e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112099190612798565b505060085460075460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015611262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128691906127c6565b50600f805462ffff00191662010100179055565b6006546000906001600160a01b031633146112c75760405162461bcd60e51b8152600401610a5c906126dd565b620186a06112d460025490565b6112df9060016127e3565b6112e99190612802565b8210156113565760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a5c565b6103e861136260025490565b61136d9060056127e3565b6113779190612802565b8211156113e35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a5c565b50600d81905560015b919050565b6006546001600160a01b0316331461141b5760405162461bcd60e51b8152600401610a5c906126dd565b63ffffffff918216600c5516600e55565b6006546001600160a01b031633146114565760405162461bcd60e51b8152600401610a5c906126dd565b6001600160a01b0381166114bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a5c565b6114c481611d4f565b50565b6001600160a01b0383166115295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a5c565b6001600160a01b03821661158a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a5c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116115760405162461bcd60e51b8152600401610a5c90612824565b6001600160a01b0382166116375760405162461bcd60e51b8152600401610a5c90612869565b8061164d5761164883836000611df5565b505050565b600f5460ff16156119c0576006546001600160a01b0384811691161480159061168457506006546001600160a01b03838116911614155b801561169857506001600160a01b03821615155b80156116af57506001600160a01b03821661dead14155b80156116c55750600854600160a01b900460ff16155b156119c057600f54610100900460ff1661175d576001600160a01b0383166000908152601f602052604090205460ff168061171857506001600160a01b0382166000908152601f602052604090205460ff165b61175d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a5c565b6001600160a01b03831660009081526021602052604090205460ff16801561179d57506001600160a01b038216600090815260208052604090205460ff16155b1561188157600c548111156118125760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a5c565b600e546001600160a01b0383166000908152602081905260409020546118389083612728565b111561187c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5c565b6119c0565b6001600160a01b03821660009081526021602052604090205460ff1680156118c157506001600160a01b038316600090815260208052604090205460ff16155b1561193757600c5481111561187c5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a5c565b6001600160a01b038216600090815260208052604090205460ff166119c057600e546001600160a01b03831660009081526020819052604090205461197c9083612728565b11156119c05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a5c565b30600090815260208190526040902054600d54811080159081906119ec5750600f5462010000900460ff165b8015611a025750600854600160a01b900460ff16155b8015611a2757506001600160a01b03851660009081526021602052604090205460ff16155b8015611a4c57506001600160a01b0385166000908152601f602052604090205460ff16155b8015611a7157506001600160a01b0384166000908152601f602052604090205460ff16155b15611a9f576008805460ff60a01b1916600160a01b179055611a91611f4a565b6008805460ff60a01b191690555b6008546001600160a01b0386166000908152601f602052604090205460ff600160a01b909204821615911680611aed57506001600160a01b0385166000908152601f602052604090205460ff165b15611af6575060005b60008115611d3b576001600160a01b03861660009081526021602052604090205460ff168015611b2857506000601554115b15611c1057606460155486611b3d91906127e3565b611b479190612802565b905060155460165482611b5a91906127e3565b611b649190612802565b601a6000828254611b759190612728565b9091555050601554601754611b8a90836127e3565b611b949190612802565b601b6000828254611ba59190612728565b9091555050601554601854611bba90836127e3565b611bc49190612802565b601c6000828254611bd59190612728565b9091555050601554601954611bea90836127e3565b611bf49190612802565b601d6000828254611c059190612728565b90915550611d1d9050565b6001600160a01b03871660009081526021602052604090205460ff168015611c3a57506000601054115b15611d1d57606460105486611c4f91906127e3565b611c599190612802565b905060105460115482611c6c91906127e3565b611c769190612802565b601a6000828254611c879190612728565b9091555050601054601254611c9c90836127e3565b611ca69190612802565b601b6000828254611cb79190612728565b9091555050601054601354611ccc90836127e3565b611cd69190612802565b601c6000828254611ce79190612728565b9091555050601554601454611cfc90836127e3565b611d069190612802565b601d6000828254611d179190612728565b90915550505b8015611d2e57611d2e873083611df5565b611d3881866128ac565b94505b611d46878787611df5565b50505050505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e1b5760405162461bcd60e51b8152600401610a5c90612824565b6001600160a01b038216611e415760405162461bcd60e51b8152600401610a5c90612869565b6001600160a01b03831660009081526020819052604090205481811015611eb95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a5c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ef0908490612728565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3c91815260200190565b60405180910390a350505050565b3060009081526020819052604081205490506000601d54601c54601b54601a54611f749190612728565b611f7e9190612728565b611f889190612728565b90506000821580611f97575081155b15611fa157505050565b600d54611faf9060146127e3565b831115611fc757600d54611fc49060146127e3565b92505b6000600283601a5486611fda91906127e3565b611fe49190612802565b611fee9190612802565b90506000611ffc82866128ac565b90504761200882612211565b600061201482476128ac565b9050600086601b548361202791906127e3565b6120319190612802565b9050600087601c548461204491906127e3565b61204e9190612802565b9050600088601d548561206191906127e3565b61206b9190612802565b90506000818361207b86886128ac565b61208591906128ac565b61208f91906128ac565b6000601a819055601b819055601c819055601d55905087158015906120b45750600081115b15612105576120c3888261236b565b60408051888152602081018390529081018990527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b600a546040516001600160a01b03909116908590600081818185875af1925050503d8060008114612152576040519150601f19603f3d011682016040523d82523d6000602084013e612157565b606091505b5050600b54604051919a506001600160a01b0316908590600081818185875af1925050503d80600081146121a7576040519150601f19603f3d011682016040523d82523d6000602084013e6121ac565b606091505b5050600954604051919a506001600160a01b0316904790600081818185875af1925050503d80600081146121fc576040519150601f19603f3d011682016040523d82523d6000602084013e612201565b606091505b5050505050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612246576122466128c3565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561229f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c39190612740565b816001815181106122d6576122d66128c3565b6001600160a01b0392831660209182029290920101526007546122fc91309116846114c7565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906123359085906000908690309042906004016128d9565b600060405180830381600087803b15801561234f57600080fd5b505af1158015612363573d6000803e3d6000fd5b505050505050565b6007546123839030906001600160a01b0316846114c7565b60075460095460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926123c3923092899260009283921690429060040161275d565b60606040518083038185885af11580156123e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124069190612798565b5050505050565b600060208083528351808285015260005b8181101561243a5785810183015185820160400152820161241e565b8181111561244c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146114c457600080fd5b6000806040838503121561248a57600080fd5b823561249581612462565b946020939093013593505050565b6000602082840312156124b557600080fd5b81356124c081612462565b9392505050565b6000806000606084860312156124dc57600080fd5b83356124e781612462565b925060208401356124f781612462565b929592945050506040919091013590565b803560ff811681146113ec57600080fd5b600080600080600080600080610100898b03121561253657600080fd5b61253f89612508565b975061254d60208a01612508565b965061255b60408a01612508565b955061256960608a01612508565b945061257760808a01612508565b935061258560a08a01612508565b925061259360c08a01612508565b91506125a160e08a01612508565b90509295985092959890939650565b80151581146114c457600080fd5b6000602082840312156125d057600080fd5b81356124c0816125b0565b600080604083850312156125ee57600080fd5b82356125f981612462565b91506020830135612609816125b0565b809150509250929050565b60006020828403121561262657600080fd5b5035919050565b803563ffffffff811681146113ec57600080fd5b6000806040838503121561265457600080fd5b61265d8361262d565b915061266b6020840161262d565b90509250929050565b6000806040838503121561268757600080fd5b823561269281612462565b9150602083013561260981612462565b600181811c908216806126b657607f821691505b602082108114156126d757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561273b5761273b612712565b500190565b60006020828403121561275257600080fd5b81516124c081612462565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156127ad57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156127d857600080fd5b81516124c0816125b0565b60008160001904831182151516156127fd576127fd612712565b500290565b60008261281f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156128be576128be612712565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129295784516001600160a01b031683529383019391830191600101612904565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d4c657745dc30f0d80d816a2d187d7a9b1b35d9b0ae6b8346e73d71cba23e2be64736f6c634300080a0033
Deployed Bytecode Sourcemap
12417:14751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3692:169;;;;;;;;;;-1:-1:-1;3692:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;3692:169:0;1072:187:1;12647:30:0;;;;;;;;;;-1:-1:-1;12647:30:0;;;;-1:-1:-1;;;;;12647:30:0;;;;;;-1:-1:-1;;;;;1428:32:1;;;1410:51;;1398:2;1383:18;12647:30:0;1264:203:1;16455:100:0;;;;;;;;;;;;;:::i;:::-;;13576:63;;;;;;;;;;-1:-1:-1;13576:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12456:41;;;;;;;;;;-1:-1:-1;12456:41:0;;;;-1:-1:-1;;;;;12456:41:0;;;3099:108;;;;;;;;;;-1:-1:-1;3187:12:0;;3099:108;;;2105:25:1;;;2093:2;2078:18;3099:108:0;1959:177:1;13205:33:0;;;;;;;;;;;;;;;;13390:28;;;;;;;;;;;;;;;;3869:492;;;;;;;;;;-1:-1:-1;3869:492:0;;;;;:::i;:::-;;:::i;2991:100::-;;;;;;;;;;-1:-1:-1;3074:9:0;;2991:100;;3074:9;;;;2744:36:1;;2732:2;2717:18;2991:100:0;2602:184:1;13246:29:0;;;;;;;;;;;;;;;;16563:849;;;;;;;;;;-1:-1:-1;16563:849:0;;;;;:::i;:::-;;:::i;4369:215::-;;;;;;;;;;-1:-1:-1;4369:215:0;;;;;:::i;:::-;;:::i;12504:28::-;;;;;;;;;;-1:-1:-1;12504:28:0;;;;-1:-1:-1;;;;;12504:28:0;;;12801:33;;;;;;;;;;-1:-1:-1;12801:33:0;;;;;;;;13282:30;;;;;;;;;;;;;;;;19391:126;;;;;;;;;;-1:-1:-1;19391:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;19481:28:0;19457:4;19481:28;;;:19;:28;;;;;;;;;19391:126;12571:34;;;;;;;;;;-1:-1:-1;12571:34:0;;;;-1:-1:-1;;;;;12571:34:0;;;12989:25;;;;;;;;;;;;;;;;17550:100;;;;;;;;;;-1:-1:-1;17550:100:0;;;;;:::i;:::-;;:::i;13099:28::-;;;;;;;;;;;;;;;;12881;;;;;;;;;;-1:-1:-1;12881:28:0;;;;;;;;;;;13319:25;;;;;;;;;;;;;;;;3215:127;;;;;;;;;;-1:-1:-1;3215:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3316:18:0;3289:7;3316:18;;;;;;;;;;;;3215:127;900:103;;;;;;;;;;;;;:::i;18601:84::-;;;;;;;;;;-1:-1:-1;18601:84:0;;;;;:::i;:::-;;:::i;17421:121::-;;;;;;;;;;;;;:::i;18338:167::-;;;;;;;;;;-1:-1:-1;18338:167:0;;;;;:::i;:::-;;:::i;13172:26::-;;;;;;;;;;;;;;;;677:87;;;;;;;;;;-1:-1:-1;750:6:0;;-1:-1:-1;;;;;750:6:0;677:87;;12612:27;;;;;;;;;;-1:-1:-1;12612:27:0;;;;-1:-1:-1;;;;;12612:27:0;;;2879:104;;;;;;;;;;;;;:::i;18883:304::-;;;;;;;;;;-1:-1:-1;18883:304:0;;;;;:::i;:::-;;:::i;4592:413::-;;;;;;;;;;-1:-1:-1;4592:413:0;;;;;:::i;:::-;;:::i;3350:175::-;;;;;;;;;;-1:-1:-1;3350:175:0;;;;;:::i;:::-;;:::i;13351:32::-;;;;;;;;;;;;;;;;13021;;;;;;;;;;;;;;;;13797:57;;;;;;;;;;-1:-1:-1;13797:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12841:33;;;;;;;;;;-1:-1:-1;12841:33:0;;;;;;;;;;;18693:182;;;;;;;;;;-1:-1:-1;18693:182:0;;;;;:::i;:::-;;:::i;12686:35::-;;;;;;;;;;;;;;;;24111:622;;;;;;;;;;;;;:::i;13061:28::-;;;;;;;;;;;;;;;;17832:497;;;;;;;;;;-1:-1:-1;17832:497:0;;;;;:::i;:::-;;:::i;12918:27::-;;;;;;;;;;;;;;;;17658:166;;;;;;;;;;-1:-1:-1;17658:166:0;;;;;:::i;:::-;;:::i;3533:151::-;;;;;;;;;;-1:-1:-1;3533:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3649:18:0;;;3622:7;3649:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3533:151;12728:33;;;;;;;;;;;;;;;;12952:30;;;;;;;;;;;;;;;;1011:201;;;;;;;;;;-1:-1:-1;1011:201:0;;;;;:::i;:::-;;:::i;13134:31::-;;;;;;;;;;;;;;;;12768:24;;;;;;;;;;;;;;;;2771:100;2825:13;2858:5;2851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:100;:::o;3692:169::-;3775:4;3792:39;303:10;3815:7;3824:6;3792:8;:39::i;:::-;-1:-1:-1;3849:4:0;3692:169;;;;:::o;16455:100::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;;;;;;;;;16501:13:::1;:20:::0;;-1:-1:-1;;16532:15:0;;;;;16455:100::o;3869:492::-;4009:4;4026:36;4036:6;4044:9;4055:6;4026:9;:36::i;:::-;-1:-1:-1;;;;;4102:19:0;;4075:24;4102:19;;;:11;:19;;;;;;;;303:10;4102:33;;;;;;;;4154:26;;;;4146:79;;;;-1:-1:-1;;;4146:79:0;;6345:2:1;4146:79:0;;;6327:21:1;6384:2;6364:18;;;6357:30;6423:34;6403:18;;;6396:62;-1:-1:-1;;;6474:18:1;;;6467:38;6522:19;;4146:79:0;6143:404:1;4146:79:0;4261:57;4270:6;303:10;4311:6;4292:16;:25;4261:8;:57::i;:::-;-1:-1:-1;4349:4:0;;3869:492;-1:-1:-1;;;;3869:492:0:o;16563:849::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;16879:34:::1;::::0;;::::1;:15;:34:::0;;;16924:24;;::::1;:10;:24:::0;;;16959:38;;::::1;:17;:38:::0;;;17008:30;;::::1;:13;:30:::0;;;;16959:38;17064:28:::1;::::0;16924:24;17064:28:::1;:::i;:::-;:48;;;;:::i;:::-;:64;;;;:::i;:::-;17049:12;:79:::0;17141:36:::1;::::0;;::::1;:16;:36:::0;;;17188:26;;::::1;:11;:26:::0;;;17225:40;;::::1;:18;:40:::0;;;17277:32;;::::1;:14;:32:::0;;;;17225:40;17336:30:::1;::::0;17188:26;17336:30:::1;:::i;:::-;:51;;;;:::i;:::-;:68;;;;:::i;:::-;17320:13;:84:::0;-1:-1:-1;;;;;;;;16563:849:0:o;4369:215::-;303:10;4457:4;4506:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4506:34:0;;;;;;;;;;4457:4;;4474:80;;4497:7;;4506:47;;4543:10;;4506:47;:::i;:::-;4474:8;:80::i;17550:100::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;17622:12:::1;:19:::0;;-1:-1:-1;;;;;;17622:19:0::1;-1:-1:-1::0;;;;;17622:19:0;;;::::1;::::0;;;::::1;::::0;;17550:100::o;900:103::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;965:30:::1;992:1;965:18;:30::i;:::-;900:103::o:0;18601:84::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;18664:8:::1;:13:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18664:13:0;;::::1;::::0;;;::::1;::::0;;18601:84::o;17421:121::-;750:6;;17473:4;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;-1:-1:-1;17490:14:0::1;:22:::0;;-1:-1:-1;;17490:22:0::1;::::0;;;17421:121;:::o;18338:167::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18451:39:0;;;::::1;;::::0;;;:31:::1;:39:::0;;;;;:46;;-1:-1:-1;;18451:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18338:167::o;2879:104::-;2935:13;2968:7;2961:14;;;;;:::i;18883:304::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;19027:13:::1;::::0;-1:-1:-1;;;;;19019:21:0;;::::1;19027:13:::0;::::1;19019:21;;18997:128;;;::::0;-1:-1:-1;;;18997:128:0;;7019:2:1;18997:128:0::1;::::0;::::1;7001:21:1::0;7058:2;7038:18;;;7031:30;7097:34;7077:18;;;7070:62;7168:27;7148:18;;;7141:55;7213:19;;18997:128:0::1;6817:421:1::0;18997:128:0::1;19138:41;19167:4;19173:5;19138:28;:41::i;:::-;18883:304:::0;;:::o;4592:413::-;303:10;4685:4;4729:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4729:34:0;;;;;;;;;;4782:35;;;;4774:85;;;;-1:-1:-1;;;4774:85:0;;7445:2:1;4774:85:0;;;7427:21:1;7484:2;7464:18;;;7457:30;7523:34;7503:18;;;7496:62;-1:-1:-1;;;7574:18:1;;;7567:35;7619:19;;4774:85:0;7243:401:1;4774:85:0;4895:67;303:10;4918:7;4946:15;4927:16;:34;4895:8;:67::i;:::-;-1:-1:-1;4993:4:0;;4592:413;-1:-1:-1;;;4592:413:0:o;3350:175::-;3436:4;3453:42;303:10;3477:9;3488:6;3453:9;:42::i;18693:182::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18778:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18778:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18833:34;;1212:41:1;;;18833:34:0::1;::::0;1185:18:1;18833:34:0::1;;;;;;;18693:182:::0;;:::o;24111:622::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;24166:15:::1;:80:::0;;-1:-1:-1;;;;;;24166:80:0::1;24203:42;24166:80:::0;;::::1;::::0;;;24257:68:::1;::::0;24274:4:::1;::::0;24309:14:::1;24257:8;:68::i;:::-;24370:15;;;;;;;;;-1:-1:-1::0;;;;;24370:15:0::1;-1:-1:-1::0;;;;;24370:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24352:55:0::1;;24416:4;24423:15;;;;;;;;;-1:-1:-1::0;;;;;24423:15:0::1;-1:-1:-1::0;;;;;24423:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24352:94;::::0;-1:-1:-1;;;;;;24352:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8135:15:1;;;24352:94:0::1;::::0;::::1;8117:34:1::0;8187:15;;8167:18;;;8160:43;8052:18;;24352:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24336:13;:110:::0;;-1:-1:-1;;;;;24336:110:0;;::::1;-1:-1:-1::0;;;;;;24336:110:0;;::::1;;::::0;;24457:15:::1;::::0;::::1;:31;24496:21;24527:4;24533:24;24527:4:::0;-1:-1:-1;;;;;3316:18:0;3289:7;3316:18;;;;;;;;;;;;3215:127;24533:24:::1;24558:1;24560::::0;24562:7:::1;750:6:::0;;-1:-1:-1;;;;;750:6:0;;677:87;24562:7:::1;24570:15;24457:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24604:13:0::1;::::0;24635:15:::1;::::0;24597:71:::1;::::0;-1:-1:-1;;;24597:71:0;;-1:-1:-1;;;;;24635:15:0;;::::1;24597:71;::::0;::::1;9311:51:1::0;-1:-1:-1;;9378:18:1;;;9371:34;24604:13:0;::::1;::::0;-1:-1:-1;24597:29:0::1;::::0;9284:18:1;;24597:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;24679:13:0::1;:20:::0;;-1:-1:-1;;24710:15:0;;;;;24111:622::o;17832:497::-;750:6;;17940:4;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;18019:6:::1;17998:13;3187:12:::0;;;3099:108;17998:13:::1;:17;::::0;18014:1:::1;17998:17;:::i;:::-;17997:28;;;;:::i;:::-;17984:9;:41;;17962:144;;;::::0;-1:-1:-1;;;17962:144:0;;10263:2:1;17962:144:0::1;::::0;::::1;10245:21:1::0;10302:2;10282:18;;;10275:30;10341:34;10321:18;;;10314:62;-1:-1:-1;;;10392:18:1;;;10385:51;10453:19;;17962:144:0::1;10061:417:1::0;17962:144:0::1;18174:4;18153:13;3187:12:::0;;;3099:108;18153:13:::1;:17;::::0;18169:1:::1;18153:17;:::i;:::-;18152:26;;;;:::i;:::-;18139:9;:39;;18117:141;;;::::0;-1:-1:-1;;;18117:141:0;;10685:2:1;18117:141:0::1;::::0;::::1;10667:21:1::0;10724:2;10704:18;;;10697:30;10763:34;10743:18;;;10736:62;-1:-1:-1;;;10814:18:1;;;10807:50;10874:19;;18117:141:0::1;10483:416:1::0;18117:141:0::1;-1:-1:-1::0;18269:18:0::1;:30:::0;;;18317:4:::1;883:1;17832:497:::0;;;:::o;17658:166::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;17748:31:::1;::::0;;::::1;:20;:31:::0;17791:24:::1;:9;:24:::0;17658:166::o;1011:201::-;750:6;;-1:-1:-1;;;;;750:6:0;303:10;812:23;804:68;;;;-1:-1:-1;;;804:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1100:22:0;::::1;1092:73;;;::::0;-1:-1:-1;;;1092:73:0;;11106:2:1;1092:73:0::1;::::0;::::1;11088:21:1::0;11145:2;11125:18;;;11118:30;11184:34;11164:18;;;11157:62;-1:-1:-1;;;11235:18:1;;;11228:36;11281:19;;1092:73:0::1;10904:402:1::0;1092:73:0::1;1176:28;1195:8;1176:18;:28::i;:::-;1011:201:::0;:::o;6760:380::-;-1:-1:-1;;;;;6896:19:0;;6888:68;;;;-1:-1:-1;;;6888:68:0;;11513:2:1;6888:68:0;;;11495:21:1;11552:2;11532:18;;;11525:30;11591:34;11571:18;;;11564:62;-1:-1:-1;;;11642:18:1;;;11635:34;11686:19;;6888:68:0;11311:400:1;6888:68:0;-1:-1:-1;;;;;6975:21:0;;6967:68;;;;-1:-1:-1;;;6967:68:0;;11918:2:1;6967:68:0;;;11900:21:1;11957:2;11937:18;;;11930:30;11996:34;11976:18;;;11969:62;-1:-1:-1;;;12047:18:1;;;12040:32;12089:19;;6967:68:0;11716:398:1;6967:68:0;-1:-1:-1;;;;;7048:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7100:32;;2105:25:1;;;7100:32:0;;2078:18:1;7100:32:0;;;;;;;6760:380;;;:::o;19525:4074::-;-1:-1:-1;;;;;19657:18:0;;19649:68;;;;-1:-1:-1;;;19649:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19736:16:0;;19728:64;;;;-1:-1:-1;;;19728:64:0;;;;;;;:::i;:::-;19809:11;19805:93;;19837:28;19853:4;19859:2;19863:1;19837:15;:28::i;:::-;19525:4074;;;:::o;19805:93::-;19914:14;;;;19910:1694;;;750:6;;-1:-1:-1;;;;;19967:15:0;;;750:6;;19967:15;;;;:49;;-1:-1:-1;750:6:0;;-1:-1:-1;;;;;20003:13:0;;;750:6;;20003:13;;19967:49;:86;;;;-1:-1:-1;;;;;;20037:16:0;;;;19967:86;:128;;;;-1:-1:-1;;;;;;20074:21:0;;20088:6;20074:21;;19967:128;:158;;;;-1:-1:-1;20117:8:0;;-1:-1:-1;;;20117:8:0;;;;20116:9;19967:158;19945:1648;;;20165:13;;;;;;;20160:223;;-1:-1:-1;;;;;20237:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;20266:23:0;;;;;;:19;:23;;;;;;;;20237:52;20203:160;;;;-1:-1:-1;;;20203:160:0;;13131:2:1;20203:160:0;;;13113:21:1;13170:2;13150:18;;;13143:30;-1:-1:-1;;;13189:18:1;;;13182:52;13251:18;;20203:160:0;12929:346:1;20203:160:0;-1:-1:-1;;;;;20457:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20514:35:0;;;;;;:31;:35;;;;;;;;20513:36;20457:92;20431:1147;;;20636:20;;20626:6;:30;;20592:169;;;;-1:-1:-1;;;20592:169:0;;13482:2:1;20592:169:0;;;13464:21:1;13521:2;13501:18;;;13494:30;13560:34;13540:18;;;13533:62;-1:-1:-1;;;13611:18:1;;;13604:51;13672:19;;20592:169:0;13280:417:1;20592:169:0;20844:9;;-1:-1:-1;;;;;3316:18:0;;3289:7;3316:18;;;;;;;;;;;20818:22;;:6;:22;:::i;:::-;:35;;20784:140;;;;-1:-1:-1;;;20784:140:0;;13904:2:1;20784:140:0;;;13886:21:1;13943:2;13923:18;;;13916:30;-1:-1:-1;;;13962:18:1;;;13955:49;14021:18;;20784:140:0;13702:343:1;20784:140:0;20431:1147;;;-1:-1:-1;;;;;21022:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;21077:37:0;;;;;;:31;:37;;;;;;;;21076:38;21022:92;20996:582;;;21201:20;;21191:6;:30;;21157:170;;;;-1:-1:-1;;;21157:170:0;;14252:2:1;21157:170:0;;;14234:21:1;14291:2;14271:18;;;14264:30;14330:34;14310:18;;;14303:62;-1:-1:-1;;;14381:18:1;;;14374:52;14443:19;;21157:170:0;14050:418:1;20996:582:0;-1:-1:-1;;;;;21358:35:0;;;;;;:31;:35;;;;;;;;21353:225;;21478:9;;-1:-1:-1;;;;;3316:18:0;;3289:7;3316:18;;;;;;;;;;;21452:22;;:6;:22;:::i;:::-;:35;;21418:140;;;;-1:-1:-1;;;21418:140:0;;13904:2:1;21418:140:0;;;13886:21:1;13943:2;13923:18;;;13916:30;-1:-1:-1;;;13962:18:1;;;13955:49;14021:18;;21418:140:0;13702:343:1;21418:140:0;21665:4;21616:28;3316:18;;;;;;;;;;;21723;;21699:42;;;;;;;21772:32;;-1:-1:-1;21796:8:0;;;;;;;21772:32;:58;;;;-1:-1:-1;21822:8:0;;-1:-1:-1;;;21822:8:0;;;;21821:9;21772:58;:107;;;;-1:-1:-1;;;;;;21848:31:0;;;;;;:25;:31;;;;;;;;21847:32;21772:107;:150;;;;-1:-1:-1;;;;;;21897:25:0;;;;;;:19;:25;;;;;;;;21896:26;21772:150;:191;;;;-1:-1:-1;;;;;;21940:23:0;;;;;;:19;:23;;;;;;;;21939:24;21772:191;21754:325;;;21990:8;:15;;-1:-1:-1;;;;21990:15:0;-1:-1:-1;;;21990:15:0;;;22022:12;:10;:12::i;:::-;22051:8;:16;;-1:-1:-1;;;;22051:16:0;;;21754:325;22107:8;;-1:-1:-1;;;;;22217:25:0;;22091:12;22217:25;;;:19;:25;;;;;;22107:8;-1:-1:-1;;;22107:8:0;;;;;22106:9;;22217:25;;:52;;-1:-1:-1;;;;;;22246:23:0;;;;;;:19;:23;;;;;;;;22217:52;22213:100;;;-1:-1:-1;22296:5:0;22213:100;22325:12;22430:7;22426:1120;;;-1:-1:-1;;;;;22482:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;22531:1;22515:13;;:17;22482:50;22478:919;;;22585:3;22569:13;;22560:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;22553:35;;22654:13;;22634:16;;22627:4;:23;;;;:::i;:::-;22626:41;;;;:::i;:::-;22607:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;22723:13:0;;22708:11;;22701:18;;:4;:18;:::i;:::-;22700:36;;;;:::i;:::-;22686:10;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;22808:13:0;;22786:18;;22779:25;;:4;:25;:::i;:::-;22778:43;;;;:::i;:::-;22757:17;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;22885:13:0;;22867:14;;22860:21;;:4;:21;:::i;:::-;22859:39;;;;:::i;:::-;22842:13;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;22478:919:0;;-1:-1:-1;22478:919:0;;-1:-1:-1;;;;;22974:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;23024:1;23009:12;;:16;22974:51;22970:427;;;23077:3;23062:12;;23053:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;23046:34;;23145:12;;23126:15;;23119:4;:22;;;;:::i;:::-;23118:39;;;;:::i;:::-;23099:15;;:58;;;;;;;:::i;:::-;;;;-1:-1:-1;;23212:12:0;;23198:10;;23191:17;;:4;:17;:::i;:::-;23190:34;;;;:::i;:::-;23176:10;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;23293:12:0;;23272:17;;23265:24;;:4;:24;:::i;:::-;23264:41;;;;:::i;:::-;23243:17;;:62;;;;;;;:::i;:::-;;;;-1:-1:-1;;23367:13:0;;23350;;23343:20;;:4;:20;:::i;:::-;23342:38;;;;:::i;:::-;23325:13;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;22970:427:0;23417:8;;23413:91;;23446:42;23462:4;23476;23483;23446:15;:42::i;:::-;23520:14;23530:4;23520:14;;:::i;:::-;;;22426:1120;23558:33;23574:4;23580:2;23584:6;23558:15;:33::i;:::-;19638:3961;;;;19525:4074;;;:::o;1218:191::-;1311:6;;;-1:-1:-1;;;;;1328:17:0;;;-1:-1:-1;;;;;;1328:17:0;;;;;;;1361:40;;1311:6;;;1328:17;1311:6;;1361:40;;1292:16;;1361:40;1281:128;1218:191;:::o;19195:188::-;-1:-1:-1;;;;;19278:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;19278:39:0;;;;;;;;;;19335:40;;19278:39;;:31;19335:40;;;19195:188;;:::o;5013:733::-;-1:-1:-1;;;;;5153:20:0;;5145:70;;;;-1:-1:-1;;;5145:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5234:23:0;;5226:71;;;;-1:-1:-1;;;5226:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5394:17:0;;5370:21;5394:17;;;;;;;;;;;5430:23;;;;5422:74;;;;-1:-1:-1;;;5422:74:0;;14805:2:1;5422:74:0;;;14787:21:1;14844:2;14824:18;;;14817:30;14883:34;14863:18;;;14856:62;-1:-1:-1;;;14934:18:1;;;14927:36;14980:19;;5422:74:0;14603:402:1;5422:74:0;-1:-1:-1;;;;;5532:17:0;;;:9;:17;;;;;;;;;;;5552:22;;;5532:42;;5596:20;;;;;;;;:30;;5568:6;;5532:9;5596:30;;5568:6;;5596:30;:::i;:::-;;;;;;;;5661:9;-1:-1:-1;;;;;5644:35:0;5653:6;-1:-1:-1;;;;;5644:35:0;;5672:6;5644:35;;;;2105:25:1;;2093:2;2078:18;;1959:177;5644:35:0;;;;;;;;5134:612;5013:733;;;:::o;25280:1883::-;25365:4;25321:23;3316:18;;;;;;;;;;;25321:50;;25382:25;25461:13;;25441:17;;25428:10;;25410:15;;:28;;;;:::i;:::-;:48;;;;:::i;:::-;:64;;;;:::i;:::-;25382:92;-1:-1:-1;25485:12:0;25514:20;;;:46;;-1:-1:-1;25538:22:0;;25514:46;25510:85;;;25577:7;;;25280:1883::o;25510:85::-;25629:18;;:23;;25650:2;25629:23;:::i;:::-;25611:15;:41;25607:115;;;25687:18;;:23;;25708:2;25687:23;:::i;:::-;25669:41;;25607:115;25783:26;25870:1;25850:17;25831:15;;25813;:33;;;;:::i;:::-;25812:55;;;;:::i;:::-;:59;;;;:::i;:::-;25783:88;-1:-1:-1;25882:26:0;25911:36;25783:88;25911:15;:36;:::i;:::-;25882:65;-1:-1:-1;25988:21:0;26022:30;25882:65;26022:10;:30::i;:::-;26065:18;26086:41;26110:17;26086:21;:41;:::i;:::-;26065:62;;26141:15;26185:17;26172:10;;26159;:23;;;;:::i;:::-;:43;;;;:::i;:::-;26141:61;;26213:22;26271:17;26251;;26238:10;:30;;;;:::i;:::-;:50;;;;:::i;:::-;26213:75;;26299:18;26349:17;26333:13;;26320:10;:26;;;;:::i;:::-;:46;;;;:::i;:::-;26299:67;-1:-1:-1;26379:20:0;26299:67;26425:14;26402:20;26415:7;26402:10;:20;:::i;:::-;:37;;;;:::i;:::-;:50;;;;:::i;:::-;26483:1;26465:15;:19;;;26495:10;:14;;;26520:17;:21;;;26553:13;:17;26379:73;-1:-1:-1;26588:22:0;;;;;:42;;;26629:1;26614:12;:16;26588:42;26584:275;;;26647:46;26660:18;26680:12;26647;:46::i;:::-;26713:134;;;15212:25:1;;;15268:2;15253:18;;15246:34;;;15296:18;;;15289:34;;;26713:134:0;;15200:2:1;15185:18;26713:134:0;;;;;;;26584:275;26949:12;;26941:46;;-1:-1:-1;;;;;26949:12:0;;;;26975:7;;26941:46;;;;26975:7;26949:12;26941:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27020:15:0;;27012:49;;26927:60;;-1:-1:-1;;;;;;27020:15:0;;27049:7;;27012:49;;;;27049:7;27020:15;27012:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27096:19:0;;27088:67;;26998:63;;-1:-1:-1;;;;;;27096:19:0;;27129:21;;27088:67;;;;27129:21;27096:19;27088:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;25280:1883:0:o;23607:496::-;23691:16;;;23705:1;23691:16;;;;;;;;23667:21;;23691:16;;;;;;;;;;-1:-1:-1;23691:16:0;23667:40;;23736:4;23718;23723:1;23718:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23718:23:0;;;:7;;;;;;;;;;:23;;;;23762:15;;:22;;;-1:-1:-1;;;23762:22:0;;;;:15;;;;;:20;;:22;;;;;23718:7;;23762:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23752:4;23757:1;23752:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23752:32:0;;;:7;;;;;;;;;:32;23829:15;;23797:62;;23814:4;;23829:15;23847:11;23797:8;:62::i;:::-;23898:15;;:197;;-1:-1:-1;;;23898:197:0;;-1:-1:-1;;;;;23898:15:0;;;;:66;;:197;;23979:11;;23898:15;;24022:4;;24049;;24069:15;;23898:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23656:447;23607:496;:::o;24747:525::-;24927:15;;24895:62;;24912:4;;-1:-1:-1;;;;;24927:15:0;24945:11;24895:8;:62::i;:::-;25000:15;;25204:19;;25000:264;;-1:-1:-1;;;25000:264:0;;-1:-1:-1;;;;;25000:15:0;;;;:31;;25039:9;;25000:264;;25072:4;;25092:11;;25000:15;;;;25204:19;;25238:15;;25000:264;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24747:525;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752: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;:::-;1708:5;1472:247;-1:-1:-1;;;1472:247:1:o;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:156::-;2857:20;;2917:4;2906:16;;2896:27;;2886:55;;2937:1;2934;2927:12;2952:677;3058:6;3066;3074;3082;3090;3098;3106;3114;3167:3;3155:9;3146:7;3142:23;3138:33;3135:53;;;3184:1;3181;3174:12;3135:53;3207:27;3224:9;3207:27;:::i;:::-;3197:37;;3253:36;3285:2;3274:9;3270:18;3253:36;:::i;:::-;3243:46;;3308:36;3340:2;3329:9;3325:18;3308:36;:::i;:::-;3298:46;;3363:36;3395:2;3384:9;3380:18;3363:36;:::i;:::-;3353:46;;3418:37;3450:3;3439:9;3435:19;3418:37;:::i;:::-;3408:47;;3474:37;3506:3;3495:9;3491:19;3474:37;:::i;:::-;3464:47;;3530:37;3562:3;3551:9;3547:19;3530:37;:::i;:::-;3520:47;;3586:37;3618:3;3607:9;3603:19;3586:37;:::i;:::-;3576:47;;2952:677;;;;;;;;;;;:::o;3634:118::-;3720:5;3713:13;3706:21;3699:5;3696:32;3686:60;;3742:1;3739;3732:12;3757:241;3813:6;3866:2;3854:9;3845:7;3841:23;3837:32;3834:52;;;3882:1;3879;3872:12;3834:52;3921:9;3908:23;3940:28;3962:5;3940:28;:::i;4003:382::-;4068:6;4076;4129:2;4117:9;4108:7;4104:23;4100:32;4097:52;;;4145:1;4142;4135:12;4097:52;4184:9;4171:23;4203:31;4228:5;4203:31;:::i;:::-;4253:5;-1:-1:-1;4310:2:1;4295:18;;4282:32;4323:30;4282:32;4323:30;:::i;:::-;4372:7;4362:17;;;4003:382;;;;;:::o;4390:180::-;4449:6;4502:2;4490:9;4481:7;4477:23;4473:32;4470:52;;;4518:1;4515;4508:12;4470:52;-1:-1:-1;4541:23:1;;4390:180;-1:-1:-1;4390:180:1:o;4575:163::-;4642:20;;4702:10;4691:22;;4681:33;;4671:61;;4728:1;4725;4718:12;4743:256;4809:6;4817;4870:2;4858:9;4849:7;4845:23;4841:32;4838:52;;;4886:1;4883;4876:12;4838:52;4909:28;4927:9;4909:28;:::i;:::-;4899:38;;4956:37;4989:2;4978:9;4974:18;4956:37;:::i;:::-;4946:47;;4743:256;;;;;:::o;5004:388::-;5072:6;5080;5133:2;5121:9;5112:7;5108:23;5104:32;5101:52;;;5149:1;5146;5139:12;5101:52;5188:9;5175:23;5207:31;5232:5;5207:31;:::i;:::-;5257:5;-1:-1:-1;5314:2:1;5299:18;;5286:32;5327:33;5286:32;5327:33;:::i;5397:380::-;5476:1;5472:12;;;;5519;;;5540:61;;5594:4;5586:6;5582:17;5572:27;;5540:61;5647:2;5639:6;5636:14;5616:18;5613:38;5610:161;;;5693:10;5688:3;5684:20;5681:1;5674:31;5728:4;5725:1;5718:15;5756:4;5753:1;5746:15;5610:161;;5397:380;;;:::o;5782:356::-;5984:2;5966:21;;;6003:18;;;5996:30;6062:34;6057:2;6042:18;;6035:62;6129:2;6114:18;;5782:356::o;6552:127::-;6613:10;6608:3;6604:20;6601:1;6594:31;6644:4;6641:1;6634:15;6668:4;6665:1;6658:15;6684:128;6724:3;6755:1;6751:6;6748:1;6745:13;6742:39;;;6761:18;;:::i;:::-;-1:-1:-1;6797:9:1;;6684:128::o;7649:251::-;7719:6;7772:2;7760:9;7751:7;7747:23;7743:32;7740:52;;;7788:1;7785;7778:12;7740:52;7820:9;7814:16;7839:31;7864:5;7839:31;:::i;8214:607::-;-1:-1:-1;;;;;8573:15:1;;;8555:34;;8620:2;8605:18;;8598:34;;;;8663:2;8648:18;;8641:34;;;;8706:2;8691:18;;8684:34;;;;8755:15;;;8749:3;8734:19;;8727:44;8535:3;8787:19;;8780:35;;;;8504:3;8489:19;;8214:607::o;8826:306::-;8914:6;8922;8930;8983:2;8971:9;8962:7;8958:23;8954:32;8951:52;;;8999:1;8996;8989:12;8951:52;9028:9;9022:16;9012:26;;9078:2;9067:9;9063:18;9057:25;9047:35;;9122:2;9111:9;9107:18;9101:25;9091:35;;8826:306;;;;;:::o;9416:245::-;9483:6;9536:2;9524:9;9515:7;9511:23;9507:32;9504:52;;;9552:1;9549;9542:12;9504:52;9584:9;9578:16;9603:28;9625:5;9603:28;:::i;9666:168::-;9706:7;9772:1;9768;9764:6;9760:14;9757:1;9754:21;9749:1;9742:9;9735:17;9731:45;9728:71;;;9779:18;;:::i;:::-;-1:-1:-1;9819:9:1;;9666:168::o;9839:217::-;9879:1;9905;9895:132;;9949:10;9944:3;9940:20;9937:1;9930:31;9984:4;9981:1;9974:15;10012:4;10009:1;10002:15;9895:132;-1:-1:-1;10041:9:1;;9839:217::o;12119:401::-;12321:2;12303:21;;;12360:2;12340:18;;;12333:30;12399:34;12394:2;12379:18;;12372:62;-1:-1:-1;;;12465:2:1;12450:18;;12443:35;12510:3;12495:19;;12119:401::o;12525:399::-;12727:2;12709:21;;;12766:2;12746:18;;;12739:30;12805:34;12800:2;12785:18;;12778:62;-1:-1:-1;;;12871:2:1;12856:18;;12849:33;12914:3;12899:19;;12525:399::o;14473:125::-;14513:4;14541:1;14538;14535:8;14532:34;;;14546:18;;:::i;:::-;-1:-1:-1;14583:9:1;;14473:125::o;15676:127::-;15737:10;15732:3;15728:20;15725:1;15718:31;15768:4;15765:1;15758:15;15792:4;15789:1;15782:15;15808:980;16070:4;16118:3;16107:9;16103:19;16149:6;16138:9;16131:25;16175:2;16213:6;16208:2;16197:9;16193:18;16186:34;16256:3;16251:2;16240:9;16236:18;16229:31;16280:6;16315;16309:13;16346:6;16338;16331:22;16384:3;16373:9;16369:19;16362:26;;16423:2;16415:6;16411:15;16397:29;;16444:1;16454:195;16468:6;16465:1;16462:13;16454:195;;;16533:13;;-1:-1:-1;;;;;16529:39:1;16517:52;;16624:15;;;;16589:12;;;;16565:1;16483:9;16454:195;;;-1:-1:-1;;;;;;;16705:32:1;;;;16700:2;16685:18;;16678:60;-1:-1:-1;;;16769:3:1;16754:19;16747:35;16666:3;15808:980;-1:-1:-1;;;15808:980:1:o
Swarm Source
ipfs://d4c657745dc30f0d80d816a2d187d7a9b1b35d9b0ae6b8346e73d71cba23e2be
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.