ETH Price: $3,861.43 (-1.29%)

Token

ERC-20: NEOBOT (NEOBOT)
 

Overview

Max Total Supply

1,000,000,000 NEOBOT

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,632,240.24574128 NEOBOT

Value
$0.00
0x46E64C7166662EDD96f03e2F92FAA9F08Fa7644A
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NEOBOT

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-26
*/

// SPDX-License-Identifier: MIT

/*
NEOBOT is the top-notch solutions for shitcoin/dex traders to make the most informative market decisions.

Website: https://www.neobot.run
Twitter: https://twitter.com/NeoBot_ERC20
Telegram: https://t.me/NeoBot_ERC20
*/

pragma solidity 0.8.21;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}
abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "Ownable: Caller is not owner"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}
interface InterRouter {
    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;
}
interface InterFactory {
    function createPair(address tokenA, address tokenB) external returns (address uniPairAddy);
}
interface InterERC20 {
    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);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract NEOBOT is Ownable, InterERC20 {
    using SafeMath for uint256;
    string private constant _name = "NEOBOT";
    string private constant _symbol = "NEOBOT";
    uint8 private constant _decimals = 9;
    uint256 private _supplyTotal = 10 ** 9 * (10 ** _decimals);
    
    InterRouter private _dexRouter;
    address public uniPairAddy;
    bool private enabledTrading = false;
    bool private activatedSwap = true;
    uint256 private minimumSwaps;
    bool private inswapping;
    uint256 currentSwaps;
    uint256 private maxCASwapAmount = _supplyTotal * 1000 / 100000;
    uint256 private minCASwapAmount = _supplyTotal * 10 / 100000;
    modifier reEntrance {inswapping = true; _; inswapping = false;}
    uint256 private autoLpTaxFee = 0;
    uint256 private marketerTaxFee = 0;
    uint256 private developerTaxFee = 100;
    uint256 private burningTaxFee = 0;
    uint256 private buyingTaxFee = 1500;
    uint256 private sellingTaxFee = 1500;
    uint256 private transferingTaxFee = 1000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal devFeeAddy = 0xF91CDB50c071ABBd2Bce9a7B17c081a406e62cf3; 
    address internal marketingFeeAddy = 0xF91CDB50c071ABBd2Bce9a7B17c081a406e62cf3;
    address internal lpFeeAddy = 0xF91CDB50c071ABBd2Bce9a7B17c081a406e62cf3;
    uint256 public _maxxTrxSize = ( _supplyTotal * 300 ) / 10000;
    uint256 public _maxxTransferSize = ( _supplyTotal * 300 ) / 10000;
    uint256 public _maxxWalletSize = ( _supplyTotal * 300 ) / 10000;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    constructor() Ownable(msg.sender) {
        InterRouter _dexRouter = InterRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = InterFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        _dexRouter = _dexRouter; uniPairAddy = _pair;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[lpFeeAddy] = true;
        _isExcludedFromFee[marketingFeeAddy] = true;
        _isExcludedFromFee[devFeeAddy] = true;
        _balances[msg.sender] = _supplyTotal;
        emit Transfer(address(0), msg.sender, _supplyTotal);
    }
    receive() external payable {}
    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 balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function getOwner() external view override returns (address) { return owner; }
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function enableTrading() external onlyOwner {enabledTrading = 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(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _supplyTotal.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function setMaxSize(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _supplyTotal.mul(_buy).div(10000); uint256 newTransfer = _supplyTotal.mul(_sell).div(10000); uint256 newWallet = _supplyTotal.mul(_wallet).div(10000);
        _maxxTrxSize = newTx; _maxxTransferSize = newTransfer; _maxxWalletSize = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    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 cleanDusttokens(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = InterERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        InterERC20(_address).transfer(devFeeAddy, _amount);
    }
    function feeDenominatorByType(address sender, address recipient) internal view returns (uint256) {
        if(recipient == uniPairAddy){return sellingTaxFee;}
        if(sender == uniPairAddy){return buyingTaxFee;}
        return transferingTaxFee;
    }
    function getAmountForActualFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (_isExcludedFromFee[recipient]) {return _maxxTrxSize;}
        if(feeDenominatorByType(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(feeDenominatorByType(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burningTaxFee > uint256(0) && feeDenominatorByType(sender, recipient) > burningTaxFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burningTaxFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function canContractTaxFeeSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minCASwapAmount;
        bool aboveThreshold = balanceOf(address(this)) >= maxCASwapAmount;
        return !inswapping && activatedSwap && enabledTrading && aboveMin && !_isExcludedFromFee[sender] && recipient == uniPairAddy && minimumSwaps >= currentSwaps && aboveThreshold;
    }
    function setFeeDenominators(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        autoLpTaxFee = _liquidity; marketerTaxFee = _marketing; burningTaxFee = _burn; developerTaxFee = _development; buyingTaxFee = _total; sellingTaxFee = _sell; transferingTaxFee = _trans;
        require(buyingTaxFee <= denominator.div(1) && sellingTaxFee <= denominator.div(1) && transferingTaxFee <= denominator.div(1), "buyingTaxFee and sellingTaxFee cannot be more than 20%");
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(_dexRouter), tokenAmount);
        _dexRouter.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpFeeAddy,
            block.timestamp);
    }
    function swapTaxFeeAndSend(uint256 tokens) private reEntrance {
        uint256 _denominator = (autoLpTaxFee.add(1).add(marketerTaxFee).add(developerTaxFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(autoLpTaxFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForTaxFee(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(autoLpTaxFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(autoLpTaxFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketerTaxFee);
        if(marketingAmt > 0){payable(marketingFeeAddy).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devFeeAddy).transfer(contractBalance);}
    }
    function swapTokensForTaxFee(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _dexRouter.WETH();
        _approve(address(this), address(_dexRouter), tokenAmount);
        _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient]){require(enabledTrading, "enabledTrading");}
        if(!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && recipient != address(uniPairAddy) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxxWalletSize, "Exceeds maximum wallet amount.");}
        if(sender != uniPairAddy){require(amount <= _maxxTransferSize || _isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "TX Limit Exceeded");}
        require(amount <= _maxxTrxSize || _isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "TX Limit Exceeded"); 
        if(recipient == uniPairAddy && !_isExcludedFromFee[sender]){minimumSwaps += uint256(1);}
        if(canContractTaxFeeSwap(sender, recipient, amount)){swapTaxFeeAndSend(maxCASwapAmount); minimumSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !_isExcludedFromFee[sender] ? getAmountForActualFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"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":"address","name":"owner","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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxxTransferSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxxTrxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"cleanDusttokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFeeDenominators","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPairAddy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004b3565b6200002290633b9aca00620004ca565b60018190556003805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004ca565b6200005a9190620004e4565b600755620186a0600154600a620000729190620004ca565b6200007e9190620004e4565b6008555f6009819055600a8190556064600b55600c556105dc600d819055600e556103e8600f5561271060108190556011805473f91cdb50c071abbd2bce9a7b17c081a406e62cf36001600160a01b0319918216811790925560128054821683179055601380549091169091179055600154620000fe9061012c620004ca565b6200010a9190620004e4565b60145561271060015461012c620001229190620004ca565b6200012e9190620004e4565b60155561271060015461012c620001469190620004ca565b620001529190620004e4565b60165534801562000161575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000504565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000238573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025e919062000504565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000504565b600380546001600160a01b0319166001600160a01b0383811691909117909155305f908152601760209081526040808320805460ff199081166001908117909255338086528386208054831684179055601354871686528386208054831684179055601254871686528386208054831684179055601154909616855282852080549091168217905554848452601883528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200052c565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f857815f1904821115620003dc57620003dc620003a4565b80851615620003ea57918102915b93841c9390800290620003bd565b509250929050565b5f826200041057506001620004ad565b816200041e57505f620004ad565b8160018114620004375760028114620004425762000462565b6001915050620004ad565b60ff841115620004565762000456620003a4565b50506001821b620004ad565b5060208310610133831016604e8410600b841016171562000487575081810a620004ad565b620004938383620003b8565b805f1904821115620004a957620004a9620003a4565b0290505b92915050565b5f620004c360ff84168362000400565b9392505050565b8082028115828204841417620004ad57620004ad620003a4565b5f82620004ff57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000515575f80fd5b81516001600160a01b0381168114620004c3575f80fd5b611909806200053a5f395ff3fe608060405260043610610129575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610339578063ce59c82114610358578063dd62ed3e14610377578063f2fde38b146103bb578063f570a4c5146103da578063ffd12ef3146103ef575f80fd5b806370a0823114610293578063768dc710146102c7578063893d20e8146102f55780638a8c523c1461032557806395d89b4114610134575f80fd5b8063204bd74e116100ee578063204bd74e146101ec57806323b872dd1461020d5780632f54bf6e1461022c578063313ce5671461025957806357a996e914610274575f80fd5b806306fdde0314610134578063095ea7b3146101715780630ad1a49e146101a057806318160ddd146101c35780631cd5f2da146101d7575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b506040805180820182526006815265139153d093d560d21b602082015290516101689190611579565b60405180910390f35b34801561017c575f80fd5b5061019061018b3660046115db565b61040e565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b560165481565b604051908152602001610168565b3480156101ce575f80fd5b506101b5610424565b3480156101e2575f80fd5b506101b560145481565b3480156101f7575f80fd5b5061020b610206366004611605565b610494565b005b348015610218575f80fd5b5061019061022736600461164c565b6105a6565b348015610237575f80fd5b5061019061024636600461168a565b5f546001600160a01b0391821691161490565b348015610264575f80fd5b5060405160098152602001610168565b34801561027f575f80fd5b5061020b61028e3660046115db565b61060e565b34801561029e575f80fd5b506101b56102ad36600461168a565b6001600160a01b03165f9081526018602052604090205490565b3480156102d2575f80fd5b506101906102e136600461168a565b60176020525f908152604090205460ff1681565b348015610300575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610168565b348015610330575f80fd5b5061020b610734565b348015610344575f80fd5b506101906103533660046115db565b610772565b348015610363575f80fd5b5060035461030d906001600160a01b031681565b348015610382575f80fd5b506101b56103913660046116a5565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b5061020b6103d536600461168a565b61077e565b3480156103e5575f80fd5b506101b560155481565b3480156103fa575f80fd5b5061020b6104093660046116dc565b6107fa565b5f61041a338484610921565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261048f9290916104899190610a44565b90610a44565b905090565b5f546001600160a01b031633146104c65760405162461bcd60e51b81526004016104bd90611705565b60405180910390fd5b6009879055600a869055600c859055600b849055600d839055600e829055600f8190556010546104f7906001610a4f565b600d54111580156105175750601054610511906001610a4f565b600e5411155b8015610532575060105461052c906001610a4f565b600f5411155b61059d5760405162461bcd60e51b815260206004820152603660248201527f627579696e6754617846656520616e642073656c6c696e675461784665652063604482015275616e6e6f74206265206d6f7265207468616e2032302560501b60648201526084016104bd565b50505050505050565b5f6105b2848484610a5a565b61060384336105fe856040518060600160405280602881526020016118ac602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610f9b565b610921565b5060015b9392505050565b5f546001600160a01b031633146106375760405162461bcd60e51b81526004016104bd90611705565b6040516370a0823160e01b81523060048201525f906106b8906064906106b29085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac919061173c565b90610fc6565b90610a4f565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561070a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072e9190611753565b50505050565b5f546001600160a01b0316331461075d5760405162461bcd60e51b81526004016104bd90611705565b6003805460ff60a01b1916600160a01b179055565b5f61041a338484610a5a565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016104bd90611705565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b031633146108235760405162461bcd60e51b81526004016104bd90611705565b5f61083f6127106106b286600154610fc690919063ffffffff16565b90505f61085d6127106106b286600154610fc690919063ffffffff16565b90505f61087b6127106106b286600154610fc690919063ffffffff16565b60148490556015839055601681905590505f6108a06103e86106b260056106ac610424565b90508084101580156108b25750808310155b80156108be5750808210155b61059d5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104bd565b6001600160a01b0383166109835760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bd565b6001600160a01b0382166109e45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bd565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6106078284611786565b5f6106078284611799565b6001600160a01b038316610abe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bd565b6001600160a01b038216610b205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bd565b6001600160a01b0383165f90815260186020526040902054811115610ba15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104bd565b6001600160a01b0383165f9081526017602052604090205460ff16158015610be157506001600160a01b0382165f9081526017602052604090205460ff16155b15610c3057600354600160a01b900460ff16610c305760405162461bcd60e51b815260206004820152600e60248201526d656e61626c656454726164696e6760901b60448201526064016104bd565b6001600160a01b0383165f9081526017602052604090205460ff16158015610c7057506001600160a01b0382165f9081526017602052604090205460ff16155b8015610c8a57506003546001600160a01b03838116911614155b8015610ca157506001600160a01b03821661dead14155b15610d19576016546001600160a01b0383165f90815260186020526040902054610ccb9083610fd1565b1115610d195760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104bd565b6003546001600160a01b03848116911614610db85760155481111580610d5657506001600160a01b0383165f9081526017602052604090205460ff165b80610d7857506001600160a01b0382165f9081526017602052604090205460ff165b610db85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104bd565b60145481111580610de057506001600160a01b0383165f9081526017602052604090205460ff165b80610e0257506001600160a01b0382165f9081526017602052604090205460ff165b610e425760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104bd565b6003546001600160a01b038381169116148015610e7757506001600160a01b0383165f9081526017602052604090205460ff16155b15610e9457600160045f828254610e8e91906117b8565b90915550505b610e9f838383610fdc565b15610eb457610eaf600754611094565b5f6004555b6001600160a01b0383165f90815260186020526040902054610ed69082610a44565b6001600160a01b0384165f90815260186020908152604080832093909355601790529081205460ff1615610f0a5781610f15565b610f15848484611204565b6001600160a01b0384165f90815260186020526040902054909150610f3a9082610fd1565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8d9085815260200190565b60405180910390a350505050565b5f8184841115610fbe5760405162461bcd60e51b81526004016104bd9190611579565b505050900390565b5f61060782846117cb565b5f61060782846117b8565b600854600754305f9081526018602052604081205460055491938510159211159060ff161580156110165750600354600160a81b900460ff165b801561102b5750600354600160a01b900460ff165b80156110345750815b801561105857506001600160a01b0386165f9081526017602052604090205460ff16155b801561107157506003546001600160a01b038681169116145b8015611081575060065460045410155b801561108a5750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110cd936002936106ac9391926110c7928391610fd1565b90610fd1565b90505f6110e9826106b260095486610fc690919063ffffffff16565b90505f6110f68483610a44565b9050476111028261132e565b5f61110d4783610a44565b90505f61112f61112860095488610a4490919063ffffffff16565b8390610a4f565b90505f61114760095483610fc690919063ffffffff16565b9050801561115957611159868261147e565b600a545f9061116d906106ac856002610fc6565b905080156111ae576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111ac573d5f803e3d5ffd5b505b4780156111ee576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111ec573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526017602052604081205460ff161561122d5750601454610607565b5f611238858561152f565b1115611327575f61125a61124c868661152f565b6010546106ac908690610a4f565b305f908152601860205260409020549091506112769082610fd1565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112c69085815260200190565b60405180910390a35f600c541180156112e95750600c546112e7868661152f565b115b15611315576113153061dead611310600c546106ac60105489610a4f90919063ffffffff16565b610a5a565b61131f8382610a44565b915050610607565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611361576113616117e2565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113dc91906117f6565b816001815181106113ef576113ef6117e2565b6001600160a01b0392831660209182029290920101526002546114159130911684610921565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144d9085905f90869030904290600401611811565b5f604051808303815f87803b158015611464575f80fd5b505af1158015611476573d5f803e3d5ffd5b505050505050565b6002546114969030906001600160a01b031684610921565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611503573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115289190611880565b5050505050565b6003545f906001600160a01b03908116908316036115505750600e5461041e565b6003546001600160a01b039081169084160361156f5750600d5461041e565b50600f5492915050565b5f6020808352835180828501525f5b818110156115a457858101830151858201604001528201611588565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115d8575f80fd5b50565b5f80604083850312156115ec575f80fd5b82356115f7816115c4565b946020939093013593505050565b5f805f805f805f60e0888a03121561161b575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f6060848603121561165e575f80fd5b8335611669816115c4565b92506020840135611679816115c4565b929592945050506040919091013590565b5f6020828403121561169a575f80fd5b8135610607816115c4565b5f80604083850312156116b6575f80fd5b82356116c1816115c4565b915060208301356116d1816115c4565b809150509250929050565b5f805f606084860312156116ee575f80fd5b505081359360208301359350604090920135919050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f6020828403121561174c575f80fd5b5051919050565b5f60208284031215611763575f80fd5b81518015158114610607575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561041e5761041e611772565b5f826117b357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561041e5761041e611772565b808202811582820484141761041e5761041e611772565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611806575f80fd5b8151610607816115c4565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561185f5784516001600160a01b03168352938301939183019160010161183a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611892575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220729ac578323ac106d0bea04be09935efdb8769043478669fdf02c66f4fe874d564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c806370a08231116100a8578063a9059cbb1161006d578063a9059cbb14610339578063ce59c82114610358578063dd62ed3e14610377578063f2fde38b146103bb578063f570a4c5146103da578063ffd12ef3146103ef575f80fd5b806370a0823114610293578063768dc710146102c7578063893d20e8146102f55780638a8c523c1461032557806395d89b4114610134575f80fd5b8063204bd74e116100ee578063204bd74e146101ec57806323b872dd1461020d5780632f54bf6e1461022c578063313ce5671461025957806357a996e914610274575f80fd5b806306fdde0314610134578063095ea7b3146101715780630ad1a49e146101a057806318160ddd146101c35780631cd5f2da146101d7575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b506040805180820182526006815265139153d093d560d21b602082015290516101689190611579565b60405180910390f35b34801561017c575f80fd5b5061019061018b3660046115db565b61040e565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b560165481565b604051908152602001610168565b3480156101ce575f80fd5b506101b5610424565b3480156101e2575f80fd5b506101b560145481565b3480156101f7575f80fd5b5061020b610206366004611605565b610494565b005b348015610218575f80fd5b5061019061022736600461164c565b6105a6565b348015610237575f80fd5b5061019061024636600461168a565b5f546001600160a01b0391821691161490565b348015610264575f80fd5b5060405160098152602001610168565b34801561027f575f80fd5b5061020b61028e3660046115db565b61060e565b34801561029e575f80fd5b506101b56102ad36600461168a565b6001600160a01b03165f9081526018602052604090205490565b3480156102d2575f80fd5b506101906102e136600461168a565b60176020525f908152604090205460ff1681565b348015610300575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610168565b348015610330575f80fd5b5061020b610734565b348015610344575f80fd5b506101906103533660046115db565b610772565b348015610363575f80fd5b5060035461030d906001600160a01b031681565b348015610382575f80fd5b506101b56103913660046116a5565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b5061020b6103d536600461168a565b61077e565b3480156103e5575f80fd5b506101b560155481565b3480156103fa575f80fd5b5061020b6104093660046116dc565b6107fa565b5f61041a338484610921565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261048f9290916104899190610a44565b90610a44565b905090565b5f546001600160a01b031633146104c65760405162461bcd60e51b81526004016104bd90611705565b60405180910390fd5b6009879055600a869055600c859055600b849055600d839055600e829055600f8190556010546104f7906001610a4f565b600d54111580156105175750601054610511906001610a4f565b600e5411155b8015610532575060105461052c906001610a4f565b600f5411155b61059d5760405162461bcd60e51b815260206004820152603660248201527f627579696e6754617846656520616e642073656c6c696e675461784665652063604482015275616e6e6f74206265206d6f7265207468616e2032302560501b60648201526084016104bd565b50505050505050565b5f6105b2848484610a5a565b61060384336105fe856040518060600160405280602881526020016118ac602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610f9b565b610921565b5060015b9392505050565b5f546001600160a01b031633146106375760405162461bcd60e51b81526004016104bd90611705565b6040516370a0823160e01b81523060048201525f906106b8906064906106b29085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac919061173c565b90610fc6565b90610a4f565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561070a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072e9190611753565b50505050565b5f546001600160a01b0316331461075d5760405162461bcd60e51b81526004016104bd90611705565b6003805460ff60a01b1916600160a01b179055565b5f61041a338484610a5a565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016104bd90611705565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b031633146108235760405162461bcd60e51b81526004016104bd90611705565b5f61083f6127106106b286600154610fc690919063ffffffff16565b90505f61085d6127106106b286600154610fc690919063ffffffff16565b90505f61087b6127106106b286600154610fc690919063ffffffff16565b60148490556015839055601681905590505f6108a06103e86106b260056106ac610424565b90508084101580156108b25750808310155b80156108be5750808210155b61059d5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104bd565b6001600160a01b0383166109835760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bd565b6001600160a01b0382166109e45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bd565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6106078284611786565b5f6106078284611799565b6001600160a01b038316610abe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bd565b6001600160a01b038216610b205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bd565b6001600160a01b0383165f90815260186020526040902054811115610ba15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104bd565b6001600160a01b0383165f9081526017602052604090205460ff16158015610be157506001600160a01b0382165f9081526017602052604090205460ff16155b15610c3057600354600160a01b900460ff16610c305760405162461bcd60e51b815260206004820152600e60248201526d656e61626c656454726164696e6760901b60448201526064016104bd565b6001600160a01b0383165f9081526017602052604090205460ff16158015610c7057506001600160a01b0382165f9081526017602052604090205460ff16155b8015610c8a57506003546001600160a01b03838116911614155b8015610ca157506001600160a01b03821661dead14155b15610d19576016546001600160a01b0383165f90815260186020526040902054610ccb9083610fd1565b1115610d195760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104bd565b6003546001600160a01b03848116911614610db85760155481111580610d5657506001600160a01b0383165f9081526017602052604090205460ff165b80610d7857506001600160a01b0382165f9081526017602052604090205460ff165b610db85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104bd565b60145481111580610de057506001600160a01b0383165f9081526017602052604090205460ff165b80610e0257506001600160a01b0382165f9081526017602052604090205460ff165b610e425760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104bd565b6003546001600160a01b038381169116148015610e7757506001600160a01b0383165f9081526017602052604090205460ff16155b15610e9457600160045f828254610e8e91906117b8565b90915550505b610e9f838383610fdc565b15610eb457610eaf600754611094565b5f6004555b6001600160a01b0383165f90815260186020526040902054610ed69082610a44565b6001600160a01b0384165f90815260186020908152604080832093909355601790529081205460ff1615610f0a5781610f15565b610f15848484611204565b6001600160a01b0384165f90815260186020526040902054909150610f3a9082610fd1565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8d9085815260200190565b60405180910390a350505050565b5f8184841115610fbe5760405162461bcd60e51b81526004016104bd9190611579565b505050900390565b5f61060782846117cb565b5f61060782846117b8565b600854600754305f9081526018602052604081205460055491938510159211159060ff161580156110165750600354600160a81b900460ff165b801561102b5750600354600160a01b900460ff165b80156110345750815b801561105857506001600160a01b0386165f9081526017602052604090205460ff16155b801561107157506003546001600160a01b038681169116145b8015611081575060065460045410155b801561108a5750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110cd936002936106ac9391926110c7928391610fd1565b90610fd1565b90505f6110e9826106b260095486610fc690919063ffffffff16565b90505f6110f68483610a44565b9050476111028261132e565b5f61110d4783610a44565b90505f61112f61112860095488610a4490919063ffffffff16565b8390610a4f565b90505f61114760095483610fc690919063ffffffff16565b9050801561115957611159868261147e565b600a545f9061116d906106ac856002610fc6565b905080156111ae576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111ac573d5f803e3d5ffd5b505b4780156111ee576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111ec573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526017602052604081205460ff161561122d5750601454610607565b5f611238858561152f565b1115611327575f61125a61124c868661152f565b6010546106ac908690610a4f565b305f908152601860205260409020549091506112769082610fd1565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112c69085815260200190565b60405180910390a35f600c541180156112e95750600c546112e7868661152f565b115b15611315576113153061dead611310600c546106ac60105489610a4f90919063ffffffff16565b610a5a565b61131f8382610a44565b915050610607565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611361576113616117e2565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113dc91906117f6565b816001815181106113ef576113ef6117e2565b6001600160a01b0392831660209182029290920101526002546114159130911684610921565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144d9085905f90869030904290600401611811565b5f604051808303815f87803b158015611464575f80fd5b505af1158015611476573d5f803e3d5ffd5b505050505050565b6002546114969030906001600160a01b031684610921565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611503573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115289190611880565b5050505050565b6003545f906001600160a01b03908116908316036115505750600e5461041e565b6003546001600160a01b039081169084160361156f5750600d5461041e565b50600f5492915050565b5f6020808352835180828501525f5b818110156115a457858101830151858201604001528201611588565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115d8575f80fd5b50565b5f80604083850312156115ec575f80fd5b82356115f7816115c4565b946020939093013593505050565b5f805f805f805f60e0888a03121561161b575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f6060848603121561165e575f80fd5b8335611669816115c4565b92506020840135611679816115c4565b929592945050506040919091013590565b5f6020828403121561169a575f80fd5b8135610607816115c4565b5f80604083850312156116b6575f80fd5b82356116c1816115c4565b915060208301356116d1816115c4565b809150509250929050565b5f805f606084860312156116ee575f80fd5b505081359360208301359350604090920135919050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f6020828403121561174c575f80fd5b5051919050565b5f60208284031215611763575f80fd5b81518015158114610607575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561041e5761041e611772565b5f826117b357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561041e5761041e611772565b808202811582820484141761041e5761041e611772565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611806575f80fd5b8151610607816115c4565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561185f5784516001600160a01b03168352938301939183019160010161183a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611892575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220729ac578323ac106d0bea04be09935efdb8769043478669fdf02c66f4fe874d564736f6c63430008150033

Deployed Bytecode Sourcemap

3350:10402:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5833:67;;;;;;;;;;-1:-1:-1;5893:5:0;;;;;;;;;;;-1:-1:-1;;;5893:5:0;;;;5833:67;;;;5893:5;5833:67;:::i;:::-;;;;;;;;6601:133;;;;;;;;;;-1:-1:-1;6601:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6601:133:0;1023:187:1;4890:63:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4890:63:0;1215:177:1;6740:132:0;;;;;;;;;;;;;:::i;4751:60::-;;;;;;;;;;;;;;;;9448:567;;;;;;;;;;-1:-1:-1;9448:567:0;;;;;:::i;:::-;;:::i;:::-;;13440:309;;;;;;;;;;-1:-1:-1;13440:309:0;;;;;:::i;:::-;;:::i;1428:87::-;;;;;;;;;;-1:-1:-1;1428:87:0;;;;;:::i;:::-;1483:4;1508:5;-1:-1:-1;;;;;1497:16:0;;;1508:5;;1497:16;;1428:87;5983:67;;;;;;;;;;-1:-1:-1;5983:67:0;;3560:1;2849:36:1;;2837:2;2822:18;5983:67:0;2707:184:1;7774:244:0;;;;;;;;;;-1:-1:-1;7774:244:0;;;;;:::i;:::-;;:::i;6056:103::-;;;;;;;;;;-1:-1:-1;6056:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6139:18:0;6122:7;6139:18;;;:9;:18;;;;;;;6056:103;4962:51;;;;;;;;;;-1:-1:-1;4962:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6165:78;;;;;;;;;;-1:-1:-1;6217:7:0;6235:5;-1:-1:-1;;;;;6235:5:0;6165:78;;;-1:-1:-1;;;;;3060:32:1;;;3042:51;;3030:2;3015:18;6165:78:0;2896:203:1;6394:68:0;;;;;;;;;;;;;:::i;6249:139::-;;;;;;;;;;-1:-1:-1;6249:139:0;;;;;:::i;:::-;;:::i;3676:26::-;;;;;;;;;;-1:-1:-1;3676:26:0;;;;-1:-1:-1;;;;;3676:26:0;;;6468:127;;;;;;;;;;-1:-1:-1;6468:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6566:18:0;;;6549:7;6566:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6468:127;1521:111;;;;;;;;;;-1:-1:-1;1521:111:0;;;;;:::i;:::-;;:::i;4818:65::-;;;;;;;;;;;;;;;;6878:549;;;;;;;;;;-1:-1:-1;6878:549:0;;;;;:::i;:::-;;:::i;6601:133::-;6676:4;6683:37;6692:10;6704:7;6713:6;6683:8;:37::i;:::-;-1:-1:-1;6728:4:0;6601:133;;;;;:::o;6740:132::-;6139:9;:18;;;;4459:42;6793:7;6139:18;;;;;6810:12;;6793:7;;6810:60;;6139:18;;6810:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6803:67;;6740:132;:::o;9448:567::-;1483:4;1508:5;-1:-1:-1;;;;;1508:5:0;1373:10;1497:16;1357:60;;;;-1:-1:-1;;;1357:60:0;;;;;;;:::i;:::-;;;;;;;;;9630:12:::1;:25:::0;;;9657:14:::1;:27:::0;;;9686:13:::1;:21:::0;;;9709:15:::1;:30:::0;;;9741:12:::1;:21:::0;;;9764:13:::1;:21:::0;;;9787:17:::1;:26:::0;;;9848:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9848:15:0::1;:18::i;:::-;9832:12;;:34;;:73;;;;-1:-1:-1::0;9887:11:0::1;::::0;:18:::1;::::0;9903:1:::1;9887:15;:18::i;:::-;9870:13;;:35;;9832:73;:116;;;;-1:-1:-1::0;9930:11:0::1;::::0;:18:::1;::::0;9946:1:::1;9930:15;:18::i;:::-;9909:17;;:39;;9832:116;9824:183;;;::::0;-1:-1:-1;;;9824:183:0;;4637:2:1;9824:183:0::1;::::0;::::1;4619:21:1::0;4676:2;4656:18;;;4649:30;4715:34;4695:18;;;4688:62;-1:-1:-1;;;4766:18:1;;;4759:52;4828:19;;9824:183:0::1;4435:418:1::0;9824:183:0::1;9448:567:::0;;;;;;;:::o;13440:309::-;13538:4;13555:36;13565:6;13573:9;13584:6;13555:9;:36::i;:::-;13602:117;13611:6;13619:10;13631:87;13667:6;13631:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13631:19:0;;;;;;:11;:19;;;;;;;;13651:10;13631:31;;;;;;;;;:87;:35;:87::i;:::-;13602:8;:117::i;:::-;-1:-1:-1;13737:4:0;13440:309;;;;;;:::o;7774:244::-;1483:4;1508:5;-1:-1:-1;;;;;1508:5:0;1373:10;1497:16;1357:60;;;;-1:-1:-1;;;1357:60:0;;;;;;;:::i;:::-;7882:45:::1;::::0;-1:-1:-1;;;7882:45:0;;7921:4:::1;7882:45;::::0;::::1;3042:51:1::0;7864:15:0::1;::::0;7882:67:::1;::::0;7945:3:::1;::::0;7882:58:::1;::::0;7932:7;;-1:-1:-1;;;;;7882:30:0;::::1;::::0;::::1;::::0;3015:18:1;;7882:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49:::0;::::1;:58::i;:::-;:62:::0;::::1;:67::i;:::-;7990:10;::::0;7960:50:::1;::::0;-1:-1:-1;;;7960:50:0;;-1:-1:-1;;;;;7990:10:0;;::::1;7960:50;::::0;::::1;5221:51:1::0;5288:18;;;5281:34;;;7864:85:0;;-1:-1:-1;7960:29:0;::::1;::::0;::::1;::::0;5194:18:1;;7960:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7853:165;7774:244:::0;;:::o;6394:68::-;1483:4;1508:5;-1:-1:-1;;;;;1508:5:0;1373:10;1497:16;1357:60;;;;-1:-1:-1;;;1357:60:0;;;;;;;:::i;:::-;6439:14:::1;:21:::0;;-1:-1:-1;;;;6439:21:0::1;-1:-1:-1::0;;;6439:21:0::1;::::0;;6394:68::o;6249:139::-;6327:4;6334:40;6344:10;6356:9;6367:6;6334:9;:40::i;1521:111::-;1483:4;1508:5;-1:-1:-1;;;;;1508:5:0;1373:10;1497:16;1357:60;;;;-1:-1:-1;;;1357:60:0;;;;;;;:::i;:::-;1587:5:::1;:11:::0;;-1:-1:-1;;;;;;1587:11:0::1;-1:-1:-1::0;;;;;1587:11:0;::::1;::::0;;::::1;::::0;;;1605:25:::1;::::0;3042:51:1;;;1605:25:0::1;::::0;3030:2:1;3015:18;1605:25:0::1;;;;;;;1521:111:::0;:::o;6878:549::-;1483:4;1508:5;-1:-1:-1;;;;;1508:5:0;1373:10;1497:16;1357:60;;;;-1:-1:-1;;;1357:60:0;;;;;;;:::i;:::-;6974:13:::1;6990:33;7017:5;6990:22;7007:4;6990:12;;:16;;:22;;;;:::i;:33::-;6974:49;;7025:19;7047:34;7075:5;7047:23;7064:5;7047:12;;:16;;:23;;;;:::i;:34::-;7025:56;;7083:17;7103:36;7133:5;7103:25;7120:7;7103:12;;:16;;:25;;;;:::i;:36::-;7150:12;:20:::0;;;7172:17:::1;:31:::0;;;7205:15:::1;:27:::0;;;7083:56;-1:-1:-1;;7259:30:0::1;7284:4;7259:20;7277:1;7259:13;:11;:13::i;:30::-;7243:46;;7317:5;7308;:14;;:38;;;;;7341:5;7326:11;:20;;7308:38;:60;;;;;7363:5;7350:9;:18;;7308:60;7300:119;;;::::0;-1:-1:-1;;;7300:119:0;;6026:2:1;7300:119:0::1;::::0;::::1;6008:21:1::0;6065:2;6045:18;;;6038:30;6104:34;6084:18;;;6077:62;-1:-1:-1;;;6155:18:1;;;6148:44;6209:19;;7300:119:0::1;5824:410:1::0;7433:335:0;-1:-1:-1;;;;;7526:19:0;;7518:68;;;;-1:-1:-1;;;7518:68:0;;6441:2:1;7518:68:0;;;6423:21:1;6480:2;6460:18;;;6453:30;6519:34;6499:18;;;6492:62;-1:-1:-1;;;6570:18:1;;;6563:34;6614:19;;7518:68:0;6239:400:1;7518:68:0;-1:-1:-1;;;;;7605:21:0;;7597:68;;;;-1:-1:-1;;;7597:68:0;;6846:2:1;7597:68:0;;;6828:21:1;6885:2;6865:18;;;6858:30;6924:34;6904:18;;;6897:62;-1:-1:-1;;;6975:18:1;;;6968:32;7017:19;;7597:68:0;6644:398:1;7597:68:0;-1:-1:-1;;;;;7676:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7728:32;;1361:25:1;;;7728:32:0;;1334:18:1;7728:32:0;;;;;;;7433:335;;;:::o;420:98::-;478:7;505:5;509:1;505;:5;:::i;628:98::-;686:7;713:5;717:1;713;:5;:::i;11891:1543::-;-1:-1:-1;;;;;11988:20:0;;11980:70;;;;-1:-1:-1;;;11980:70:0;;7736:2:1;11980:70:0;;;7718:21:1;7775:2;7755:18;;;7748:30;7814:34;7794:18;;;7787:62;-1:-1:-1;;;7865:18:1;;;7858:35;7910:19;;11980:70:0;7534:401:1;11980:70:0;-1:-1:-1;;;;;12069:23:0;;12061:71;;;;-1:-1:-1;;;12061:71:0;;8142:2:1;12061:71:0;;;8124:21:1;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:33;8314:19;;12061:71:0;7940:399:1;12061:71:0;-1:-1:-1;;;;;6139:18:0;;6122:7;6139:18;;;:9;:18;;;;;;12151:6;:27;;12143:88;;;;-1:-1:-1;;;12143:88:0;;8546:2:1;12143:88:0;;;8528:21:1;8585:2;8565:18;;;8558:30;8624:34;8604:18;;;8597:62;-1:-1:-1;;;8675:18:1;;;8668:47;8732:19;;12143:88:0;8344:413:1;12143:88:0;-1:-1:-1;;;;;12246:26:0;;;;;;:18;:26;;;;;;;;12245:27;:61;;;;-1:-1:-1;;;;;;12277:29:0;;;;;;:18;:29;;;;;;;;12276:30;12245:61;12242:109;;;12316:14;;-1:-1:-1;;;12316:14:0;;;;12308:41;;;;-1:-1:-1;;;12308:41:0;;8964:2:1;12308:41:0;;;8946:21:1;9003:2;8983:18;;;8976:30;-1:-1:-1;;;9022:18:1;;;9015:44;9076:18;;12308:41:0;8762:338:1;12308:41:0;-1:-1:-1;;;;;12365:26:0;;;;;;:18;:26;;;;;;;;12364:27;:61;;;;-1:-1:-1;;;;;;12396:29:0;;;;;;:18;:29;;;;;;;;12395:30;12364:61;:98;;;;-1:-1:-1;12450:11:0;;-1:-1:-1;;;;;12429:33:0;;;12450:11;;12429:33;;12364:98;:128;;;;-1:-1:-1;;;;;;12466:26:0;;4459:42;12466:26;;12364:128;12361:241;;;12550:15;;-1:-1:-1;;;;;12513:20:0;;;;;;:9;:20;;;;;;:32;;12538:6;12513:24;:32::i;:::-;12512:53;;12504:96;;;;-1:-1:-1;;;12504:96:0;;9307:2:1;12504:96:0;;;9289:21:1;9346:2;9326:18;;;9319:30;9385:32;9365:18;;;9358:60;9435:18;;12504:96:0;9105:354:1;12504:96:0;12625:11;;-1:-1:-1;;;;;12615:21:0;;;12625:11;;12615:21;12612:148;;12656:17;;12646:6;:27;;:57;;;-1:-1:-1;;;;;;12677:26:0;;;;;;:18;:26;;;;;;;;12646:57;:90;;;-1:-1:-1;;;;;;12707:29:0;;;;;;:18;:29;;;;;;;;12646:90;12638:120;;;;-1:-1:-1;;;12638:120:0;;9666:2:1;12638:120:0;;;9648:21:1;9705:2;9685:18;;;9678:30;-1:-1:-1;;;9724:18:1;;;9717:47;9781:18;;12638:120:0;9464:341:1;12638:120:0;12788:12;;12778:6;:22;;:52;;;-1:-1:-1;;;;;;12804:26:0;;;;;;:18;:26;;;;;;;;12778:52;:85;;;-1:-1:-1;;;;;;12834:29:0;;;;;;:18;:29;;;;;;;;12778:85;12770:115;;;;-1:-1:-1;;;12770:115:0;;9666:2:1;12770:115:0;;;9648:21:1;9705:2;9685:18;;;9678:30;-1:-1:-1;;;9724:18:1;;;9717:47;9781:18;;12770:115:0;9464:341:1;12770:115:0;12913:11;;-1:-1:-1;;;;;12900:24:0;;;12913:11;;12900:24;:55;;;;-1:-1:-1;;;;;;12929:26:0;;;;;;:18;:26;;;;;;;;12928:27;12900:55;12897:88;;;12981:1;12957:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;12897:88:0;12998:48;13020:6;13028:9;13039:6;12998:21;:48::i;:::-;12995:116;;;13048:34;13066:15;;13048:17;:34::i;:::-;13107:1;13084:12;:25;12995:116;-1:-1:-1;;;;;13141:17:0;;;;;;:9;:17;;;;;;:29;;13163:6;13141:21;:29::i;:::-;-1:-1:-1;;;;;13121:17:0;;;;;;:9;:17;;;;;;;;:49;;;;13207:18;:26;;;;;;;;13206:27;:87;;13287:6;13206:87;;;13236:48;13258:6;13266:9;13277:6;13236:21;:48::i;:::-;-1:-1:-1;;;;;13327:20:0;;;;;;:9;:20;;;;;;13181:112;;-1:-1:-1;13327:40:0;;13181:112;13327:24;:40::i;:::-;-1:-1:-1;;;;;13304:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13383:43;;;;;;;;;;13411:14;1361:25:1;;1349:2;1334:18;;1215:177;13383:43:0;;;;;;;;11969:1465;11891:1543;;;:::o;732:240::-;852:7;913:12;905:6;;;;897:29;;;;-1:-1:-1;;;897:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;948:5:0;;;732:240::o;524:98::-;582:7;609:5;613:1;609;:5;:::i;316:98::-;374:7;401:5;405:1;401;:5;:::i;9010:432::-;9158:15;;9234;;9224:4;9115;6139:18;;;:9;:18;;;;;;9268:10;;9115:4;;9148:25;;;;-1:-1:-1;9206:43:0;;9268:10;;9267:11;:28;;;;-1:-1:-1;9282:13:0;;-1:-1:-1;;;9282:13:0;;;;9267:28;:46;;;;-1:-1:-1;9299:14:0;;-1:-1:-1;;;9299:14:0;;;;9267:46;:58;;;;;9317:8;9267:58;:89;;;;-1:-1:-1;;;;;;9330:26:0;;;;;;:18;:26;;;;;;;;9329:27;9267:89;:117;;;;-1:-1:-1;9373:11:0;;-1:-1:-1;;;;;9360:24:0;;;9373:11;;9360:24;9267:117;:149;;;;;9404:12;;9388;;:28;;9267:149;:167;;;;;9420:14;9267:167;9260:174;9010:432;-1:-1:-1;;;;;;9010:432:0:o;10369:1061::-;4040:10;:17;;-1:-1:-1;;4040:17:0;4053:4;4040:17;;;;;;10510:15:::1;::::0;10490:14:::1;::::0;10466:12:::1;::::0;4040:10;;10465:69:::1;::::0;10532:1:::1;::::0;10466:60:::1;::::0;10510:15;;10466:39:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:39::i;10465:69::-;10442:92;;10545:32;10580:42;10609:12;10580:24;10591:12;;10580:6;:10;;:24;;;;:::i;:42::-;10545:77:::0;-1:-1:-1;10633:14:0::1;10650:36;:6:::0;10545:77;10650:10:::1;:36::i;:::-;10633:53:::0;-1:-1:-1;10722:21:0::1;10754:27;10633:53:::0;10754:19:::1;:27::i;:::-;10792:20;10815:41;:21;10841:14:::0;10815:25:::1;:41::i;:::-;10792:64;;10867:19;10888:48;10905:30;10922:12;;10905;:16;;:30;;;;:::i;:::-;10888:12:::0;;:16:::1;:48::i;:::-;10867:69;;10947:29;10979;10995:12;;10979:11;:15;;:29;;;;:::i;:::-;10947:61:::0;-1:-1:-1;11022:34:0;;11019:103:::1;;11058:61;11071:24;11097:21;11058:12;:61::i;:::-;11178:14;::::0;11132:20:::1;::::0;11155:38:::1;::::0;:18:::1;:11:::0;11171:1:::1;11155:15;:18::i;:38::-;11132:61:::0;-1:-1:-1;11207:16:0;;11204:71:::1;;11233:16;::::0;11225:48:::1;::::0;-1:-1:-1;;;;;11233:16:0;;::::1;::::0;11225:48;::::1;;;::::0;11260:12;;11233:16:::1;11225:48:::0;11233:16;11225:48;11260:12;11233:16;11225:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11204:71;11311:21;11346:28:::0;;11343:80:::1;;11384:10;::::0;11376:45:::1;::::0;-1:-1:-1;;;;;11384:10:0;;::::1;::::0;11376:45;::::1;;;::::0;11405:15;;11384:10:::1;11376:45:::0;11384:10;11376:45;11405:15;11384:10;11376:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11343:80;-1:-1:-1::0;;4062:10:0;:18;;-1:-1:-1;;4062:18:0;;;-1:-1:-1;;;;;;;;10369:1061:0:o;8288:716::-;-1:-1:-1;;;;;8412:29:0;;8388:7;8412:29;;;:18;:29;;;;;;;;8408:57;;;-1:-1:-1;8451:12:0;;8444:19;;8408:57;8520:1;8478:39;8499:6;8507:9;8478:20;:39::i;:::-;:43;8475:507;;;8533:17;8553:68;8581:39;8602:6;8610:9;8581:20;:39::i;:::-;8564:11;;8553:23;;:6;;:10;:23::i;:68::-;8677:4;8659:24;;;;:9;:24;;;;;;8533:88;;-1:-1:-1;8659:39:0;;8533:88;8659:28;:39::i;:::-;8650:4;8632:24;;;;:9;:24;;;;;;;:66;;;;8714:42;;-1:-1:-1;;;;;8714:42:0;;;;;;;8746:9;1361:25:1;;1349:2;1334:18;;1215:177;8714:42:0;;;;;;;;8794:1;8770:13;;:26;:85;;;;;8842:13;;8800:39;8821:6;8829:9;8800:20;:39::i;:::-;:55;8770:85;8767:175;;;8857:83;8875:4;4459:42;8897;8925:13;;8897:23;8908:11;;8897:6;:10;;:23;;;;:::i;:42::-;8857:9;:83::i;:::-;8959:21;:6;8970:9;8959:10;:21::i;:::-;8952:28;;;;;8475:507;-1:-1:-1;8990:6:0;8288:716;-1:-1:-1;;8288:716:0:o;11436:449::-;11529:16;;;11543:1;11529:16;;;;;;;;11505:21;;11529:16;;;;;;;;;;-1:-1:-1;11529:16:0;11505:40;;11574:4;11556;11561:1;11556:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11556:23:0;;;:7;;;;;;;;;;:23;;;;11600:10;;:17;;;-1:-1:-1;;;11600:17:0;;;;:10;;;;;:15;;:17;;;;;11556:7;;11600:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11590:4;11595:1;11590:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11590:27:0;;;:7;;;;;;;;;:27;11660:10;;11628:57;;11645:4;;11660:10;11673:11;11628:8;:57::i;:::-;11696:10;;:181;;-1:-1:-1;;;11696:181:0;;-1:-1:-1;;;;;11696:10:0;;;;:61;;:181;;11772:11;;11696:10;;11814:4;;11841;;11861:15;;11696:181;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11494:391;11436:449;:::o;10021:342::-;10134:10;;10102:57;;10119:4;;-1:-1:-1;;;;;10134:10:0;10147:11;10102:8;:57::i;:::-;10170:10;;10315:9;;10170:185;;-1:-1:-1;;;10170:185:0;;10237:4;10170:185;;;11959:34:1;12009:18;;;12002:34;;;10170:10:0;12052:18:1;;;12045:34;;;12095:18;;;12088:34;-1:-1:-1;;;;;10315:9:0;;;12138:19:1;;;12131:44;10339:15:0;12191:19:1;;;12184:35;10170:10:0;;;:26;;10204:9;;11893:19:1;;10170:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10021:342;;:::o;8024:258::-;8148:11;;8112:7;;-1:-1:-1;;;;;8148:11:0;;;8135:24;;;;8132:51;;-1:-1:-1;8168:13:0;;8161:20;;8132:51;8206:11;;-1:-1:-1;;;;;8206:11:0;;;8196:21;;;;8193:47;;-1:-1:-1;8226:12:0;;8219:19;;8193:47;-1:-1:-1;8257:17:0;;8024:258;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:592::-;1510:6;1518;1526;1534;1542;1550;1558;1611:3;1599:9;1590:7;1586:23;1582:33;1579:53;;;1628:1;1625;1618:12;1579:53;-1:-1:-1;;1651:23:1;;;1721:2;1706:18;;1693:32;;-1:-1:-1;1772:2:1;1757:18;;1744:32;;1823:2;1808:18;;1795:32;;-1:-1:-1;1874:3:1;1859:19;;1846:33;;-1:-1:-1;1926:3:1;1911:19;;1898:33;;-1:-1:-1;1978:3:1;1963:19;1950:33;;-1:-1:-1;1397:592:1;-1:-1:-1;1397:592:1:o;1994:456::-;2071:6;2079;2087;2140:2;2128:9;2119:7;2115:23;2111:32;2108:52;;;2156:1;2153;2146:12;2108:52;2195:9;2182:23;2214:31;2239:5;2214:31;:::i;:::-;2264:5;-1:-1:-1;2321:2:1;2306:18;;2293:32;2334:33;2293:32;2334:33;:::i;:::-;1994:456;;2386:7;;-1:-1:-1;;;2440:2:1;2425:18;;;;2412:32;;1994:456::o;2455:247::-;2514:6;2567:2;2555:9;2546:7;2542:23;2538:32;2535:52;;;2583:1;2580;2573:12;2535:52;2622:9;2609:23;2641:31;2666:5;2641:31;:::i;3104:388::-;3172:6;3180;3233:2;3221:9;3212:7;3208:23;3204:32;3201:52;;;3249:1;3246;3239:12;3201:52;3288:9;3275:23;3307:31;3332:5;3307:31;:::i;:::-;3357:5;-1:-1:-1;3414:2:1;3399:18;;3386:32;3427:33;3386:32;3427:33;:::i;:::-;3479:7;3469:17;;;3104:388;;;;;:::o;3757:316::-;3834:6;3842;3850;3903:2;3891:9;3882:7;3878:23;3874:32;3871:52;;;3919:1;3916;3909:12;3871:52;-1:-1:-1;;3942:23:1;;;4012:2;3997:18;;3984:32;;-1:-1:-1;4063:2:1;4048:18;;;4035:32;;3757:316;-1:-1:-1;3757:316:1:o;4078:352::-;4280:2;4262:21;;;4319:2;4299:18;;;4292:30;4358;4353:2;4338:18;;4331:58;4421:2;4406:18;;4078:352::o;4858:184::-;4928:6;4981:2;4969:9;4960:7;4956:23;4952:32;4949:52;;;4997:1;4994;4987:12;4949:52;-1:-1:-1;5020:16:1;;4858:184;-1:-1:-1;4858:184:1:o;5326:277::-;5393:6;5446:2;5434:9;5425:7;5421:23;5417:32;5414:52;;;5462:1;5459;5452:12;5414:52;5494:9;5488:16;5547:5;5540:13;5533:21;5526:5;5523:32;5513:60;;5569:1;5566;5559:12;7047:127;7108:10;7103:3;7099:20;7096:1;7089:31;7139:4;7136:1;7129:15;7163:4;7160:1;7153:15;7179:128;7246:9;;;7267:11;;;7264:37;;;7281:18;;:::i;7312:217::-;7352:1;7378;7368:132;;7422:10;7417:3;7413:20;7410:1;7403:31;7457:4;7454:1;7447:15;7485:4;7482:1;7475:15;7368:132;-1:-1:-1;7514:9:1;;7312:217::o;9810:125::-;9875:9;;;9896:10;;;9893:36;;;9909:18;;:::i;9940:168::-;10013:9;;;10044;;10061:15;;;10055:22;;10041:37;10031:71;;10082:18;;:::i;10245:127::-;10306:10;10301:3;10297:20;10294:1;10287:31;10337:4;10334:1;10327:15;10361:4;10358:1;10351:15;10377:251;10447:6;10500:2;10488:9;10479:7;10475:23;10471:32;10468:52;;;10516:1;10513;10506:12;10468:52;10548:9;10542:16;10567:31;10592:5;10567:31;:::i;10633:980::-;10895:4;10943:3;10932:9;10928:19;10974:6;10963:9;10956:25;11000:2;11038:6;11033:2;11022:9;11018:18;11011:34;11081:3;11076:2;11065:9;11061:18;11054:31;11105:6;11140;11134:13;11171:6;11163;11156:22;11209:3;11198:9;11194:19;11187:26;;11248:2;11240:6;11236:15;11222:29;;11269:1;11279:195;11293:6;11290:1;11287:13;11279:195;;;11358:13;;-1:-1:-1;;;;;11354:39:1;11342:52;;11449:15;;;;11414:12;;;;11390:1;11308:9;11279:195;;;-1:-1:-1;;;;;;;11530:32:1;;;;11525:2;11510:18;;11503:60;-1:-1:-1;;;11594:3:1;11579:19;11572:35;11491:3;10633:980;-1:-1:-1;;;10633:980:1:o;12230:306::-;12318:6;12326;12334;12387:2;12375:9;12366:7;12362:23;12358:32;12355:52;;;12403:1;12400;12393:12;12355:52;12432:9;12426:16;12416:26;;12482:2;12471:9;12467:18;12461:25;12451:35;;12526:2;12515:9;12511:18;12505:25;12495:35;;12230:306;;;;;:::o

Swarm Source

ipfs://729ac578323ac106d0bea04be09935efdb8769043478669fdf02c66f4fe874d5
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.