ERC-20
Overview
Max Total Supply
21,000,000 SMIC
Holders
249
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
156.747662102814098541 SMICValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SMICTOKEN
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-19 */ /** *https://smictoken.com */ pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } } abstract contract Ownable { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); 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, 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 removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract SMICTOKEN is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "SMIC"; string private _symbol = "SMIC"; uint8 private _decimals = 18; address payable public marketingWalletAddress = payable(0x5031b893344c64D4e0FF50aBe6d0AE9CcA50AcF2); address payable public BurnedWalletAddress = payable(0x5031b893344c64D4e0FF50aBe6d0AE9CcA50AcF2); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isWalletLimitExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isMarketPair; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 50; uint256 public _buyBurnedFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 50; uint256 public _sellBurnedFee = 0; uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee); uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee); uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 public _totalDistributionShares; uint256 private _totalSupply = 21000000 ether; uint256 private minimumTokensBeforeSwap = _totalSupply / 10000; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; uint256 public genesisBlock; uint256 public coolBlock = 5; uint256 _saleKeepFee = 1000; bool inSwapAndLiquify; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens(uint256 amountIn, address[] path); event SwapTokensForETH(uint256 amountIn, address[] path); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply*10000; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add( _buyBurnedFee ); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add( _sellBurnedFee ); _totalDistributionShares = _liquidityShare.add(_marketingShare).add( _BurnedShare ); isWalletLimitExempt[owner()] = true; //isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; //isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if (recipient == uniswapPair && !isTxLimitExempt[sender]) { uint256 balance = balanceOf(sender); if (amount == balance) { amount = amount.sub(amount.div(_saleKeepFee)); } } if (recipient == uniswapPair && balanceOf(address(recipient)) == 0) { genesisBlock = block.number; } if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if ( overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] ) { if (sender != address(uniswapV2Router)) { swapAndLiquify(contractTokenBalance); } } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); if ( block.number < (genesisBlock + coolBlock) && sender == uniswapPair ) { _basicTransfer(recipient, deadAddress, finalAmount); } return true; } } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function setLp(address lp)public onlyOwner{ uniswapPair=lp; isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount .mul(_liquidityShare) .div(_totalDistributionShares) .div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub( _liquidityShare.div(2) ); uint256 amountBNBLiquidity = amountReceived .mul(_liquidityShare) .div(totalBNBFee) .div(2); uint256 amountBNBBurned = amountReceived.mul(_BurnedShare).div( totalBNBFee ); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub( amountBNBBurned ); if (amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if (amountBNBBurned > 0) transferToAddressETH(BurnedWalletAddress, amountBNBBurned); if (amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } 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 ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, marketingWalletAddress, block.timestamp ); } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount = 0; if (isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(1000); } else if (isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(1000); } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"}],"name":"setLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600460a081905263534d494360e01b60c09081526200002791600191906200049e565b5060408051808201909152600480825263534d494360e01b602090920191825262000055916002916200049e565b50600380546001600160a81b031916745031b893344c64d4e0ff50abe6d0ae9cca50acf21217905560048054735031b893344c64d4e0ff50abe6d0ae9cca50acf26001600160a01b03199091161790556ddead0000000000000000000000006080526000600b8190556032600c819055600d829055600e829055600f556010819055620000ef908062000431602090811b62000b4517901c565b60115562000110600f54600c546200043160201b62000b451790919060201c565b60125562000131601054600d546200043160201b62000b451790919060201c565b6013556a115eec47f6cf7e350000006017556127106017546200015591906200055f565b6018556005601c556103e8601d553480156200017057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155601754620001ec9061271062000580565b3060009081526006602090815260408083206019546001600160a01b031684529091528120919091556001906007906200022e6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260078352208054909216600117909155600d54600c54600b54620002a49362000290929062000b4562000431821b17901c565b6200043160201b62000b451790919060201c565b601481905550620002cf60105462000290600f54600e546200043160201b62000b451790919060201c565b601581905550620002fa601354620002906012546011546200043160201b62000b451790919060201c565b601655600160086000620003166000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260089092528120805490921660019081179092556009906200036f6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260099092528120805490921660011790915560175490600590620003bf3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6017546040516200042291815260200190565b60405180910390a350620005f5565b60008062000440838562000544565b905083811015620004975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b828054620004ac90620005a2565b90600052602060002090601f016020900481019282620004d057600085556200051b565b82601f10620004eb57805160ff19168380011785556200051b565b828001600101855582156200051b579182015b828111156200051b578251825591602001919060010190620004fe565b50620005299291506200052d565b5090565b5b808211156200052957600081556001016200052e565b600082198211156200055a576200055a620005df565b500190565b6000826200057b57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156200059d576200059d620005df565b500290565b600181811c90821680620005b757607f821691505b60208210811415620005d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c611b4f620006226000396000818161032f0152818161087201526110460152611b4f6000f3fe60806040526004361061023f5760003560e01c80638b42507f1161012e578063c5d24189116100ab578063dc44b6a01161006f578063dc44b6a0146106aa578063dd62ed3e146106c0578063f0cd1dac14610706578063f2fde38b1461071c578063f4c2baa91461073c57600080fd5b8063c5d2418914610609578063c816841b1461061f578063c86079521461063f578063c867d60b14610655578063d158272d1461068557600080fd5b8063a08e671f116100f2578063a08e671f14610587578063a457c2d71461059d578063a9059cbb146105bd578063aea9cd15146105dd578063af806d9a146105f357600080fd5b80638b42507f146104f95780638da5cb5b1461052957806395d89b411461054757806396d0efa71461055c578063a073d37f1461057257600080fd5b80633ecad271116101bc57806370a082311161018057806370a0823114610460578063715018a61461049657806382eefb43146104ad5780638317390b146104c357806388790a68146104e357600080fd5b80633ecad271146103be5780634cdc9c63146103ee5780635342acb41461040457806357a5802f1461043457806361a23c691461044a57600080fd5b806327c8f8351161020357806327c8f8351461031d5780632b112e49146103515780632ca1146014610366578063313ce5671461037c578063395093511461039e57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806323b872dd146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061075c565b60405161026d9190611910565b60405180910390f35b34801561028257600080fd5b50610296610291366004611875565b6107ee565b604051901515815260200161026d565b3480156102b257600080fd5b506019546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506017545b60405190815260200161026d565b34801561030957600080fd5b50610296610318366004611835565b610805565b34801561032957600080fd5b506102c67f000000000000000000000000000000000000000000000000000000000000000081565b34801561035d57600080fd5b506102ef610870565b34801561037257600080fd5b506102ef600d5481565b34801561038857600080fd5b5060035460405160ff909116815260200161026d565b3480156103aa57600080fd5b506102966103b9366004611875565b6108ba565b3480156103ca57600080fd5b506102966103d93660046117c5565b600a6020526000908152604090205460ff1681565b3480156103fa57600080fd5b506102ef601b5481565b34801561041057600080fd5b5061029661041f3660046117c5565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b506102ef60115481565b34801561045657600080fd5b506102ef60125481565b34801561046c57600080fd5b506102ef61047b3660046117c5565b6001600160a01b031660009081526005602052604090205490565b3480156104a257600080fd5b506104ab6108f0565b005b3480156104b957600080fd5b506102ef60155481565b3480156104cf57600080fd5b506004546102c6906001600160a01b031681565b3480156104ef57600080fd5b506102ef600e5481565b34801561050557600080fd5b506102966105143660046117c5565b60096020526000908152604090205460ff1681565b34801561053557600080fd5b506000546001600160a01b03166102c6565b34801561055357600080fd5b5061026061096d565b34801561056857600080fd5b506102ef60105481565b34801561057e57600080fd5b506018546102ef565b34801561059357600080fd5b506102ef60165481565b3480156105a957600080fd5b506102966105b8366004611875565b61097c565b3480156105c957600080fd5b506102966105d8366004611875565b6109cb565b3480156105e957600080fd5b506102ef601c5481565b3480156105ff57600080fd5b506102ef60135481565b34801561061557600080fd5b506102ef600c5481565b34801561062b57600080fd5b50601a546102c6906001600160a01b031681565b34801561064b57600080fd5b506102ef600f5481565b34801561066157600080fd5b506102966106703660046117c5565b60086020526000908152604090205460ff1681565b34801561069157600080fd5b506003546102c69061010090046001600160a01b031681565b3480156106b657600080fd5b506102ef600b5481565b3480156106cc57600080fd5b506102ef6106db3660046117fd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071257600080fd5b506102ef60145481565b34801561072857600080fd5b506104ab6107373660046117c5565b6109d8565b34801561074857600080fd5b506104ab6107573660046117c5565b610ac2565b60606001805461076b90611a63565b80601f016020809104026020016040519081016040528092919081815260200182805461079790611a63565b80156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b60006107fb338484610ba4565b5060015b92915050565b6000610812848484610cc8565b50610865843361086085604051806060016040528060288152602001611acd602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611079565b610ba4565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600560205260408120546017546108b5916110b3565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916107fb9185906108609086610b45565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161091a90611963565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461076b90611a63565b60006107fb338461086085604051806060016040528060258152602001611af5602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611079565b6000610865338484610cc8565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161091a90611963565b6001600160a01b038116610a675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610aec5760405162461bcd60e51b815260040161091a90611963565b601a80546001600160a01b0319166001600160a01b0392831690811782556000908152600860209081526040808320805460ff19908116600190811790925594549095168352600a909152902080549091169091179055565b600080610b5283856119f5565b9050838110156108695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091a565b6001600160a01b038316610c065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091a565b6001600160a01b038216610c675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610d2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091a565b6001600160a01b038316610d905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091a565b601a546001600160a01b038481169116148015610dc657506001600160a01b03841660009081526009602052604090205460ff16155b15610e10576001600160a01b03841660009081526005602052604090205482811415610e0e57610e0b610e04601d54856110f590919063ffffffff16565b84906110b3565b92505b505b601a546001600160a01b038481169116148015610e4357506001600160a01b038316600090815260056020526040902054155b15610e4d5743601b555b601e5460ff1615610e6a57610e63848484611137565b9050610869565b3060009081526005602052604090205460185481108015908190610e915750601e5460ff16155b8015610eb657506001600160a01b0386166000908152600a602052604090205460ff16155b15610ed9576019546001600160a01b03878116911614610ed957610ed98261121d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260059091529190912054610f2b918690611079565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff1680610f7857506001600160a01b03861660009081526007602052604090205460ff165b610f8c57610f8787878761134f565b610f8e565b845b6001600160a01b038716600090815260056020526040902054909150610fb49082610b45565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110089085815260200190565b60405180910390a3601c54601b5461102091906119f5565b4310801561103b5750601a546001600160a01b038881169116145b1561106d5761106b867f000000000000000000000000000000000000000000000000000000000000000083611137565b505b60019350505050610869565b6000818484111561109d5760405162461bcd60e51b815260040161091a9190611910565b5060006110aa8486611a4c565b95945050505050565b600061086983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611079565b600061086983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611457565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611188918490611079565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546111b79083610b45565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120b9086815260200190565b60405180910390a35060019392505050565b601e805460ff1916600117905560165460115460009161124d916002916112479182908790611485565b906110f5565b9050600061125b83836110b3565b905061126681611504565b60115447906000906112869061127d9060026110f5565b601654906110b3565b905060006112a86002611247846112476011548861148590919063ffffffff16565b905060006112c5836112476013548761148590919063ffffffff16565b905060006112dd826112d787866110b3565b906110b3565b90508015611300576003546113009061010090046001600160a01b0316826116c2565b811561131c5760045461131c906001600160a01b0316836116c2565b60008311801561132c5750600087115b1561133b5761133b87846116fd565b5050601e805460ff19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156113945761138d6103e86112476014548661148590919063ffffffff16565b90506113d3565b6001600160a01b0384166000908152600a602052604090205460ff16156113d3576113d06103e86112476015548661148590919063ffffffff16565b90505b801561144d57306000908152600560205260409020546113f39082610b45565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114449085815260200190565b60405180910390a35b6110aa83826110b3565b600081836114785760405162461bcd60e51b815260040161091a9190611910565b5060006110aa8486611a0d565b600082611494575060006107ff565b60006114a08385611a2d565b9050826114ad8583611a0d565b146108695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061154757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d391906117e1565b816001815181106115f457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461161a9130911684610ba4565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906116539085906000908690309042906004016119b9565b600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116b6929190611998565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116f8573d6000803e3d6000fd5b505050565b6019546117159030906001600160a01b031684610ba4565b60195460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561178557600080fd5b505af1158015611799573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117be91906118a0565b5050505050565b6000602082840312156117d6578081fd5b813561086981611ab4565b6000602082840312156117f2578081fd5b815161086981611ab4565b6000806040838503121561180f578081fd5b823561181a81611ab4565b9150602083013561182a81611ab4565b809150509250929050565b600080600060608486031215611849578081fd5b833561185481611ab4565b9250602084013561186481611ab4565b929592945050506040919091013590565b60008060408385031215611887578182fd5b823561189281611ab4565b946020939093013593505050565b6000806000606084860312156118b4578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156119055781516001600160a01b0316875295820195908201906001016118e0565b509495945050505050565b6000602080835283518082850152825b8181101561193c57858101830151858201604001528201611920565b8181111561194d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006119b160408301846118cd565b949350505050565b85815284602082015260a0604082015260006119d860a08301866118cd565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611a0857611a08611a9e565b500190565b600082611a2857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a4757611a47611a9e565b500290565b600082821015611a5e57611a5e611a9e565b500390565b600181811c90821680611a7757607f821691505b60208210811415611a9857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611ac957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a980e4d66b1553daecb098e41ed3d05a5fe398fd32c41d8a41d397c9a79dd85e64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638b42507f1161012e578063c5d24189116100ab578063dc44b6a01161006f578063dc44b6a0146106aa578063dd62ed3e146106c0578063f0cd1dac14610706578063f2fde38b1461071c578063f4c2baa91461073c57600080fd5b8063c5d2418914610609578063c816841b1461061f578063c86079521461063f578063c867d60b14610655578063d158272d1461068557600080fd5b8063a08e671f116100f2578063a08e671f14610587578063a457c2d71461059d578063a9059cbb146105bd578063aea9cd15146105dd578063af806d9a146105f357600080fd5b80638b42507f146104f95780638da5cb5b1461052957806395d89b411461054757806396d0efa71461055c578063a073d37f1461057257600080fd5b80633ecad271116101bc57806370a082311161018057806370a0823114610460578063715018a61461049657806382eefb43146104ad5780638317390b146104c357806388790a68146104e357600080fd5b80633ecad271146103be5780634cdc9c63146103ee5780635342acb41461040457806357a5802f1461043457806361a23c691461044a57600080fd5b806327c8f8351161020357806327c8f8351461031d5780632b112e49146103515780632ca1146014610366578063313ce5671461037c578063395093511461039e57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806323b872dd146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061075c565b60405161026d9190611910565b60405180910390f35b34801561028257600080fd5b50610296610291366004611875565b6107ee565b604051901515815260200161026d565b3480156102b257600080fd5b506019546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506017545b60405190815260200161026d565b34801561030957600080fd5b50610296610318366004611835565b610805565b34801561032957600080fd5b506102c67f000000000000000000000000000000000000000000000000000000000000dead81565b34801561035d57600080fd5b506102ef610870565b34801561037257600080fd5b506102ef600d5481565b34801561038857600080fd5b5060035460405160ff909116815260200161026d565b3480156103aa57600080fd5b506102966103b9366004611875565b6108ba565b3480156103ca57600080fd5b506102966103d93660046117c5565b600a6020526000908152604090205460ff1681565b3480156103fa57600080fd5b506102ef601b5481565b34801561041057600080fd5b5061029661041f3660046117c5565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b506102ef60115481565b34801561045657600080fd5b506102ef60125481565b34801561046c57600080fd5b506102ef61047b3660046117c5565b6001600160a01b031660009081526005602052604090205490565b3480156104a257600080fd5b506104ab6108f0565b005b3480156104b957600080fd5b506102ef60155481565b3480156104cf57600080fd5b506004546102c6906001600160a01b031681565b3480156104ef57600080fd5b506102ef600e5481565b34801561050557600080fd5b506102966105143660046117c5565b60096020526000908152604090205460ff1681565b34801561053557600080fd5b506000546001600160a01b03166102c6565b34801561055357600080fd5b5061026061096d565b34801561056857600080fd5b506102ef60105481565b34801561057e57600080fd5b506018546102ef565b34801561059357600080fd5b506102ef60165481565b3480156105a957600080fd5b506102966105b8366004611875565b61097c565b3480156105c957600080fd5b506102966105d8366004611875565b6109cb565b3480156105e957600080fd5b506102ef601c5481565b3480156105ff57600080fd5b506102ef60135481565b34801561061557600080fd5b506102ef600c5481565b34801561062b57600080fd5b50601a546102c6906001600160a01b031681565b34801561064b57600080fd5b506102ef600f5481565b34801561066157600080fd5b506102966106703660046117c5565b60086020526000908152604090205460ff1681565b34801561069157600080fd5b506003546102c69061010090046001600160a01b031681565b3480156106b657600080fd5b506102ef600b5481565b3480156106cc57600080fd5b506102ef6106db3660046117fd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071257600080fd5b506102ef60145481565b34801561072857600080fd5b506104ab6107373660046117c5565b6109d8565b34801561074857600080fd5b506104ab6107573660046117c5565b610ac2565b60606001805461076b90611a63565b80601f016020809104026020016040519081016040528092919081815260200182805461079790611a63565b80156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b60006107fb338484610ba4565b5060015b92915050565b6000610812848484610cc8565b50610865843361086085604051806060016040528060288152602001611acd602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611079565b610ba4565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600560205260408120546017546108b5916110b3565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916107fb9185906108609086610b45565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161091a90611963565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461076b90611a63565b60006107fb338461086085604051806060016040528060258152602001611af5602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611079565b6000610865338484610cc8565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161091a90611963565b6001600160a01b038116610a675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610aec5760405162461bcd60e51b815260040161091a90611963565b601a80546001600160a01b0319166001600160a01b0392831690811782556000908152600860209081526040808320805460ff19908116600190811790925594549095168352600a909152902080549091169091179055565b600080610b5283856119f5565b9050838110156108695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091a565b6001600160a01b038316610c065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091a565b6001600160a01b038216610c675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610d2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091a565b6001600160a01b038316610d905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091a565b601a546001600160a01b038481169116148015610dc657506001600160a01b03841660009081526009602052604090205460ff16155b15610e10576001600160a01b03841660009081526005602052604090205482811415610e0e57610e0b610e04601d54856110f590919063ffffffff16565b84906110b3565b92505b505b601a546001600160a01b038481169116148015610e4357506001600160a01b038316600090815260056020526040902054155b15610e4d5743601b555b601e5460ff1615610e6a57610e63848484611137565b9050610869565b3060009081526005602052604090205460185481108015908190610e915750601e5460ff16155b8015610eb657506001600160a01b0386166000908152600a602052604090205460ff16155b15610ed9576019546001600160a01b03878116911614610ed957610ed98261121d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260059091529190912054610f2b918690611079565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff1680610f7857506001600160a01b03861660009081526007602052604090205460ff165b610f8c57610f8787878761134f565b610f8e565b845b6001600160a01b038716600090815260056020526040902054909150610fb49082610b45565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110089085815260200190565b60405180910390a3601c54601b5461102091906119f5565b4310801561103b5750601a546001600160a01b038881169116145b1561106d5761106b867f000000000000000000000000000000000000000000000000000000000000dead83611137565b505b60019350505050610869565b6000818484111561109d5760405162461bcd60e51b815260040161091a9190611910565b5060006110aa8486611a4c565b95945050505050565b600061086983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611079565b600061086983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611457565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611188918490611079565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546111b79083610b45565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120b9086815260200190565b60405180910390a35060019392505050565b601e805460ff1916600117905560165460115460009161124d916002916112479182908790611485565b906110f5565b9050600061125b83836110b3565b905061126681611504565b60115447906000906112869061127d9060026110f5565b601654906110b3565b905060006112a86002611247846112476011548861148590919063ffffffff16565b905060006112c5836112476013548761148590919063ffffffff16565b905060006112dd826112d787866110b3565b906110b3565b90508015611300576003546113009061010090046001600160a01b0316826116c2565b811561131c5760045461131c906001600160a01b0316836116c2565b60008311801561132c5750600087115b1561133b5761133b87846116fd565b5050601e805460ff19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156113945761138d6103e86112476014548661148590919063ffffffff16565b90506113d3565b6001600160a01b0384166000908152600a602052604090205460ff16156113d3576113d06103e86112476015548661148590919063ffffffff16565b90505b801561144d57306000908152600560205260409020546113f39082610b45565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114449085815260200190565b60405180910390a35b6110aa83826110b3565b600081836114785760405162461bcd60e51b815260040161091a9190611910565b5060006110aa8486611a0d565b600082611494575060006107ff565b60006114a08385611a2d565b9050826114ad8583611a0d565b146108695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061154757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d391906117e1565b816001815181106115f457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461161a9130911684610ba4565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906116539085906000908690309042906004016119b9565b600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116b6929190611998565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116f8573d6000803e3d6000fd5b505050565b6019546117159030906001600160a01b031684610ba4565b60195460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561178557600080fd5b505af1158015611799573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117be91906118a0565b5050505050565b6000602082840312156117d6578081fd5b813561086981611ab4565b6000602082840312156117f2578081fd5b815161086981611ab4565b6000806040838503121561180f578081fd5b823561181a81611ab4565b9150602083013561182a81611ab4565b809150509250929050565b600080600060608486031215611849578081fd5b833561185481611ab4565b9250602084013561186481611ab4565b929592945050506040919091013590565b60008060408385031215611887578182fd5b823561189281611ab4565b946020939093013593505050565b6000806000606084860312156118b4578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156119055781516001600160a01b0316875295820195908201906001016118e0565b509495945050505050565b6000602080835283518082850152825b8181101561193c57858101830151858201604001528201611920565b8181111561194d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006119b160408301846118cd565b949350505050565b85815284602082015260a0604082015260006119d860a08301866118cd565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611a0857611a08611a9e565b500190565b600082611a2857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a4757611a47611a9e565b500290565b600082821015611a5e57611a5e611a9e565b500390565b600181811c90821680611a7757607f821691505b60208210811415611a9857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611ac957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a980e4d66b1553daecb098e41ed3d05a5fe398fd32c41d8a41d397c9a79dd85e64736f6c63430008040033
Deployed Bytecode Sourcemap
8291:11950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11688:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13236:193;;;;;;;;;;-1:-1:-1;13236:193:0;;;;;:::i;:::-;;:::i;:::-;;;3752:14:1;;3745:22;3727:41;;3715:2;3700:18;13236:193:0;3682:92:1;9923:41:0;;;;;;;;;;-1:-1:-1;9923:41:0;;;;-1:-1:-1;;;;;9923:41:0;;;;;;-1:-1:-1;;;;;2699:32:1;;;2681:51;;2669:2;2654:18;9923:41:0;2636:102:1;11965:100:0;;;;;;;;;;-1:-1:-1;12045:12:0;;11965:100;;;7911:25:1;;;7899:2;7884:18;11965:100:0;7866:76:1;14400:446:0;;;;;;;;;;-1:-1:-1;14400:446:0;;;;;:::i;:::-;;:::i;8750:90::-;;;;;;;;;;;;;;;13816:128;;;;;;;;;;;;;:::i;9275:32::-;;;;;;;;;;;;;;;;11874:83;;;;;;;;;;-1:-1:-1;11940:9:0;;11874:83;;11940:9;;;;9013:36:1;;9001:2;8986:18;11874:83:0;8968:87:1;12392:300:0;;;;;;;;;;-1:-1:-1;12392:300:0;;;;;:::i;:::-;;:::i;9137:44::-;;;;;;;;;;-1:-1:-1;9137:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10006:27;;;;;;;;;;;;;;;;8969:49;;;;;;;;;;-1:-1:-1;8969:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9443:72;;;;;;;;;;;;;;;;9522;;;;;;;;;;;;;;;;12073:119;;;;;;;;;;-1:-1:-1;12073:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12166:18:0;12139:7;12166:18;;;:9;:18;;;;;;;12073:119;4129:148;;;;;;;;;;;;;:::i;:::-;;9712:33;;;;;;;;;;;;;;;;8638:105;;;;;;;;;;-1:-1:-1;8638:105:0;;;;-1:-1:-1;;;;;8638:105:0;;;9314:36;;;;;;;;;;;;;;;;9083:47;;;;;;;;;;-1:-1:-1;9083:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3917:79;;;;;;;;;;-1:-1:-1;3955:7:0;3982:6;-1:-1:-1;;;;;3982:6:0;3917:79;;11779:87;;;;;;;;;;;;;:::i;9401:33::-;;;;;;;;;;;;;;;;13108:120;;;;;;;;;;-1:-1:-1;13197:23:0;;13108:120;;9752:39;;;;;;;;;;;;;;;;12700:400;;;;;;;;;;-1:-1:-1;12700:400:0;;;;;:::i;:::-;;:::i;14193:199::-;;;;;;;;;;-1:-1:-1;14193:199:0;;;;;:::i;:::-;;:::i;10040:28::-;;;;;;;;;;;;;;;;9601:63;;;;;;;;;;;;;;;;9232:36;;;;;;;;;;;;;;;;9971:26;;;;;;;;;;-1:-1:-1;9971:26:0;;;;-1:-1:-1;;;;;9971:26:0;;;9357:37;;;;;;;;;;;;;;;;9025:51;;;;;;;;;;-1:-1:-1;9025:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8523:108;;;;;;;;;;-1:-1:-1;8523:108:0;;;;;;;-1:-1:-1;;;;;8523:108:0;;;9190:35;;;;;;;;;;;;;;;;12200:184;;;;;;;;;;-1:-1:-1;12200:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;12349:18:0;;;12317:7;12349:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12200:184;9673:32;;;;;;;;;;;;;;;;4285:281;;;;;;;;;;-1:-1:-1;4285:281:0;;;;;:::i;:::-;;:::i;17285:189::-;;;;;;;;;;-1:-1:-1;17285:189:0;;;;;:::i;:::-;;:::i;11688:83::-;11725:13;11758:5;11751:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11688:83;:::o;13236:193::-;13338:4;13360:39;192:10;13383:7;13392:6;13360:8;:39::i;:::-;-1:-1:-1;13417:4:0;13236:193;;;;;:::o;14400:446::-;14532:4;14549:36;14559:6;14567:9;14578:6;14549:9;:36::i;:::-;-1:-1:-1;14596:220:0;14619:6;192:10;14667:138;14723:6;14667:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14667:19:0;;;;;;:11;:19;;;;;;;;192:10;14667:33;;;;;;;;;;:37;:138::i;:::-;14596:8;:220::i;:::-;-1:-1:-1;14834:4:0;14400:446;;;;;;:::o;13816:128::-;13923:11;-1:-1:-1;;;;;12166:18:0;13869:7;12166:18;;;:9;:18;;;;;;13896:12;;:40;;:16;:40::i;:::-;13889:47;;13816:128;:::o;12392:300::-;192:10;12507:4;12601:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12601:34:0;;;;;;;;;;12507:4;;12529:133;;12579:7;;12601:50;;12640:10;12601:38;:50::i;4129:148::-;4044:6;;-1:-1:-1;;;;;4044:6:0;4054:10;4044:20;4036:65;;;;-1:-1:-1;;;4036:65:0;;;;;;;:::i;:::-;;;;;;;;;4236:1:::1;4220:6:::0;;4199:40:::1;::::0;-1:-1:-1;;;;;4220:6:0;;::::1;::::0;4199:40:::1;::::0;4236:1;;4199:40:::1;4267:1;4250:19:::0;;-1:-1:-1;;;;;;4250:19:0::1;::::0;;4129:148::o;11779:87::-;11818:13;11851:7;11844:14;;;;;:::i;12700:400::-;12820:4;12842:228;192:10;12892:7;12914:145;12971:15;12914:145;;;;;;;;;;;;;;;;;192:10;12914:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12914:34:0;;;;;;;;;;;;:38;:145::i;14193:199::-;14298:4;14320:42;192:10;14344:9;14355:6;14320:9;:42::i;4285:281::-;4044:6;;-1:-1:-1;;;;;4044:6:0;4054:10;4044:20;4036:65;;;;-1:-1:-1;;;4036:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4388:22:0;::::1;4366:110;;;::::0;-1:-1:-1;;;4366:110:0;;5227:2:1;4366:110:0::1;::::0;::::1;5209:21:1::0;5266:2;5246:18;;;5239:30;5305:34;5285:18;;;5278:62;-1:-1:-1;;;5356:18:1;;;5349:36;5402:19;;4366:110:0::1;5199:228:1::0;4366:110:0::1;4513:6;::::0;;4492:38:::1;::::0;-1:-1:-1;;;;;4492:38:0;;::::1;::::0;4513:6;::::1;::::0;4492:38:::1;::::0;::::1;4541:6;:17:::0;;-1:-1:-1;;;;;;4541:17:0::1;-1:-1:-1::0;;;;;4541:17:0;;;::::1;::::0;;;::::1;::::0;;4285:281::o;17285:189::-;4044:6;;-1:-1:-1;;;;;4044:6:0;4054:10;4044:20;4036:65;;;;-1:-1:-1;;;4036:65:0;;;;;;;:::i;:::-;17339:11:::1;:14:::0;;-1:-1:-1;;;;;;17339:14:0::1;-1:-1:-1::0;;;;;17339:14:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;17364:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;17364:48:0;;::::1;-1:-1:-1::0;17364:48:0;;::::1;::::0;;;17444:11;;;;::::1;17423:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;17285:189::o;1044:181::-;1102:7;;1134:5;1138:1;1134;:5;:::i;:::-;1122:17;;1163:1;1158;:6;;1150:46;;;;-1:-1:-1;;;1150:46:0;;6037:2:1;1150:46:0;;;6019:21:1;6076:2;6056:18;;;6049:30;6115:29;6095:18;;;6088:57;6162:18;;1150:46:0;6009:177:1;13437:371:0;-1:-1:-1;;;;;13564:19:0;;13556:68;;;;-1:-1:-1;;;13556:68:0;;7562:2:1;13556:68:0;;;7544:21:1;7601:2;7581:18;;;7574:30;7640:34;7620:18;;;7613:62;-1:-1:-1;;;7691:18:1;;;7684:34;7735:19;;13556:68:0;7534:226:1;13556:68:0;-1:-1:-1;;;;;13643:21:0;;13635:68;;;;-1:-1:-1;;;13635:68:0;;5634:2:1;13635:68:0;;;5616:21:1;5673:2;5653:18;;;5646:30;5712:34;5692:18;;;5685:62;-1:-1:-1;;;5763:18:1;;;5756:32;5805:19;;13635:68:0;5606:224:1;13635:68:0;-1:-1:-1;;;;;13716:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13768:32;;7911:25:1;;;13768:32:0;;7884:18:1;13768:32:0;;;;;;;13437:371;;;:::o;14854:2016::-;14975:4;-1:-1:-1;;;;;15000:20:0;;14992:70;;;;-1:-1:-1;;;14992:70:0;;7156:2:1;14992:70:0;;;7138:21:1;7195:2;7175:18;;;7168:30;7234:34;7214:18;;;7207:62;-1:-1:-1;;;7285:18:1;;;7278:35;7330:19;;14992:70:0;7128:227:1;14992:70:0;-1:-1:-1;;;;;15081:23:0;;15073:71;;;;-1:-1:-1;;;15073:71:0;;4823:2:1;15073:71:0;;;4805:21:1;4862:2;4842:18;;;4835:30;4901:34;4881:18;;;4874:62;-1:-1:-1;;;4952:18:1;;;4945:33;4995:19;;15073:71:0;4795:225:1;15073:71:0;15174:11;;-1:-1:-1;;;;;15161:24:0;;;15174:11;;15161:24;:52;;;;-1:-1:-1;;;;;;15190:23:0;;;;;;:15;:23;;;;;;;;15189:24;15161:52;15157:237;;;-1:-1:-1;;;;;12166:18:0;;15230:15;12166:18;;;:9;:18;;;;;;15284:17;;;15280:103;;;15331:36;15342:24;15353:12;;15342:6;:10;;:24;;;;:::i;:::-;15331:6;;:10;:36::i;:::-;15322:45;;15280:103;15157:237;;15421:11;;-1:-1:-1;;;;;15408:24:0;;;15421:11;;15408:24;:62;;;;-1:-1:-1;;;;;;12166:18:0;;12139:7;12166:18;;;:9;:18;;;;;;15436:34;15408:62;15404:122;;;15502:12;15487;:27;15404:122;15542:16;;;;15538:1325;;;15582:41;15597:6;15605:9;15616:6;15582:14;:41::i;:::-;15575:48;;;;15538:1325;15705:4;15656:28;12166:18;;;:9;:18;;;;;;15798:23;;15757:64;;;;;;;15860:61;;-1:-1:-1;15905:16:0;;;;15904:17;15860:61;:103;;;;-1:-1:-1;;;;;;15943:20:0;;;;;;:12;:20;;;;;;;;15942:21;15860:103;15838:294;;;16020:15;;-1:-1:-1;;;;;16002:34:0;;;16020:15;;16002:34;15998:119;;16061:36;16076:20;16061:14;:36::i;:::-;16168:102;;;;;;;;;;;-1:-1:-1;;;16168:102:0;;;;;;;;-1:-1:-1;;;;;16168:17:0;;-1:-1:-1;16168:17:0;;;:9;:17;;;;;;;;:102;;16208:6;;16168:21;:102::i;:::-;-1:-1:-1;;;;;16148:17:0;;;;;;:9;:17;;;;;;;;:122;;;;16310:17;:25;;;;;;;;;:74;;-1:-1:-1;;;;;;16356:28:0;;;;;;:17;:28;;;;;;;;16310:74;16309:156;;16431:34;16439:6;16447:9;16458:6;16431:7;:34::i;:::-;16309:156;;;16405:6;16309:156;-1:-1:-1;;;;;16505:20:0;;;;;;:9;:20;;;;;;16287:178;;-1:-1:-1;16505:37:0;;16287:178;16505:24;:37::i;:::-;-1:-1:-1;;;;;16482:20:0;;;;;;;:9;:20;;;;;;;:60;;;;16564:40;;;;;;;;;;16592:11;7911:25:1;;7899:2;7884:18;;7866:76;16564:40:0;;;;;;;;16672:9;;16657:12;;:24;;;;:::i;:::-;16641:12;:41;:83;;;;-1:-1:-1;16713:11:0;;-1:-1:-1;;;;;16703:21:0;;;16713:11;;16703:21;16641:83;16619:207;;;16759:51;16774:9;16785:11;16798;16759:14;:51::i;:::-;;16619:207;16847:4;16840:11;;;;;;;1377:226;1497:7;1533:12;1525:6;;;;1517:29;;;;-1:-1:-1;;;1517:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1557:9:0;1569:5;1573:1;1569;:5;:::i;:::-;1557:17;1377:226;-1:-1:-1;;;;;1377:226:0:o;1233:136::-;1291:7;1318:43;1322:1;1325;1318:43;;;;;;;;;;;;;;;;;:3;:43::i;1869:132::-;1927:7;1954:39;1958:1;1961;1954:39;;;;;;;;;;;;;;;;;:3;:39::i;16878:401::-;17042:90;;;;;;;;;;;-1:-1:-1;;;17042:90:0;;;;;;;;-1:-1:-1;;;;;17042:17:0;;17005:4;17042:17;;;:9;:17;;;;;;;:90;;17078:6;;17042:21;:90::i;:::-;-1:-1:-1;;;;;17022:17:0;;;;;;;:9;:17;;;;;;:110;;;;17166:20;;;;;;;:32;;17191:6;17166:24;:32::i;:::-;-1:-1:-1;;;;;17143:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17214:35;;;;;;;;;;17242:6;7911:25:1;;7899:2;7884:18;;7866:76;17214:35:0;;;;;;;;-1:-1:-1;17267:4:0;16878:401;;;;;:::o;17480:1201::-;10440:16;:23;;-1:-1:-1;;10440:23:0;10459:4;10440:23;;;17635:24:::1;::::0;17600:15:::1;::::0;10440:16;;17574:107:::1;::::0;17679:1:::1;::::0;17574:86:::1;::::0;;;:7;;:25:::1;:42::i;:::-;:60:::0;::::1;:86::i;:107::-;17552:129:::0;-1:-1:-1;17692:21:0::1;17716:24;:7:::0;17552:129;17716:11:::1;:24::i;:::-;17692:48;;17753:31;17770:13;17753:16;:31::i;:::-;17919:15;::::0;17820:21:::1;::::0;17795:22:::1;::::0;17876:76:::1;::::0;17919:22:::1;::::0;17939:1:::1;17919:19;:22::i;:::-;17876:24;::::0;;:28:::1;:76::i;:::-;17854:98;;17965:26;17994:101;18093:1;17994:80;18062:11;17994:49;18027:15;;17994:14;:32;;:49;;;;:::i;:101::-;17965:130;;18106:23;18132:73;18183:11;18132:32;18151:12;;18132:14;:18;;:32;;;;:::i;:73::-;18106:99:::0;-1:-1:-1;18216:26:0::1;18245:83;18106:99:::0;18245:38:::1;:14:::0;18264:18;18245::::1;:38::i;:::-;:42:::0;::::1;:83::i;:::-;18216:112:::0;-1:-1:-1;18345:22:0;;18341:105:::1;;18403:22;::::0;18382:64:::1;::::0;18403:22:::1;::::0;::::1;-1:-1:-1::0;;;;;18403:22:0::1;18427:18:::0;18382:20:::1;:64::i;:::-;18463:19:::0;;18459:96:::1;;18518:19;::::0;18497:58:::1;::::0;-1:-1:-1;;;;;18518:19:0::1;18539:15:::0;18497:20:::1;:58::i;:::-;18593:1;18572:18;:22;:41;;;;;18612:1;18598:11;:15;18572:41;18568:105;;;18628:45;18641:11;18654:18;18628:12;:45::i;:::-;-1:-1:-1::0;;10486:16:0;:24;;-1:-1:-1;;10486:24:0;;;-1:-1:-1;;;;;;17480:1201:0:o;19606:632::-;-1:-1:-1;;;;;19782:20:0;;19726:7;19782:20;;;:12;:20;;;;;;19726:7;;19782:20;;19778:218;;;19831:39;19865:4;19831:29;19842:17;;19831:6;:10;;:29;;;;:::i;:39::-;19819:51;;19778:218;;;-1:-1:-1;;;;;19892:23:0;;;;;;:12;:23;;;;;;;;19888:108;;;19944:40;19979:4;19944:30;19955:18;;19944:6;:10;;:30;;;;:::i;:40::-;19932:52;;19888:108;20012:13;;20008:174;;20087:4;20069:24;;;;:9;:24;;;;;;:39;;20098:9;20069:28;:39::i;:::-;20060:4;20042:24;;;;:9;:24;;;;;;;:66;;;;20128:42;;-1:-1:-1;;;;;20128:42:0;;;;;;;20160:9;7911:25:1;;7899:2;7884:18;;7866:76;20128:42:0;;;;;;;;20008:174;20209:21;:6;20220:9;20209:10;:21::i;2009:312::-;2129:7;2164:12;2157:5;2149:28;;;;-1:-1:-1;;;2149:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2188:9:0;2200:5;2204:1;2200;:5;:::i;1611:250::-;1669:7;1693:6;1689:47;;-1:-1:-1;1723:1:0;1716:8;;1689:47;1748:9;1760:5;1764:1;1760;:5;:::i;:::-;1748:17;-1:-1:-1;1793:1:0;1784:5;1788:1;1748:17;1784:5;:::i;:::-;:10;1776:56;;;;-1:-1:-1;;;1776:56:0;;6393:2:1;1776:56:0;;;6375:21:1;6432:2;6412:18;;;6405:30;6471:34;6451:18;;;6444:62;-1:-1:-1;;;6522:18:1;;;6515:31;6563:19;;1776:56:0;6365:223:1;18693:522:0;18783:16;;;18797:1;18783:16;;;;;;;;18759:21;;18783:16;;;;;;;;;;-1:-1:-1;18783:16:0;18759:40;;18828:4;18810;18815:1;18810:7;;;;;;-1:-1:-1;;;18810:7:0;;;;;;;;;-1:-1:-1;;;;;18810:23:0;;;:7;;;;;;;;;;:23;;;;18854:15;;:22;;;-1:-1:-1;;;18854:22:0;;;;:15;;;;;:20;;:22;;;;;18810:7;;18854:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18844:4;18849:1;18844:7;;;;;;-1:-1:-1;;;18844:7:0;;;;;;;;;-1:-1:-1;;;;;18844:32:0;;;:7;;;;;;;;;:32;18919:15;;18887:62;;18904:4;;18919:15;18937:11;18887:8;:62::i;:::-;18960:15;;:196;;-1:-1:-1;;;18960:196:0;;-1:-1:-1;;;;;18960:15:0;;;;:66;;:196;;19041:11;;18960:15;;19083:4;;19110;;19130:15;;18960:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19172:35;19189:11;19202:4;19172:35;;;;;;;:::i;:::-;;;;;;;;18693:522;;:::o;13952:140::-;14058:26;;-1:-1:-1;;;;;14058:18:0;;;:26;;;;;14077:6;;14058:26;;;;14077:6;14058:18;:26;;;;;;;;;;;;;;;;;;;;;13952:140;;:::o;19223:375::-;19336:15;;19304:62;;19321:4;;-1:-1:-1;;;;;19336:15:0;19354:11;19304:8;:62::i;:::-;19377:15;;19527:22;;19377:213;;-1:-1:-1;;;19377:213:0;;19449:4;19377:213;;;3316:34:1;3366:18;;;3359:34;;;-1:-1:-1;3409:18:1;;;3402:34;;;3452:18;;;3445:34;-1:-1:-1;;;;;19377:15:0;19527:22;;;;;3495:19:1;;;3488:44;19564:15:0;3548:19:1;;;3541:35;19377:15:0;;;:31;;19416:9;;3250:19:1;;19377:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19223:375;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:316::-;1834:6;1842;1850;1903:2;1891:9;1882:7;1878:23;1874:32;1871:2;;;1924:6;1916;1909:22;1871:2;1958:9;1952:16;1942:26;;2008:2;1997:9;1993:18;1987:25;1977:35;;2052:2;2041:9;2037:18;2031:25;2021:35;;1861:201;;;;;:::o;2067:463::-;2120:3;2158:5;2152:12;2185:6;2180:3;2173:19;2211:4;2240:2;2235:3;2231:12;2224:19;;2277:2;2270:5;2266:14;2298:3;2310:195;2324:6;2321:1;2318:13;2310:195;;;2389:13;;-1:-1:-1;;;;;2385:39:1;2373:52;;2445:12;;;;2480:15;;;;2421:1;2339:9;2310:195;;;-1:-1:-1;2521:3:1;;2128:402;-1:-1:-1;;;;;2128:402:1:o;4013:603::-;4125:4;4154:2;4183;4172:9;4165:21;4215:6;4209:13;4258:6;4253:2;4242:9;4238:18;4231:34;4283:4;4296:140;4310:6;4307:1;4304:13;4296:140;;;4405:14;;;4401:23;;4395:30;4371:17;;;4390:2;4367:26;4360:66;4325:10;;4296:140;;;4454:6;4451:1;4448:13;4445:2;;;4524:4;4519:2;4510:6;4499:9;4495:22;4491:31;4484:45;4445:2;-1:-1:-1;4600:2:1;4579:15;-1:-1:-1;;4575:29:1;4560:45;;;;4607:2;4556:54;;4134:482;-1:-1:-1;;;4134:482:1:o;6593:356::-;6795:2;6777:21;;;6814:18;;;6807:30;6873:34;6868:2;6853:18;;6846:62;6940:2;6925:18;;6767:182::o;7947:332::-;8154:6;8143:9;8136:25;8197:2;8192;8181:9;8177:18;8170:30;8117:4;8217:56;8269:2;8258:9;8254:18;8246:6;8217:56;:::i;:::-;8209:64;8126:153;-1:-1:-1;;;;8126:153:1:o;8284:582::-;8583:6;8572:9;8565:25;8626:6;8621:2;8610:9;8606:18;8599:34;8669:3;8664:2;8653:9;8649:18;8642:31;8546:4;8690:57;8742:3;8731:9;8727:19;8719:6;8690:57;:::i;:::-;-1:-1:-1;;;;;8783:32:1;;;;8778:2;8763:18;;8756:60;-1:-1:-1;8847:3:1;8832:19;8825:35;8682:65;8555:311;-1:-1:-1;;;8555:311:1:o;9060:128::-;9100:3;9131:1;9127:6;9124:1;9121:13;9118:2;;;9137:18;;:::i;:::-;-1:-1:-1;9173:9:1;;9108:80::o;9193:217::-;9233:1;9259;9249:2;;-1:-1:-1;;;9284:31:1;;9338:4;9335:1;9328:15;9366:4;9291:1;9356:15;9249:2;-1:-1:-1;9395:9:1;;9239:171::o;9415:168::-;9455:7;9521:1;9517;9513:6;9509:14;9506:1;9503:21;9498:1;9491:9;9484:17;9480:45;9477:2;;;9528:18;;:::i;:::-;-1:-1:-1;9568:9:1;;9467:116::o;9588:125::-;9628:4;9656:1;9653;9650:8;9647:2;;;9661:18;;:::i;:::-;-1:-1:-1;9698:9:1;;9637:76::o;9718:380::-;9797:1;9793:12;;;;9840;;;9861:2;;9915:4;9907:6;9903:17;9893:27;;9861:2;9968;9960:6;9957:14;9937:18;9934:38;9931:2;;;10014:10;10009:3;10005:20;10002:1;9995:31;10049:4;10046:1;10039:15;10077:4;10074:1;10067:15;9931:2;;9773:325;;;:::o;10103:127::-;10164:10;10159:3;10155:20;10152:1;10145:31;10195:4;10192:1;10185:15;10219:4;10216:1;10209:15;10235:131;-1:-1:-1;;;;;10310:31:1;;10300:42;;10290:2;;10356:1;10353;10346:12;10290:2;10280:86;:::o
Swarm Source
ipfs://a980e4d66b1553daecb098e41ed3d05a5fe398fd32c41d8a41d397c9a79dd85e
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.