Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
9,872,521,103.008133076 OK
Holders
19
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
287,721,023.653470927 OKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OKANE
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-26 */ // SPDX-License-Identifier: NOLICENSE /** Project Name: OKANE Ticker: $OK Supply: 10,000,000,000 (10 Billion) The Okane Token is a blockchain-based system for tracking media consumers' time and attention on websites using the Okane web browser. Built on Ethereum Network , its goal is to efficiently distribute advertising money between advertisers, publishers, and readers of online marketing content and ads. $OK has auto burning mechanism and autoliquidty feature in every trading transactions. Telegram: https://t.me/OKANE_ERC20 Twitter: https://twitter.com/OKERC20 */ 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 OKANE 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 = "OKANE"; string private constant _symbol = "OK"; uint8 private constant _decimals = 9; uint256 public buyAutoLiquidityFee = 100; uint256 public buyAutoBurnFee = 200; uint256 public buyMarketingFee = 900; uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; uint256 public sellAutoLiquidityFee = 100; uint256 public sellAutoBurnFee = 200; uint256 public sellMarketingFee = 900; 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 = 10000000000* 10**9; uint256 private maxWalletAmount = 200000000 * 10**9; uint256 private maxTxAmount = 200000000 * 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(0xf5c887E93E81E9F99Ad0daF9D205D7Fbbbb7CE00); _tOwned[owner()] = _tTotal; uint256 _buyAutoLiquidityFee = 100; uint256 _buyAutoBurnFee = 100; uint256 _buyMarketingFee = 1000; uint256 _sellAutoLiquidityFee = 100; uint256 _sellAutoBurnFee = 100; uint256 _sellMarketingFee = 1000; 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 SetBuyandSellFeesTo6() external onlyOwner { //Original state of buy and sell tax sellAutoLiquidityFee = 100; sellAutoBurnFee = 100; sellMarketingFee = 500; buyAutoLiquidityFee = 100; buyAutoBurnFee = 100; buyMarketingFee = 500; totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee; totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee; } function sendETHToFee(uint256 amount) private { feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; maxWalletAmount = 200000000 * 10**9; maxTxAmount = 200000000 * 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":"SetBuyandSellFeesTo6","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
6080604052606460055560c860065561038460075560075460065460055462000029919062000666565b62000035919062000666565b600855606460095560c8600a55610384600b55600b54600a546009546200005d919062000666565b62000069919062000666565b600c556010805461ffff19166127101790556012805461ffff60a81b19169055678ac7230489e800006013556702c68af0bb1400006014819055601555348015620000b357600080fd5b50620000bf3362000616565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200012057600080fd5b505afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b91906200068d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a457600080fd5b505afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df91906200068d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200022857600080fd5b505af11580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026391906200068d565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c357600080fd5b505afa158015620002d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200068d565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034757600080fd5b505afa1580156200035c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038291906200068d565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015620003c957600080fd5b505afa158015620003de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040491906200068d565b601080546001600160a01b03928316620100000262010000600160b01b0319909116179055601680546001600160a01b03191673f5c887e93e81e9f99ad0daf9d205d7fbbbb7ce0017905560135460008054909216825260016020526040909120556064600581905560068190556103e860078190558190818082806200048c838062000666565b62000498919062000666565b6008556009839055600a829055600b81905580620004b7838562000666565b620004c3919062000666565b600c55600160036000620004df6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556016549091168352908220805490931681179092556004906200054f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601654909116835291208054909216179055620005b96000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6013546040516200060191815260200190565b60405180910390a350505050505050620006bf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082198211156200068857634e487b7160e01b600052601160045260246000fd5b500190565b600060208284031215620006a057600080fd5b81516001600160a01b0381168114620006b857600080fd5b9392505050565b611b7880620006cf6000396000f3fe6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105c2578063dd62ed3e146105d8578063ea2f0b371461061e578063f239eab81461063e578063f2fde38b1461065457600080fd5b8063c24ad66c14610561578063c9567bf914610581578063c99f2fed14610596578063cc70acee146105ac57600080fd5b80639740a946116100e75780639740a946146104cf5780639f71146d146104e5578063a8b0898214610505578063a9059cbb1461052b578063b9e937001461054b57600080fd5b80637bce5a041461045a5780638da5cb5b14610470578063921369131461048e57806395d89b41146104a457600080fd5b806323b872dd1161019b57806347afcbfe1161016a57806347afcbfe146103ce5780635030bf15146103e45780636cce46fc146103f957806370a082311461040f578063715018a61461044557600080fd5b806323b872dd14610352578063313ce567146103725780633722355c1461038e578063437823ec146103ae57600080fd5b806318160ddd116101d757806318160ddd146102cf5780631c499ab0146102ee5780631d6167ac1461030e5780631f3fed8f1461033c57600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b31461029f57600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e36600461173f565b610674565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b506040805180820190915260058152644f4b414e4560d81b60208201525b60405161025f9190611758565b3480156102ab57600080fd5b506102bf6102ba3660046117c2565b6106c3565b604051901515815260200161025f565b3480156102db57600080fd5b506013545b60405190815260200161025f565b3480156102fa57600080fd5b5061023361030936600461173f565b6106da565b34801561031a57600080fd5b506010546103299061ffff1681565b60405161ffff909116815260200161025f565b34801561034857600080fd5b506102e0600f5481565b34801561035e57600080fd5b506102bf61036d3660046117ee565b610720565b34801561037e57600080fd5b506040516009815260200161025f565b34801561039a57600080fd5b506102336103a936600461182f565b6107d1565b3480156103ba57600080fd5b506102336103c936600461182f565b61081f565b3480156103da57600080fd5b506102e0600a5481565b3480156103f057600080fd5b5061023361086d565b34801561040557600080fd5b506102e060095481565b34801561041b57600080fd5b506102e061042a36600461182f565b6001600160a01b031660009081526001602052604090205490565b34801561045157600080fd5b506102336108f4565b34801561046657600080fd5b506102e060075481565b34801561047c57600080fd5b506000546001600160a01b031661024b565b34801561049a57600080fd5b506102e0600b5481565b3480156104b057600080fd5b506040805180820190915260028152614f4b60f01b6020820152610292565b3480156104db57600080fd5b506102e0600d5481565b3480156104f157600080fd5b5061023361050036600461182f565b61092a565b34801561051157600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561053757600080fd5b506102bf6105463660046117c2565b610975565b34801561055757600080fd5b506102e060085481565b34801561056d57600080fd5b5061023361057c366004611853565b610982565b34801561058d57600080fd5b506102336109e2565b3480156105a257600080fd5b506102e060065481565b3480156105b857600080fd5b506102e0600e5481565b3480156105ce57600080fd5b506102e0600c5481565b3480156105e457600080fd5b506102e06105f3366004611875565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561062a57600080fd5b5061023361063936600461182f565b610b19565b34801561064a57600080fd5b506102e060055481565b34801561066057600080fd5b5061023361066f36600461182f565b610b64565b6000546001600160a01b031633146106a75760405162461bcd60e51b815260040161069e906118ae565b60405180910390fd5b6106b36009600a6119dd565b6106bd90826119ec565b60155550565b60006106d0338484610bfc565b5060015b92915050565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161069e906118ae565b6107106009600a6119dd565b61071a90826119ec565b60145550565b600061072d848484610d20565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107b25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161069e565b6107c685336107c18685611a0b565b610bfc565b506001949350505050565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108495760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108975760405162461bcd60e51b815260040161069e906118ae565b60646009819055600a8190556101f4600b819055600582905560068290556007819055906108c59080611a22565b6108cf9190611a22565b600c556007546006546005546108e59190611a22565b6108ef9190611a22565b600855565b6000546001600160a01b0316331461091e5760405162461bcd60e51b815260040161069e906118ae565b61092860006111b2565b565b6000546001600160a01b031633146109545760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106d0338484610d20565b6000546001600160a01b031633146109ac5760405162461bcd60e51b815260040161069e906118ae565b6109b86009600a6119dd565b6109c290836119ec565b6015556109d16009600a6119dd565b6109db90826119ec565b6014555050565b6000546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161069e906118ae565b601254600160a01b900460ff1615610a665760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161069e565b601280546702c68af0bb140000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ade57600080fd5b505af1158015610af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b169190611a3a565b50565b6000546001600160a01b03163314610b435760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b038116610bf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161069e565b610b16816111b2565b6001600160a01b038316610c5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069e565b6001600160a01b038216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069e565b6001600160a01b038216610de65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069e565b60008111610e485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069e565b6001600160a01b038316600090815260016020526040902054811115610eca5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161069e565b601254600160a01b900460ff1680610efa57506001600160a01b03831660009081526003602052604090205460ff165b80610f1d57506001600160a01b03821660009081526003602052604090205460ff165b610f695760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161069e565b6012546001600160a01b038481169116148015610f9457506011546001600160a01b03838116911614155b8015610fb957506001600160a01b03821660009081526003602052604090205460ff16155b15611010576015548111156110105760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161069e565b6012546001600160a01b03848116911614801561103b57506011546001600160a01b03838116911614155b801561106057506001600160a01b03821660009081526004602052604090205460ff16155b156110e4576014546001600160a01b03831660009081526001602052604090205461108b9083611a22565b11156110e45760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b606482015260840161069e565b30600090815260016020526040902054601254600160a81b900460ff1615801561111c57506012546001600160a01b03858116911614155b80156111315750601254600160b01b900460ff165b801561113d5750600081115b1561115d5761114b81611202565b47801561115b5761115b4761138b565b505b6001600160a01b0384166000908152600360205260409020546111ac9085908590859060ff16806111a657506001600160a01b03871660009081526003602052604090205460ff165b156113c9565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611a5c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561129e57600080fd5b505afa1580156112b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d69190611a72565b816001815181106112e9576112e9611a5c565b6001600160a01b03928316602091820292909201015260115461130f9130911684610bfc565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611348908590600090869030904290600401611a8f565b600060405180830381600087803b15801561136257600080fd5b505af1158015611376573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113c5573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113f1908490611a0b565b909155506000905081611404578261140f565b61140f858585611485565b6001600160a01b03851660009081526001602052604081208054929350839290919061143c908490611a22565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611b238339815191528360405161147691815260200190565b60405180910390a35050505050565b6012546000906001600160a01b0385811691161480156114a757506000600854115b1561151d5760105460055461ffff909116906114c390846119ec565b6114cd9190611b00565b600d5560105460065461ffff909116906114e790846119ec565b6114f19190611b00565b600e5560105460075461ffff9091169061150b90846119ec565b6115159190611b00565b600f556115ae565b6012546001600160a01b03848116911614801561153c57506000600c54115b156115ae5760105460095461ffff9091169061155890846119ec565b6115629190611b00565b600d55601054600a5461ffff9091169061157c90846119ec565b6115869190611b00565b600e55601054600b5461ffff909116906115a090846119ec565b6115aa9190611b00565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115e1908490611a22565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611b238339815191529161162091815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611669908490611a22565b9091555050600e5460135461167e9190611a0b565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611b238339815191529181900360200190a3600f5430600090815260016020526040812080549091906116d5908490611a22565b9091555050600f5460405190815230906001600160a01b03861690600080516020611b238339815191529060200160405180910390a36000600f54600e54600d546117209190611a22565b61172a9190611a22565b90506117368184611a0b565b95945050505050565b60006020828403121561175157600080fd5b5035919050565b600060208083528351808285015260005b8181101561178557858101830151858201604001528201611769565b81811115611797576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b1657600080fd5b600080604083850312156117d557600080fd5b82356117e0816117ad565b946020939093013593505050565b60008060006060848603121561180357600080fd5b833561180e816117ad565b9250602084013561181e816117ad565b929592945050506040919091013590565b60006020828403121561184157600080fd5b813561184c816117ad565b9392505050565b6000806040838503121561186657600080fd5b50508035926020909101359150565b6000806040838503121561188857600080fd5b8235611893816117ad565b915060208301356118a3816117ad565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561193457816000190482111561191a5761191a6118e3565b8085161561192757918102915b93841c93908002906118fe565b509250929050565b60008261194b575060016106d4565b81611958575060006106d4565b816001811461196e576002811461197857611994565b60019150506106d4565b60ff841115611989576119896118e3565b50506001821b6106d4565b5060208310610133831016604e8410600b84101617156119b7575081810a6106d4565b6119c183836118f9565b80600019048211156119d5576119d56118e3565b029392505050565b600061184c60ff84168361193c565b6000816000190483118215151615611a0657611a066118e3565b500290565b600082821015611a1d57611a1d6118e3565b500390565b60008219821115611a3557611a356118e3565b500190565b600060208284031215611a4c57600080fd5b8151801515811461184c57600080fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a8457600080fd5b815161184c816117ad565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611adf5784516001600160a01b031683529383019391830191600101611aba565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1d57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209255d2835c78d934c488ad505d45ac447b53ab1bf8639f8c20dc8d9f89427b1b64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105c2578063dd62ed3e146105d8578063ea2f0b371461061e578063f239eab81461063e578063f2fde38b1461065457600080fd5b8063c24ad66c14610561578063c9567bf914610581578063c99f2fed14610596578063cc70acee146105ac57600080fd5b80639740a946116100e75780639740a946146104cf5780639f71146d146104e5578063a8b0898214610505578063a9059cbb1461052b578063b9e937001461054b57600080fd5b80637bce5a041461045a5780638da5cb5b14610470578063921369131461048e57806395d89b41146104a457600080fd5b806323b872dd1161019b57806347afcbfe1161016a57806347afcbfe146103ce5780635030bf15146103e45780636cce46fc146103f957806370a082311461040f578063715018a61461044557600080fd5b806323b872dd14610352578063313ce567146103725780633722355c1461038e578063437823ec146103ae57600080fd5b806318160ddd116101d757806318160ddd146102cf5780631c499ab0146102ee5780631d6167ac1461030e5780631f3fed8f1461033c57600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b31461029f57600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e36600461173f565b610674565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b506040805180820190915260058152644f4b414e4560d81b60208201525b60405161025f9190611758565b3480156102ab57600080fd5b506102bf6102ba3660046117c2565b6106c3565b604051901515815260200161025f565b3480156102db57600080fd5b506013545b60405190815260200161025f565b3480156102fa57600080fd5b5061023361030936600461173f565b6106da565b34801561031a57600080fd5b506010546103299061ffff1681565b60405161ffff909116815260200161025f565b34801561034857600080fd5b506102e0600f5481565b34801561035e57600080fd5b506102bf61036d3660046117ee565b610720565b34801561037e57600080fd5b506040516009815260200161025f565b34801561039a57600080fd5b506102336103a936600461182f565b6107d1565b3480156103ba57600080fd5b506102336103c936600461182f565b61081f565b3480156103da57600080fd5b506102e0600a5481565b3480156103f057600080fd5b5061023361086d565b34801561040557600080fd5b506102e060095481565b34801561041b57600080fd5b506102e061042a36600461182f565b6001600160a01b031660009081526001602052604090205490565b34801561045157600080fd5b506102336108f4565b34801561046657600080fd5b506102e060075481565b34801561047c57600080fd5b506000546001600160a01b031661024b565b34801561049a57600080fd5b506102e0600b5481565b3480156104b057600080fd5b506040805180820190915260028152614f4b60f01b6020820152610292565b3480156104db57600080fd5b506102e0600d5481565b3480156104f157600080fd5b5061023361050036600461182f565b61092a565b34801561051157600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561053757600080fd5b506102bf6105463660046117c2565b610975565b34801561055757600080fd5b506102e060085481565b34801561056d57600080fd5b5061023361057c366004611853565b610982565b34801561058d57600080fd5b506102336109e2565b3480156105a257600080fd5b506102e060065481565b3480156105b857600080fd5b506102e0600e5481565b3480156105ce57600080fd5b506102e0600c5481565b3480156105e457600080fd5b506102e06105f3366004611875565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561062a57600080fd5b5061023361063936600461182f565b610b19565b34801561064a57600080fd5b506102e060055481565b34801561066057600080fd5b5061023361066f36600461182f565b610b64565b6000546001600160a01b031633146106a75760405162461bcd60e51b815260040161069e906118ae565b60405180910390fd5b6106b36009600a6119dd565b6106bd90826119ec565b60155550565b60006106d0338484610bfc565b5060015b92915050565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161069e906118ae565b6107106009600a6119dd565b61071a90826119ec565b60145550565b600061072d848484610d20565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107b25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161069e565b6107c685336107c18685611a0b565b610bfc565b506001949350505050565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108495760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108975760405162461bcd60e51b815260040161069e906118ae565b60646009819055600a8190556101f4600b819055600582905560068290556007819055906108c59080611a22565b6108cf9190611a22565b600c556007546006546005546108e59190611a22565b6108ef9190611a22565b600855565b6000546001600160a01b0316331461091e5760405162461bcd60e51b815260040161069e906118ae565b61092860006111b2565b565b6000546001600160a01b031633146109545760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106d0338484610d20565b6000546001600160a01b031633146109ac5760405162461bcd60e51b815260040161069e906118ae565b6109b86009600a6119dd565b6109c290836119ec565b6015556109d16009600a6119dd565b6109db90826119ec565b6014555050565b6000546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161069e906118ae565b601254600160a01b900460ff1615610a665760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161069e565b601280546702c68af0bb140000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ade57600080fd5b505af1158015610af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b169190611a3a565b50565b6000546001600160a01b03163314610b435760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161069e906118ae565b6001600160a01b038116610bf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161069e565b610b16816111b2565b6001600160a01b038316610c5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069e565b6001600160a01b038216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069e565b6001600160a01b038216610de65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069e565b60008111610e485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069e565b6001600160a01b038316600090815260016020526040902054811115610eca5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161069e565b601254600160a01b900460ff1680610efa57506001600160a01b03831660009081526003602052604090205460ff165b80610f1d57506001600160a01b03821660009081526003602052604090205460ff165b610f695760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161069e565b6012546001600160a01b038481169116148015610f9457506011546001600160a01b03838116911614155b8015610fb957506001600160a01b03821660009081526003602052604090205460ff16155b15611010576015548111156110105760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161069e565b6012546001600160a01b03848116911614801561103b57506011546001600160a01b03838116911614155b801561106057506001600160a01b03821660009081526004602052604090205460ff16155b156110e4576014546001600160a01b03831660009081526001602052604090205461108b9083611a22565b11156110e45760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b606482015260840161069e565b30600090815260016020526040902054601254600160a81b900460ff1615801561111c57506012546001600160a01b03858116911614155b80156111315750601254600160b01b900460ff165b801561113d5750600081115b1561115d5761114b81611202565b47801561115b5761115b4761138b565b505b6001600160a01b0384166000908152600360205260409020546111ac9085908590859060ff16806111a657506001600160a01b03871660009081526003602052604090205460ff165b156113c9565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611a5c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561129e57600080fd5b505afa1580156112b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d69190611a72565b816001815181106112e9576112e9611a5c565b6001600160a01b03928316602091820292909201015260115461130f9130911684610bfc565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611348908590600090869030904290600401611a8f565b600060405180830381600087803b15801561136257600080fd5b505af1158015611376573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113c5573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113f1908490611a0b565b909155506000905081611404578261140f565b61140f858585611485565b6001600160a01b03851660009081526001602052604081208054929350839290919061143c908490611a22565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611b238339815191528360405161147691815260200190565b60405180910390a35050505050565b6012546000906001600160a01b0385811691161480156114a757506000600854115b1561151d5760105460055461ffff909116906114c390846119ec565b6114cd9190611b00565b600d5560105460065461ffff909116906114e790846119ec565b6114f19190611b00565b600e5560105460075461ffff9091169061150b90846119ec565b6115159190611b00565b600f556115ae565b6012546001600160a01b03848116911614801561153c57506000600c54115b156115ae5760105460095461ffff9091169061155890846119ec565b6115629190611b00565b600d55601054600a5461ffff9091169061157c90846119ec565b6115869190611b00565b600e55601054600b5461ffff909116906115a090846119ec565b6115aa9190611b00565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115e1908490611a22565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611b238339815191529161162091815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611669908490611a22565b9091555050600e5460135461167e9190611a0b565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611b238339815191529181900360200190a3600f5430600090815260016020526040812080549091906116d5908490611a22565b9091555050600f5460405190815230906001600160a01b03861690600080516020611b238339815191529060200160405180910390a36000600f54600e54600d546117209190611a22565b61172a9190611a22565b90506117368184611a0b565b95945050505050565b60006020828403121561175157600080fd5b5035919050565b600060208083528351808285015260005b8181101561178557858101830151858201604001528201611769565b81811115611797576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b1657600080fd5b600080604083850312156117d557600080fd5b82356117e0816117ad565b946020939093013593505050565b60008060006060848603121561180357600080fd5b833561180e816117ad565b9250602084013561181e816117ad565b929592945050506040919091013590565b60006020828403121561184157600080fd5b813561184c816117ad565b9392505050565b6000806040838503121561186657600080fd5b50508035926020909101359150565b6000806040838503121561188857600080fd5b8235611893816117ad565b915060208301356118a3816117ad565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561193457816000190482111561191a5761191a6118e3565b8085161561192757918102915b93841c93908002906118fe565b509250929050565b60008261194b575060016106d4565b81611958575060006106d4565b816001811461196e576002811461197857611994565b60019150506106d4565b60ff841115611989576119896118e3565b50506001821b6106d4565b5060208310610133831016604e8410600b84101617156119b7575081810a6106d4565b6119c183836118f9565b80600019048211156119d5576119d56118e3565b029392505050565b600061184c60ff84168361193c565b6000816000190483118215151615611a0657611a066118e3565b500290565b600082821015611a1d57611a1d6118e3565b500390565b60008219821115611a3557611a356118e3565b500190565b600060208284031215611a4c57600080fd5b8151801515811461184c57600080fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a8457600080fd5b815161184c816117ad565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611adf5784516001600160a01b031683529383019391830191600101611aba565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1d57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209255d2835c78d934c488ad505d45ac447b53ab1bf8639f8c20dc8d9f89427b1b64736f6c63430008090033
Deployed Bytecode Sourcemap
4629:10701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14237:130;;;;;;;;;;-1:-1:-1;14237:130:0;;;;;:::i;:::-;;:::i;:::-;;5737:73;;;;;;;;;;;;5768:42;5737:73;;;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;5737:73:0;;;;;;;;8084:69;;;;;;;;;;-1:-1:-1;8145:5:0;;;;;;;;;;;;-1:-1:-1;;;8145:5:0;;;;8084:69;;;;;;;:::i;8794:138::-;;;;;;;;;;-1:-1:-1;8794:138:0;;;;;:::i;:::-;;:::i;:::-;;;1630:14:1;;1623:22;1605:41;;1593:2;1578:18;8794:138:0;1465:187:1;8313:81:0;;;;;;;;;;-1:-1:-1;8384:7:0;;8313:81;;;1803:25:1;;;1791:2;1776:18;8313:81:0;1657:177:1;14094:135:0;;;;;;;;;;-1:-1:-1;14094:135:0;;;;;:::i;:::-;;:::i;5690:38::-;;;;;;;;;;-1:-1:-1;5690:38:0;;;;;;;;;;;2013:6:1;2001:19;;;1983:38;;1971:2;1956:18;5690:38:0;1839:188:1;5650:33:0;;;;;;;;;;;;;;;;8940:420;;;;;;;;;;-1:-1:-1;8940:420:0;;;;;:::i;:::-;;:::i;8238:69::-;;;;;;;;;;-1:-1:-1;8238:69:0;;5097:1;2635:36:1;;2623:2;2608:18;8238:69:0;2493:184:1;13608:123:0;;;;;;;;;;-1:-1:-1;13608:123:0;;;;;:::i;:::-;;:::i;13371:111::-;;;;;;;;;;-1:-1:-1;13371:111:0;;;;;:::i;:::-;;:::i;5380:36::-;;;;;;;;;;;;;;;;14375:450;;;;;;;;;;;;;:::i;5332:41::-;;;;;;;;;;;;;;;;8400:103;;;;;;;;;;-1:-1:-1;8400:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8484:16:0;8466:7;8484:16;;;:7;:16;;;;;;;8400:103;3292:94;;;;;;;;;;;;;:::i;5196:36::-;;;;;;;;;;;;;;;;3069:87;;;;;;;;;;-1:-1:-1;3115:7:0;3142:6;-1:-1:-1;;;;;3142:6:0;3069:87;;5423:37;;;;;;;;;;;;;;;;8159:73;;;;;;;;;;-1:-1:-1;8222:7:0;;;;;;;;;;;;-1:-1:-1;;;8222:7:0;;;;8159:73;;5565:37;;;;;;;;;;;;;;;;13739:122;;;;;;;;;;-1:-1:-1;13739:122:0;;;;;:::i;:::-;;:::i;5817:26::-;;;;;;;;;;-1:-1:-1;5817:26:0;;;;;;;-1:-1:-1;;;;;5817:26:0;;;8509:144;;;;;;;;;;-1:-1:-1;8509:144:0;;;;;:::i;:::-;;:::i;5239:84::-;;;;;;;;;;;;;;;;13869:217;;;;;;;;;;-1:-1:-1;13869:217:0;;;;;:::i;:::-;;:::i;14937:346::-;;;;;;;;;;;;;:::i;5154:35::-;;;;;;;;;;;;;;;;5609:32;;;;;;;;;;;;;;;;5467:89;;;;;;;;;;;;;;;;8659:129;;;;;;;;;;-1:-1:-1;8659:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;8758:18:0;;;8740:7;8758:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8659:129;13490:110;;;;;;;;;;-1:-1:-1;13490:110:0;;;;;:::i;:::-;;:::i;5107:40::-;;;;;;;;;;;;;;;;3394:192;;;;;;;;;;-1:-1:-1;3394:192:0;;;;;:::i;:::-;;:::i;14237:130::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;;;;;;;;;14345:14:::1;5097:1;14345:2;:14;:::i;:::-;14330:29;::::0;:12;:29:::1;:::i;:::-;14316:11;:43:::0;-1:-1:-1;14237:130:0:o;8794:138::-;8869:4;8877:39;2570:10;8900:7;8909:6;8877:8;:39::i;:::-;-1:-1:-1;8925:4:0;8794:138;;;;;:::o;14094:135::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;14207:14:::1;5097:1;14207:2;:14;:::i;:::-;14190:31;::::0;:14;:31:::1;:::i;:::-;14172:15;:49:::0;-1:-1:-1;14094:135:0:o;8940:420::-;9046:4;9063:36;9073:6;9081:9;9092:6;9063:9;:36::i;:::-;-1:-1:-1;;;;;9139:19:0;;9112:24;9139:19;;;:11;:19;;;;;;;;2570:10;9139:33;;;;;;;;9191:26;;;;9183:79;;;;-1:-1:-1;;;9183:79:0;;5831:2:1;9183:79:0;;;5813:21:1;5870:2;5850:18;;;5843:30;5909:34;5889:18;;;5882:62;-1:-1:-1;;;5960:18:1;;;5953:38;6008:19;;9183:79:0;5629:404:1;9183:79:0;9273:57;9282:6;2570:10;9304:25;9323:6;9304:16;:25;:::i;:::-;9273:8;:57::i;:::-;-1:-1:-1;9348:4:0;;8940:420;-1:-1:-1;;;;8940:420:0:o;13608:123::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13682:37:0::1;;::::0;;;:28:::1;:37;::::0;;;;:44;;-1:-1:-1;;13682:44:0::1;13722:4;13682:44;::::0;;13608:123::o;13371:111::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13440:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;13440:34:0::1;13470:4;13440:34;::::0;;13371:111::o;14375:450::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;14506:3:::1;14483:20;:26:::0;;;14520:15:::1;:21:::0;;;14571:3:::1;14552:16;:22:::0;;;14578:19:::1;:25:::0;;;-1:-1:-1;14611:20:0;;;14639:15:::1;:21:::0;;;14571:3;14687:38:::1;::::0;14506:3;14687:38:::1;:::i;:::-;:57;;;;:::i;:::-;14671:13;:73:::0;14802:15:::1;::::0;14785:14:::1;::::0;14763:19:::1;::::0;:36:::1;::::0;14785:14;14763:36:::1;:::i;:::-;:54;;;;:::i;:::-;14748:12;:69:::0;14375:450::o;3292:94::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;3357:21:::1;3375:1;3357:9;:21::i;:::-;3292:94::o:0;13739:122::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13811:37:0::1;13851:5;13811:37:::0;;;:28:::1;:37;::::0;;;;:45;;-1:-1:-1;;13811:45:0::1;::::0;;13739:122::o;8509:144::-;8587:4;8595:42;2570:10;8619:9;8630:6;8595:9;:42::i;13869:217::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;14004:14:::1;5097:1;14004:2;:14;:::i;:::-;13989:29;::::0;:12;:29:::1;:::i;:::-;13975:11;:43:::0;14064:14:::1;5097:1;14064:2;:14;:::i;:::-;14047:31;::::0;:14;:31:::1;:::i;:::-;14029:15;:49:::0;-1:-1:-1;;13869:217:0:o;14937:346::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;15001:11:::1;::::0;-1:-1:-1;;;15001:11:0;::::1;;;15000:12;14992:47;;;::::0;-1:-1:-1;;;14992:47:0;;6503:2:1;14992:47:0::1;::::0;::::1;6485:21:1::0;6542:2;6522:18;;;6515:30;6581:25;6561:18;;;6554:53;6624:18;;14992:47:0::1;6301:347:1::0;14992:47:0::1;15058:11;:18:::0;;15105:17:::1;15087:15;:35:::0;;;15133:11:::1;:31:::0;-1:-1:-1;;;;15175:18:0;;-1:-1:-1;;;15175:18:0;;;;15242:15:::1;::::0;15204:71:::1;::::0;-1:-1:-1;;;15204:71:0;;-1:-1:-1;;;;;15242:15:0;;::::1;15204:71;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;15211:13:0;;;15204:29:::1;::::0;6800:18:1;;15204:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14937:346::o:0;13490:110::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13557:27:0::1;13587:5;13557:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13557:35:0::1;::::0;;13490:110::o;3394:192::-;3115:7;3142:6;-1:-1:-1;;;;;3142:6:0;2570:10;3204:23;3196:68;;;;-1:-1:-1;;;3196:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3483:22:0;::::1;3475:73;;;::::0;-1:-1:-1;;;3475:73:0;;7416:2:1;3475:73:0::1;::::0;::::1;7398:21:1::0;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:36;7591:19;;3475:73:0::1;7214:402:1::0;3475:73:0::1;3559:19;3569:8;3559:9;:19::i;9368:335::-:0;-1:-1:-1;;;;;9461:19:0;;9453:68;;;;-1:-1:-1;;;9453:68:0;;7823:2:1;9453:68:0;;;7805:21:1;7862:2;7842:18;;;7835:30;7901:34;7881:18;;;7874:62;-1:-1:-1;;;7952:18:1;;;7945:34;7996:19;;9453:68:0;7621:400:1;9453:68:0;-1:-1:-1;;;;;9540:21:0;;9532:68;;;;-1:-1:-1;;;9532:68:0;;8228:2:1;9532:68:0;;;8210:21:1;8267:2;8247:18;;;8240:30;8306:34;8286:18;;;8279:62;-1:-1:-1;;;8357:18:1;;;8350:32;8399:19;;9532:68:0;8026:398:1;9532:68:0;-1:-1:-1;;;;;9611:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9663:32;;1803:25:1;;;9663:32:0;;1776:18:1;9663:32:0;;;;;;;9368:335;;;:::o;9711:1476::-;-1:-1:-1;;;;;9799:18:0;;9791:68;;;;-1:-1:-1;;;9791:68:0;;8631:2:1;9791:68:0;;;8613:21:1;8670:2;8650:18;;;8643:30;8709:34;8689:18;;;8682:62;-1:-1:-1;;;8760:18:1;;;8753:35;8805:19;;9791:68:0;8429:401:1;9791:68:0;-1:-1:-1;;;;;9878:16:0;;9870:64;;;;-1:-1:-1;;;9870:64:0;;9037:2:1;9870:64:0;;;9019:21:1;9076:2;9056:18;;;9049:30;9115:34;9095:18;;;9088:62;-1:-1:-1;;;9166:18:1;;;9159:33;9209:19;;9870:64:0;8835:399:1;9870:64:0;9962:1;9953:6;:10;9945:64;;;;-1:-1:-1;;;9945:64:0;;9441:2:1;9945:64:0;;;9423:21:1;9480:2;9460:18;;;9453:30;9519:34;9499:18;;;9492:62;-1:-1:-1;;;9570:18:1;;;9563:39;9619:19;;9945:64:0;9239:405:1;9945:64:0;-1:-1:-1;;;;;8484:16:0;;8466:7;8484:16;;;:7;:16;;;;;;10028:6;:25;;10020:86;;;;-1:-1:-1;;;10020:86:0;;9851:2:1;10020:86:0;;;9833:21:1;9890:2;9870:18;;;9863:30;9929:34;9909:18;;;9902:62;-1:-1:-1;;;9980:18:1;;;9973:47;10037:19;;10020:86:0;9649:413:1;10020:86:0;10129:11;;-1:-1:-1;;;10129:11:0;;;;;:39;;-1:-1:-1;;;;;;10144:24:0;;;;;;:18;:24;;;;;;;;10129:39;:65;;;-1:-1:-1;;;;;;10172:22:0;;;;;;:18;:22;;;;;;;;10129:65;10121:101;;;;-1:-1:-1;;;10121:101:0;;10269:2:1;10121:101:0;;;10251:21:1;10308:2;10288:18;;;10281:30;10347:25;10327:18;;;10320:53;10390:18;;10121:101:0;10067:347:1;10121:101:0;10247:13;;-1:-1:-1;;;;;10239:21:0;;;10247:13;;10239:21;:55;;;;-1:-1:-1;10278:15:0;;-1:-1:-1;;;;;10264:30:0;;;10278:15;;10264:30;;10239:55;:83;;;;-1:-1:-1;;;;;;10300:22:0;;;;;;:18;:22;;;;;;;;10298:24;10239:83;10235:178;;;10361:11;;10351:6;:21;;10343:58;;;;-1:-1:-1;;;10343:58:0;;10621:2:1;10343:58:0;;;10603:21:1;10660:2;10640:18;;;10633:30;10699:26;10679:18;;;10672:54;10743:18;;10343:58:0;10419:348:1;10343:58:0;10435:13;;-1:-1:-1;;;;;10427:21:0;;;10435:13;;10427:21;:55;;;;-1:-1:-1;10466:15:0;;-1:-1:-1;;;;;10452:30:0;;;10466:15;;10452:30;;10427:55;:93;;;;-1:-1:-1;;;;;;10488:32:0;;;;;;:28;:32;;;;;;;;10486:34;10427:93;10423:231;;;10588:15;;-1:-1:-1;;;;;8484:16:0;;8466:7;8484:16;;;:7;:16;;;;;;10562:22;;:6;:22;:::i;:::-;:41;;10554:88;;;;-1:-1:-1;;;10554:88:0;;10974:2:1;10554:88:0;;;10956:21:1;11013:2;10993:18;;;10986:30;11052:34;11032:18;;;11025:62;-1:-1:-1;;;11103:18:1;;;11096:32;11145:19;;10554:88:0;10772:398:1;10554:88:0;10715:4;10666:28;8484:16;;;:7;:16;;;;;;10741:6;;-1:-1:-1;;;10741:6:0;;;;10740:7;:32;;;;-1:-1:-1;10759:13:0;;-1:-1:-1;;;;;10751:21:0;;;10759:13;;10751:21;;10740:32;:47;;;;-1:-1:-1;10776:11:0;;-1:-1:-1;;;10776:11:0;;;;10740:47;:73;;;;;10812:1;10791:20;:22;10740:73;10736:344;;;10834:38;10851:20;10834:16;:38::i;:::-;10920:21;10963:22;;10960:105;;11010:35;11023:21;11010:12;:35::i;:::-;10815:265;10736:344;-1:-1:-1;;;;;11127:24:0;;;;;;:18;:24;;;;;;11092:87;;11107:4;;11113:2;;11117:6;;11127:24;;;:50;;-1:-1:-1;;;;;;11155:22:0;;;;;;:18;:22;;;;;;;;11127:50;11125:53;11092:14;:87::i;:::-;9780:1407;9711:1476;;;:::o;3594:173::-;3650:16;3669:6;;-1:-1:-1;;;;;3686:17:0;;;-1:-1:-1;;;;;;3686:17:0;;;;;;3719:40;;3669:6;;;;;;;3719:40;;3650:16;3719:40;3639:128;3594:173;:::o;11195:483::-;6345:6;:13;;-1:-1:-1;;;;6345:13:0;-1:-1:-1;;;6345:13:0;;;11297:16:::1;::::0;;11311:1:::1;11297:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11297:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11297:16:0::1;11273:40;;11342:4;11324;11329:1;11324:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11324:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11368:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11368:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11324:7;;11368:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11358:4;11363:1;11358:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11358:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11433:15:::1;::::0;11401:62:::1;::::0;11418:4:::1;::::0;11433:15:::1;11451:11:::0;11401:8:::1;:62::i;:::-;11474:15;::::0;:196:::1;::::0;-1:-1:-1;;;11474:196:0;;-1:-1:-1;;;;;11474:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11555:11;;11474:15:::1;::::0;11597:4;;11624::::1;::::0;11644:15:::1;::::0;11474:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6381:6:0;:14;;-1:-1:-1;;;;6381:14:0;;;-1:-1:-1;;;;11195:483:0:o;14833:95::-;14890:13;;:30;;-1:-1:-1;;;;;14890:13:0;;;;:30;;;;;14913:6;;14890:13;:30;:13;:30;14913:6;14890:13;:30;;;;;;;;;;;;;;;;;;;;;14833:95;:::o;11686:340::-;-1:-1:-1;;;;;11794:15:0;;;;;;:7;:15;;;;;:25;;11813:6;;11794:15;:25;;11813:6;;11794:25;:::i;:::-;;;;-1:-1:-1;11830:22:0;;-1:-1:-1;11856:7:0;11855:57;;11906:6;11855:57;;;11867:36;11877:6;11885:9;11896:6;11867:9;:36::i;:::-;-1:-1:-1;;;;;11923:18:0;;;;;;:7;:18;;;;;:36;;11830:82;;-1:-1:-1;11830:82:0;;11923:18;;;:36;;11830:82;;11923:36;:::i;:::-;;;;;;;;11992:9;-1:-1:-1;;;;;11975:43:0;11984:6;-1:-1:-1;;;;;11975:43:0;-1:-1:-1;;;;;;;;;;;12003:14:0;11975:43;;;;1803:25:1;;1791:2;1776:18;;1657:177;11975:43:0;;;;;;;;11783:243;11686:340;;;;:::o;12034:1329::-;12144:13;;12113:7;;-1:-1:-1;;;;;12136:21:0;;;12144:13;;12136:21;:41;;;;;12176:1;12161:12;;:16;12136:41;12133:637;;;12252:16;;12230:19;;12252:16;;;;;12221:28;;:6;:28;:::i;:::-;:47;;;;:::i;:::-;12196:22;:72;12329:16;;12312:14;;12329:16;;;;;12303:23;;:6;:23;:::i;:::-;:42;;;;:::i;:::-;12283:17;:62;12417:16;;12399:15;;12417:16;;;;;12390:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;12369:18;:64;12133:637;;;12465:13;;-1:-1:-1;;;;;12459:19:0;;;12465:13;;12459:19;:41;;;;;12499:1;12483:13;;:17;12459:41;12455:315;;;12576:16;;12553:20;;12576:16;;;;;12544:29;;:6;:29;:::i;:::-;:48;;;;:::i;:::-;12519:22;:73;12654:16;;12636:15;;12654:16;;;;;12627:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;12607:17;:63;12734:16;;12715;;12734;;;;;12706:25;;:6;:25;:::i;:::-;:44;;;;:::i;:::-;12685:18;:65;12455:315;12804:22;;12788:11;;;;;-1:-1:-1;;;;;12788:11:0;12780:20;;;;:7;:20;;;;;:46;;:20;;;:46;;12804:22;;12780:46;:::i;:::-;;;;-1:-1:-1;;12857:11:0;;12870:22;;12842:51;;-1:-1:-1;;;;;12857:11:0;;;;;;;12842:51;;;-1:-1:-1;;;;;;;;;;;12842:51:0;;;1803:25:1;;1791:2;1776:18;;1657:177;12842:51:0;;;;;;;;12931:17;;5768:42;12914:13;;;;:7;:13;;;:34;;:13;;;:34;;12931:17;;12914:34;:::i;:::-;;;;-1:-1:-1;;12979:17:0;;12969:7;;:27;;12979:17;12969:27;:::i;:::-;12959:7;:37;13067:17;;13046:39;;;1803:25:1;;;13046:39:0;5768:42;;-1:-1:-1;;;;;13046:39:0;;;-1:-1:-1;;;;;;;;;;;13046:39:0;;;;1791:2:1;13046:39:0;;;13140:18;;13130:4;13114:22;;;;:7;:22;;;;;:44;;:22;;;:44;;13140:18;;13114:44;:::i;:::-;;;;-1:-1:-1;;13204:18:0;;13174:49;;1803:25:1;;;13197:4:0;;-1:-1:-1;;;;;13174:49:0;;;-1:-1:-1;;;;;;;;;;;13174:49:0;1791:2:1;1776:18;13174:49:0;;;;;;;13236:17;13301:18;;13281:17;;13256:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13236:83;-1:-1:-1;13337:18:0;13236:83;13337:6;:18;:::i;:::-;13330:25;12034:1329;-1:-1:-1;;;;;12034:1329:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;407:597::-;519:4;548:2;577;566:9;559:21;609:6;603:13;652:6;647:2;636:9;632:18;625:34;677:1;687:140;701:6;698:1;695:13;687:140;;;796:14;;;792:23;;786:30;762:17;;;781:2;758:26;751:66;716:10;;687:140;;;845:6;842:1;839:13;836:91;;;915:1;910:2;901:6;890:9;886:22;882:31;875:42;836:91;-1:-1:-1;988:2:1;967:15;-1:-1:-1;;963:29:1;948:45;;;;995:2;944:54;;407:597;-1:-1:-1;;;407:597:1:o;1009:131::-;-1:-1:-1;;;;;1084:31:1;;1074:42;;1064:70;;1130:1;1127;1120:12;1145:315;1213:6;1221;1274:2;1262:9;1253:7;1249:23;1245:32;1242:52;;;1290:1;1287;1280:12;1242:52;1329:9;1316:23;1348:31;1373:5;1348:31;:::i;:::-;1398:5;1450:2;1435:18;;;;1422:32;;-1:-1:-1;;;1145:315:1:o;2032:456::-;2109:6;2117;2125;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;:::-;2302:5;-1:-1:-1;2359:2:1;2344:18;;2331:32;2372:33;2331:32;2372:33;:::i;:::-;2032:456;;2424:7;;-1:-1:-1;;;2478:2:1;2463:18;;;;2450:32;;2032:456::o;2682:247::-;2741:6;2794:2;2782:9;2773:7;2769:23;2765:32;2762:52;;;2810:1;2807;2800:12;2762:52;2849:9;2836:23;2868:31;2893:5;2868:31;:::i;:::-;2918:5;2682:247;-1:-1:-1;;;2682:247:1:o;2934:248::-;3002:6;3010;3063:2;3051:9;3042:7;3038:23;3034:32;3031:52;;;3079:1;3076;3069:12;3031:52;-1:-1:-1;;3102:23:1;;;3172:2;3157:18;;;3144:32;;-1:-1:-1;2934:248:1:o;3187:388::-;3255:6;3263;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3371:9;3358:23;3390:31;3415:5;3390:31;:::i;:::-;3440:5;-1:-1:-1;3497:2:1;3482:18;;3469:32;3510:33;3469:32;3510:33;:::i;:::-;3562:7;3552:17;;;3187:388;;;;;:::o;3580:356::-;3782:2;3764:21;;;3801:18;;;3794:30;3860:34;3855:2;3840:18;;3833:62;3927:2;3912:18;;3580:356::o;3941:127::-;4002:10;3997:3;3993:20;3990:1;3983:31;4033:4;4030:1;4023:15;4057:4;4054:1;4047:15;4073:422;4162:1;4205:5;4162:1;4219:270;4240:7;4230:8;4227:21;4219:270;;;4299:4;4295:1;4291:6;4287:17;4281:4;4278:27;4275:53;;;4308:18;;:::i;:::-;4358:7;4348:8;4344:22;4341:55;;;4378:16;;;;4341:55;4457:22;;;;4417:15;;;;4219:270;;;4223:3;4073:422;;;;;:::o;4500:806::-;4549:5;4579:8;4569:80;;-1:-1:-1;4620:1:1;4634:5;;4569:80;4668:4;4658:76;;-1:-1:-1;4705:1:1;4719:5;;4658:76;4750:4;4768:1;4763:59;;;;4836:1;4831:130;;;;4743:218;;4763:59;4793:1;4784:10;;4807:5;;;4831:130;4868:3;4858:8;4855:17;4852:43;;;4875:18;;:::i;:::-;-1:-1:-1;;4931:1:1;4917:16;;4946:5;;4743:218;;5045:2;5035:8;5032:16;5026:3;5020:4;5017:13;5013:36;5007:2;4997:8;4994:16;4989:2;4983:4;4980:12;4976:35;4973:77;4970:159;;;-1:-1:-1;5082:19:1;;;5114:5;;4970:159;5161:34;5186:8;5180:4;5161:34;:::i;:::-;5231:6;5227:1;5223:6;5219:19;5210:7;5207:32;5204:58;;;5242:18;;:::i;:::-;5280:20;;4500:806;-1:-1:-1;;;4500:806:1:o;5311:140::-;5369:5;5398:47;5439:4;5429:8;5425:19;5419:4;5398:47;:::i;5456:168::-;5496:7;5562:1;5558;5554:6;5550:14;5547:1;5544:21;5539:1;5532:9;5525:17;5521:45;5518:71;;;5569:18;;:::i;:::-;-1:-1:-1;5609:9:1;;5456:168::o;6038:125::-;6078:4;6106:1;6103;6100:8;6097:34;;;6111:18;;:::i;:::-;-1:-1:-1;6148:9:1;;6038:125::o;6168:128::-;6208:3;6239:1;6235:6;6232:1;6229:13;6226:39;;;6245:18;;:::i;:::-;-1:-1:-1;6281:9:1;;6168:128::o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;11307:127;11368:10;11363:3;11359:20;11356:1;11349:31;11399:4;11396:1;11389:15;11423:4;11420:1;11413:15;11439:251;11509:6;11562:2;11550:9;11541:7;11537:23;11533:32;11530:52;;;11578:1;11575;11568:12;11530:52;11610:9;11604:16;11629:31;11654:5;11629:31;:::i;11695:980::-;11957:4;12005:3;11994:9;11990:19;12036:6;12025:9;12018:25;12062:2;12100:6;12095:2;12084:9;12080:18;12073:34;12143:3;12138:2;12127:9;12123:18;12116:31;12167:6;12202;12196:13;12233:6;12225;12218:22;12271:3;12260:9;12256:19;12249:26;;12310:2;12302:6;12298:15;12284:29;;12331:1;12341:195;12355:6;12352:1;12349:13;12341:195;;;12420:13;;-1:-1:-1;;;;;12416:39:1;12404:52;;12511:15;;;;12476:12;;;;12452:1;12370:9;12341:195;;;-1:-1:-1;;;;;;;12592:32:1;;;;12587:2;12572:18;;12565:60;-1:-1:-1;;;12656:3:1;12641:19;12634:35;12553:3;11695:980;-1:-1:-1;;;11695:980:1:o;12680:217::-;12720:1;12746;12736:132;;12790:10;12785:3;12781:20;12778:1;12771:31;12825:4;12822:1;12815:15;12853:4;12850:1;12843:15;12736:132;-1:-1:-1;12882:9:1;;12680:217::o
Swarm Source
ipfs://9255d2835c78d934c488ad505d45ac447b53ab1bf8639f8c20dc8d9f89427b1b
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.