ERC-20
Overview
Max Total Supply
97,879,035.408973426 Tuzi
Holders
32
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,860,000 TuziValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Tuzi
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-22 */ /** */ // SPDX-License-Identifier: NOLICENSE /** Project Name: Lucky Rabbit Ticker: $Tuzi Supply: 100,000,000 Lucky Rabbit $Tuzi is a community-driven token with self-automated liquidity generator and burning feature. The Auto-Liquidity aims to increase $Tuzi Liquidity pool in Uniswap thereby essentially decrease the volatility of swap impacts and such can be attributed to ever growing stability of $TUZI token. This approach attract whale and chads making this their playground. The goal of Auto-Burn mechanism aims to reduce the overall supply of $TUZI, substantially maintaining the value, raising demand and eventually the price will rise. This will revive and give more meaning to $HODL thus Diamond hands will surely be rewarded. Tax: 1% AutoLiquidty, 1% AutoBurn and 5% Marketing Telegram: https://t.me/TUZIERC20 Twitter: https://twitter.com/TUZIERC20 */ pragma solidity ^0.8.4; 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; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract Tuzi is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWalletSize; string private constant _name = "Lucky Rabbit"; string private constant _symbol = "Tuzi"; uint8 private constant _decimals = 9; uint256 public buyAutoLiquidityFee = 100; uint256 public buyAutoBurnFee = 100; uint256 public buyMarketingFee = 500; uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; uint256 public sellAutoLiquidityFee = 100; uint256 public sellAutoBurnFee = 100; uint256 public sellMarketingFee = 500; uint256 public totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; uint256 public tokensForAutoLiquidity; uint256 public tokensForAutoBurn; uint256 public tokensForMarketing; uint16 public masterTaxDivisor = 10000; address public constant DEAD = 0x000000000000000000000000000000000000dEaD; address public pairAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private _tTotal = 100000000 * 10**9; uint256 private maxWalletAmount = 50000 * 10**9; uint256 private maxTxAmount = 50000 * 10**9; address payable private feeAddrWallet; event MaxWalletAmountUpdated(uint maxWalletAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); feeAddrWallet = payable(0x458ed603bc1378b4E383909BD25A0257a78C21D1); _tOwned[owner()] = _tTotal; uint256 _buyAutoLiquidityFee = 100; uint256 _buyAutoBurnFee = 100; uint256 _buyMarketingFee = 500; uint256 _sellAutoLiquidityFee = 100; uint256 _sellAutoBurnFee = 100; uint256 _sellMarketingFee = 500; buyAutoLiquidityFee = _buyAutoLiquidityFee; buyAutoBurnFee = _buyAutoBurnFee; buyMarketingFee = _buyMarketingFee; totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; sellAutoLiquidityFee = _sellAutoLiquidityFee; sellAutoBurnFee = _sellAutoBurnFee; sellMarketingFee = _sellMarketingFee; totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[feeAddrWallet] = true; _isExcludedFromMaxWalletSize[owner()] = true; _isExcludedFromMaxWalletSize[address(this)] = true; _isExcludedFromMaxWalletSize[feeAddrWallet] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet"); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the maxTxAmount."); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to])); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { 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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { _tOwned[sender] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount; _tOwned[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { if(from == uniswapV2Pair && totalBuyFees > 0 ) { tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor; tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor; } else if (to == uniswapV2Pair && totalSellFees > 0 ) { tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor; tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor; } _tOwned[pairAddress] += tokensForAutoLiquidity; emit Transfer(from, pairAddress, tokensForAutoLiquidity); _tOwned[DEAD] += tokensForAutoBurn; _tTotal = _tTotal - tokensForAutoBurn; _tTotal = totalSupply(); emit Transfer(from, DEAD, tokensForAutoBurn); _tOwned[address(this)] += tokensForMarketing; emit Transfer(from, address(this), tokensForMarketing); uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing; return amount - feeAmount; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function excludeFromMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = true; } function includeInMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = false; } function setWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{ maxTxAmount = _maxTxAmount * 10 **_decimals; maxWalletAmount = _maxWalletSize * 10 **_decimals; } function updateMaxWallet(uint256 _maxWalletSize) external onlyOwner{ maxWalletAmount = _maxWalletSize * 10 **_decimals; } function updateMaxTxtAmount(uint256 _maxTxAmount) external onlyOwner{ maxTxAmount = _maxTxAmount * 10 **_decimals; } function RervertSellFeesToOriginalTax() external onlyOwner { //Original state of sell tax sellAutoLiquidityFee = 100; sellAutoBurnFee = 100; sellMarketingFee = 500; totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; } function sendETHToFee(uint256 amount) private { feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; maxWalletAmount = 50000 * 10**9; maxTxAmount = 50000 * 10**9; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"updateMaxTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052606460055560646006556101f460075560075460065460055462000029919062000696565b62000035919062000696565b60085560646009556064600a556101f4600b55600b54600a546009546200005d919062000696565b62000069919062000696565b600c556010805461ffff19166127101790556012805461ffff60a81b1916905567016345785d8a0000601355652d79883d20006014819055601555348015620000b157600080fd5b50620000bd3362000614565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200011e57600080fd5b505afa15801562000133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000159919062000664565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a257600080fd5b505afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd919062000664565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200022657600080fd5b505af11580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000664565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c157600080fd5b505afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc919062000664565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034557600080fd5b505afa1580156200035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000380919062000664565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015620003c757600080fd5b505afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000664565b601080546001600160a01b03928316620100000262010000600160b01b0319909116179055601680546001600160a01b03191673458ed603bc1378b4e383909bd25a0257a78c21d117905560135460008054909216825260016020526040909120556064600581905560068190556101f460078190558190818082806200048a838062000696565b62000496919062000696565b6008556009839055600a829055600b81905580620004b5838562000696565b620004c1919062000696565b600c55600160036000620004dd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556016549091168352908220805490931681179092556004906200054d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601654909116835291208054909216179055620005b76000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620005ff91815260200190565b60405180910390a350505050505050620006bd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200067757600080fd5b81516001600160a01b03811681146200068f57600080fd5b9392505050565b60008219821115620006b857634e487b7160e01b600052601160045260246000fd5b500190565b611b4b80620006cd6000396000f3fe6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cb578063dd62ed3e146105e1578063ea2f0b3714610627578063f239eab814610647578063f2fde38b1461065d57600080fd5b8063c24ad66c1461056a578063c9567bf91461058a578063c99f2fed1461059f578063cc70acee146105b557600080fd5b80639740a946116100e75780639740a946146104d85780639f71146d146104ee578063a8b089821461050e578063a9059cbb14610534578063b9e937001461055457600080fd5b80637bce5a04146104615780638da5cb5b14610477578063921369131461049557806395d89b41146104ab57600080fd5b806323b872dd1161019b578063437823ec1161016a578063437823ec146103ca57806347afcbfe146103ea5780636cce46fc1461040057806370a0823114610416578063715018a61461044c57600080fd5b806323b872dd14610359578063313ce567146103795780633722355c146103955780633e0c23b8146103b557600080fd5b806318160ddd116101d757806318160ddd146102d65780631c499ab0146102f55780631d6167ac146103155780631f3fed8f1461034357600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b3146102a657600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611820565b61067d565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b5060408051808201909152600c81526b131d58dade48149858989a5d60a21b60208201525b60405161025f919061185b565b3480156102b257600080fd5b506102c66102c13660046117d2565b6106cc565b604051901515815260200161025f565b3480156102e257600080fd5b506013545b60405190815260200161025f565b34801561030157600080fd5b50610233610310366004611820565b6106e3565b34801561032157600080fd5b506010546103309061ffff1681565b60405161ffff909116815260200161025f565b34801561034f57600080fd5b506102e7600f5481565b34801561036557600080fd5b506102c6610374366004611791565b610729565b34801561038557600080fd5b506040516009815260200161025f565b3480156103a157600080fd5b506102336103b0366004611717565b6107da565b3480156103c157600080fd5b50610233610828565b3480156103d657600080fd5b506102336103e5366004611717565b610880565b3480156103f657600080fd5b506102e7600a5481565b34801561040c57600080fd5b506102e760095481565b34801561042257600080fd5b506102e7610431366004611717565b6001600160a01b031660009081526001602052604090205490565b34801561045857600080fd5b506102336108ce565b34801561046d57600080fd5b506102e760075481565b34801561048357600080fd5b506000546001600160a01b031661024b565b3480156104a157600080fd5b506102e7600b5481565b3480156104b757600080fd5b5060408051808201909152600481526354757a6960e01b6020820152610299565b3480156104e457600080fd5b506102e7600d5481565b3480156104fa57600080fd5b50610233610509366004611717565b610904565b34801561051a57600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561054057600080fd5b506102c661054f3660046117d2565b61094f565b34801561056057600080fd5b506102e760085481565b34801561057657600080fd5b50610233610585366004611839565b61095c565b34801561059657600080fd5b506102336109bc565b3480156105ab57600080fd5b506102e760065481565b3480156105c157600080fd5b506102e7600e5481565b3480156105d757600080fd5b506102e7600c5481565b3480156105ed57600080fd5b506102e76105fc366004611758565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063357600080fd5b50610233610642366004611717565b610af1565b34801561065357600080fd5b506102e760055481565b34801561066957600080fd5b50610233610678366004611717565b610b3c565b6000546001600160a01b031633146106b05760405162461bcd60e51b81526004016106a7906118b0565b60405180910390fd5b6106bc6009600a6119d3565b6106c69082611a7e565b60155550565b60006106d9338484610bd4565b5060015b92915050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016106a7906118b0565b6107196009600a6119d3565b6107239082611a7e565b60145550565b6000610736848484610cf8565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a7565b6107cf85336107ca8685611a9d565b610bd4565b506001949350505050565b6000546001600160a01b031633146108045760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108525760405162461bcd60e51b81526004016106a7906118b0565b60646009819055600a8190556101f4600b819055906108719080611956565b61087b9190611956565b600c55565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108f85760405162461bcd60e51b81526004016106a7906118b0565b610902600061118a565b565b6000546001600160a01b0316331461092e5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106d9338484610cf8565b6000546001600160a01b031633146109865760405162461bcd60e51b81526004016106a7906118b0565b6109926009600a6119d3565b61099c9083611a7e565b6015556109ab6009600a6119d3565b6109b59082611a7e565b6014555050565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016106a7906118b0565b601254600160a01b900460ff1615610a405760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a7565b60128054652d79883d2000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ab657600080fd5b505af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906117fe565b50565b6000546001600160a01b03163314610b1b5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b665760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b038116610bcb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a7565b610aee8161118a565b6001600160a01b038316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a7565b6001600160a01b038216610c975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a7565b6001600160a01b038216610dbe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a7565b60008111610e205760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a7565b6001600160a01b038316600090815260016020526040902054811115610ea25760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016106a7565b601254600160a01b900460ff1680610ed257506001600160a01b03831660009081526003602052604090205460ff165b80610ef557506001600160a01b03821660009081526003602052604090205460ff165b610f415760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016106a7565b6012546001600160a01b038481169116148015610f6c57506011546001600160a01b03838116911614155b8015610f9157506001600160a01b03821660009081526003602052604090205460ff16155b15610fe857601554811115610fe85760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e000000000000000060448201526064016106a7565b6012546001600160a01b03848116911614801561101357506011546001600160a01b03838116911614155b801561103857506001600160a01b03821660009081526004602052604090205460ff16155b156110bc576014546001600160a01b0383166000908152600160205260409020546110639083611956565b11156110bc5760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016106a7565b30600090815260016020526040902054601254600160a81b900460ff161580156110f457506012546001600160a01b03858116911614155b80156111095750601254600160b01b900460ff165b80156111155750600081115b1561113557611123816111da565b4780156111335761113347611363565b505b6001600160a01b0384166000908152600360205260409020546111849085908590859060ff168061117e57506001600160a01b03871660009081526003602052604090205460ff165b156113a1565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061122257611222611aca565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061173b565b816001815181106112c1576112c1611aca565b6001600160a01b0392831660209182029290920101526011546112e79130911684610bd4565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113209085906000908690309042906004016118e5565b600060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561139d573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113c9908490611a9d565b9091555060009050816113dc57826113e7565b6113e785858561145d565b6001600160a01b038516600090815260016020526040812080549293508392909190611414908490611956565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611af68339815191528360405161144e91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b03858116911614801561147f57506000600854115b156114f55760105460055461ffff9091169061149b9084611a7e565b6114a5919061196e565b600d5560105460065461ffff909116906114bf9084611a7e565b6114c9919061196e565b600e5560105460075461ffff909116906114e39084611a7e565b6114ed919061196e565b600f55611586565b6012546001600160a01b03848116911614801561151457506000600c54115b156115865760105460095461ffff909116906115309084611a7e565b61153a919061196e565b600d55601054600a5461ffff909116906115549084611a7e565b61155e919061196e565b600e55601054600b5461ffff909116906115789084611a7e565b611582919061196e565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115b9908490611956565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611af6833981519152916115f891815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611641908490611956565b9091555050600e546013546116569190611a9d565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611af68339815191529181900360200190a3600f5430600090815260016020526040812080549091906116ad908490611956565b9091555050600f5460405190815230906001600160a01b03861690600080516020611af68339815191529060200160405180910390a36000600f54600e54600d546116f89190611956565b6117029190611956565b905061170e8184611a9d565b95945050505050565b60006020828403121561172957600080fd5b813561173481611ae0565b9392505050565b60006020828403121561174d57600080fd5b815161173481611ae0565b6000806040838503121561176b57600080fd5b823561177681611ae0565b9150602083013561178681611ae0565b809150509250929050565b6000806000606084860312156117a657600080fd5b83356117b181611ae0565b925060208401356117c181611ae0565b929592945050506040919091013590565b600080604083850312156117e557600080fd5b82356117f081611ae0565b946020939093013593505050565b60006020828403121561181057600080fd5b8151801515811461173457600080fd5b60006020828403121561183257600080fd5b5035919050565b6000806040838503121561184c57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156118885785810183015185820160400152820161186c565b8181111561189a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119355784516001600160a01b031683529383019391830191600101611910565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561196957611969611ab4565b500190565b60008261198b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156119cb5781600019048211156119b1576119b1611ab4565b808516156119be57918102915b93841c9390800290611995565b509250929050565b600061173460ff8416836000826119ec575060016106dd565b816119f9575060006106dd565b8160018114611a0f5760028114611a1957611a35565b60019150506106dd565b60ff841115611a2a57611a2a611ab4565b50506001821b6106dd565b5060208310610133831016604e8410600b8410161715611a58575081810a6106dd565b611a628383611990565b8060001904821115611a7657611a76611ab4565b029392505050565b6000816000190483118215151615611a9857611a98611ab4565b500290565b600082821015611aaf57611aaf611ab4565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610aee57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220777a0e56e51d3d6b31ce83fe93d9914bb559021019b7cb85d074a0d56081757c64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cb578063dd62ed3e146105e1578063ea2f0b3714610627578063f239eab814610647578063f2fde38b1461065d57600080fd5b8063c24ad66c1461056a578063c9567bf91461058a578063c99f2fed1461059f578063cc70acee146105b557600080fd5b80639740a946116100e75780639740a946146104d85780639f71146d146104ee578063a8b089821461050e578063a9059cbb14610534578063b9e937001461055457600080fd5b80637bce5a04146104615780638da5cb5b14610477578063921369131461049557806395d89b41146104ab57600080fd5b806323b872dd1161019b578063437823ec1161016a578063437823ec146103ca57806347afcbfe146103ea5780636cce46fc1461040057806370a0823114610416578063715018a61461044c57600080fd5b806323b872dd14610359578063313ce567146103795780633722355c146103955780633e0c23b8146103b557600080fd5b806318160ddd116101d757806318160ddd146102d65780631c499ab0146102f55780631d6167ac146103155780631f3fed8f1461034357600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b3146102a657600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611820565b61067d565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b5060408051808201909152600c81526b131d58dade48149858989a5d60a21b60208201525b60405161025f919061185b565b3480156102b257600080fd5b506102c66102c13660046117d2565b6106cc565b604051901515815260200161025f565b3480156102e257600080fd5b506013545b60405190815260200161025f565b34801561030157600080fd5b50610233610310366004611820565b6106e3565b34801561032157600080fd5b506010546103309061ffff1681565b60405161ffff909116815260200161025f565b34801561034f57600080fd5b506102e7600f5481565b34801561036557600080fd5b506102c6610374366004611791565b610729565b34801561038557600080fd5b506040516009815260200161025f565b3480156103a157600080fd5b506102336103b0366004611717565b6107da565b3480156103c157600080fd5b50610233610828565b3480156103d657600080fd5b506102336103e5366004611717565b610880565b3480156103f657600080fd5b506102e7600a5481565b34801561040c57600080fd5b506102e760095481565b34801561042257600080fd5b506102e7610431366004611717565b6001600160a01b031660009081526001602052604090205490565b34801561045857600080fd5b506102336108ce565b34801561046d57600080fd5b506102e760075481565b34801561048357600080fd5b506000546001600160a01b031661024b565b3480156104a157600080fd5b506102e7600b5481565b3480156104b757600080fd5b5060408051808201909152600481526354757a6960e01b6020820152610299565b3480156104e457600080fd5b506102e7600d5481565b3480156104fa57600080fd5b50610233610509366004611717565b610904565b34801561051a57600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561054057600080fd5b506102c661054f3660046117d2565b61094f565b34801561056057600080fd5b506102e760085481565b34801561057657600080fd5b50610233610585366004611839565b61095c565b34801561059657600080fd5b506102336109bc565b3480156105ab57600080fd5b506102e760065481565b3480156105c157600080fd5b506102e7600e5481565b3480156105d757600080fd5b506102e7600c5481565b3480156105ed57600080fd5b506102e76105fc366004611758565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063357600080fd5b50610233610642366004611717565b610af1565b34801561065357600080fd5b506102e760055481565b34801561066957600080fd5b50610233610678366004611717565b610b3c565b6000546001600160a01b031633146106b05760405162461bcd60e51b81526004016106a7906118b0565b60405180910390fd5b6106bc6009600a6119d3565b6106c69082611a7e565b60155550565b60006106d9338484610bd4565b5060015b92915050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016106a7906118b0565b6107196009600a6119d3565b6107239082611a7e565b60145550565b6000610736848484610cf8565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a7565b6107cf85336107ca8685611a9d565b610bd4565b506001949350505050565b6000546001600160a01b031633146108045760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108525760405162461bcd60e51b81526004016106a7906118b0565b60646009819055600a8190556101f4600b819055906108719080611956565b61087b9190611956565b600c55565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108f85760405162461bcd60e51b81526004016106a7906118b0565b610902600061118a565b565b6000546001600160a01b0316331461092e5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106d9338484610cf8565b6000546001600160a01b031633146109865760405162461bcd60e51b81526004016106a7906118b0565b6109926009600a6119d3565b61099c9083611a7e565b6015556109ab6009600a6119d3565b6109b59082611a7e565b6014555050565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016106a7906118b0565b601254600160a01b900460ff1615610a405760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a7565b60128054652d79883d2000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ab657600080fd5b505af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906117fe565b50565b6000546001600160a01b03163314610b1b5760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b665760405162461bcd60e51b81526004016106a7906118b0565b6001600160a01b038116610bcb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a7565b610aee8161118a565b6001600160a01b038316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a7565b6001600160a01b038216610c975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a7565b6001600160a01b038216610dbe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a7565b60008111610e205760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a7565b6001600160a01b038316600090815260016020526040902054811115610ea25760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016106a7565b601254600160a01b900460ff1680610ed257506001600160a01b03831660009081526003602052604090205460ff165b80610ef557506001600160a01b03821660009081526003602052604090205460ff165b610f415760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016106a7565b6012546001600160a01b038481169116148015610f6c57506011546001600160a01b03838116911614155b8015610f9157506001600160a01b03821660009081526003602052604090205460ff16155b15610fe857601554811115610fe85760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e000000000000000060448201526064016106a7565b6012546001600160a01b03848116911614801561101357506011546001600160a01b03838116911614155b801561103857506001600160a01b03821660009081526004602052604090205460ff16155b156110bc576014546001600160a01b0383166000908152600160205260409020546110639083611956565b11156110bc5760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016106a7565b30600090815260016020526040902054601254600160a81b900460ff161580156110f457506012546001600160a01b03858116911614155b80156111095750601254600160b01b900460ff165b80156111155750600081115b1561113557611123816111da565b4780156111335761113347611363565b505b6001600160a01b0384166000908152600360205260409020546111849085908590859060ff168061117e57506001600160a01b03871660009081526003602052604090205460ff165b156113a1565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061122257611222611aca565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061173b565b816001815181106112c1576112c1611aca565b6001600160a01b0392831660209182029290920101526011546112e79130911684610bd4565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113209085906000908690309042906004016118e5565b600060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561139d573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113c9908490611a9d565b9091555060009050816113dc57826113e7565b6113e785858561145d565b6001600160a01b038516600090815260016020526040812080549293508392909190611414908490611956565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611af68339815191528360405161144e91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b03858116911614801561147f57506000600854115b156114f55760105460055461ffff9091169061149b9084611a7e565b6114a5919061196e565b600d5560105460065461ffff909116906114bf9084611a7e565b6114c9919061196e565b600e5560105460075461ffff909116906114e39084611a7e565b6114ed919061196e565b600f55611586565b6012546001600160a01b03848116911614801561151457506000600c54115b156115865760105460095461ffff909116906115309084611a7e565b61153a919061196e565b600d55601054600a5461ffff909116906115549084611a7e565b61155e919061196e565b600e55601054600b5461ffff909116906115789084611a7e565b611582919061196e565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115b9908490611956565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611af6833981519152916115f891815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611641908490611956565b9091555050600e546013546116569190611a9d565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611af68339815191529181900360200190a3600f5430600090815260016020526040812080549091906116ad908490611956565b9091555050600f5460405190815230906001600160a01b03861690600080516020611af68339815191529060200160405180910390a36000600f54600e54600d546116f89190611956565b6117029190611956565b905061170e8184611a9d565b95945050505050565b60006020828403121561172957600080fd5b813561173481611ae0565b9392505050565b60006020828403121561174d57600080fd5b815161173481611ae0565b6000806040838503121561176b57600080fd5b823561177681611ae0565b9150602083013561178681611ae0565b809150509250929050565b6000806000606084860312156117a657600080fd5b83356117b181611ae0565b925060208401356117c181611ae0565b929592945050506040919091013590565b600080604083850312156117e557600080fd5b82356117f081611ae0565b946020939093013593505050565b60006020828403121561181057600080fd5b8151801515811461173457600080fd5b60006020828403121561183257600080fd5b5035919050565b6000806040838503121561184c57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156118885785810183015185820160400152820161186c565b8181111561189a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119355784516001600160a01b031683529383019391830191600101611910565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561196957611969611ab4565b500190565b60008261198b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156119cb5781600019048211156119b1576119b1611ab4565b808516156119be57918102915b93841c9390800290611995565b509250929050565b600061173460ff8416836000826119ec575060016106dd565b816119f9575060006106dd565b8160018114611a0f5760028114611a1957611a35565b60019150506106dd565b60ff841115611a2a57611a2a611ab4565b50506001821b6106dd565b5060208310610133831016604e8410600b8410161715611a58575081810a6106dd565b611a628383611990565b8060001904821115611a7657611a76611ab4565b029392505050565b6000816000190483118215151615611a9857611a98611ab4565b500290565b600082821015611aaf57611aaf611ab4565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610aee57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220777a0e56e51d3d6b31ce83fe93d9914bb559021019b7cb85d074a0d56081757c64736f6c63430008070033
Deployed Bytecode Sourcemap
4949:10529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14554:130;;;;;;;;;;-1:-1:-1;14554:130:0;;;;;:::i;:::-;;:::i;:::-;;6065:73;;;;;;;;;;;;6096:42;6065:73;;;;;-1:-1:-1;;;;;2580:32:1;;;2562:51;;2550:2;2535:18;6065:73:0;;;;;;;;8401:69;;;;;;;;;;-1:-1:-1;8462:5:0;;;;;;;;;;;;-1:-1:-1;;;8462:5:0;;;;8401:69;;;;;;;:::i;9111:138::-;;;;;;;;;;-1:-1:-1;9111:138:0;;;;;:::i;:::-;;:::i;:::-;;;3068:14:1;;3061:22;3043:41;;3031:2;3016:18;9111:138:0;2903:187:1;8630:81:0;;;;;;;;;;-1:-1:-1;8701:7:0;;8630:81;;;9119:25:1;;;9107:2;9092:18;8630:81:0;8973:177:1;14411:135:0;;;;;;;;;;-1:-1:-1;14411:135:0;;;;;:::i;:::-;;:::i;6018:38::-;;;;;;;;;;-1:-1:-1;6018:38:0;;;;;;;;;;;8954:6:1;8942:19;;;8924:38;;8912:2;8897:18;6018:38:0;8780:188:1;5978:33:0;;;;;;;;;;;;;;;;9257:420;;;;;;;;;;-1:-1:-1;9257:420:0;;;;;:::i;:::-;;:::i;8555:69::-;;;;;;;;;;-1:-1:-1;8555:69:0;;5425:1;10282:36:1;;10270:2;10255:18;8555:69:0;10140:184:1;13925:123:0;;;;;;;;;;-1:-1:-1;13925:123:0;;;;;:::i;:::-;;:::i;14690:291::-;;;;;;;;;;;;;:::i;13688:111::-;;;;;;;;;;-1:-1:-1;13688:111:0;;;;;:::i;:::-;;:::i;5708:36::-;;;;;;;;;;;;;;;;5660:41;;;;;;;;;;;;;;;;8717:103;;;;;;;;;;-1:-1:-1;8717:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8801:16:0;8783:7;8801:16;;;:7;:16;;;;;;;8717:103;3612:94;;;;;;;;;;;;;:::i;5524:36::-;;;;;;;;;;;;;;;;3389:87;;;;;;;;;;-1:-1:-1;3435:7:0;3462:6;-1:-1:-1;;;;;3462:6:0;3389:87;;5751:37;;;;;;;;;;;;;;;;8476:73;;;;;;;;;;-1:-1:-1;8539:7:0;;;;;;;;;;;;-1:-1:-1;;;8539:7:0;;;;8476:73;;5893:37;;;;;;;;;;;;;;;;14056:122;;;;;;;;;;-1:-1:-1;14056:122:0;;;;;:::i;:::-;;:::i;6145:26::-;;;;;;;;;;-1:-1:-1;6145:26:0;;;;;;;-1:-1:-1;;;;;6145:26:0;;;8826:144;;;;;;;;;;-1:-1:-1;8826:144:0;;;;;:::i;:::-;;:::i;5567:84::-;;;;;;;;;;;;;;;;14186:217;;;;;;;;;;-1:-1:-1;14186:217:0;;;;;:::i;:::-;;:::i;15093:338::-;;;;;;;;;;;;;:::i;5482:35::-;;;;;;;;;;;;;;;;5937:32;;;;;;;;;;;;;;;;5795:89;;;;;;;;;;;;;;;;8976:129;;;;;;;;;;-1:-1:-1;8976:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;9075:18:0;;;9057:7;9075:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8976:129;13807:110;;;;;;;;;;-1:-1:-1;13807:110:0;;;;;:::i;:::-;;:::i;5435:40::-;;;;;;;;;;;;;;;;3714:192;;;;;;;;;;-1:-1:-1;3714:192:0;;;;;:::i;:::-;;:::i;14554:130::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;;;;;;;;;14662:14:::1;5425:1;14662:2;:14;:::i;:::-;14647:29;::::0;:12;:29:::1;:::i;:::-;14633:11;:43:::0;-1:-1:-1;14554:130:0:o;9111:138::-;9186:4;9194:39;2890:10;9217:7;9226:6;9194:8;:39::i;:::-;-1:-1:-1;9242:4:0;9111:138;;;;;:::o;14411:135::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;14524:14:::1;5425:1;14524:2;:14;:::i;:::-;14507:31;::::0;:14;:31:::1;:::i;:::-;14489:15;:49:::0;-1:-1:-1;14411:135:0:o;9257:420::-;9363:4;9380:36;9390:6;9398:9;9409:6;9380:9;:36::i;:::-;-1:-1:-1;;;;;9456:19:0;;9429:24;9456:19;;;:11;:19;;;;;;;;2890:10;9456:33;;;;;;;;9508:26;;;;9500:79;;;;-1:-1:-1;;;9500:79:0;;5934:2:1;9500:79:0;;;5916:21:1;5973:2;5953:18;;;5946:30;6012:34;5992:18;;;5985:62;-1:-1:-1;;;6063:18:1;;;6056:38;6111:19;;9500:79:0;5732:404:1;9500:79:0;9590:57;9599:6;2890:10;9621:25;9640:6;9621:16;:25;:::i;:::-;9590:8;:57::i;:::-;-1:-1:-1;9665:4:0;;9257:420;-1:-1:-1;;;;9257:420:0:o;13925:123::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13999:37:0::1;;::::0;;;:28:::1;:37;::::0;;;;:44;;-1:-1:-1;;13999:44:0::1;14039:4;13999:44;::::0;;13925:123::o;14690:291::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;14821:3:::1;14798:20;:26:::0;;;14835:15:::1;:21:::0;;;14886:3:::1;14867:16;:22:::0;;;14886:3;14916:38:::1;::::0;14821:3;14916:38:::1;:::i;:::-;:57;;;;:::i;:::-;14900:13;:73:::0;14690:291::o;13688:111::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13757:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;13757:34:0::1;13787:4;13757:34;::::0;;13688:111::o;3612:94::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;3677:21:::1;3695:1;3677:9;:21::i;:::-;3612:94::o:0;14056:122::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14128:37:0::1;14168:5;14128:37:::0;;;:28:::1;:37;::::0;;;;:45;;-1:-1:-1;;14128:45:0::1;::::0;;14056:122::o;8826:144::-;8904:4;8912:42;2890:10;8936:9;8947:6;8912:9;:42::i;14186:217::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;14321:14:::1;5425:1;14321:2;:14;:::i;:::-;14306:29;::::0;:12;:29:::1;:::i;:::-;14292:11;:43:::0;14381:14:::1;5425:1;14381:2;:14;:::i;:::-;14364:31;::::0;:14;:31:::1;:::i;:::-;14346:15;:49:::0;-1:-1:-1;;14186:217:0:o;15093:338::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;15157:11:::1;::::0;-1:-1:-1;;;15157:11:0;::::1;;;15156:12;15148:47;;;::::0;-1:-1:-1;;;15148:47:0;;7925:2:1;15148:47:0::1;::::0;::::1;7907:21:1::0;7964:2;7944:18;;;7937:30;8003:25;7983:18;;;7976:53;8046:18;;15148:47:0::1;7723:347:1::0;15148:47:0::1;15214:11;:18:::0;;15261:13:::1;15243:15;:31:::0;;;15285:11:::1;:27:::0;-1:-1:-1;;;;15323:18:0;;-1:-1:-1;;;15323:18:0;;;;15390:15:::1;::::0;15352:71:::1;::::0;-1:-1:-1;;;15352:71:0;;-1:-1:-1;;;;;15390:15:0;;::::1;15352:71;::::0;::::1;2798:51:1::0;-1:-1:-1;;2865:18:1;;;2858:34;15359:13:0;;;15352:29:::1;::::0;2771:18:1;;15352:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15093:338::o:0;13807:110::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13874:27:0::1;13904:5;13874:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13874:35:0::1;::::0;;13807:110::o;3714:192::-;3435:7;3462:6;-1:-1:-1;;;;;3462:6:0;2890:10;3524:23;3516:68;;;;-1:-1:-1;;;3516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3803:22:0;::::1;3795:73;;;::::0;-1:-1:-1;;;3795:73:0;;4721:2:1;3795:73:0::1;::::0;::::1;4703:21:1::0;4760:2;4740:18;;;4733:30;4799:34;4779:18;;;4772:62;-1:-1:-1;;;4850:18:1;;;4843:36;4896:19;;3795:73:0::1;4519:402:1::0;3795:73:0::1;3879:19;3889:8;3879:9;:19::i;9685:335::-:0;-1:-1:-1;;;;;9778:19:0;;9770:68;;;;-1:-1:-1;;;9770:68:0;;7520:2:1;9770:68:0;;;7502:21:1;7559:2;7539:18;;;7532:30;7598:34;7578:18;;;7571:62;-1:-1:-1;;;7649:18:1;;;7642:34;7693:19;;9770:68:0;7318:400:1;9770:68:0;-1:-1:-1;;;;;9857:21:0;;9849:68;;;;-1:-1:-1;;;9849:68:0;;5128:2:1;9849:68:0;;;5110:21:1;5167:2;5147:18;;;5140:30;5206:34;5186:18;;;5179:62;-1:-1:-1;;;5257:18:1;;;5250:32;5299:19;;9849:68:0;4926:398:1;9849:68:0;-1:-1:-1;;;;;9928:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9980:32;;9119:25:1;;;9980:32:0;;9092:18:1;9980:32:0;;;;;;;9685:335;;;:::o;10028:1476::-;-1:-1:-1;;;;;10116:18:0;;10108:68;;;;-1:-1:-1;;;10108:68:0;;7114:2:1;10108:68:0;;;7096:21:1;7153:2;7133:18;;;7126:30;7192:34;7172:18;;;7165:62;-1:-1:-1;;;7243:18:1;;;7236:35;7288:19;;10108:68:0;6912:401:1;10108:68:0;-1:-1:-1;;;;;10195:16:0;;10187:64;;;;-1:-1:-1;;;10187:64:0;;3899:2:1;10187:64:0;;;3881:21:1;3938:2;3918:18;;;3911:30;3977:34;3957:18;;;3950:62;-1:-1:-1;;;4028:18:1;;;4021:33;4071:19;;10187:64:0;3697:399:1;10187:64:0;10279:1;10270:6;:10;10262:64;;;;-1:-1:-1;;;10262:64:0;;6704:2:1;10262:64:0;;;6686:21:1;6743:2;6723:18;;;6716:30;6782:34;6762:18;;;6755:62;-1:-1:-1;;;6833:18:1;;;6826:39;6882:19;;10262:64:0;6502:405:1;10262:64:0;-1:-1:-1;;;;;8801:16:0;;8783:7;8801:16;;;:7;:16;;;;;;10345:6;:25;;10337:86;;;;-1:-1:-1;;;10337:86:0;;4303:2:1;10337:86:0;;;4285:21:1;4342:2;4322:18;;;4315:30;4381:34;4361:18;;;4354:62;-1:-1:-1;;;4432:18:1;;;4425:47;4489:19;;10337:86:0;4101:413:1;10337:86:0;10446:11;;-1:-1:-1;;;10446:11:0;;;;;:39;;-1:-1:-1;;;;;;10461:24:0;;;;;;:18;:24;;;;;;;;10446:39;:65;;;-1:-1:-1;;;;;;10489:22:0;;;;;;:18;:22;;;;;;;;10446:65;10438:101;;;;-1:-1:-1;;;10438:101:0;;8277:2:1;10438:101:0;;;8259:21:1;8316:2;8296:18;;;8289:30;8355:25;8335:18;;;8328:53;8398:18;;10438:101:0;8075:347:1;10438:101:0;10564:13;;-1:-1:-1;;;;;10556:21:0;;;10564:13;;10556:21;:55;;;;-1:-1:-1;10595:15:0;;-1:-1:-1;;;;;10581:30:0;;;10595:15;;10581:30;;10556:55;:83;;;;-1:-1:-1;;;;;;10617:22:0;;;;;;:18;:22;;;;;;;;10615:24;10556:83;10552:178;;;10678:11;;10668:6;:21;;10660:58;;;;-1:-1:-1;;;10660:58:0;;8629:2:1;10660:58:0;;;8611:21:1;8668:2;8648:18;;;8641:30;8707:26;8687:18;;;8680:54;8751:18;;10660:58:0;8427:348:1;10660:58:0;10752:13;;-1:-1:-1;;;;;10744:21:0;;;10752:13;;10744:21;:55;;;;-1:-1:-1;10783:15:0;;-1:-1:-1;;;;;10769:30:0;;;10783:15;;10769:30;;10744:55;:93;;;;-1:-1:-1;;;;;;10805:32:0;;;;;;:28;:32;;;;;;;;10803:34;10744:93;10740:231;;;10905:15;;-1:-1:-1;;;;;8801:16:0;;8783:7;8801:16;;;:7;:16;;;;;;10879:22;;:6;:22;:::i;:::-;:41;;10871:88;;;;-1:-1:-1;;;10871:88:0;;5531:2:1;10871:88:0;;;5513:21:1;5570:2;5550:18;;;5543:30;5609:34;5589:18;;;5582:62;-1:-1:-1;;;5660:18:1;;;5653:32;5702:19;;10871:88:0;5329:398:1;10871:88:0;11032:4;10983:28;8801:16;;;:7;:16;;;;;;11058:6;;-1:-1:-1;;;11058:6:0;;;;11057:7;:32;;;;-1:-1:-1;11076:13:0;;-1:-1:-1;;;;;11068:21:0;;;11076:13;;11068:21;;11057:32;:47;;;;-1:-1:-1;11093:11:0;;-1:-1:-1;;;11093:11:0;;;;11057:47;:73;;;;;11129:1;11108:20;:22;11057:73;11053:344;;;11151:38;11168:20;11151:16;:38::i;:::-;11237:21;11280:22;;11277:105;;11327:35;11340:21;11327:12;:35::i;:::-;11132:265;11053:344;-1:-1:-1;;;;;11444:24:0;;;;;;:18;:24;;;;;;11409:87;;11424:4;;11430:2;;11434:6;;11444:24;;;:50;;-1:-1:-1;;;;;;11472:22:0;;;;;;:18;:22;;;;;;;;11444:50;11442:53;11409:14;:87::i;:::-;10097:1407;10028:1476;;;:::o;3914:173::-;3970:16;3989:6;;-1:-1:-1;;;;;4006:17:0;;;-1:-1:-1;;;;;;4006:17:0;;;;;;4039:40;;3989:6;;;;;;;4039:40;;3970:16;4039:40;3959:128;3914:173;:::o;11512:483::-;6664:6;:13;;-1:-1:-1;;;;6664:13:0;-1:-1:-1;;;6664:13:0;;;11614:16:::1;::::0;;11628:1:::1;11614:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11614:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11614:16:0::1;11590:40;;11659:4;11641;11646:1;11641:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11641:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11685:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11685:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11641:7;;11685:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11675:4;11680:1;11675:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11675:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11750:15:::1;::::0;11718:62:::1;::::0;11735:4:::1;::::0;11750:15:::1;11768:11:::0;11718:8:::1;:62::i;:::-;11791:15;::::0;:196:::1;::::0;-1:-1:-1;;;11791:196:0;;-1:-1:-1;;;;;11791:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11872:11;;11791:15:::1;::::0;11914:4;;11941::::1;::::0;11961:15:::1;::::0;11791:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6700:6:0;:14;;-1:-1:-1;;;;6700:14:0;;;-1:-1:-1;;;;11512:483:0:o;14989:95::-;15046:13;;:30;;-1:-1:-1;;;;;15046:13:0;;;;:30;;;;;15069:6;;15046:13;:30;:13;:30;15069:6;15046:13;:30;;;;;;;;;;;;;;;;;;;;;14989:95;:::o;12003:340::-;-1:-1:-1;;;;;12111:15:0;;;;;;:7;:15;;;;;:25;;12130:6;;12111:15;:25;;12130:6;;12111:25;:::i;:::-;;;;-1:-1:-1;12147:22:0;;-1:-1:-1;12173:7:0;12172:57;;12223:6;12172:57;;;12184:36;12194:6;12202:9;12213:6;12184:9;:36::i;:::-;-1:-1:-1;;;;;12240:18:0;;;;;;:7;:18;;;;;:36;;12147:82;;-1:-1:-1;12147:82:0;;12240:18;;;:36;;12147:82;;12240:36;:::i;:::-;;;;;;;;12309:9;-1:-1:-1;;;;;12292:43:0;12301:6;-1:-1:-1;;;;;12292:43:0;-1:-1:-1;;;;;;;;;;;12320:14:0;12292:43;;;;9119:25:1;;9107:2;9092:18;;8973:177;12292:43:0;;;;;;;;12100:243;12003:340;;;;:::o;12351:1329::-;12461:13;;12430:7;;-1:-1:-1;;;;;12453:21:0;;;12461:13;;12453:21;:41;;;;;12493:1;12478:12;;:16;12453:41;12450:637;;;12569:16;;12547:19;;12569:16;;;;;12538:28;;:6;:28;:::i;:::-;:47;;;;:::i;:::-;12513:22;:72;12646:16;;12629:14;;12646:16;;;;;12620:23;;:6;:23;:::i;:::-;:42;;;;:::i;:::-;12600:17;:62;12734:16;;12716:15;;12734:16;;;;;12707:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;12686:18;:64;12450:637;;;12782:13;;-1:-1:-1;;;;;12776:19:0;;;12782:13;;12776:19;:41;;;;;12816:1;12800:13;;:17;12776:41;12772:315;;;12893:16;;12870:20;;12893:16;;;;;12861:29;;:6;:29;:::i;:::-;:48;;;;:::i;:::-;12836:22;:73;12971:16;;12953:15;;12971:16;;;;;12944:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;12924:17;:63;13051:16;;13032;;13051;;;;;13023:25;;:6;:25;:::i;:::-;:44;;;;:::i;:::-;13002:18;:65;12772:315;13121:22;;13105:11;;;;;-1:-1:-1;;;;;13105:11:0;13097:20;;;;:7;:20;;;;;:46;;:20;;;:46;;13121:22;;13097:46;:::i;:::-;;;;-1:-1:-1;;13174:11:0;;13187:22;;13159:51;;-1:-1:-1;;;;;13174:11:0;;;;;;;13159:51;;;-1:-1:-1;;;;;;;;;;;13159:51:0;;;9119:25:1;;9107:2;9092:18;;8973:177;13159:51:0;;;;;;;;13248:17;;6096:42;13231:13;;;;:7;:13;;;:34;;:13;;;:34;;13248:17;;13231:34;:::i;:::-;;;;-1:-1:-1;;13296:17:0;;13286:7;;:27;;13296:17;13286:27;:::i;:::-;13276:7;:37;13384:17;;13363:39;;;9119:25:1;;;13363:39:0;6096:42;;-1:-1:-1;;;;;13363:39:0;;;-1:-1:-1;;;;;;;;;;;13363:39:0;;;;9107:2:1;13363:39:0;;;13457:18;;13447:4;13431:22;;;;:7;:22;;;;;:44;;:22;;;:44;;13457:18;;13431:44;:::i;:::-;;;;-1:-1:-1;;13521:18:0;;13491:49;;9119:25:1;;;13514:4:0;;-1:-1:-1;;;;;13491:49:0;;;-1:-1:-1;;;;;;;;;;;13491:49:0;9107:2:1;9092:18;13491:49:0;;;;;;;13553:17;13618:18;;13598:17;;13573:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13553:83;-1:-1:-1;13654:18:0;13553:83;13654:6;:18;:::i;:::-;13647:25;12351:1329;-1:-1:-1;;;;;12351:1329:0:o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:52;;;1521:1;1518;1511:12;1473:52;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1376:315:1:o;1696:277::-;1763:6;1816:2;1804:9;1795:7;1791:23;1787:32;1784:52;;;1832:1;1829;1822:12;1784:52;1864:9;1858:16;1917:5;1910:13;1903:21;1896:5;1893:32;1883:60;;1939:1;1936;1929:12;1978:180;2037:6;2090:2;2078:9;2069:7;2065:23;2061:32;2058:52;;;2106:1;2103;2096:12;2058:52;-1:-1:-1;2129:23:1;;1978:180;-1:-1:-1;1978:180:1:o;2163:248::-;2231:6;2239;2292:2;2280:9;2271:7;2267:23;2263:32;2260:52;;;2308:1;2305;2298:12;2260:52;-1:-1:-1;;2331:23:1;;;2401:2;2386:18;;;2373:32;;-1:-1:-1;2163:248:1:o;3095:597::-;3207:4;3236:2;3265;3254:9;3247:21;3297:6;3291:13;3340:6;3335:2;3324:9;3320:18;3313:34;3365:1;3375:140;3389:6;3386:1;3383:13;3375:140;;;3484:14;;;3480:23;;3474:30;3450:17;;;3469:2;3446:26;3439:66;3404:10;;3375:140;;;3533:6;3530:1;3527:13;3524:91;;;3603:1;3598:2;3589:6;3578:9;3574:22;3570:31;3563:42;3524:91;-1:-1:-1;3676:2:1;3655:15;-1:-1:-1;;3651:29:1;3636:45;;;;3683:2;3632:54;;3095:597;-1:-1:-1;;;3095:597:1:o;6141:356::-;6343:2;6325:21;;;6362:18;;;6355:30;6421:34;6416:2;6401:18;;6394:62;6488:2;6473:18;;6141:356::o;9155:980::-;9417:4;9465:3;9454:9;9450:19;9496:6;9485:9;9478:25;9522:2;9560:6;9555:2;9544:9;9540:18;9533:34;9603:3;9598:2;9587:9;9583:18;9576:31;9627:6;9662;9656:13;9693:6;9685;9678:22;9731:3;9720:9;9716:19;9709:26;;9770:2;9762:6;9758:15;9744:29;;9791:1;9801:195;9815:6;9812:1;9809:13;9801:195;;;9880:13;;-1:-1:-1;;;;;9876:39:1;9864:52;;9971:15;;;;9936:12;;;;9912:1;9830:9;9801:195;;;-1:-1:-1;;;;;;;10052:32:1;;;;10047:2;10032:18;;10025:60;-1:-1:-1;;;10116:3:1;10101:19;10094:35;10013:3;9155:980;-1:-1:-1;;;9155:980:1:o;10329:128::-;10369:3;10400:1;10396:6;10393:1;10390:13;10387:39;;;10406:18;;:::i;:::-;-1:-1:-1;10442:9:1;;10329:128::o;10462:217::-;10502:1;10528;10518:132;;10572:10;10567:3;10563:20;10560:1;10553:31;10607:4;10604:1;10597:15;10635:4;10632:1;10625:15;10518:132;-1:-1:-1;10664:9:1;;10462:217::o;10684:422::-;10773:1;10816:5;10773:1;10830:270;10851:7;10841:8;10838:21;10830:270;;;10910:4;10906:1;10902:6;10898:17;10892:4;10889:27;10886:53;;;10919:18;;:::i;:::-;10969:7;10959:8;10955:22;10952:55;;;10989:16;;;;10952:55;11068:22;;;;11028:15;;;;10830:270;;;10834:3;10684:422;;;;;:::o;11111:140::-;11169:5;11198:47;11239:4;11229:8;11225:19;11219:4;11305:5;11335:8;11325:80;;-1:-1:-1;11376:1:1;11390:5;;11325:80;11424:4;11414:76;;-1:-1:-1;11461:1:1;11475:5;;11414:76;11506:4;11524:1;11519:59;;;;11592:1;11587:130;;;;11499:218;;11519:59;11549:1;11540:10;;11563:5;;;11587:130;11624:3;11614:8;11611:17;11608:43;;;11631:18;;:::i;:::-;-1:-1:-1;;11687:1:1;11673:16;;11702:5;;11499:218;;11801:2;11791:8;11788:16;11782:3;11776:4;11773:13;11769:36;11763:2;11753:8;11750:16;11745:2;11739:4;11736:12;11732:35;11729:77;11726:159;;;-1:-1:-1;11838:19:1;;;11870:5;;11726:159;11917:34;11942:8;11936:4;11917:34;:::i;:::-;11987:6;11983:1;11979:6;11975:19;11966:7;11963:32;11960:58;;;11998:18;;:::i;:::-;12036:20;;11256:806;-1:-1:-1;;;11256:806:1:o;12067:168::-;12107:7;12173:1;12169;12165:6;12161:14;12158:1;12155:21;12150:1;12143:9;12136:17;12132:45;12129:71;;;12180:18;;:::i;:::-;-1:-1:-1;12220:9:1;;12067:168::o;12240:125::-;12280:4;12308:1;12305;12302:8;12299:34;;;12313:18;;:::i;:::-;-1:-1:-1;12350:9:1;;12240:125::o;12370:127::-;12431:10;12426:3;12422:20;12419:1;12412:31;12462:4;12459:1;12452:15;12486:4;12483:1;12476:15;12502:127;12563:10;12558:3;12554:20;12551:1;12544:31;12594:4;12591:1;12584:15;12618:4;12615:1;12608:15;12766:131;-1:-1:-1;;;;;12841:31:1;;12831:42;;12821:70;;12887:1;12884;12877:12
Swarm Source
ipfs://777a0e56e51d3d6b31ce83fe93d9914bb559021019b7cb85d074a0d56081757c
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.