ERC-20
MEME
Overview
Max Total Supply
10,000,000 NCT
Holders
92 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$15,947.80
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 NCTValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NorthCatToken
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-01 */ /* ███ ██ ██████ ██████ ████████ ██ ██ ██████ █████ ████████ ████████ ██████ ██ ██ ███████ ███ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██████ ██ ███████ ██ ███████ ██ ██ ██ ██ █████ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██████ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ██ ██████ ██ ██ ███████ ██ ████ DO YOU HAVE A CAT IN YOU ? Website : https://northcattoken.com/ Twitter : https://twitter.com/northcattoken Telegram : https://t.me/NorthCatToken_Portal */ // SPDX-License-Identifier:MIT pragma solidity 0.8.22; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface 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 ); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the 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); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } interface IDexSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexSwapRouter { 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); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract NorthCatToken is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "North Cat Token"; string private _symbol = "NCT"; uint8 private _decimals = 18; address public marketingWallet = address(0x02588a61dec46c7983429DDB38446846Ce5cE124); address public developerWallet = address(0xE07abafFdb3161811D6a2Cf429e712cc1500b435); struct feeStruct { uint256 buy; uint256 sell; uint256 denominator; } feeStruct public fee; bool public launched; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public IsChargePair; mapping (address => bool) public isMarketPair; uint256 private _totalSupply = 10_000_000 * 10**_decimals; uint256 public maxTransaction = _totalSupply.mul(1).div(100); uint256 public maxWallet = _totalSupply.mul(1).div(100); uint256 public swapThreshold = _totalSupply.mul(5).div(10000); bool public swapEnabled = true; bool public swapbylimit = false; bool public AntiWhaleActive = true; IDexSwapRouter public dexRouter; address public dexPair; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } modifier onlyGuard() { require(msg.sender == developerWallet,'Invalid Caller!'); _; } event SwapTokensForETH( uint256 amountIn, address[] path ); constructor() { IDexSwapRouter _dexRouter = IDexSwapRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(address(this),_dexRouter.WETH()); dexRouter = _dexRouter; isMarketPair[dexPair] = true; IsChargePair[address(this)] = true; IsChargePair[developerWallet] = true; IsChargePair[msg.sender] = true; fee.denominator = 100; fee.buy = 35; fee.sell = 30; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } else { if(!IsChargePair[sender] && !IsChargePair[recipient] && AntiWhaleActive) { require(launched,"Not Launched!"); require(amount <= maxTransaction, "Exceeds maxTxAmount"); if(!isMarketPair[recipient]) { require(balanceOf(recipient).add(amount) <= maxWallet, "Exceeds maxWallet"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold; if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled && !IsChargePair[sender] && !IsChargePair[recipient] ) { swapBack(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(IsChargePair[sender] || IsChargePair[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(isMarketPair[sender]) { feeAmount = amount.mul(fee.buy).div(fee.denominator); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(fee.sell).div(fee.denominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } function swapBack(uint contractBalance) internal swapping { if(swapbylimit) contractBalance = swapThreshold; uint256 initialBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 amountReceived = address(this).balance.sub(initialBalance); if(amountReceived > 0) { (bool os,) = payable(marketingWallet).call{value: amountReceived}(""); os = true; //bypass check } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 1, path, address(this), block.timestamp + 30 ); emit SwapTokensForETH(tokenAmount, path); } function setMarketingWallet(address newAddress) external onlyOwner { marketingWallet = newAddress; } function rescueFunds() external onlyGuard { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os,"Transaction Failed!!"); } function setDeveloperWallet(address _newWallet) external onlyOwner { developerWallet = _newWallet; } function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard { (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)', recipient, _amount)); require(success, 'Token payment failed'); } function setFeeSetting(uint _buy, uint _sell) external onlyOwner { require(_buy <= 35 && _sell <= 30,"Max tax Limit Reached!"); fee.buy = _buy; fee.sell = _sell; } function setChargeFee(address _adr,bool _status) external onlyOwner { IsChargePair[_adr] = _status; } function openTrade() external onlyOwner() { require(!launched,"Already Enabled!"); launched = true; } function setAntiWhalePercentage(uint256 _per) external onlyOwner() { require(_per >= 1 && AntiWhaleActive,"Minimum Limit is 1% or Whale Must be Active"); maxTransaction = _totalSupply.mul(_per).div(100); maxWallet = _totalSupply.mul(_per).div(100); } function setSwapBackSettings(bool _enabled, bool _limited, uint _threshold) external onlyOwner { swapEnabled = _enabled; swapbylimit = _limited; swapThreshold = _threshold; } function removeLimits() external onlyOwner { maxTransaction = _totalSupply; maxWallet = _totalSupply; AntiWhaleActive = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AntiWhaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"IsChargePair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_per","type":"uint256"}],"name":"setAntiWhalePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setChargeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFeeSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600f60809081526e2737b93a341021b0ba102a37b5b2b760891b60a05260019062000030908262000592565b506040805180820190915260038152621390d560ea1b60208201526002906200005a908262000592565b50600380547402588a61dec46c7983429ddb38446846ce5ce124126001600160a81b0319909116179055600480546001600160a01b03191673e07abaffdb3161811d6a2cf429e712cc1500b435179055620000b86012600a6200076b565b620000c790629896806200077b565b600d819055620000e890606490620000e19060016200038f565b9062000422565b600e55600d546200010390606490620000e19060016200038f565b600f55600d546200011f9061271090620000e19060056200038f565b6010556011805462ffffff1916620100011790553480156200013f575f80fd5b506200014b336200046b565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c6919062000795565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000212573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000238919062000795565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000283573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000795565b601280546001600160a01b0319166001600160a01b03928316908117909155601180546301000000600160b81b0319166301000000858516021790555f908152600c60209081526040808320805460ff199081166001908117909255308552600b845282852080548216831790556004549095168452818420805486168217905533808552828520805490961690911790945560646007556023600555601e600655600d546009835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200082b565b5f825f03620003a057505f6200041c565b5f620003ad83856200077b565b905082620003bc8583620007bd565b14620004195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200041983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004ba60201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620004dd5760405162461bcd60e51b8152600401620004109190620007dd565b505f620004eb8486620007bd565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200051d57607f821691505b6020821081036200053c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200058d57805f5260205f20601f840160051c81016020851015620005695750805b601f840160051c820191505b818110156200058a575f815560010162000575565b50505b505050565b81516001600160401b03811115620005ae57620005ae620004f4565b620005c681620005bf845462000508565b8462000542565b602080601f831160018114620005fc575f8415620005e45750858301515b5f19600386901b1c1916600185901b17855562000656565b5f85815260208120601f198616915b828110156200062c578886015182559484019460019091019084016200060b565b50858210156200064a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006b257815f19048211156200069657620006966200065e565b80851615620006a457918102915b93841c939080029062000677565b509250929050565b5f82620006ca575060016200041c565b81620006d857505f6200041c565b8160018114620006f15760028114620006fc576200071c565b60019150506200041c565b60ff8411156200071057620007106200065e565b50506001821b6200041c565b5060208310610133831016604e8410600b841016171562000741575081810a6200041c565b6200074d838362000672565b805f19048211156200076357620007636200065e565b029392505050565b5f6200041960ff841683620006ba565b80820281158282048414176200041c576200041c6200065e565b5f60208284031215620007a6575f80fd5b81516001600160a01b038116811462000419575f80fd5b5f82620007d857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b818110156200080b57858101830151858201604001528201620007ed565b505f604082860101526040601f19601f8301168501019250505092915050565b611ecf80620008395f395ff3fe60806040526004361061020a575f3560e01c806375f0a87411610113578063dd62ed3e1161009d578063f242ab411161006d578063f242ab411461063a578063f2fde38b14610659578063f8b45b0514610678578063fa0486dc1461068d578063fb201b1d146106ac575f80fd5b8063dd62ed3e1461058b578063ddca3f43146105cf578063e6b2603b14610608578063e9fd33941461061c575f80fd5b806395d89b41116100e357806395d89b4114610505578063a9059cbb14610519578063acf08c5114610538578063c3f70b5214610557578063cea9d26f1461056c575f80fd5b806375f0a8741461048d5780638091f3bf146104b157806388700798146104ca5780638da5cb5b146104e9575f80fd5b8063313ce567116101945780636cd56878116101645780636cd56878146103f95780636ddd17131461041857806370a0823114610431578063715018a614610465578063751039fc14610479575f80fd5b8063313ce5671461035d5780633ecad2711461037e5780635d098b38146103ac5780635e8bf1d6146103cb575f80fd5b8063095ea7b3116101da578063095ea7b3146102bd578063180550b8146102ec57806318160ddd1461030b578063185870f91461031f57806323b872dd1461033e575f80fd5b806301ae592b146102155780630445b6671461023657806306fdde031461025e5780630758d9241461027f575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061023461022f366004611ae7565b6106c0565b005b348015610241575f80fd5b5061024b60105481565b6040519081526020015b60405180910390f35b348015610269575f80fd5b5061027261071d565b6040516102559190611b42565b34801561028a575f80fd5b506011546102a590630100000090046001600160a01b031681565b6040516001600160a01b039091168152602001610255565b3480156102c8575f80fd5b506102dc6102d7366004611b88565b6107ad565b6040519015158152602001610255565b3480156102f7575f80fd5b50610234610306366004611bb2565b6107c3565b348015610316575f80fd5b50600d5461024b565b34801561032a575f80fd5b506004546102a5906001600160a01b031681565b348015610349575f80fd5b506102dc610358366004611bd2565b61084e565b348015610368575f80fd5b5060035460405160ff9091168152602001610255565b348015610389575f80fd5b506102dc610398366004611c10565b600c6020525f908152604090205460ff1681565b3480156103b7575f80fd5b506102346103c6366004611c10565b6108b7565b3480156103d6575f80fd5b506102dc6103e5366004611c10565b600b6020525f908152604090205460ff1681565b348015610404575f80fd5b50610234610413366004611c10565b610908565b348015610423575f80fd5b506011546102dc9060ff1681565b34801561043c575f80fd5b5061024b61044b366004611c10565b6001600160a01b03165f9081526009602052604090205490565b348015610470575f80fd5b50610234610953565b348015610484575f80fd5b50610234610987565b348015610498575f80fd5b506003546102a59061010090046001600160a01b031681565b3480156104bc575f80fd5b506008546102dc9060ff1681565b3480156104d5575f80fd5b506102346104e4366004611c2b565b6109c9565b3480156104f4575f80fd5b505f546001600160a01b03166102a5565b348015610510575f80fd5b50610272610a1c565b348015610524575f80fd5b506102dc610533366004611b88565b610a2b565b348015610543575f80fd5b506011546102dc9062010000900460ff1681565b348015610562575f80fd5b5061024b600e5481565b348015610577575f80fd5b50610234610586366004611bd2565b610a37565b348015610596575f80fd5b5061024b6105a5366004611c5e565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b3480156105da575f80fd5b506005546006546007546105ed92919083565b60408051938452602084019290925290820152606001610255565b348015610613575f80fd5b50610234610b67565b348015610627575f80fd5b506011546102dc90610100900460ff1681565b348015610645575f80fd5b506012546102a5906001600160a01b031681565b348015610664575f80fd5b50610234610673366004611c10565b610c42565b348015610683575f80fd5b5061024b600f5481565b348015610698575f80fd5b506102346106a7366004611c95565b610cd9565b3480156106b7575f80fd5b50610234610db8565b5f546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e990611cac565b60405180910390fd5b6011805461ffff191693151561ff001916939093176101009215159290920291909117909155601055565b60606001805461072c90611ce1565b80601f016020809104026020016040519081016040528092919081815260200182805461075890611ce1565b80156107a35780601f1061077a576101008083540402835291602001916107a3565b820191905f5260205f20905b81548152906001019060200180831161078657829003601f168201915b5050505050905090565b5f6107b9338484610e36565b5060015b92915050565b5f546001600160a01b031633146107ec5760405162461bcd60e51b81526004016106e990611cac565b602382111580156107fe5750601e8111155b6108435760405162461bcd60e51b81526020600482015260166024820152754d617820746178204c696d697420526561636865642160501b60448201526064016106e9565b600591909155600655565b5f61085a848484610f59565b506108ac84336108a785604051806060016040528060288152602001611e72602891396001600160a01b038a165f908152600a6020908152604080832033845290915290205491906113e1565b610e36565b5060015b9392505050565b5f546001600160a01b031633146108e05760405162461bcd60e51b81526004016106e990611cac565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b031633146109315760405162461bcd60e51b81526004016106e990611cac565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461097c5760405162461bcd60e51b81526004016106e990611cac565b6109855f611419565b565b5f546001600160a01b031633146109b05760405162461bcd60e51b81526004016106e990611cac565b600d54600e819055600f556011805462ff000019169055565b5f546001600160a01b031633146109f25760405162461bcd60e51b81526004016106e990611cac565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b60606002805461072c90611ce1565b5f6108ac338484610f59565b6004546001600160a01b03163314610a835760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642043616c6c65722160881b60448201526064016106e9565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610adb9190611d19565b5f604051808303815f865af19150503d805f8114610b14576040519150601f19603f3d011682016040523d82523d5f602084013e610b19565b606091505b5050905080610b615760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b60448201526064016106e9565b50505050565b6004546001600160a01b03163314610bb35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642043616c6c65722160881b60448201526064016106e9565b6040515f90339047908381818185875af1925050503d805f8114610bf2576040519150601f19603f3d011682016040523d82523d5f602084013e610bf7565b606091505b5050905080610c3f5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b60448201526064016106e9565b50565b5f546001600160a01b03163314610c6b5760405162461bcd60e51b81526004016106e990611cac565b6001600160a01b038116610cd05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b610c3f81611419565b5f546001600160a01b03163314610d025760405162461bcd60e51b81526004016106e990611cac565b60018110158015610d1b575060115462010000900460ff165b610d7b5760405162461bcd60e51b815260206004820152602b60248201527f4d696e696d756d204c696d6974206973203125206f72205768616c65204d757360448201526a742062652041637469766560a81b60648201526084016106e9565b610d9b6064610d9583600d5461146890919063ffffffff16565b906114e6565b600e55600d54610db290606490610d959084611468565b600f5550565b5f546001600160a01b03163314610de15760405162461bcd60e51b81526004016106e990611cac565b60085460ff1615610e275760405162461bcd60e51b815260206004820152601060248201526f416c726561647920456e61626c65642160801b60448201526064016106e9565b6008805460ff19166001179055565b6001600160a01b038316610e985760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b038216610ef95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610fbe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e9565b6001600160a01b0383166110205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e9565b5f82116110815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e9565b601254600160a01b900460ff16156110a55761109e848484611527565b90506108b0565b6001600160a01b0384165f908152600b602052604090205460ff161580156110e557506001600160a01b0383165f908152600b602052604090205460ff16155b80156110f9575060115462010000900460ff165b156112145760085460ff166111405760405162461bcd60e51b815260206004820152600d60248201526c4e6f74204c61756e636865642160981b60448201526064016106e9565b600e548211156111885760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b60448201526064016106e9565b6001600160a01b0383165f908152600c602052604090205460ff1661121457600f546111d2836111cc866001600160a01b03165f9081526009602052604090205490565b9061160a565b11156112145760405162461bcd60e51b8152602060048201526011602482015270115e18d959591cc81b585e15d85b1b195d607a1b60448201526064016106e9565b305f90815260096020526040902054601054811080159081906112415750601254600160a01b900460ff16155b801561126557506001600160a01b0386165f908152600c602052604090205460ff16155b8015611273575060115460ff165b801561129757506001600160a01b0386165f908152600b602052604090205460ff16155b80156112bb57506001600160a01b0385165f908152600b602052604090205460ff16155b156112c9576112c982611668565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526009909152919091205461131a9186906113e1565b6001600160a01b0387165f9081526009602052604081209190915561133f8787611718565b6113535761134e8787876117b2565b611355565b845b6001600160a01b0387165f9081526009602052604090205490915061137a908261160a565b6001600160a01b038088165f8181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113cd9085815260200190565b60405180910390a3600193505050506108b0565b5f81848411156114045760405162461bcd60e51b81526004016106e99190611b42565b505f6114108486611d48565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f825f0361147757505f6107bd565b5f6114828385611d5b565b90508261148f8583611d72565b146108b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e9565b5f6108b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526009909152918220546115779184906113e1565b6001600160a01b038086165f9081526009602052604080822093909355908516815220546115a5908361160a565b6001600160a01b038085165f8181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f89086815260200190565b60405180910390a35060019392505050565b5f806116168385611d91565b9050838110156108b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b6012805460ff60a01b1916600160a01b179055601154610100900460ff161561169057506010545b4761169a826118d8565b5f6116a54783611a92565b90508015611706576003546040515f9161010090046001600160a01b03169083908381818185875af1925050503d805f81146116fc576040519150601f19603f3d011682016040523d82523d5f602084013e611701565b606091505b505050505b50506012805460ff60a01b1916905550565b6001600160a01b0382165f908152600b602052604081205460ff168061175557506001600160a01b0382165f908152600b602052604090205460ff165b15611762575060016107bd565b6001600160a01b0383165f908152600c602052604090205460ff168061179f57506001600160a01b0382165f908152600c602052604090205460ff165b156117ab57505f6107bd565b505f6107bd565b6001600160a01b0383165f908152600c6020526040812054819060ff16156117f1576007546005546117ea9190610d95908690611468565b905061182a565b6001600160a01b0384165f908152600c602052604090205460ff161561182a576007546006546118279190610d95908690611468565b90505b80156118a257305f90815260096020526040902054611849908261160a565b305f81815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118999085815260200190565b60405180910390a35b6114108382611a92565b5f81836118cc5760405162461bcd60e51b81526004016106e99190611b42565b505f6114108486611d72565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061190b5761190b611da4565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561197c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a09190611db8565b816001815181106119b3576119b3611da4565b6001600160a01b0392831660209182029290920101526011546119e0913091630100000090041684610e36565b601154630100000090046001600160a01b031663791ac9478360018430611a0842601e611d91565b6040518663ffffffff1660e01b8152600401611a28959493929190611e16565b5f604051808303815f87803b158015611a3f575f80fd5b505af1158015611a51573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611a86929190611e51565b60405180910390a15050565b5f6108b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e1565b80358015158114611ae2575f80fd5b919050565b5f805f60608486031215611af9575f80fd5b611b0284611ad3565b9250611b1060208501611ad3565b9150604084013590509250925092565b5f5b83811015611b3a578181015183820152602001611b22565b50505f910152565b602081525f8251806020840152611b60816040850160208701611b20565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c3f575f80fd5b5f8060408385031215611b99575f80fd5b8235611ba481611b74565b946020939093013593505050565b5f8060408385031215611bc3575f80fd5b50508035926020909101359150565b5f805f60608486031215611be4575f80fd5b8335611bef81611b74565b92506020840135611bff81611b74565b929592945050506040919091013590565b5f60208284031215611c20575f80fd5b81356108b081611b74565b5f8060408385031215611c3c575f80fd5b8235611c4781611b74565b9150611c5560208401611ad3565b90509250929050565b5f8060408385031215611c6f575f80fd5b8235611c7a81611b74565b91506020830135611c8a81611b74565b809150509250929050565b5f60208284031215611ca5575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611cf557607f821691505b602082108103611d1357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8251611d2a818460208701611b20565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156107bd576107bd611d34565b80820281158282048414176107bd576107bd611d34565b5f82611d8c57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107bd576107bd611d34565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dc8575f80fd5b81516108b081611b74565b5f815180845260208085019450602084015f5b83811015611e0b5781516001600160a01b031687529582019590820190600101611de6565b509495945050505050565b85815284602082015260a060408201525f611e3460a0830186611dd3565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611e696040830184611dd3565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220964049ae625f1dd2b6e89f23846e9ce7c0b793bc339ee3a9ca719d536a4272f364736f6c63430008160033
Deployed Bytecode
0x60806040526004361061020a575f3560e01c806375f0a87411610113578063dd62ed3e1161009d578063f242ab411161006d578063f242ab411461063a578063f2fde38b14610659578063f8b45b0514610678578063fa0486dc1461068d578063fb201b1d146106ac575f80fd5b8063dd62ed3e1461058b578063ddca3f43146105cf578063e6b2603b14610608578063e9fd33941461061c575f80fd5b806395d89b41116100e357806395d89b4114610505578063a9059cbb14610519578063acf08c5114610538578063c3f70b5214610557578063cea9d26f1461056c575f80fd5b806375f0a8741461048d5780638091f3bf146104b157806388700798146104ca5780638da5cb5b146104e9575f80fd5b8063313ce567116101945780636cd56878116101645780636cd56878146103f95780636ddd17131461041857806370a0823114610431578063715018a614610465578063751039fc14610479575f80fd5b8063313ce5671461035d5780633ecad2711461037e5780635d098b38146103ac5780635e8bf1d6146103cb575f80fd5b8063095ea7b3116101da578063095ea7b3146102bd578063180550b8146102ec57806318160ddd1461030b578063185870f91461031f57806323b872dd1461033e575f80fd5b806301ae592b146102155780630445b6671461023657806306fdde031461025e5780630758d9241461027f575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061023461022f366004611ae7565b6106c0565b005b348015610241575f80fd5b5061024b60105481565b6040519081526020015b60405180910390f35b348015610269575f80fd5b5061027261071d565b6040516102559190611b42565b34801561028a575f80fd5b506011546102a590630100000090046001600160a01b031681565b6040516001600160a01b039091168152602001610255565b3480156102c8575f80fd5b506102dc6102d7366004611b88565b6107ad565b6040519015158152602001610255565b3480156102f7575f80fd5b50610234610306366004611bb2565b6107c3565b348015610316575f80fd5b50600d5461024b565b34801561032a575f80fd5b506004546102a5906001600160a01b031681565b348015610349575f80fd5b506102dc610358366004611bd2565b61084e565b348015610368575f80fd5b5060035460405160ff9091168152602001610255565b348015610389575f80fd5b506102dc610398366004611c10565b600c6020525f908152604090205460ff1681565b3480156103b7575f80fd5b506102346103c6366004611c10565b6108b7565b3480156103d6575f80fd5b506102dc6103e5366004611c10565b600b6020525f908152604090205460ff1681565b348015610404575f80fd5b50610234610413366004611c10565b610908565b348015610423575f80fd5b506011546102dc9060ff1681565b34801561043c575f80fd5b5061024b61044b366004611c10565b6001600160a01b03165f9081526009602052604090205490565b348015610470575f80fd5b50610234610953565b348015610484575f80fd5b50610234610987565b348015610498575f80fd5b506003546102a59061010090046001600160a01b031681565b3480156104bc575f80fd5b506008546102dc9060ff1681565b3480156104d5575f80fd5b506102346104e4366004611c2b565b6109c9565b3480156104f4575f80fd5b505f546001600160a01b03166102a5565b348015610510575f80fd5b50610272610a1c565b348015610524575f80fd5b506102dc610533366004611b88565b610a2b565b348015610543575f80fd5b506011546102dc9062010000900460ff1681565b348015610562575f80fd5b5061024b600e5481565b348015610577575f80fd5b50610234610586366004611bd2565b610a37565b348015610596575f80fd5b5061024b6105a5366004611c5e565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b3480156105da575f80fd5b506005546006546007546105ed92919083565b60408051938452602084019290925290820152606001610255565b348015610613575f80fd5b50610234610b67565b348015610627575f80fd5b506011546102dc90610100900460ff1681565b348015610645575f80fd5b506012546102a5906001600160a01b031681565b348015610664575f80fd5b50610234610673366004611c10565b610c42565b348015610683575f80fd5b5061024b600f5481565b348015610698575f80fd5b506102346106a7366004611c95565b610cd9565b3480156106b7575f80fd5b50610234610db8565b5f546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e990611cac565b60405180910390fd5b6011805461ffff191693151561ff001916939093176101009215159290920291909117909155601055565b60606001805461072c90611ce1565b80601f016020809104026020016040519081016040528092919081815260200182805461075890611ce1565b80156107a35780601f1061077a576101008083540402835291602001916107a3565b820191905f5260205f20905b81548152906001019060200180831161078657829003601f168201915b5050505050905090565b5f6107b9338484610e36565b5060015b92915050565b5f546001600160a01b031633146107ec5760405162461bcd60e51b81526004016106e990611cac565b602382111580156107fe5750601e8111155b6108435760405162461bcd60e51b81526020600482015260166024820152754d617820746178204c696d697420526561636865642160501b60448201526064016106e9565b600591909155600655565b5f61085a848484610f59565b506108ac84336108a785604051806060016040528060288152602001611e72602891396001600160a01b038a165f908152600a6020908152604080832033845290915290205491906113e1565b610e36565b5060015b9392505050565b5f546001600160a01b031633146108e05760405162461bcd60e51b81526004016106e990611cac565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b031633146109315760405162461bcd60e51b81526004016106e990611cac565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461097c5760405162461bcd60e51b81526004016106e990611cac565b6109855f611419565b565b5f546001600160a01b031633146109b05760405162461bcd60e51b81526004016106e990611cac565b600d54600e819055600f556011805462ff000019169055565b5f546001600160a01b031633146109f25760405162461bcd60e51b81526004016106e990611cac565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b60606002805461072c90611ce1565b5f6108ac338484610f59565b6004546001600160a01b03163314610a835760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642043616c6c65722160881b60448201526064016106e9565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610adb9190611d19565b5f604051808303815f865af19150503d805f8114610b14576040519150601f19603f3d011682016040523d82523d5f602084013e610b19565b606091505b5050905080610b615760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b60448201526064016106e9565b50505050565b6004546001600160a01b03163314610bb35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642043616c6c65722160881b60448201526064016106e9565b6040515f90339047908381818185875af1925050503d805f8114610bf2576040519150601f19603f3d011682016040523d82523d5f602084013e610bf7565b606091505b5050905080610c3f5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b60448201526064016106e9565b50565b5f546001600160a01b03163314610c6b5760405162461bcd60e51b81526004016106e990611cac565b6001600160a01b038116610cd05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b610c3f81611419565b5f546001600160a01b03163314610d025760405162461bcd60e51b81526004016106e990611cac565b60018110158015610d1b575060115462010000900460ff165b610d7b5760405162461bcd60e51b815260206004820152602b60248201527f4d696e696d756d204c696d6974206973203125206f72205768616c65204d757360448201526a742062652041637469766560a81b60648201526084016106e9565b610d9b6064610d9583600d5461146890919063ffffffff16565b906114e6565b600e55600d54610db290606490610d959084611468565b600f5550565b5f546001600160a01b03163314610de15760405162461bcd60e51b81526004016106e990611cac565b60085460ff1615610e275760405162461bcd60e51b815260206004820152601060248201526f416c726561647920456e61626c65642160801b60448201526064016106e9565b6008805460ff19166001179055565b6001600160a01b038316610e985760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b038216610ef95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610fbe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e9565b6001600160a01b0383166110205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e9565b5f82116110815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e9565b601254600160a01b900460ff16156110a55761109e848484611527565b90506108b0565b6001600160a01b0384165f908152600b602052604090205460ff161580156110e557506001600160a01b0383165f908152600b602052604090205460ff16155b80156110f9575060115462010000900460ff165b156112145760085460ff166111405760405162461bcd60e51b815260206004820152600d60248201526c4e6f74204c61756e636865642160981b60448201526064016106e9565b600e548211156111885760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b60448201526064016106e9565b6001600160a01b0383165f908152600c602052604090205460ff1661121457600f546111d2836111cc866001600160a01b03165f9081526009602052604090205490565b9061160a565b11156112145760405162461bcd60e51b8152602060048201526011602482015270115e18d959591cc81b585e15d85b1b195d607a1b60448201526064016106e9565b305f90815260096020526040902054601054811080159081906112415750601254600160a01b900460ff16155b801561126557506001600160a01b0386165f908152600c602052604090205460ff16155b8015611273575060115460ff165b801561129757506001600160a01b0386165f908152600b602052604090205460ff16155b80156112bb57506001600160a01b0385165f908152600b602052604090205460ff16155b156112c9576112c982611668565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526009909152919091205461131a9186906113e1565b6001600160a01b0387165f9081526009602052604081209190915561133f8787611718565b6113535761134e8787876117b2565b611355565b845b6001600160a01b0387165f9081526009602052604090205490915061137a908261160a565b6001600160a01b038088165f8181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113cd9085815260200190565b60405180910390a3600193505050506108b0565b5f81848411156114045760405162461bcd60e51b81526004016106e99190611b42565b505f6114108486611d48565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f825f0361147757505f6107bd565b5f6114828385611d5b565b90508261148f8583611d72565b146108b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e9565b5f6108b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526009909152918220546115779184906113e1565b6001600160a01b038086165f9081526009602052604080822093909355908516815220546115a5908361160a565b6001600160a01b038085165f8181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f89086815260200190565b60405180910390a35060019392505050565b5f806116168385611d91565b9050838110156108b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b6012805460ff60a01b1916600160a01b179055601154610100900460ff161561169057506010545b4761169a826118d8565b5f6116a54783611a92565b90508015611706576003546040515f9161010090046001600160a01b03169083908381818185875af1925050503d805f81146116fc576040519150601f19603f3d011682016040523d82523d5f602084013e611701565b606091505b505050505b50506012805460ff60a01b1916905550565b6001600160a01b0382165f908152600b602052604081205460ff168061175557506001600160a01b0382165f908152600b602052604090205460ff165b15611762575060016107bd565b6001600160a01b0383165f908152600c602052604090205460ff168061179f57506001600160a01b0382165f908152600c602052604090205460ff165b156117ab57505f6107bd565b505f6107bd565b6001600160a01b0383165f908152600c6020526040812054819060ff16156117f1576007546005546117ea9190610d95908690611468565b905061182a565b6001600160a01b0384165f908152600c602052604090205460ff161561182a576007546006546118279190610d95908690611468565b90505b80156118a257305f90815260096020526040902054611849908261160a565b305f81815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118999085815260200190565b60405180910390a35b6114108382611a92565b5f81836118cc5760405162461bcd60e51b81526004016106e99190611b42565b505f6114108486611d72565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061190b5761190b611da4565b60200260200101906001600160a01b031690816001600160a01b031681525050601160039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561197c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a09190611db8565b816001815181106119b3576119b3611da4565b6001600160a01b0392831660209182029290920101526011546119e0913091630100000090041684610e36565b601154630100000090046001600160a01b031663791ac9478360018430611a0842601e611d91565b6040518663ffffffff1660e01b8152600401611a28959493929190611e16565b5f604051808303815f87803b158015611a3f575f80fd5b505af1158015611a51573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611a86929190611e51565b60405180910390a15050565b5f6108b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e1565b80358015158114611ae2575f80fd5b919050565b5f805f60608486031215611af9575f80fd5b611b0284611ad3565b9250611b1060208501611ad3565b9150604084013590509250925092565b5f5b83811015611b3a578181015183820152602001611b22565b50505f910152565b602081525f8251806020840152611b60816040850160208701611b20565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c3f575f80fd5b5f8060408385031215611b99575f80fd5b8235611ba481611b74565b946020939093013593505050565b5f8060408385031215611bc3575f80fd5b50508035926020909101359150565b5f805f60608486031215611be4575f80fd5b8335611bef81611b74565b92506020840135611bff81611b74565b929592945050506040919091013590565b5f60208284031215611c20575f80fd5b81356108b081611b74565b5f8060408385031215611c3c575f80fd5b8235611c4781611b74565b9150611c5560208401611ad3565b90509250929050565b5f8060408385031215611c6f575f80fd5b8235611c7a81611b74565b91506020830135611c8a81611b74565b809150509250929050565b5f60208284031215611ca5575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611cf557607f821691505b602082108103611d1357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8251611d2a818460208701611b20565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156107bd576107bd611d34565b80820281158282048414176107bd576107bd611d34565b5f82611d8c57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107bd576107bd611d34565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dc8575f80fd5b81516108b081611b74565b5f815180845260208085019450602084015f5b83811015611e0b5781516001600160a01b031687529582019590820190600101611de6565b509495945050505050565b85815284602082015260a060408201525f611e3460a0830186611dd3565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611e696040830184611dd3565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220964049ae625f1dd2b6e89f23846e9ce7c0b793bc339ee3a9ca719d536a4272f364736f6c63430008160033
Deployed Bytecode Sourcemap
5965:10094:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15655:229;;;;;;;;;;-1:-1:-1;15655:229:0;;;;;:::i;:::-;;:::i;:::-;;6962:61;;;;;;;;;;;;;;;;;;;646:25:1;;;634:2;619:18;6962:61:0;;;;;;;;8209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7152:31::-;;;;;;;;;;-1:-1:-1;7152:31:0;;;;;;;-1:-1:-1;;;;;7152:31:0;;;;;;-1:-1:-1;;;;;1524:32:1;;;1506:51;;1494:2;1479:18;7152:31:0;1338:225:1;8876:161:0;;;;;;;;;;-1:-1:-1;8876:161:0;;;;;:::i;:::-;;:::i;:::-;;;2189:14:1;;2182:22;2164:41;;2152:2;2137:18;8876:161:0;2024:187:1;14903:195:0;;;;;;;;;;-1:-1:-1;14903:195:0;;;;;:::i;:::-;;:::i;8486:100::-;;;;;;;;;;-1:-1:-1;8566:12:0;;8486:100;;6274:84;;;;;;;;;;-1:-1:-1;6274:84:0;;;;-1:-1:-1;;;;;6274:84:0;;;9602:313;;;;;;;;;;-1:-1:-1;9602:313:0;;;;;:::i;:::-;;:::i;8395:83::-;;;;;;;;;;-1:-1:-1;8461:9:0;;8395:83;;8461:9;;;;3280:36:1;;3268:2;3253:18;8395:83:0;3138:184:1;6710:45:0;;;;;;;;;;-1:-1:-1;6710:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14193:114;;;;;;;;;;-1:-1:-1;14193:114:0;;;;;:::i;:::-;;:::i;6658:45::-;;;;;;;;;;-1:-1:-1;6658:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14501:114;;;;;;;;;;-1:-1:-1;14501:114:0;;;;;:::i;:::-;;:::i;7032:30::-;;;;;;;;;;-1:-1:-1;7032:30:0;;;;;;;;8594:123;;;;;;;;;;-1:-1:-1;8594:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;8686:18:0;8660:7;8686:18;;;:9;:18;;;;;;;8594:123;3258:94;;;;;;;;;;;;;:::i;15892:160::-;;;;;;;;;;;;;:::i;6183:84::-;;;;;;;;;;-1:-1:-1;6183:84:0;;;;;;;-1:-1:-1;;;;;6183:84:0;;;6506:20;;;;;;;;;;-1:-1:-1;6506:20:0;;;;;;;;15109:115;;;;;;;;;;-1:-1:-1;15109:115:0;;;;;:::i;:::-;;:::i;2949:87::-;;;;;;;;;;-1:-1:-1;2995:7:0;3022:6;-1:-1:-1;;;;;3022:6:0;2949:87;;8300;;;;;;;;;;;;;:::i;9427:167::-;;;;;;;;;;-1:-1:-1;9427:167:0;;;;;:::i;:::-;;:::i;7109:34::-;;;;;;;;;;-1:-1:-1;7109:34:0;;;;;;;;;;;6830:61;;;;;;;;;;;;;;;;14623:272;;;;;;;;;;-1:-1:-1;14623:272:0;;;;;:::i;:::-;;:::i;8725:143::-;;;;;;;;;;-1:-1:-1;8725:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8833:18:0;;;8806:7;8833:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8725:143;6477:20;;;;;;;;;;-1:-1:-1;6477:20:0;;;;;;;;;;;;;;;;4494:25:1;;;4550:2;4535:18;;4528:34;;;;4578:18;;;4571:34;4482:2;4467:18;6477:20:0;4292:319:1;14315:178:0;;;;;;;;;;;;;:::i;7069:31::-;;;;;;;;;;-1:-1:-1;7069:31:0;;;;;;;;;;;7190:22;;;;;;;;;;-1:-1:-1;7190:22:0;;;;-1:-1:-1;;;;;7190:22:0;;;3360:229;;;;;;;;;;-1:-1:-1;3360:229:0;;;;;:::i;:::-;;:::i;6898:55::-;;;;;;;;;;;;;;;;15364:283;;;;;;;;;;-1:-1:-1;15364:283:0;;;;;:::i;:::-;;:::i;15232:124::-;;;;;;;;;;;;;:::i;15655:229::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;;;;;;;;;15784:11:::1;:22:::0;;-1:-1:-1;;15817:22:0;15784;::::1;;-1:-1:-1::0;;15817:22:0;;;;;15784::::1;15817::::0;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;15850:13:::1;:26:::0;15655:229::o;8209:83::-;8246:13;8279:5;8272:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8209:83;:::o;8876:161::-;8951:4;8968:39;1594:10;8991:7;9000:6;8968:8;:39::i;:::-;-1:-1:-1;9025:4:0;8876:161;;;;;:::o;14903:195::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;14995:2:::1;14987:4;:10;;:25;;;;;15010:2;15001:5;:11;;14987:25;14979:59;;;::::0;-1:-1:-1;;;14979:59:0;;5749:2:1;14979:59:0::1;::::0;::::1;5731:21:1::0;5788:2;5768:18;;;5761:30;-1:-1:-1;;;5807:18:1;;;5800:52;5869:18;;14979:59:0::1;5547:346:1::0;14979:59:0::1;15049:3;:14:::0;;;;15074:8;:16;14903:195::o;9602:313::-;9700:4;9717:36;9727:6;9735:9;9746:6;9717:9;:36::i;:::-;-1:-1:-1;9764:121:0;9773:6;1594:10;9795:89;9833:6;9795:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9795:19:0;;;;;;:11;:19;;;;;;;;1594:10;9795:33;;;;;;;;;;:37;:89::i;:::-;9764:8;:121::i;:::-;-1:-1:-1;9903:4:0;9602:313;;;;;;:::o;14193:114::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;14271:15:::1;:28:::0;;-1:-1:-1;;;;;14271:28:0;;::::1;;;-1:-1:-1::0;;;;;;14271:28:0;;::::1;::::0;;;::::1;::::0;;14193:114::o;14501:::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;14579:15:::1;:28:::0;;-1:-1:-1;;;;;;14579:28:0::1;-1:-1:-1::0;;;;;14579:28:0;;;::::1;::::0;;;::::1;::::0;;14501:114::o;3258:94::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;3323:21:::1;3341:1;3323:9;:21::i;:::-;3258:94::o:0;15892:160::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;15963:12:::1;::::0;15946:14:::1;:29:::0;;;15986:9:::1;:24:::0;16021:15:::1;:23:::0;;-1:-1:-1;;16021:23:0::1;::::0;;15892:160::o;15109:115::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15188:18:0;;;::::1;;::::0;;;:12:::1;:18;::::0;;;;:28;;-1:-1:-1;;15188:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15109:115::o;8300:87::-;8339:13;8372:7;8365:14;;;;;:::i;9427:167::-;9505:4;9522:42;1594:10;9546:9;9557:6;9522:9;:42::i;14623:272::-;7392:15;;-1:-1:-1;;;;;7392:15:0;7378:10;:29;7370:56;;;;-1:-1:-1;;;7370:56:0;;6100:2:1;7370:56:0;;;6082:21:1;6139:2;6119:18;;;6112:30;-1:-1:-1;;;6158:18:1;;;6151:45;6213:18;;7370:56:0;5898:339:1;7370:56:0;14762:73:::1;::::0;-1:-1:-1;;;;;6434:32:1;;;14762:73:0::1;::::0;::::1;6416:51:1::0;6483:18;;;6476:34;;;14723:12:0::1;::::0;14741:20;;::::1;::::0;6389:18:1;;14762:73:0::1;::::0;;-1:-1:-1;;14762:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;14762:73:0::1;-1:-1:-1::0;;;14762:73:0::1;::::0;;14741:95;::::1;::::0;14762:73;14741:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14722:114;;;14855:7;14847:40;;;::::0;-1:-1:-1;;;14847:40:0;;7015:2:1;14847:40:0::1;::::0;::::1;6997:21:1::0;7054:2;7034:18;;;7027:30;-1:-1:-1;;;7073:18:1;;;7066:50;7133:18;;14847:40:0::1;6813:344:1::0;14847:40:0::1;14711:184;14623:272:::0;;;:::o;14315:178::-;7392:15;;-1:-1:-1;;;;;7392:15:0;7378:10;:29;7370:56;;;;-1:-1:-1;;;7370:56:0;;6100:2:1;7370:56:0;;;6082:21:1;6139:2;6119:18;;;6112:30;-1:-1:-1;;;6158:18:1;;;6151:45;6213:18;;7370:56:0;5898:339:1;7370:56:0;14382:58:::1;::::0;14370:7:::1;::::0;14390:10:::1;::::0;14414:21:::1;::::0;14370:7;14382:58;14370:7;14382:58;14414:21;14390:10;14382:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14369:71;;;14459:2;14451:34;;;::::0;-1:-1:-1;;;14451:34:0;;7574:2:1;14451:34:0::1;::::0;::::1;7556:21:1::0;7613:2;7593:18;;;7586:30;-1:-1:-1;;;7632:18:1;;;7625:50;7692:18;;14451:34:0::1;7372:344:1::0;14451:34:0::1;14357:136;14315:178::o:0;3360:229::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3463:22:0;::::1;3441:110;;;::::0;-1:-1:-1;;;3441:110:0;;7923:2:1;3441:110:0::1;::::0;::::1;7905:21:1::0;7962:2;7942:18;;;7935:30;8001:34;7981:18;;;7974:62;-1:-1:-1;;;8052:18:1;;;8045:36;8098:19;;3441:110:0::1;7721:402:1::0;3441:110:0::1;3562:19;3572:8;3562:9;:19::i;15364:283::-:0;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;15459:1:::1;15450:4;:10;;:29;;;;-1:-1:-1::0;15464:15:0::1;::::0;;;::::1;;;15450:29;15442:84;;;::::0;-1:-1:-1;;;15442:84:0;;8330:2:1;15442:84:0::1;::::0;::::1;8312:21:1::0;8369:2;8349:18;;;8342:30;8408:34;8388:18;;;8381:62;-1:-1:-1;;;8459:18:1;;;8452:41;8510:19;;15442:84:0::1;8128:407:1::0;15442:84:0::1;15554:31;15581:3;15554:22;15571:4;15554:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:31::i;:::-;15537:14;:48:::0;15608:12:::1;::::0;:31:::1;::::0;15635:3:::1;::::0;15608:22:::1;::::0;15625:4;15608:16:::1;:22::i;:31::-;15596:9;:43:::0;-1:-1:-1;15364:283:0:o;15232:124::-;2995:7;3022:6;-1:-1:-1;;;;;3022:6:0;1594:10;3170:23;3162:68;;;;-1:-1:-1;;;3162:68:0;;;;;;;:::i;:::-;15294:8:::1;::::0;::::1;;15293:9;15285:37;;;::::0;-1:-1:-1;;;15285:37:0;;8742:2:1;15285:37:0::1;::::0;::::1;8724:21:1::0;8781:2;8761:18;;;8754:30;-1:-1:-1;;;8800:18:1;;;8793:46;8856:18;;15285:37:0::1;8540:340:1::0;15285:37:0::1;15333:8;:15:::0;;-1:-1:-1;;15333:15:0::1;15344:4;15333:15;::::0;;15232:124::o;9045:337::-;-1:-1:-1;;;;;9138:19:0;;9130:68;;;;-1:-1:-1;;;9130:68:0;;9087:2:1;9130:68:0;;;9069:21:1;9126:2;9106:18;;;9099:30;9165:34;9145:18;;;9138:62;-1:-1:-1;;;9216:18:1;;;9209:34;9260:19;;9130:68:0;8885:400:1;9130:68:0;-1:-1:-1;;;;;9217:21:0;;9209:68;;;;-1:-1:-1;;;9209:68:0;;9492:2:1;9209:68:0;;;9474:21:1;9531:2;9511:18;;;9504:30;9570:34;9550:18;;;9543:62;-1:-1:-1;;;9621:18:1;;;9614:32;9663:19;;9209:68:0;9290:398:1;9209:68:0;-1:-1:-1;;;;;9290:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9342:32;;646:25:1;;;9342:32:0;;619:18:1;9342:32:0;;;;;;;9045:337;;;:::o;9923:1745::-;10010:4;-1:-1:-1;;;;;10037:20:0;;10029:70;;;;-1:-1:-1;;;10029:70:0;;9895:2:1;10029:70:0;;;9877:21:1;9934:2;9914:18;;;9907:30;9973:34;9953:18;;;9946:62;-1:-1:-1;;;10024:18:1;;;10017:35;10069:19;;10029:70:0;9693:401:1;10029:70:0;-1:-1:-1;;;;;10118:23:0;;10110:71;;;;-1:-1:-1;;;10110:71:0;;10301:2:1;10110:71:0;;;10283:21:1;10340:2;10320:18;;;10313:30;10379:34;10359:18;;;10352:62;-1:-1:-1;;;10430:18:1;;;10423:33;10473:19;;10110:71:0;10099:399:1;10110:71:0;10209:1;10200:6;:10;10192:64;;;;-1:-1:-1;;;10192:64:0;;10705:2:1;10192:64:0;;;10687:21:1;10744:2;10724:18;;;10717:30;10783:34;10763:18;;;10756:62;-1:-1:-1;;;10834:18:1;;;10827:39;10883:19;;10192:64:0;10503:405:1;10192:64:0;10277:6;;-1:-1:-1;;;10277:6:0;;;;10273:1386;;;10307:41;10322:6;10330:9;10341:6;10307:14;:41::i;:::-;10300:48;;;;10273:1386;-1:-1:-1;;;;;10396:20:0;;;;;;:12;:20;;;;;;;;10395:21;:49;;;;-1:-1:-1;;;;;;10421:23:0;;;;;;:12;:23;;;;;;;;10420:24;10395:49;:68;;;;-1:-1:-1;10448:15:0;;;;;;;10395:68;10392:381;;;10492:8;;;;10484:33;;;;-1:-1:-1;;;10484:33:0;;11115:2:1;10484:33:0;;;11097:21:1;11154:2;11134:18;;;11127:30;-1:-1:-1;;;11173:18:1;;;11166:43;11226:18;;10484:33:0;10913:337:1;10484:33:0;10554:14;;10544:6;:24;;10536:56;;;;-1:-1:-1;;;10536:56:0;;11457:2:1;10536:56:0;;;11439:21:1;11496:2;11476:18;;;11469:30;-1:-1:-1;;;11515:18:1;;;11508:49;11574:18;;10536:56:0;11255:343:1;10536:56:0;-1:-1:-1;;;;;10615:23:0;;;;;;:12;:23;;;;;;;;10611:147;;10707:9;;10671:32;10696:6;10671:20;10681:9;-1:-1:-1;;;;;8686:18:0;8660:7;8686:18;;;:9;:18;;;;;;;8594:123;10671:20;:24;;:32::i;:::-;:45;;10663:75;;;;-1:-1:-1;;;10663:75:0;;11805:2:1;10663:75:0;;;11787:21:1;11844:2;11824:18;;;11817:30;-1:-1:-1;;;11863:18:1;;;11856:47;11920:18;;10663:75:0;11603:341:1;10663:75:0;10850:4;10801:28;8686:18;;;:9;:18;;;;;;10926:13;;10902:37;;;;;;;10960:52;;-1:-1:-1;11006:6:0;;-1:-1:-1;;;11006:6:0;;;;11005:7;10960:52;:95;;;;-1:-1:-1;;;;;;11035:20:0;;;;;;:12;:20;;;;;;;;11034:21;10960:95;:128;;;;-1:-1:-1;11077:11:0;;;;10960:128;:170;;;;-1:-1:-1;;;;;;11110:20:0;;;;;;:12;:20;;;;;;;;11109:21;10960:170;:215;;;;-1:-1:-1;;;;;;11152:23:0;;;;;;:12;:23;;;;;;;;11151:24;10960:215;10956:304;;;11214:30;11223:20;11214:8;:30::i;:::-;11308:53;;;;;;;;;;;-1:-1:-1;;;11308:53:0;;;;;;;;-1:-1:-1;;;;;11308:17:0;;-1:-1:-1;11308:17:0;;;:9;:17;;;;;;;;:53;;11330:6;;11308:21;:53::i;:::-;-1:-1:-1;;;;;11288:17:0;;;;;;:9;:17;;;;;:73;;;;11400:34;11298:6;11424:9;11400:16;:34::i;:::-;:80;;11446:34;11454:6;11462:9;11473:6;11446:7;:34::i;:::-;11400:80;;;11437:6;11400:80;-1:-1:-1;;;;;11520:20:0;;;;;;:9;:20;;;;;;11378:102;;-1:-1:-1;11520:37:0;;11378:102;11520:24;:37::i;:::-;-1:-1:-1;;;;;11497:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11579:40;;;;;;;;;;11607:11;646:25:1;;634:2;619:18;;500:177;11579:40:0;;;;;;;;11641:4;11634:11;;;;;;;4136:192;4222:7;4258:12;4250:6;;;;4242:29;;;;-1:-1:-1;;;4242:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4282:9:0;4294:5;4298:1;4294;:5;:::i;:::-;4282:17;4136:192;-1:-1:-1;;;;;4136:192:0:o;3597:173::-;3653:16;3672:6;;-1:-1:-1;;;;;3689:17:0;;;-1:-1:-1;;;;;;3689:17:0;;;;;;3722:40;;3672:6;;;;;;;3722:40;;3653:16;3722:40;3642:128;3597:173;:::o;4336:250::-;4394:7;4418:1;4423;4418:6;4414:47;;-1:-1:-1;4448:1:0;4441:8;;4414:47;4473:9;4485:5;4489:1;4485;:5;:::i;:::-;4473:17;-1:-1:-1;4518:1:0;4509:5;4513:1;4473:17;4509:5;:::i;:::-;:10;4501:56;;;;-1:-1:-1;;;4501:56:0;;12811:2:1;4501:56:0;;;12793:21:1;12850:2;12830:18;;;12823:30;12889:34;12869:18;;;12862:62;-1:-1:-1;;;12940:18:1;;;12933:31;12981:19;;4501:56:0;12609:397:1;4594:132:0;4652:7;4679:39;4683:1;4686;4679:39;;;;;;;;;;;;;;;;;:3;:39::i;11676:330::-;11806:53;;;;;;;;;;;-1:-1:-1;;;11806:53:0;;;;;;;;-1:-1:-1;;;;;11806:17:0;;11769:4;11806:17;;;:9;:17;;;;;;;:53;;11828:6;;11806:21;:53::i;:::-;-1:-1:-1;;;;;11786:17:0;;;;;;;:9;:17;;;;;;:73;;;;11893:20;;;;;;;:32;;11918:6;11893:24;:32::i;:::-;-1:-1:-1;;;;;11870:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11941:35;;;;;;;;;;11969:6;646:25:1;;634:2;619:18;;500:177;11941:35:0;;;;;;;;-1:-1:-1;11994:4:0;11676:330;;;;;:::o;3803:181::-;3861:7;;3893:5;3897:1;3893;:5;:::i;:::-;3881:17;;3922:1;3917;:6;;3909:46;;;;-1:-1:-1;;;3909:46:0;;13343:2:1;3909:46:0;;;13325:21:1;13382:2;13362:18;;;13355:30;13421:29;13401:18;;;13394:57;13468:18;;3909:46:0;13141:351:1;13087:479:0;7272:6;:13;;-1:-1:-1;;;;7272:13:0;-1:-1:-1;;;7272:13:0;;;13161:11:::1;::::0;7272:13;13161:11;::::1;7272:13:::0;13161:11:::1;13158:47;;;-1:-1:-1::0;13192:13:0::1;::::0;13158:47:::1;13243:21;13275:33;13292:15:::0;13275:16:::1;:33::i;:::-;13319:22;13344:41;:21;13370:14:::0;13344:25:::1;:41::i;:::-;13319:66:::0;-1:-1:-1;13401:18:0;;13398:159:::1;;13457:15;::::0;13449:56:::1;::::0;13437:7:::1;::::0;13457:15:::1;::::0;::::1;-1:-1:-1::0;;;;;13457:15:0::1;::::0;13486:14;;13437:7;13449:56;13437:7;13449:56;13486:14;13457:15;13449:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;13398:159:0::1;-1:-1:-1::0;;7308:6:0;:14;;-1:-1:-1;;;;7308:14:0;;;-1:-1:-1;13087:479:0:o;12018:359::-;-1:-1:-1;;;;;12122:20:0;;12102:4;12122:20;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;12146:23:0;;;;;;:12;:23;;;;;;;;12122:47;12119:251;;;-1:-1:-1;12193:4:0;12186:11;;12119:251;-1:-1:-1;;;;;12228:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;12252:23:0;;;;;;:12;:23;;;;;;;;12228:47;12224:146;;;-1:-1:-1;12299:5:0;12292:12;;12224:146;-1:-1:-1;12353:5:0;12346:12;;12385:694;-1:-1:-1;;;;;12558:20:0;;12471:7;12558:20;;;:12;:20;;;;;;12471:7;;12558:20;;12555:250;;;12636:15;;:3;12623:7;12612:40;;12636:15;12612:19;;:6;;:10;:19::i;:40::-;12600:52;;12555:250;;;-1:-1:-1;;;;;12691:23:0;;;;;;:12;:23;;;;;;;;12688:117;;;12773:15;;12759:8;;12748:41;;12773:15;12748:20;;:6;;:10;:20::i;:41::-;12736:53;;12688:117;12824:13;;12821:185;;12903:4;12885:24;;;;:9;:24;;;;;;:39;;12914:9;12885:28;:39::i;:::-;12876:4;12858:24;;;;:9;:24;;;;;;;:66;;;;12948:42;;-1:-1:-1;;;;;12948:42:0;;;;;;;12980:9;646:25:1;;634:2;619:18;;500:177;12948:42:0;;;;;;;;12821:185;13029:21;:6;13040:9;13029:10;:21::i;4734:278::-;4820:7;4855:12;4848:5;4840:28;;;;-1:-1:-1;;;4840:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4879:9:0;4891:5;4895:1;4891;:5;:::i;13574:611::-;13724:16;;;13738:1;13724:16;;;;;;;;13700:21;;13724:16;;;;;;;;;;-1:-1:-1;13724:16:0;13700:40;;13769:4;13751;13756:1;13751:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13751:23:0;;;-1:-1:-1;;;;;13751:23:0;;;;;13795:9;;;;;;;;;-1:-1:-1;;;;;13795:9:0;-1:-1:-1;;;;;13795:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13785:4;13790:1;13785:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13785:26:0;;;:7;;;;;;;;;:26;13856:9;;13824:56;;13841:4;;13856:9;;;;13868:11;13824:8;:56::i;:::-;13919:9;;;;;-1:-1:-1;;;;;13919:9:0;:60;13994:11;14020:1;14037:4;14064;14085:20;:15;14103:2;14085:20;:::i;:::-;13919:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14142:35;14159:11;14172:4;14142:35;;;;;;;:::i;:::-;;;;;;;;13629:556;13574:611;:::o;3992:136::-;4050:7;4077:43;4081:1;4084;4077:43;;;;;;;;;;;;;;;;;:3;:43::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:316::-;250:6;258;266;319:2;307:9;298:7;294:23;290:32;287:52;;;335:1;332;325:12;287:52;358:26;374:9;358:26;:::i;:::-;348:36;;403:35;434:2;423:9;419:18;403:35;:::i;:::-;393:45;;485:2;474:9;470:18;457:32;447:42;;179:316;;;;;:::o;682:250::-;767:1;777:113;791:6;788:1;785:13;777:113;;;867:11;;;861:18;848:11;;;841:39;813:2;806:10;777:113;;;-1:-1:-1;;924:1:1;906:16;;899:27;682:250::o;937:396::-;1086:2;1075:9;1068:21;1049:4;1118:6;1112:13;1161:6;1156:2;1145:9;1141:18;1134:34;1177:79;1249:6;1244:2;1233:9;1229:18;1224:2;1216:6;1212:15;1177:79;:::i;:::-;1317:2;1296:15;-1:-1:-1;;1292:29:1;1277:45;;;;1324:2;1273:54;;937:396;-1:-1:-1;;937:396:1:o;1568:131::-;-1:-1:-1;;;;;1643:31:1;;1633:42;;1623:70;;1689:1;1686;1679:12;1704:315;1772:6;1780;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;:::-;1957:5;2009:2;1994:18;;;;1981:32;;-1:-1:-1;;;1704:315:1:o;2216:248::-;2284:6;2292;2345:2;2333:9;2324:7;2320:23;2316:32;2313:52;;;2361:1;2358;2351:12;2313:52;-1:-1:-1;;2384:23:1;;;2454:2;2439:18;;;2426:32;;-1:-1:-1;2216:248:1:o;2677:456::-;2754:6;2762;2770;2823:2;2811:9;2802:7;2798:23;2794:32;2791:52;;;2839:1;2836;2829:12;2791:52;2878:9;2865:23;2897:31;2922:5;2897:31;:::i;:::-;2947:5;-1:-1:-1;3004:2:1;2989:18;;2976:32;3017:33;2976:32;3017:33;:::i;:::-;2677:456;;3069:7;;-1:-1:-1;;;3123:2:1;3108:18;;;;3095:32;;2677:456::o;3327:247::-;3386:6;3439:2;3427:9;3418:7;3414:23;3410:32;3407:52;;;3455:1;3452;3445:12;3407:52;3494:9;3481:23;3513:31;3538:5;3513:31;:::i;3579:315::-;3644:6;3652;3705:2;3693:9;3684:7;3680:23;3676:32;3673:52;;;3721:1;3718;3711:12;3673:52;3760:9;3747:23;3779:31;3804:5;3779:31;:::i;:::-;3829:5;-1:-1:-1;3853:35:1;3884:2;3869:18;;3853:35;:::i;:::-;3843:45;;3579:315;;;;;:::o;3899:388::-;3967:6;3975;4028:2;4016:9;4007:7;4003:23;3999:32;3996:52;;;4044:1;4041;4034:12;3996:52;4083:9;4070:23;4102:31;4127:5;4102:31;:::i;:::-;4152:5;-1:-1:-1;4209:2:1;4194:18;;4181:32;4222:33;4181:32;4222:33;:::i;:::-;4274:7;4264:17;;;3899:388;;;;;:::o;4616:180::-;4675:6;4728:2;4716:9;4707:7;4703:23;4699:32;4696:52;;;4744:1;4741;4734:12;4696:52;-1:-1:-1;4767:23:1;;4616:180;-1:-1:-1;4616:180:1:o;4801:356::-;5003:2;4985:21;;;5022:18;;;5015:30;5081:34;5076:2;5061:18;;5054:62;5148:2;5133:18;;4801:356::o;5162:380::-;5241:1;5237:12;;;;5284;;;5305:61;;5359:4;5351:6;5347:17;5337:27;;5305:61;5412:2;5404:6;5401:14;5381:18;5378:38;5375:161;;5458:10;5453:3;5449:20;5446:1;5439:31;5493:4;5490:1;5483:15;5521:4;5518:1;5511:15;5375:161;;5162:380;;;:::o;6521:287::-;6650:3;6688:6;6682:13;6704:66;6763:6;6758:3;6751:4;6743:6;6739:17;6704:66;:::i;:::-;6786:16;;;;;6521:287;-1:-1:-1;;6521:287:1:o;11949:127::-;12010:10;12005:3;12001:20;11998:1;11991:31;12041:4;12038:1;12031:15;12065:4;12062:1;12055:15;12081:128;12148:9;;;12169:11;;;12166:37;;;12183:18;;:::i;12214:168::-;12287:9;;;12318;;12335:15;;;12329:22;;12315:37;12305:71;;12356:18;;:::i;12387:217::-;12427:1;12453;12443:132;;12497:10;12492:3;12488:20;12485:1;12478:31;12532:4;12529:1;12522:15;12560:4;12557:1;12550:15;12443:132;-1:-1:-1;12589:9:1;;12387:217::o;13011:125::-;13076:9;;;13097:10;;;13094:36;;;13110:18;;:::i;13629:127::-;13690:10;13685:3;13681:20;13678:1;13671:31;13721:4;13718:1;13711:15;13745:4;13742:1;13735:15;13761:251;13831:6;13884:2;13872:9;13863:7;13859:23;13855:32;13852:52;;;13900:1;13897;13890:12;13852:52;13932:9;13926:16;13951:31;13976:5;13951:31;:::i;14017:465::-;14070:3;14108:5;14102:12;14135:6;14130:3;14123:19;14161:4;14190;14185:3;14181:14;14174:21;;14229:4;14222:5;14218:16;14252:1;14262:195;14276:6;14273:1;14270:13;14262:195;;;14341:13;;-1:-1:-1;;;;;14337:39:1;14325:52;;14397:12;;;;14432:15;;;;14373:1;14291:9;14262:195;;;-1:-1:-1;14473:3:1;;14017:465;-1:-1:-1;;;;;14017:465:1:o;14487:582::-;14786:6;14775:9;14768:25;14829:6;14824:2;14813:9;14809:18;14802:34;14872:3;14867:2;14856:9;14852:18;14845:31;14749:4;14893:57;14945:3;14934:9;14930:19;14922:6;14893:57;:::i;:::-;-1:-1:-1;;;;;14986:32:1;;;;14981:2;14966:18;;14959:60;-1:-1:-1;15050:3:1;15035:19;15028:35;14885:65;14487:582;-1:-1:-1;;;14487:582:1:o;15074:332::-;15281:6;15270:9;15263:25;15324:2;15319;15308:9;15304:18;15297:30;15244:4;15344:56;15396:2;15385:9;15381:18;15373:6;15344:56;:::i;:::-;15336:64;15074:332;-1:-1:-1;;;;15074:332:1:o
Swarm Source
ipfs://964049ae625f1dd2b6e89f23846e9ce7c0b793bc339ee3a9ca719d536a4272f3
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.