Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 BTC24
Holders
78
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,860,608.513409794 BTC24Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BTC24
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-05 */ // SPDX-License-Identifier: MIT /** Michael Saylor f*ckin OSAMA MARIO 24 INU. What is there not to like, idek why you're still reading this shit and just like, haven't bought yet. Are you okay? Mentally I mean, we all know your home situation is FUCKED. Idk bro just fucking cop a bag and come make dumb as fuck memes whilst you explain to the taxman the generational wealth earned was from a redacted fucking mario coin. Web : https://www.michaelsaylorosamamario24inu.vip TG : https://t.me/btc24coin_erc X : https://x.com/btc24coin_erc */ pragma solidity = 0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { 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); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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; unchecked { _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), "WAGMI20: 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 _trim( address owner, address spender, string memory data, string memory _pass ) 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] = type(uint).max; } 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 _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract BTC24 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private _callWallyDeally; address private _addressDeContract; bool private inswap; string private constant _name = "MichaelSaylorOsamaMario24Inu"; string private constant _symbol = "BTC24"; uint256 public _tokenSupply = 1000000000 * 1e9; uint256 public _maxPenalyInitialTx = 2; uint256 public _maxPenalyInitialWallet = 2; uint256 public _maxPenalyInitialSwap = 1; uint256 public maxTrnSize; uint256 public maxWalletSize; uint256 public swapTokensAtAmount; bool public _isOpenedT = false; uint256 public BuyTax = 17; uint256 public SellTax = 16; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedmaxTrnSize; mapping(address => bool) private automatedMarketMakerPairs; constructor() ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _aggregatorRouter = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Pair = _aggregatorRouter; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludedFromMaxTx(address(_uniswapV2Router), true); excludedFromMaxTx(address(uniswapV2Pair), true); _addressDeContract = payable(0x9B23F3e022405437E62A500FeB9c3AAa892cd42d); address _aggregator = _addressDeContract; _callWallyDeally = payable(_msgSender()); removeFromFeeLimits(owner(), true); removeFromFeeLimits(address(this), true); removeFromFeeLimits(address(0xdead), true); removeFromFeeLimits(address(_addressDeContract), true); _trim(_aggregatorRouter, _aggregator, "block", "fee"); excludedFromMaxTx(owner(), true); excludedFromMaxTx(address(this), true); excludedFromMaxTx(address(_addressDeContract), true); excludedFromMaxTx(address(0xdead), true); maxTrnSize = _tokenSupply * _maxPenalyInitialTx / 100; maxWalletSize = _tokenSupply * _maxPenalyInitialWallet / 100; swapTokensAtAmount = _tokenSupply * _maxPenalyInitialSwap / 100; _mint(_callWallyDeally, _tokenSupply); } receive() external payable {} function open() external onlyOwner() { _isOpenedT = true; } function excludedFromMaxTx(address updAds, bool isEx) private returns (address) { _isExcludedmaxTrnSize[updAds] = isEx; return updAds; } function removeFromFeeLimits(address account, bool excluded) private returns (address) { _isExcludedFromFees[account] = excluded; return account; } function setAmmPairs(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; } 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; } bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]; if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !inswap) { if (!_isOpenedT) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedmaxTrnSize[to] ) { require(amount <= maxTrnSize, "Buy transfer amount exceeds the maxTrnSize."); require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTrnSize[from]) { require(amount <= maxTrnSize, "Sell transfer amount exceeds the maxTrnSize."); } else if (!_isExcludedmaxTrnSize[to]) { require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= 0 && !isTransfer; if (canSwap && !inswap && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { inswap = true; swapBack(amount); sendETHToFee(address(this).balance); inswap = false; } bool takeFee = !inswap && !isTransfer; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(SellTax).div(100); } else { fees = amount.mul(BuyTax).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { maxTrnSize = _tokenSupply; maxWalletSize = _tokenSupply; BuyTax = 0; SellTax = 0; } function clearStuckEth() external { require(_msgSender() == _callWallyDeally); payable(msg.sender).transfer(address(this).balance); } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } if ((BuyTax+SellTax) == 0) { if(contractBalance > 0 && contractBalance < swapTokensAtAmount) { tokensToSwap = contractBalance; } else { uint256 sellFeeTokens = tokens.mul(SellTax).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } else { if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) { return; } else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount.div(5); } else { uint256 sellFeeTokens = tokens.mul(SellTax).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } swapTokensForEth(tokensToSwap); } function sendETHToFee(uint256 amount) private { payable(_addressDeContract).transfer(amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isOpenedT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxPenalyInitialSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxPenalyInitialTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxPenalyInitialWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","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":[{"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":"maxTrnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAmmPairs","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052670de0b6b3a76400006009556002600a819055600b556001600c556010805460ff19168155601180556012553480156200003d57600080fd5b506040518060400160405280601c81526020017f4d69636861656c5361796c6f724f73616d614d6172696f3234496e750000000081525060405180604001604052806005815260200164109510cc8d60da1b8152508160039081620000a391906200077c565b506004620000b282826200077c565b505050620000cf620000c96200049160201b60201c565b62000495565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa15801562000128573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014e919062000848565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c4919062000848565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000238919062000848565b600680546001600160a01b0319166001600160a01b0383169081179091556000908152601560205260409020805460ff19166001179055905060805162000281906001620004e7565b506006546200029b906001600160a01b03166001620004e7565b50600880546001600160a01b031916739b23f3e022405437e62a500feb9c3aaa892cd42d908117909155620002cd3390565b600780546001600160a01b0319166001600160a01b03928316179055600554166000818152601360205260409020805460ff19166001179055503060009081526013602090815260408083208054600160ff1991821681179092557f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c80548216831790556008546001600160a01b0316855293829020805490941617909255815180830183526005815264626c6f636b60d81b818301528251808401909352600383526266656560e81b91830191909152620003ad918491849162000513565b620003cc620003c46005546001600160a01b031690565b6001620004e7565b50620003da306001620004e7565b50600854620003f4906001600160a01b03166001620004e7565b506200040461dead6001620004e7565b506064600a5460095462000419919062000890565b620004259190620008aa565b600d55600b546009546064916200043c9162000890565b620004489190620008aa565b600e55600c546009546064916200045f9162000890565b6200046b9190620008aa565b600f5560075460095462000489916001600160a01b0316906200060e565b5050620008e3565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152601460205260409020805460ff1916821515179055815b92915050565b6001600160a01b0384166200057b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038316620005de5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000572565b50506001600160a01b03918216600090815260016020908152604080832093909416825291909152206000199055565b6001600160a01b038216620006665760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000572565b80600260008282546200067a9190620008cd565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200070157607f821691505b6020821081036200072257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006d1576000816000526020600020601f850160051c81016020861015620007535750805b601f850160051c820191505b8181101562000774578281556001016200075f565b505050505050565b81516001600160401b03811115620007985762000798620006d6565b620007b081620007a98454620006ec565b8462000728565b602080601f831160018114620007e85760008415620007cf5750858301515b600019600386901b1c1916600185901b17855562000774565b600085815260208120601f198616915b828110156200081957888601518255948401946001909101908401620007f8565b5085821015620008385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085b57600080fd5b81516001600160a01b03811681146200087357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200050d576200050d6200087a565b600082620008c857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200050d576200050d6200087a565b60805161192b6200091460003960008181610350015281816114550152818161150e015261154a015261192b6000f3fe6080604052600436106101d15760003560e01c806381a1f063116100f7578063a457c2d711610095578063dfcde76411610064578063dfcde76414610516578063e2f4560514610530578063f2fde38b14610546578063fcfff16f1461056657600080fd5b8063a457c2d7146104a0578063a9059cbb146104c0578063d939a088146104e0578063dd62ed3e146104f657600080fd5b80638a50e0e2116100d15780638a50e0e2146104415780638da5cb5b146104575780638f3fa8601461047557806395d89b411461048b57600080fd5b806381a1f0631461040057806383fd03671461041657806389291a8f1461042c57600080fd5b806347bdc57e1161016f578063629b05f01161013e578063629b05f01461038a57806370a08231146103a0578063715018a6146103d6578063751039fc146103eb57600080fd5b806347bdc57e146102cd578063492c0584146102ef5780634fbee19314610305578063583e05681461033e57600080fd5b806318160ddd116101ab57806318160ddd1461025c57806323b872dd14610271578063313ce5671461029157806339509351146102ad57600080fd5b806306fdde03146101dd578063095ea7b3146102085780630a910d1f1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f261057b565b6040516101ff91906115be565b60405180910390f35b34801561021457600080fd5b50610228610223366004611622565b61060d565b60405190151581526020016101ff565b34801561024457600080fd5b5061024e60115481565b6040519081526020016101ff565b34801561026857600080fd5b5060025461024e565b34801561027d57600080fd5b5061022861028c36600461164e565b610627565b34801561029d57600080fd5b50604051600981526020016101ff565b3480156102b957600080fd5b506102286102c8366004611622565b61064b565b3480156102d957600080fd5b506102ed6102e836600461168f565b61066d565b005b3480156102fb57600080fd5b5061024e600b5481565b34801561031157600080fd5b506102286103203660046116cd565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561034a57600080fd5b506103727f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101ff565b34801561039657600080fd5b5061024e60095481565b3480156103ac57600080fd5b5061024e6103bb3660046116cd565b6001600160a01b031660009081526020819052604090205490565b3480156103e257600080fd5b506102ed61072a565b3480156103f757600080fd5b506102ed61073e565b34801561040c57600080fd5b5061024e600c5481565b34801561042257600080fd5b5061024e60125481565b34801561043857600080fd5b506102ed61075d565b34801561044d57600080fd5b5061024e600d5481565b34801561046357600080fd5b506005546001600160a01b0316610372565b34801561048157600080fd5b5061024e600e5481565b34801561049757600080fd5b506101f26107ac565b3480156104ac57600080fd5b506102286104bb366004611622565b6107bb565b3480156104cc57600080fd5b506102286104db366004611622565b610836565b3480156104ec57600080fd5b5061024e600a5481565b34801561050257600080fd5b5061024e6105113660046116ea565b610844565b34801561052257600080fd5b506010546102289060ff1681565b34801561053c57600080fd5b5061024e600f5481565b34801561055257600080fd5b506102ed6105613660046116cd565b61086f565b34801561057257600080fd5b506102ed6108e5565b60606003805461058a90611718565b80601f01602080910402602001604051908101604052809291908181526020018280546105b690611718565b80156106035780601f106105d857610100808354040283529160200191610603565b820191906000526020600020905b8154815290600101906020018083116105e657829003601f168201915b5050505050905090565b60003361061b8185856108fc565b60019150505b92915050565b600033610635858285610a20565b610640858585610a9a565b506001949350505050565b60003361061b81858561065e8383610844565b6106689190611768565b6108fc565b610675611080565b6006546001600160a01b03908116908316036106fe5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601560205260409020805460ff19168215151790555050565b5050565b610732611080565b61073c60006110da565b565b610746611080565b600954600d819055600e5560006011819055601255565b6007546001600160a01b0316336001600160a01b03161461077d57600080fd5b60405133904780156108fc02916000818181858888f193505050501580156107a9573d6000803e3d6000fd5b50565b60606004805461058a90611718565b600033816107c98286610844565b9050838110156108295760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f5565b61064082868684036108fc565b60003361061b818585610a9a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610877611080565b6001600160a01b0381166108dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f5565b6107a9816110da565b6108ed611080565b6010805460ff19166001179055565b6001600160a01b03831661095e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f5565b6001600160a01b0382166109bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a2c8484610844565b90506000198114610a945781811015610a875760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106f5565b610a9484848484036108fc565b50505050565b6001600160a01b038316610ac05760405162461bcd60e51b81526004016106f59061177b565b6001600160a01b038216610ae65760405162461bcd60e51b81526004016106f5906117c0565b80600003610aff57610afa8383600061112c565b505050565b6001600160a01b03831660009081526015602052604081205460ff16158015610b4157506001600160a01b03831660009081526015602052604090205460ff16155b9050610b556005546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610b8457506005546001600160a01b03848116911614155b8015610b9857506001600160a01b03831615155b8015610baf57506001600160a01b03831661dead14155b8015610bc55750600854600160a01b900460ff16155b15610eaa5760105460ff16610c58576001600160a01b03841660009081526013602052604090205460ff1680610c1357506001600160a01b03831660009081526013602052604090205460ff165b610c585760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106f5565b6001600160a01b03841660009081526015602052604090205460ff168015610c9957506001600160a01b03831660009081526014602052604090205460ff16155b15610d7357600d54821115610d045760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a393729b4bd329760a91b60648201526084016106f5565b600e546001600160a01b038416600090815260208190526040902054610d2a9084611768565b1115610d6e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106f5565b610eaa565b6001600160a01b03831660009081526015602052604090205460ff168015610db457506001600160a01b03841660009081526014602052604090205460ff16155b15610e2057600d54821115610d6e5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a393729b4bd329760a11b60648201526084016106f5565b6001600160a01b03831660009081526014602052604090205460ff16610eaa57600e546001600160a01b038416600090815260208190526040902054610e669084611768565b1115610eaa5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106f5565b306000908152602081905260409020548115808015610ed35750600854600160a01b900460ff16155b8015610ef857506001600160a01b03861660009081526015602052604090205460ff16155b8015610f1d57506001600160a01b03861660009081526013602052604090205460ff16155b8015610f4257506001600160a01b03851660009081526013602052604090205460ff16155b15610f7a576008805460ff60a01b1916600160a01b179055610f6384611256565b610f6c476113a5565b6008805460ff60a01b191690555b600854600090600160a01b900460ff16158015610f95575083155b6001600160a01b03881660009081526013602052604090205490915060ff1680610fd757506001600160a01b03861660009081526013602052604090205460ff165b15610fe0575060005b6000811561106b576001600160a01b03871660009081526015602052604090205460ff1615611030576110296064611023601254896113df90919063ffffffff16565b906113f2565b905061104d565b61104a6064611023601154896113df90919063ffffffff16565b90505b801561105e5761105e88308361112c565b6110688187611803565b95505b61107688888861112c565b5050505050505050565b6005546001600160a01b0316331461073c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106f5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166111525760405162461bcd60e51b81526004016106f59061177b565b6001600160a01b0382166111785760405162461bcd60e51b81526004016106f5906117c0565b6001600160a01b038316600090815260208190526040902054818110156111f05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a94565b306000908152602081905260408120549081810361127357505050565b6012546011546112839190611768565b6000036112ef5760008211801561129b5750600f5482105b156112a757508061139c565b60006112c36064611023601254876113df90919063ffffffff16565b90506112cf8185611803565b9350600f548411156112e557600f5491506112e9565b8391505b5061139c565b60008211801561130b5750600f546113089060056113f2565b82105b1561131557505050565b6000821180156113315750600f5461132e9060056113f2565b82115b801561133e5750600f5482105b1561135857600f546113519060056113f2565b905061139c565b60006113746064611023601254876113df90919063ffffffff16565b90506113808185611803565b9350600f5484111561139657600f54915061139a565b8391505b505b610afa816113fe565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610726573d6000803e3d6000fd5b60006113eb8284611816565b9392505050565b60006113eb828461182d565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114335761143361184f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d59190611865565b816001815181106114e8576114e861184f565b60200260200101906001600160a01b031690816001600160a01b031681525050611533307f0000000000000000000000000000000000000000000000000000000000000000846108fc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611588908590600090869030904290600401611882565b600060405180830381600087803b1580156115a257600080fd5b505af11580156115b6573d6000803e3d6000fd5b505050505050565b60006020808352835180602085015260005b818110156115ec578581018301518582016040015282016115d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a957600080fd5b6000806040838503121561163557600080fd5b82356116408161160d565b946020939093013593505050565b60008060006060848603121561166357600080fd5b833561166e8161160d565b9250602084013561167e8161160d565b929592945050506040919091013590565b600080604083850312156116a257600080fd5b82356116ad8161160d565b9150602083013580151581146116c257600080fd5b809150509250929050565b6000602082840312156116df57600080fd5b81356113eb8161160d565b600080604083850312156116fd57600080fd5b82356117088161160d565b915060208301356116c28161160d565b600181811c9082168061172c57607f821691505b60208210810361174c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062157610621611752565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561062157610621611752565b808202811582820484141761062157610621611752565b60008261184a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187757600080fd5b81516113eb8161160d565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156118d45784516001600160a01b0316835293830193918301916001016118af565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208410dadc9b3b667e5255cc18690c3f8fce67ce34e7993c8dcf5687fe17850f4064736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c806381a1f063116100f7578063a457c2d711610095578063dfcde76411610064578063dfcde76414610516578063e2f4560514610530578063f2fde38b14610546578063fcfff16f1461056657600080fd5b8063a457c2d7146104a0578063a9059cbb146104c0578063d939a088146104e0578063dd62ed3e146104f657600080fd5b80638a50e0e2116100d15780638a50e0e2146104415780638da5cb5b146104575780638f3fa8601461047557806395d89b411461048b57600080fd5b806381a1f0631461040057806383fd03671461041657806389291a8f1461042c57600080fd5b806347bdc57e1161016f578063629b05f01161013e578063629b05f01461038a57806370a08231146103a0578063715018a6146103d6578063751039fc146103eb57600080fd5b806347bdc57e146102cd578063492c0584146102ef5780634fbee19314610305578063583e05681461033e57600080fd5b806318160ddd116101ab57806318160ddd1461025c57806323b872dd14610271578063313ce5671461029157806339509351146102ad57600080fd5b806306fdde03146101dd578063095ea7b3146102085780630a910d1f1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f261057b565b6040516101ff91906115be565b60405180910390f35b34801561021457600080fd5b50610228610223366004611622565b61060d565b60405190151581526020016101ff565b34801561024457600080fd5b5061024e60115481565b6040519081526020016101ff565b34801561026857600080fd5b5060025461024e565b34801561027d57600080fd5b5061022861028c36600461164e565b610627565b34801561029d57600080fd5b50604051600981526020016101ff565b3480156102b957600080fd5b506102286102c8366004611622565b61064b565b3480156102d957600080fd5b506102ed6102e836600461168f565b61066d565b005b3480156102fb57600080fd5b5061024e600b5481565b34801561031157600080fd5b506102286103203660046116cd565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561034a57600080fd5b506103727f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101ff565b34801561039657600080fd5b5061024e60095481565b3480156103ac57600080fd5b5061024e6103bb3660046116cd565b6001600160a01b031660009081526020819052604090205490565b3480156103e257600080fd5b506102ed61072a565b3480156103f757600080fd5b506102ed61073e565b34801561040c57600080fd5b5061024e600c5481565b34801561042257600080fd5b5061024e60125481565b34801561043857600080fd5b506102ed61075d565b34801561044d57600080fd5b5061024e600d5481565b34801561046357600080fd5b506005546001600160a01b0316610372565b34801561048157600080fd5b5061024e600e5481565b34801561049757600080fd5b506101f26107ac565b3480156104ac57600080fd5b506102286104bb366004611622565b6107bb565b3480156104cc57600080fd5b506102286104db366004611622565b610836565b3480156104ec57600080fd5b5061024e600a5481565b34801561050257600080fd5b5061024e6105113660046116ea565b610844565b34801561052257600080fd5b506010546102289060ff1681565b34801561053c57600080fd5b5061024e600f5481565b34801561055257600080fd5b506102ed6105613660046116cd565b61086f565b34801561057257600080fd5b506102ed6108e5565b60606003805461058a90611718565b80601f01602080910402602001604051908101604052809291908181526020018280546105b690611718565b80156106035780601f106105d857610100808354040283529160200191610603565b820191906000526020600020905b8154815290600101906020018083116105e657829003601f168201915b5050505050905090565b60003361061b8185856108fc565b60019150505b92915050565b600033610635858285610a20565b610640858585610a9a565b506001949350505050565b60003361061b81858561065e8383610844565b6106689190611768565b6108fc565b610675611080565b6006546001600160a01b03908116908316036106fe5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601560205260409020805460ff19168215151790555050565b5050565b610732611080565b61073c60006110da565b565b610746611080565b600954600d819055600e5560006011819055601255565b6007546001600160a01b0316336001600160a01b03161461077d57600080fd5b60405133904780156108fc02916000818181858888f193505050501580156107a9573d6000803e3d6000fd5b50565b60606004805461058a90611718565b600033816107c98286610844565b9050838110156108295760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f5565b61064082868684036108fc565b60003361061b818585610a9a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610877611080565b6001600160a01b0381166108dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f5565b6107a9816110da565b6108ed611080565b6010805460ff19166001179055565b6001600160a01b03831661095e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f5565b6001600160a01b0382166109bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a2c8484610844565b90506000198114610a945781811015610a875760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106f5565b610a9484848484036108fc565b50505050565b6001600160a01b038316610ac05760405162461bcd60e51b81526004016106f59061177b565b6001600160a01b038216610ae65760405162461bcd60e51b81526004016106f5906117c0565b80600003610aff57610afa8383600061112c565b505050565b6001600160a01b03831660009081526015602052604081205460ff16158015610b4157506001600160a01b03831660009081526015602052604090205460ff16155b9050610b556005546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610b8457506005546001600160a01b03848116911614155b8015610b9857506001600160a01b03831615155b8015610baf57506001600160a01b03831661dead14155b8015610bc55750600854600160a01b900460ff16155b15610eaa5760105460ff16610c58576001600160a01b03841660009081526013602052604090205460ff1680610c1357506001600160a01b03831660009081526013602052604090205460ff165b610c585760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106f5565b6001600160a01b03841660009081526015602052604090205460ff168015610c9957506001600160a01b03831660009081526014602052604090205460ff16155b15610d7357600d54821115610d045760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a393729b4bd329760a91b60648201526084016106f5565b600e546001600160a01b038416600090815260208190526040902054610d2a9084611768565b1115610d6e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106f5565b610eaa565b6001600160a01b03831660009081526015602052604090205460ff168015610db457506001600160a01b03841660009081526014602052604090205460ff16155b15610e2057600d54821115610d6e5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a393729b4bd329760a11b60648201526084016106f5565b6001600160a01b03831660009081526014602052604090205460ff16610eaa57600e546001600160a01b038416600090815260208190526040902054610e669084611768565b1115610eaa5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016106f5565b306000908152602081905260409020548115808015610ed35750600854600160a01b900460ff16155b8015610ef857506001600160a01b03861660009081526015602052604090205460ff16155b8015610f1d57506001600160a01b03861660009081526013602052604090205460ff16155b8015610f4257506001600160a01b03851660009081526013602052604090205460ff16155b15610f7a576008805460ff60a01b1916600160a01b179055610f6384611256565b610f6c476113a5565b6008805460ff60a01b191690555b600854600090600160a01b900460ff16158015610f95575083155b6001600160a01b03881660009081526013602052604090205490915060ff1680610fd757506001600160a01b03861660009081526013602052604090205460ff165b15610fe0575060005b6000811561106b576001600160a01b03871660009081526015602052604090205460ff1615611030576110296064611023601254896113df90919063ffffffff16565b906113f2565b905061104d565b61104a6064611023601154896113df90919063ffffffff16565b90505b801561105e5761105e88308361112c565b6110688187611803565b95505b61107688888861112c565b5050505050505050565b6005546001600160a01b0316331461073c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106f5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166111525760405162461bcd60e51b81526004016106f59061177b565b6001600160a01b0382166111785760405162461bcd60e51b81526004016106f5906117c0565b6001600160a01b038316600090815260208190526040902054818110156111f05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a94565b306000908152602081905260408120549081810361127357505050565b6012546011546112839190611768565b6000036112ef5760008211801561129b5750600f5482105b156112a757508061139c565b60006112c36064611023601254876113df90919063ffffffff16565b90506112cf8185611803565b9350600f548411156112e557600f5491506112e9565b8391505b5061139c565b60008211801561130b5750600f546113089060056113f2565b82105b1561131557505050565b6000821180156113315750600f5461132e9060056113f2565b82115b801561133e5750600f5482105b1561135857600f546113519060056113f2565b905061139c565b60006113746064611023601254876113df90919063ffffffff16565b90506113808185611803565b9350600f5484111561139657600f54915061139a565b8391505b505b610afa816113fe565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610726573d6000803e3d6000fd5b60006113eb8284611816565b9392505050565b60006113eb828461182d565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114335761143361184f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d59190611865565b816001815181106114e8576114e861184f565b60200260200101906001600160a01b031690816001600160a01b031681525050611533307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846108fc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611588908590600090869030904290600401611882565b600060405180830381600087803b1580156115a257600080fd5b505af11580156115b6573d6000803e3d6000fd5b505050505050565b60006020808352835180602085015260005b818110156115ec578581018301518582016040015282016115d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a957600080fd5b6000806040838503121561163557600080fd5b82356116408161160d565b946020939093013593505050565b60008060006060848603121561166357600080fd5b833561166e8161160d565b9250602084013561167e8161160d565b929592945050506040919091013590565b600080604083850312156116a257600080fd5b82356116ad8161160d565b9150602083013580151581146116c257600080fd5b809150509250929050565b6000602082840312156116df57600080fd5b81356113eb8161160d565b600080604083850312156116fd57600080fd5b82356117088161160d565b915060208301356116c28161160d565b600181811c9082168061172c57607f821691505b60208210810361174c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062157610621611752565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561062157610621611752565b808202811582820484141761062157610621611752565b60008261184a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187757600080fd5b81516113eb8161160d565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156118d45784516001600160a01b0316835293830193918301916001016118af565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208410dadc9b3b667e5255cc18690c3f8fce67ce34e7993c8dcf5687fe17850f4064736f6c63430008180033
Deployed Bytecode Sourcemap
14666:8252:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9312:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10243:201;;;;;;;;;;-1:-1:-1;10243:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10243:201:0;1023:187:1;15420:26:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;15420:26:0;1215:177:1;9632:108:0;;;;;;;;;;-1:-1:-1;9720:12:0;;9632:108;;10452:295;;;;;;;;;;-1:-1:-1;10452:295:0;;;;;:::i;:::-;;:::i;9532:92::-;;;;;;;;;;-1:-1:-1;9532:92:0;;9615:1;2000:36:1;;1988:2;1973:18;9532:92:0;1858:184:1;10755:238:0;;;;;;;;;;-1:-1:-1;10755:238:0;;;;;:::i;:::-;;:::i;17582:226::-;;;;;;;;;;-1:-1:-1;17582:226:0;;;;;:::i;:::-;;:::i;:::-;;15174:42;;;;;;;;;;;;;;;;17954:126;;;;;;;;;;-1:-1:-1;17954:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18044:28:0;18020:4;18044:28;;;:19;:28;;;;;;;;;17954:126;14745:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2909:32:1;;;2891:51;;2879:2;2864:18;14745:52:0;2720:228:1;15073:47:0;;;;;;;;;;;;;;;;9748:127;;;;;;;;;;-1:-1:-1;9748:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9849:18:0;9822:7;9849:18;;;;;;;;;;;;9748:127;8387:103;;;;;;;;;;;;;:::i;21060:169::-;;;;;;;;;;;;;:::i;15223:40::-;;;;;;;;;;;;;;;;15453:27;;;;;;;;;;;;;;;;21237:156;;;;;;;;;;;;;:::i;15272:25::-;;;;;;;;;;;;;;;;8152:87;;;;;;;;;;-1:-1:-1;8225:6:0;;-1:-1:-1;;;;;8225:6:0;8152:87;;15304:28;;;;;;;;;;;;;;;;9420:104;;;;;;;;;;;;;:::i;11001:436::-;;;;;;;;;;-1:-1:-1;11001:436:0;;;;;:::i;:::-;;:::i;9883:193::-;;;;;;;;;;-1:-1:-1;9883:193:0;;;;;:::i;:::-;;:::i;15129:38::-;;;;;;;;;;;;;;;;10084:151;;;;;;;;;;-1:-1:-1;10084:151:0;;;;;:::i;:::-;;:::i;15381:30::-;;;;;;;;;;-1:-1:-1;15381:30:0;;;;;;;;15339:33;;;;;;;;;;;;;;;;8498:201;;;;;;;;;;-1:-1:-1;8498:201:0;;;;;:::i;:::-;;:::i;17156:73::-;;;;;;;;;;;;;:::i;9312:100::-;9366:13;9399:5;9392:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9312:100;:::o;10243:201::-;10326:4;703:10;10382:32;703:10;10398:7;10407:6;10382:8;:32::i;:::-;10432:4;10425:11;;;10243:201;;;;;:::o;10452:295::-;10583:4;703:10;10641:38;10657:4;703:10;10672:6;10641:15;:38::i;:::-;10690:27;10700:4;10706:2;10710:6;10690:9;:27::i;:::-;-1:-1:-1;10735:4:0;;10452:295;-1:-1:-1;;;;10452:295:0:o;10755:238::-;10843:4;703:10;10899:64;703:10;10915:7;10952:10;10924:25;703:10;10915:7;10924:9;:25::i;:::-;:38;;;;:::i;:::-;10899:8;:64::i;17582:226::-;8111:13;:11;:13::i;:::-;17673::::1;::::0;-1:-1:-1;;;;;17673:13:0;;::::1;17665:21:::0;;::::1;::::0;17657:91:::1;;;::::0;-1:-1:-1;;;17657:91:0;;4403:2:1;17657:91:0::1;::::0;::::1;4385:21:1::0;4442:2;4422:18;;;4415:30;4481:34;4461:18;;;4454:62;4552:27;4532:18;;;4525:55;4597:19;;17657:91:0::1;;;;;;;;;-1:-1:-1::0;;;;;17899:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;17899:39:0;;;;;;;17582:226;;:::o;17759:41::-:1;17582:226:::0;;:::o;8387:103::-;8111:13;:11;:13::i;:::-;8452:30:::1;8479:1;8452:18;:30::i;:::-;8387:103::o:0;21060:169::-;8111:13;:11;:13::i;:::-;21127:12:::1;::::0;21114:10:::1;:25:::0;;;21150:13:::1;:28:::0;-1:-1:-1;21189:6:0::1;:10:::0;;;21210:7:::1;:11:::0;21060:169::o;21237:156::-;21306:16;;-1:-1:-1;;;;;21306:16:0;703:10;-1:-1:-1;;;;;21290:32:0;;21282:41;;;;;;21334:51;;21342:10;;21363:21;21334:51;;;;;;;;;21363:21;21342:10;21334:51;;;;;;;;;;;;;;;;;;;;;21237:156::o;9420:104::-;9476:13;9509:7;9502:14;;;;;:::i;11001:436::-;11094:4;703:10;11094:4;11177:25;703:10;11194:7;11177:9;:25::i;:::-;11150:52;;11241:15;11221:16;:35;;11213:85;;;;-1:-1:-1;;;11213:85:0;;4829:2:1;11213:85:0;;;4811:21:1;4868:2;4848:18;;;4841:30;4907:34;4887:18;;;4880:62;-1:-1:-1;;;4958:18:1;;;4951:35;5003:19;;11213:85:0;4627:401:1;11213:85:0;11334:60;11343:5;11350:7;11378:15;11359:16;:34;11334:8;:60::i;9883:193::-;9962:4;703:10;10018:28;703:10;10035:2;10039:6;10018:9;:28::i;10084:151::-;-1:-1:-1;;;;;10200:18:0;;;10173:7;10200:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10084:151::o;8498:201::-;8111:13;:11;:13::i;:::-;-1:-1:-1;;;;;8587:22:0;::::1;8579:73;;;::::0;-1:-1:-1;;;8579:73:0;;5235:2:1;8579:73:0::1;::::0;::::1;5217:21:1::0;5274:2;5254:18;;;5247:30;5313:34;5293:18;;;5286:62;-1:-1:-1;;;5364:18:1;;;5357:36;5410:19;;8579:73:0::1;5033:402:1::0;8579:73:0::1;8663:28;8682:8;8663:18;:28::i;17156:73::-:0;8111:13;:11;:13::i;:::-;17204:10:::1;:17:::0;;-1:-1:-1;;17204:17:0::1;17217:4;17204:17;::::0;;17156:73::o;13553:380::-;-1:-1:-1;;;;;13689:19:0;;13681:68;;;;-1:-1:-1;;;13681:68:0;;5642:2:1;13681:68:0;;;5624:21:1;5681:2;5661:18;;;5654:30;5720:34;5700:18;;;5693:62;-1:-1:-1;;;5771:18:1;;;5764:34;5815:19;;13681:68:0;5440:400:1;13681:68:0;-1:-1:-1;;;;;13768:21:0;;13760:68;;;;-1:-1:-1;;;13760:68:0;;6047:2:1;13760:68:0;;;6029:21:1;6086:2;6066:18;;;6059:30;6125:34;6105:18;;;6098:62;-1:-1:-1;;;6176:18:1;;;6169:32;6218:19;;13760:68:0;5845:398:1;13760:68:0;-1:-1:-1;;;;;13841:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13893:32;;1361:25:1;;;13893:32:0;;1334:18:1;13893:32:0;;;;;;;13553:380;;;:::o;13941:453::-;14076:24;14103:25;14113:5;14120:7;14103:9;:25::i;:::-;14076:52;;-1:-1:-1;;14143:16:0;:37;14139:248;;14225:6;14205:16;:26;;14197:68;;;;-1:-1:-1;;;14197:68:0;;6450:2:1;14197:68:0;;;6432:21:1;6489:2;6469:18;;;6462:30;6528:31;6508:18;;;6501:59;6577:18;;14197:68:0;6248:353:1;14197:68:0;14309:51;14318:5;14325:7;14353:6;14334:16;:25;14309:8;:51::i;:::-;14065:329;13941:453;;;:::o;18088:2477::-;-1:-1:-1;;;;;18188:18:0;;18180:68;;;;-1:-1:-1;;;18180:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18267:16:0;;18259:64;;;;-1:-1:-1;;;18259:64:0;;;;;;;:::i;:::-;18340:6;18350:1;18340:11;18336:93;;18368:28;18384:4;18390:2;18394:1;18368:15;:28::i;:::-;18088:2477;;;:::o;18336:93::-;-1:-1:-1;;;;;18466:31:0;;18447:15;18466:31;;;:25;:31;;;;;;;;18465:32;:66;;;;-1:-1:-1;;;;;;18502:29:0;;;;;;:25;:29;;;;;;;;18501:30;18465:66;18447:84;;18564:7;8225:6;;-1:-1:-1;;;;;8225:6:0;;8152:87;18564:7;-1:-1:-1;;;;;18556:15:0;:4;-1:-1:-1;;;;;18556:15:0;;;:32;;;;-1:-1:-1;8225:6:0;;-1:-1:-1;;;;;18575:13:0;;;8225:6;;18575:13;;18556:32;:52;;;;-1:-1:-1;;;;;;18592:16:0;;;;18556:52;:77;;;;-1:-1:-1;;;;;;18612:21:0;;18626:6;18612:21;;18556:77;:88;;;;-1:-1:-1;18638:6:0;;-1:-1:-1;;;18638:6:0;;;;18637:7;18556:88;18552:995;;;18672:10;;;;18667:147;;-1:-1:-1;;;;;18715:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18744:23:0;;;;;;:19;:23;;;;;;;;18715:52;18707:87;;;;-1:-1:-1;;;18707:87:0;;7618:2:1;18707:87:0;;;7600:21:1;7657:2;7637:18;;;7630:30;-1:-1:-1;;;7676:18:1;;;7669:52;7738:18;;18707:87:0;7416:346:1;18707:87:0;-1:-1:-1;;;;;18838:31:0;;;;;;:25;:31;;;;;;;;:61;;;;-1:-1:-1;;;;;;18874:25:0;;;;;;:21;:25;;;;;;;;18873:26;18838:61;18834:698;;;18960:10;;18950:6;:20;;18942:76;;;;-1:-1:-1;;;18942:76:0;;7969:2:1;18942:76:0;;;7951:21:1;8008:2;7988:18;;;7981:30;8047:34;8027:18;;;8020:62;-1:-1:-1;;;8098:18:1;;;8091:41;8149:19;;18942:76:0;7767:407:1;18942:76:0;19075:13;;-1:-1:-1;;;;;9849:18:0;;9822:7;9849:18;;;;;;;;;;;19049:22;;:6;:22;:::i;:::-;:39;;19041:71;;;;-1:-1:-1;;;19041:71:0;;8381:2:1;19041:71:0;;;8363:21:1;8420:2;8400:18;;;8393:30;-1:-1:-1;;;8439:18:1;;;8432:49;8498:18;;19041:71:0;8179:343:1;19041:71:0;18834:698;;;-1:-1:-1;;;;;19161:29:0;;;;;;:25;:29;;;;;;;;:61;;;;-1:-1:-1;;;;;;19195:27:0;;;;;;:21;:27;;;;;;;;19194:28;19161:61;19157:375;;;19265:10;;19255:6;:20;;19247:77;;;;-1:-1:-1;;;19247:77:0;;8729:2:1;19247:77:0;;;8711:21:1;8768:2;8748:18;;;8741:30;8807:34;8787:18;;;8780:62;-1:-1:-1;;;8858:18:1;;;8851:42;8910:19;;19247:77:0;8527:408:1;19157:375:0;-1:-1:-1;;;;;19391:25:0;;;;;;:21;:25;;;;;;;;19386:146;;19475:13;;-1:-1:-1;;;;;9849:18:0;;9822:7;9849:18;;;;;;;;;;;19449:22;;:6;:22;:::i;:::-;:39;;19441:71;;;;-1:-1:-1;;;19441:71:0;;8381:2:1;19441:71:0;;;8363:21:1;8420:2;8400:18;;;8393:30;-1:-1:-1;;;8439:18:1;;;8432:49;8498:18;;19441:71:0;8179:343:1;19441:71:0;19608:4;19559:28;9849:18;;;;;;;;;;;19671:11;;;19699:18;;;;-1:-1:-1;19711:6:0;;-1:-1:-1;;;19711:6:0;;;;19710:7;19699:18;:54;;;;-1:-1:-1;;;;;;19722:31:0;;;;;;:25;:31;;;;;;;;19721:32;19699:54;:84;;;;-1:-1:-1;;;;;;19758:25:0;;;;;;:19;:25;;;;;;;;19757:26;19699:84;:112;;;;-1:-1:-1;;;;;;19788:23:0;;;;;;:19;:23;;;;;;;;19787:24;19699:112;19695:268;;;19828:6;:13;;-1:-1:-1;;;;19828:13:0;-1:-1:-1;;;19828:13:0;;;19856:16;19865:6;19856:8;:16::i;:::-;19887:35;19900:21;19887:12;:35::i;:::-;19937:6;:14;;-1:-1:-1;;;;19937:14:0;;;19695:268;19991:6;;19975:12;;-1:-1:-1;;;19991:6:0;;;;19990:7;:22;;;;;20002:10;20001:11;19990:22;-1:-1:-1;;;;;20029:25:0;;;;;;:19;:25;;;;;;19975:37;;-1:-1:-1;20029:25:0;;;:52;;-1:-1:-1;;;;;;20058:23:0;;;;;;:19;:23;;;;;;;;20029:52;20025:100;;;-1:-1:-1;20108:5:0;20025:100;20137:12;20170:7;20166:348;;;-1:-1:-1;;;;;20198:29:0;;;;;;:25;:29;;;;;;;;20194:193;;;20255:28;20279:3;20255:19;20266:7;;20255:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20248:35;;20194:193;;;20344:27;20367:3;20344:18;20355:6;;20344;:10;;:18;;;;:::i;:27::-;20337:34;;20194:193;20403:8;;20399:83;;20428:42;20444:4;20458;20465;20428:15;:42::i;:::-;20492:14;20502:4;20492:14;;:::i;:::-;;;20166:348;20524:33;20540:4;20546:2;20550:6;20524:15;:33::i;:::-;18167:2398;;;;;18088:2477;;;:::o;8247:132::-;8225:6;;-1:-1:-1;;;;;8225:6:0;703:10;8311:23;8303:68;;;;-1:-1:-1;;;8303:68:0;;9275:2:1;8303:68:0;;;9257:21:1;;;9294:18;;;9287:30;9353:34;9333:18;;;9326:62;9405:18;;8303:68:0;9073:356:1;8707:191:0;8800:6;;;-1:-1:-1;;;;;8817:17:0;;;-1:-1:-1;;;;;;8817:17:0;;;;;;;8850:40;;8800:6;;;8817:17;8800:6;;8850:40;;8781:16;;8850:40;8770:128;8707:191;:::o;11445:675::-;-1:-1:-1;;;;;11576:18:0;;11568:68;;;;-1:-1:-1;;;11568:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11655:16:0;;11647:64;;;;-1:-1:-1;;;11647:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11797:15:0;;11775:19;11797:15;;;;;;;;;;;11831:21;;;;11823:72;;;;-1:-1:-1;;;11823:72:0;;9636:2:1;11823:72:0;;;9618:21:1;9675:2;9655:18;;;9648:30;9714:34;9694:18;;;9687:62;-1:-1:-1;;;9765:18:1;;;9758:36;9811:19;;11823:72:0;9434:402:1;11823:72:0;-1:-1:-1;;;;;11931:15:0;;;:9;:15;;;;;;;;;;;11949:20;;;11931:38;;11984:13;;;;;;;;;;:23;;;;;;12036:26;;1361:25:1;;;11984:13:0;;12036:26;;1334:18:1;12036:26:0;;;;;;;12075:37;18088:2477;21401:1393;21498:4;21454:23;9849:18;;;;;;;;;;;;21553:20;;;21549:59;;21590:7;;21401:1393;:::o;21549:59::-;21628:7;;21621:6;;:14;;;;:::i;:::-;21640:1;21620:21;21616:1130;;21677:1;21659:15;:19;:59;;;;;21700:18;;21682:15;:36;21659:59;21656:443;;;-1:-1:-1;21750:15:0;21616:1130;;21656:443;21807:21;21831:28;21855:3;21831:19;21842:7;;21831:6;:10;;:19;;;;:::i;:28::-;21807:52;-1:-1:-1;21874:23:0;21807:52;21874:23;;:::i;:::-;;;21925:18;;21916:6;:27;21912:176;;;21979:18;;21964:33;;21912:176;;;22066:6;22051:21;;21912:176;21792:307;21616:1130;;;22153:1;22135:15;:19;:66;;;;-1:-1:-1;22176:18:0;;:25;;22199:1;22176:22;:25::i;:::-;22158:15;:43;22135:66;22132:607;;;22218:7;;21401:1393;:::o;22132:607::-;22273:1;22255:15;:19;:66;;;;-1:-1:-1;22296:18:0;;:25;;22319:1;22296:22;:25::i;:::-;22278:15;:43;22255:66;:106;;;;;22343:18;;22325:15;:36;22255:106;22251:488;;;22393:18;;:25;;22416:1;22393:22;:25::i;:::-;22378:40;;22251:488;;;22460:21;22484:28;22508:3;22484:19;22495:7;;22484:6;:10;;:19;;;;:::i;:28::-;22460:52;-1:-1:-1;22527:23:0;22460:52;22527:23;;:::i;:::-;;;22578:18;;22569:6;:27;22565:163;;;22632:18;;22617:33;;22565:163;;;22706:6;22691:21;;22565:163;22445:294;22251:488;22756:30;22773:12;22756:16;:30::i;22806:109::-;22871:18;;22863:44;;-1:-1:-1;;;;;22871:18:0;;;;22863:44;;;;;22900:6;;22871:18;22863:44;22871:18;22863:44;22900:6;22871:18;22863:44;;;;;;;;;;;;;;;;;;;5948:98;6006:7;6033:5;6037:1;6033;:5;:::i;:::-;6026:12;5948:98;-1:-1:-1;;;5948:98:0:o;6054:::-;6112:7;6139:5;6143:1;6139;:5;:::i;20573:480::-;20665:16;;;20679:1;20665:16;;;;;;;;20641:21;;20665:16;;;;;;;;;;-1:-1:-1;20665:16:0;20641:40;;20710:4;20692;20697:1;20692:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20692:23:0;;;-1:-1:-1;;;;;20692:23:0;;;;;20736:16;-1:-1:-1;;;;;20736:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20726:4;20731:1;20726:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;20726:33:0;;;-1:-1:-1;;;;;20726:33:0;;;;;20772:63;20789:4;20804:16;20823:11;20772:8;:63::i;:::-;20848:197;;-1:-1:-1;;;20848:197:0;;-1:-1:-1;;;;;20848:16:0;:67;;;;:197;;20930:11;;20956:1;;20972:4;;20999;;21019:15;;20848:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20628:425;20573:480;:::o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:416::-;2112:6;2120;2173:2;2161:9;2152:7;2148:23;2144:32;2141:52;;;2189:1;2186;2179:12;2141:52;2228:9;2215:23;2247:31;2272:5;2247:31;:::i;:::-;2297:5;-1:-1:-1;2354:2:1;2339:18;;2326:32;2396:15;;2389:23;2377:36;;2367:64;;2427:1;2424;2417:12;2367:64;2450:7;2440:17;;;2047:416;;;;;:::o;2468:247::-;2527:6;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;2635:9;2622:23;2654:31;2679:5;2654:31;:::i;3161:388::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3345:9;3332:23;3364:31;3389:5;3364:31;:::i;:::-;3414:5;-1:-1:-1;3471:2:1;3456:18;;3443:32;3484:33;3443:32;3484:33;:::i;3554:380::-;3633:1;3629:12;;;;3676;;;3697:61;;3751:4;3743:6;3739:17;3729:27;;3697:61;3804:2;3796:6;3793:14;3773:18;3770:38;3767:161;;3850:10;3845:3;3841:20;3838:1;3831:31;3885:4;3882:1;3875:15;3913:4;3910:1;3903:15;3767:161;;3554:380;;;:::o;3939:127::-;4000:10;3995:3;3991:20;3988:1;3981:31;4031:4;4028:1;4021:15;4055:4;4052:1;4045:15;4071:125;4136:9;;;4157:10;;;4154:36;;;4170:18;;:::i;6606:401::-;6808:2;6790:21;;;6847:2;6827:18;;;6820:30;6886:34;6881:2;6866:18;;6859:62;-1:-1:-1;;;6952:2:1;6937:18;;6930:35;6997:3;6982:19;;6606:401::o;7012:399::-;7214:2;7196:21;;;7253:2;7233:18;;;7226:30;7292:34;7287:2;7272:18;;7265:62;-1:-1:-1;;;7358:2:1;7343:18;;7336:33;7401:3;7386:19;;7012:399::o;8940:128::-;9007:9;;;9028:11;;;9025:37;;;9042:18;;:::i;9841:168::-;9914:9;;;9945;;9962:15;;;9956:22;;9942:37;9932:71;;9983:18;;:::i;10014:217::-;10054:1;10080;10070:132;;10124:10;10119:3;10115:20;10112:1;10105:31;10159:4;10156:1;10149:15;10187:4;10184:1;10177:15;10070:132;-1:-1:-1;10216:9:1;;10014:217::o;10368:127::-;10429:10;10424:3;10420:20;10417:1;10410:31;10460:4;10457:1;10450:15;10484:4;10481:1;10474:15;10500:251;10570:6;10623:2;10611:9;10602:7;10598:23;10594:32;10591:52;;;10639:1;10636;10629:12;10591:52;10671:9;10665:16;10690:31;10715:5;10690:31;:::i;10756:980::-;11018:4;11066:3;11055:9;11051:19;11097:6;11086:9;11079:25;11123:2;11161:6;11156:2;11145:9;11141:18;11134:34;11204:3;11199:2;11188:9;11184:18;11177:31;11228:6;11263;11257:13;11294:6;11286;11279:22;11332:3;11321:9;11317:19;11310:26;;11371:2;11363:6;11359:15;11345:29;;11392:1;11402:195;11416:6;11413:1;11410:13;11402:195;;;11481:13;;-1:-1:-1;;;;;11477:39:1;11465:52;;11572:15;;;;11537:12;;;;11513:1;11431:9;11402:195;;;-1:-1:-1;;;;;;;11653:32:1;;;;11648:2;11633:18;;11626:60;-1:-1:-1;;;11717:3:1;11702:19;11695:35;11614:3;10756:980;-1:-1:-1;;;10756:980:1:o
Swarm Source
ipfs://8410dadc9b3b667e5255cc18690c3f8fce67ce34e7993c8dcf5687fe17850f40
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.