ETH Price: $3,475.44 (-1.17%)
Gas: 7 Gwei

Token

COCAINE BEAR (COKEBEAR)
 

Overview

Max Total Supply

10,000,000,000 COKEBEAR

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
198,289,623.399370864911675421 COKEBEAR

Value
$0.00
0x8a2da8add129e281c4121b8c7dd1c79172850de7
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:
COCAINEBEAR

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-10
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.17;

interface ERC20 {
    function totalSupply() external view returns (uint256);

    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);

    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);
}

interface UniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface UniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

// Contracts and libraries

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract COCAINEBEAR is Ownable, ERC20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 18;

    uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _walletMax = _totalSupply;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "COCAINE BEAR";
    string constant _symbol = "COKEBEAR";

    bool public restrictWhales = true;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 2;

    uint256 public totalFee = 4;
    uint256 public totalFeeIfSelling = 4;

    address public autoLiquidityReceiver;
    address public marketingWallet;

    UniswapRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;
    bool public blacklistMode = false;
    mapping(address => bool) public isBlacklisted;

    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 4 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = UniswapRouter(uniswapAddress);
        pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = 0x37E93e734C6f425EbF9bd719cA4629e8541b1b57;
        marketingWallet = 0x37E93e734C6f425EbF9bd719cA4629e8541b1b57;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

    function getOwner() external view override returns (address) {return owner();}

    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}

    function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    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 transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted");
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    // CONTRACT OWNER FUNCTIONS

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 newLiqFee, uint256 newmarketingFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newmarketingFee;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;
    }

        function enable_blacklist(bool _status) public onlyOwner {
    blacklistMode = _status;
    }

        
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newmarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126012600a62000592565b62000023906402540be400620005aa565b600281815560038290556004828155600580546001600160a01b031990811661dead179091556006805490911690556007805474017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a81b0319909116179055600c829055600d91909155600e819055600f8190556015805461ffff191690556017805462ffff0019166101001790556107d091620000ba91620005aa565b620000c69190620005c4565b601855348015620000d657600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b49190620005e7565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c9190620005e7565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af9190620005e7565b601380546001600160a01b03199081166001600160a01b03938416178255306000818152600960209081526040808320601254881684528252808320600019908190558654881684528184205533808452600a8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055918552600b8452828520805487168217905596548816845281842080548616881790555490961682529490208054909116909217909155601080547337e93e734c6f425ebf9bd719ca4629e8541b1b57908316811790915560118054909216179055600d54600c54620003b79290919062000410811b6200135217901c565b600e819055600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000628565b6000806200041f838562000612565b905083811015620004765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004d6578160001904821115620004ba57620004ba6200047f565b80851615620004c857918102915b93841c93908002906200049a565b509250929050565b600082620004ef5750600162000479565b81620004fe5750600062000479565b8160018114620005175760028114620005225762000542565b600191505062000479565b60ff8411156200053657620005366200047f565b50506001821b62000479565b5060208310610133831016604e8410600b841016171562000567575081810a62000479565b62000573838362000495565b80600019048211156200058a576200058a6200047f565b029392505050565b6000620005a360ff841683620004de565b9392505050565b80820281158282048414176200047957620004796200047f565b600082620005e257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005fa57600080fd5b81516001600160a01b03811681146200047657600080fd5b808201808211156200047957620004796200047f565b61262980620006386000396000f3fe6080604052600436106102e05760003560e01c80637d1db4a511610184578063bf56b371116100d6578063f1d5f5171161008a578063f887ea4011610064578063f887ea40146108a8578063fe575a87146108d5578063ffb54a991461090557600080fd5b8063f1d5f51714610848578063f2fde38b14610868578063f84ba65d1461088857600080fd5b8063ca987b0e116100bb578063ca987b0e146107bf578063da00097d146107d5578063dd62ed3e146107f557600080fd5b8063bf56b3711461077c578063ca33e64c1461079257600080fd5b80638da5cb5b1161013857806398118cb41161011257806398118cb414610719578063a8aa1b311461072f578063a9059cbb1461075c57600080fd5b80638da5cb5b146106395780638e2eee84146106b357806395d89b41146106d357600080fd5b8063893d20e811610169578063893d20e814610639578063896648c1146106645780638b42507f1461068357600080fd5b80637d1db4a51461060d578063807c2d9c1461062357600080fd5b8063313ce5671161023d5780635e562f3b116101f157806370a08231116101cb57806370a0823114610563578063715018a6146105a657806375f0a874146105bb57600080fd5b80635e562f3b1461050d578063658d4b7f1461052d5780636b67c4df1461054d57600080fd5b806344de2e4c1161022257806344de2e4c1461049c5780634a74bb02146104ce578063571ac8b0146104ed57600080fd5b8063313ce567146104505780633f4218e01461046c57600080fd5b806318160ddd11610294578063220f669611610279578063220f66961461040157806323b872dd1461041b5780632b112e491461043b57600080fd5b806318160ddd146103d65780631df4ccfc146103eb57600080fd5b8063095ea7b3116102c5578063095ea7b3146103645780630b78f9c0146103945780630d295980146103b657600080fd5b80630445b667146102ec57806306fdde031461031557600080fd5b366102e757005b600080fd5b3480156102f857600080fd5b5061030260185481565b6040519081526020015b60405180910390f35b34801561032157600080fd5b5060408051808201909152600c81527f434f4341494e452042454152000000000000000000000000000000000000000060208201525b60405161030c9190612197565b34801561037057600080fd5b5061038461037f366004612228565b61091f565b604051901515815260200161030c565b3480156103a057600080fd5b506103b46103af366004612254565b610999565b005b3480156103c257600080fd5b506103b46103d136600461228b565b610a3f565b3480156103e257600080fd5b50600254610302565b3480156103f757600080fd5b50610302600e5481565b34801561040d57600080fd5b506017546103849060ff1681565b34801561042757600080fd5b506103846104363660046122a6565b610af1565b34801561044757600080fd5b50610302610bff565b34801561045c57600080fd5b506040516012815260200161030c565b34801561047857600080fd5b506103846104873660046122e7565b600a6020526000908152604090205460ff1681565b3480156104a857600080fd5b506007546103849074010000000000000000000000000000000000000000900460ff1681565b3480156104da57600080fd5b5060175461038490610100900460ff1681565b3480156104f957600080fd5b506103846105083660046122e7565b610c6b565b34801561051957600080fd5b506103b461052836600461228b565b610c97565b34801561053957600080fd5b506103b4610548366004612304565b610d4f565b34801561055957600080fd5b50610302600d5481565b34801561056f57600080fd5b5061030261057e3660046122e7565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205490565b3480156105b257600080fd5b506103b4610e26565b3480156105c757600080fd5b506011546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030c565b34801561061957600080fd5b5061030260035481565b34801561062f57600080fd5b5061030260045481565b34801561064557600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166105e8565b34801561067057600080fd5b5060155461038490610100900460ff1681565b34801561068f57600080fd5b5061038461069e3660046122e7565b600b6020526000908152604090205460ff1681565b3480156106bf57600080fd5b506103b46106ce366004612339565b610f16565b3480156106df57600080fd5b5060408051808201909152600881527f434f4b45424541520000000000000000000000000000000000000000000000006020820152610357565b34801561072557600080fd5b50610302600c5481565b34801561073b57600080fd5b506013546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b34801561076857600080fd5b50610384610777366004612228565b611037565b34801561078857600080fd5b5061030260145481565b34801561079e57600080fd5b506010546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107cb57600080fd5b50610302600f5481565b3480156107e157600080fd5b506017546103849062010000900460ff1681565b34801561080157600080fd5b506103026108103660046123bd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b34801561085457600080fd5b506103b46108633660046123f6565b611044565b34801561087457600080fd5b506103b46108833660046122e7565b6110ca565b34801561089457600080fd5b506103b46108a3366004612304565b61127b565b3480156108b457600080fd5b506012546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108e157600080fd5b506103846108f03660046122e7565b60166020526000908152604090205460ff1681565b34801561091157600080fd5b506015546103849060ff1681565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109879086815260200190565b60405180910390a35060015b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600c829055600d819055610a338282611352565b600e819055600f555050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b601580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610bea57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600982528381203382529091529190912054610bb89184906113cb565b73ffffffffffffffffffffffffffffffffffffffff851660009081526009602090815260408083203384529091529020555b610bf584848461141f565b90505b9392505050565b60065473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812054610c669060055473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040902054610c609060025490611a29565b90611a29565b905090565b6000610993827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61091f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b60158054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b60005b82811015611031578160166000868685818110610fb957610fb961240f565b9050602002016020810190610fce91906122e7565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905561102a8161246d565b9050610f9a565b50505050565b6000610bf833848461141f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b600455565b60005473ffffffffffffffffffffffffffffffffffffffff16331461114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff81166111ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a16565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008061135f83856124a5565b905083811015610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a16565b60008184841115611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a169190612197565b50600061141684866124b8565b95945050505050565b60175460009060ff161561143f57611438848484611a6b565b9050610bf8565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090205460ff1615801561149b575073ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205460ff16155b1561150c5760155460ff1661150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f54726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610a16565b60035482111580611542575073ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604090205460ff165b6115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610a16565b60135473ffffffffffffffffffffffffffffffffffffffff1633148015906115d3575060175460ff16155b80156115e65750601754610100900460ff165b801561160357506018543060009081526008602052604090205410155b1561161057611610611b81565b60145415801561163a575060135473ffffffffffffffffffffffffffffffffffffffff8481169116145b156116d45773ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260409020546116cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5a65726f2062616c616e63652076696f6c6174656421000000000000000000006044820152606401610a16565b6116d443601455565b601554610100900460ff16156117a65773ffffffffffffffffffffffffffffffffffffffff841660009081526016602052604090205460ff16158015611740575073ffffffffffffffffffffffffffffffffffffffff831660009081526016602052604090205460ff16155b6117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f426c61636b6c69737465640000000000000000000000000000000000000000006044820152606401610a16565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff871660009081526008909152919091205461180e9184906113cb565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611871575060075474010000000000000000000000000000000000000000900460ff165b156119115760045473ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260409020546118a99084611352565b1115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61782077616c6c65742076696f6c61746564210000000000000000000000006044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081205460ff1615801561196d575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff16155b6119775782611982565b611982858585611f7d565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600860205260409020549091506119b59082611352565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a169085815260200190565b60405180910390a3506001949350505050565b6000610bf883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113cb565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff86166000908152600890915291822054611ad29184906113cb565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860205260408082209390935590851681522054611b0e9083611352565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b6f9086815260200190565b60405180910390a35060019392505050565b601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905530600090815260086020526040812054600e54600c54919291611be091600291611bda91908290879061205a565b90612112565b90506000611bee8383611a29565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611c2857611c2861240f565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601254604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb91906124cb565b81600181518110611cde57611cde61240f565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526012546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790611d4a9085906000908690309042906004016124e8565b600060405180830381600087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b5050600c5447925060009150611d9c90611d93906002612112565b600e5490611a29565b90506000611dbe6002611bda84611bda600c548861205a90919063ffffffff16565b90506000611ddb83611bda600d548761205a90919063ffffffff16565b60115460405191925060009173ffffffffffffffffffffffffffffffffffffffff9091169061753090849084818181858888f193505050503d8060008114611e3f576040519150601f19603f3d011682016040523d82523d6000602084013e611e44565b606091505b50600092505088159050611f4a576012546010546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018b9052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff91821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611ee8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f0d9190612573565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b601354600090819073ffffffffffffffffffffffffffffffffffffffff858116911614611fac57600e54611fb0565b600f545b90506000611fc36064611bda868561205a565b30600090815260086020526040902054909150611fe09082611352565b306000818152600860205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061203e9085815260200190565b60405180910390a36120508482611a29565b9695505050505050565b60008260000361206c57506000610993565b600061207883856125a1565b90508261208585836125b8565b14610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610a16565b6000610bf883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a169190612197565b50600061141684866125b8565b600060208083528351808285015260005b818110156121c4578581018301518582016040015282016121a8565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461222557600080fd5b50565b6000806040838503121561223b57600080fd5b823561224681612203565b946020939093013593505050565b6000806040838503121561226757600080fd5b50508035926020909101359150565b8035801515811461228657600080fd5b919050565b60006020828403121561229d57600080fd5b610bf882612276565b6000806000606084860312156122bb57600080fd5b83356122c681612203565b925060208401356122d681612203565b929592945050506040919091013590565b6000602082840312156122f957600080fd5b8135610bf881612203565b6000806040838503121561231757600080fd5b823561232281612203565b915061233060208401612276565b90509250929050565b60008060006040848603121561234e57600080fd5b833567ffffffffffffffff8082111561236657600080fd5b818601915086601f83011261237a57600080fd5b81358181111561238957600080fd5b8760208260051b850101111561239e57600080fd5b6020928301955093506123b49186019050612276565b90509250925092565b600080604083850312156123d057600080fd5b82356123db81612203565b915060208301356123eb81612203565b809150509250929050565b60006020828403121561240857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361249e5761249e61243e565b5060010190565b808201808211156109935761099361243e565b818103818111156109935761099361243e565b6000602082840312156124dd57600080fd5b8151610bf881612203565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561254557845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101612513565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b60008060006060848603121561258857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176109935761099361243e565b6000826125ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220b001f4a0146d196734da00768192bf5ecdc019117eae3cb3362f157819491aca64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102e05760003560e01c80637d1db4a511610184578063bf56b371116100d6578063f1d5f5171161008a578063f887ea4011610064578063f887ea40146108a8578063fe575a87146108d5578063ffb54a991461090557600080fd5b8063f1d5f51714610848578063f2fde38b14610868578063f84ba65d1461088857600080fd5b8063ca987b0e116100bb578063ca987b0e146107bf578063da00097d146107d5578063dd62ed3e146107f557600080fd5b8063bf56b3711461077c578063ca33e64c1461079257600080fd5b80638da5cb5b1161013857806398118cb41161011257806398118cb414610719578063a8aa1b311461072f578063a9059cbb1461075c57600080fd5b80638da5cb5b146106395780638e2eee84146106b357806395d89b41146106d357600080fd5b8063893d20e811610169578063893d20e814610639578063896648c1146106645780638b42507f1461068357600080fd5b80637d1db4a51461060d578063807c2d9c1461062357600080fd5b8063313ce5671161023d5780635e562f3b116101f157806370a08231116101cb57806370a0823114610563578063715018a6146105a657806375f0a874146105bb57600080fd5b80635e562f3b1461050d578063658d4b7f1461052d5780636b67c4df1461054d57600080fd5b806344de2e4c1161022257806344de2e4c1461049c5780634a74bb02146104ce578063571ac8b0146104ed57600080fd5b8063313ce567146104505780633f4218e01461046c57600080fd5b806318160ddd11610294578063220f669611610279578063220f66961461040157806323b872dd1461041b5780632b112e491461043b57600080fd5b806318160ddd146103d65780631df4ccfc146103eb57600080fd5b8063095ea7b3116102c5578063095ea7b3146103645780630b78f9c0146103945780630d295980146103b657600080fd5b80630445b667146102ec57806306fdde031461031557600080fd5b366102e757005b600080fd5b3480156102f857600080fd5b5061030260185481565b6040519081526020015b60405180910390f35b34801561032157600080fd5b5060408051808201909152600c81527f434f4341494e452042454152000000000000000000000000000000000000000060208201525b60405161030c9190612197565b34801561037057600080fd5b5061038461037f366004612228565b61091f565b604051901515815260200161030c565b3480156103a057600080fd5b506103b46103af366004612254565b610999565b005b3480156103c257600080fd5b506103b46103d136600461228b565b610a3f565b3480156103e257600080fd5b50600254610302565b3480156103f757600080fd5b50610302600e5481565b34801561040d57600080fd5b506017546103849060ff1681565b34801561042757600080fd5b506103846104363660046122a6565b610af1565b34801561044757600080fd5b50610302610bff565b34801561045c57600080fd5b506040516012815260200161030c565b34801561047857600080fd5b506103846104873660046122e7565b600a6020526000908152604090205460ff1681565b3480156104a857600080fd5b506007546103849074010000000000000000000000000000000000000000900460ff1681565b3480156104da57600080fd5b5060175461038490610100900460ff1681565b3480156104f957600080fd5b506103846105083660046122e7565b610c6b565b34801561051957600080fd5b506103b461052836600461228b565b610c97565b34801561053957600080fd5b506103b4610548366004612304565b610d4f565b34801561055957600080fd5b50610302600d5481565b34801561056f57600080fd5b5061030261057e3660046122e7565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205490565b3480156105b257600080fd5b506103b4610e26565b3480156105c757600080fd5b506011546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030c565b34801561061957600080fd5b5061030260035481565b34801561062f57600080fd5b5061030260045481565b34801561064557600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166105e8565b34801561067057600080fd5b5060155461038490610100900460ff1681565b34801561068f57600080fd5b5061038461069e3660046122e7565b600b6020526000908152604090205460ff1681565b3480156106bf57600080fd5b506103b46106ce366004612339565b610f16565b3480156106df57600080fd5b5060408051808201909152600881527f434f4b45424541520000000000000000000000000000000000000000000000006020820152610357565b34801561072557600080fd5b50610302600c5481565b34801561073b57600080fd5b506013546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b34801561076857600080fd5b50610384610777366004612228565b611037565b34801561078857600080fd5b5061030260145481565b34801561079e57600080fd5b506010546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107cb57600080fd5b50610302600f5481565b3480156107e157600080fd5b506017546103849062010000900460ff1681565b34801561080157600080fd5b506103026108103660046123bd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b34801561085457600080fd5b506103b46108633660046123f6565b611044565b34801561087457600080fd5b506103b46108833660046122e7565b6110ca565b34801561089457600080fd5b506103b46108a3366004612304565b61127b565b3480156108b457600080fd5b506012546105e89073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108e157600080fd5b506103846108f03660046122e7565b60166020526000908152604090205460ff1681565b34801561091157600080fd5b506015546103849060ff1681565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109879086815260200190565b60405180910390a35060015b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600c829055600d819055610a338282611352565b600e819055600f555050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b601580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610bea57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600982528381203382529091529190912054610bb89184906113cb565b73ffffffffffffffffffffffffffffffffffffffff851660009081526009602090815260408083203384529091529020555b610bf584848461141f565b90505b9392505050565b60065473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812054610c669060055473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040902054610c609060025490611a29565b90611a29565b905090565b6000610993827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61091f565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b60158054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b60005b82811015611031578160166000868685818110610fb957610fb961240f565b9050602002016020810190610fce91906122e7565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905561102a8161246d565b9050610f9a565b50505050565b6000610bf833848461141f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b600455565b60005473ffffffffffffffffffffffffffffffffffffffff16331461114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff81166111ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a16565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008061135f83856124a5565b905083811015610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a16565b60008184841115611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a169190612197565b50600061141684866124b8565b95945050505050565b60175460009060ff161561143f57611438848484611a6b565b9050610bf8565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090205460ff1615801561149b575073ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205460ff16155b1561150c5760155460ff1661150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f54726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610a16565b60035482111580611542575073ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604090205460ff165b6115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610a16565b60135473ffffffffffffffffffffffffffffffffffffffff1633148015906115d3575060175460ff16155b80156115e65750601754610100900460ff165b801561160357506018543060009081526008602052604090205410155b1561161057611610611b81565b60145415801561163a575060135473ffffffffffffffffffffffffffffffffffffffff8481169116145b156116d45773ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260409020546116cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5a65726f2062616c616e63652076696f6c6174656421000000000000000000006044820152606401610a16565b6116d443601455565b601554610100900460ff16156117a65773ffffffffffffffffffffffffffffffffffffffff841660009081526016602052604090205460ff16158015611740575073ffffffffffffffffffffffffffffffffffffffff831660009081526016602052604090205460ff16155b6117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f426c61636b6c69737465640000000000000000000000000000000000000000006044820152606401610a16565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff871660009081526008909152919091205461180e9184906113cb565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611871575060075474010000000000000000000000000000000000000000900460ff165b156119115760045473ffffffffffffffffffffffffffffffffffffffff84166000908152600860205260409020546118a99084611352565b1115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4d61782077616c6c65742076696f6c61746564210000000000000000000000006044820152606401610a16565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081205460ff1615801561196d575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff16155b6119775782611982565b611982858585611f7d565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600860205260409020549091506119b59082611352565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a169085815260200190565b60405180910390a3506001949350505050565b6000610bf883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113cb565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff86166000908152600890915291822054611ad29184906113cb565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860205260408082209390935590851681522054611b0e9083611352565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b6f9086815260200190565b60405180910390a35060019392505050565b601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905530600090815260086020526040812054600e54600c54919291611be091600291611bda91908290879061205a565b90612112565b90506000611bee8383611a29565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611c2857611c2861240f565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601254604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb91906124cb565b81600181518110611cde57611cde61240f565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526012546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790611d4a9085906000908690309042906004016124e8565b600060405180830381600087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b5050600c5447925060009150611d9c90611d93906002612112565b600e5490611a29565b90506000611dbe6002611bda84611bda600c548861205a90919063ffffffff16565b90506000611ddb83611bda600d548761205a90919063ffffffff16565b60115460405191925060009173ffffffffffffffffffffffffffffffffffffffff9091169061753090849084818181858888f193505050503d8060008114611e3f576040519150601f19603f3d011682016040523d82523d6000602084013e611e44565b606091505b50600092505088159050611f4a576012546010546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018b9052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff91821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611ee8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f0d9190612573565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b601354600090819073ffffffffffffffffffffffffffffffffffffffff858116911614611fac57600e54611fb0565b600f545b90506000611fc36064611bda868561205a565b30600090815260086020526040902054909150611fe09082611352565b306000818152600860205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061203e9085815260200190565b60405180910390a36120508482611a29565b9695505050505050565b60008260000361206c57506000610993565b600061207883856125a1565b90508261208585836125b8565b14610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610a16565b6000610bf883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a169190612197565b50600061141684866125b8565b600060208083528351808285015260005b818110156121c4578581018301518582016040015282016121a8565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461222557600080fd5b50565b6000806040838503121561223b57600080fd5b823561224681612203565b946020939093013593505050565b6000806040838503121561226757600080fd5b50508035926020909101359150565b8035801515811461228657600080fd5b919050565b60006020828403121561229d57600080fd5b610bf882612276565b6000806000606084860312156122bb57600080fd5b83356122c681612203565b925060208401356122d681612203565b929592945050506040919091013590565b6000602082840312156122f957600080fd5b8135610bf881612203565b6000806040838503121561231757600080fd5b823561232281612203565b915061233060208401612276565b90509250929050565b60008060006040848603121561234e57600080fd5b833567ffffffffffffffff8082111561236657600080fd5b818601915086601f83011261237a57600080fd5b81358181111561238957600080fd5b8760208260051b850101111561239e57600080fd5b6020928301955093506123b49186019050612276565b90509250925092565b600080604083850312156123d057600080fd5b82356123db81612203565b915060208301356123eb81612203565b809150509250929050565b60006020828403121561240857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361249e5761249e61243e565b5060010190565b808201808211156109935761099361243e565b818103818111156109935761099361243e565b6000602082840312156124dd57600080fd5b8151610bf881612203565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561254557845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101612513565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b60008060006060848603121561258857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176109935761099361243e565b6000826125ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220b001f4a0146d196734da00768192bf5ecdc019117eae3cb3362f157819491aca64736f6c63430008110033

Deployed Bytecode Sourcemap

4950:9537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6402:54:0;;;;;;;;7615:78;;;;;;;;;;-1:-1:-1;7686:5:0;;;;;;;;;;;;;;;;;7615:78;;;;;;;:::i;8471:216::-;;;;;;;;;;-1:-1:-1;8471:216:0;;;;;:::i;:::-;;:::i;:::-;;;1452:14:1;;1445:22;1427:41;;1415:2;1400:18;8471:216:0;1287:187:1;13890:257:0;;;;;;;;;;-1:-1:-1;13890:257:0;;;;;:::i;:::-;;:::i;:::-;;13522:98;;;;;;;;;;-1:-1:-1;13522:98:0;;;;;:::i;:::-;;:::i;7877:86::-;;;;;;;;;;-1:-1:-1;7949:12:0;;7877:86;;5879:27;;;;;;;;;;;;;;;;6266:28;;;;;;;;;;-1:-1:-1;6266:28:0;;;;;;;;9678:370;;;;;;;;;;-1:-1:-1;9678:370:0;;;;;:::i;:::-;;:::i;8307:156::-;;;;;;;;;;;;;:::i;7791:78::-;;;;;;;;;;-1:-1:-1;7791:78:0;;5058:2;2685:36:1;;2673:2;2658:18;7791:78:0;2543:184:1;5695:43:0;;;;;;;;;;-1:-1:-1;5695:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5541:33;;;;;;;;;;-1:-1:-1;5541:33:0;;;;;;;;;;;6301:40;;;;;;;;;;-1:-1:-1;6301:40:0;;;;;;;;;;;8695:122;;;;;;;;;;-1:-1:-1;8695:122:0;;;;;:::i;:::-;;:::i;14159:95::-;;;;;;;;;;-1:-1:-1;14159:95:0;;;;;:::i;:::-;;:::i;13628:119::-;;;;;;;;;;-1:-1:-1;13628:119:0;;;;;:::i;:::-;;:::i;5839:31::-;;;;;;;;;;;;;;;;8057:103;;;;;;;;;;-1:-1:-1;8057:103:0;;;;;:::i;:::-;8140:18;;8123:7;8140:18;;;:9;:18;;;;;;;8057:103;4543:148;;;;;;;;;;;;;:::i;6001:30::-;;;;;;;;;;-1:-1:-1;6001:30:0;;;;;;;;;;;3480:42:1;3468:55;;;3450:74;;3438:2;3423:18;6001:30:0;3304:226:1;5133:42:0;;;;;;;;;;;;;;;;5182:40;;;;;;;;;;;;;;;;7971:78;;;;;;;;;;-1:-1:-1;8023:7:0;4394:6;;;7971:78;8307:156;6172:33;;;;;;;;;;-1:-1:-1;6172:33:0;;;;;;;;;;;5745:47;;;;;;;;;;-1:-1:-1;5745:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14272:210;;;;;;;;;;-1:-1:-1;14272:210:0;;;;;:::i;:::-;;:::i;7701:82::-;;;;;;;;;;-1:-1:-1;7774:7:0;;;;;;;;;;;;;;;;;7701:82;;5801:31;;;;;;;;;;;;;;;;6074:19;;;;;;;;;;-1:-1:-1;6074:19:0;;;;;;;;9176:156;;;;;;;;;;-1:-1:-1;9176:156:0;;;;;:::i;:::-;;:::i;6102:25::-;;;;;;;;;;;;;;;;5958:36;;;;;;;;;;-1:-1:-1;5958:36:0;;;;;;;;5913;;;;;;;;;;;;;;;;6348:45;;;;;;;;;;-1:-1:-1;6348:45:0;;;;;;;;;;;8168:131;;;;;;;;;;-1:-1:-1;8168:131:0;;;;;:::i;:::-;8269:19;;;;8252:7;8269:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8168:131;13413:101;;;;;;;;;;-1:-1:-1;13413:101:0;;;;;:::i;:::-;;:::i;4699:244::-;;;;;;;;;;-1:-1:-1;4699:244:0;;;;;:::i;:::-;;:::i;13755:127::-;;;;;;;;;;-1:-1:-1;13755:127:0;;;;;:::i;:::-;;:::i;6040:27::-;;;;;;;;;;-1:-1:-1;6040:27:0;;;;;;;;6212:45;;;;;;;;;;-1:-1:-1;6212:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6134:31;;;;;;;;;;-1:-1:-1;6134:31:0;;;;;;;;8471:216;8575:10;8546:4;8563:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;:41;;;8620:37;8546:4;;8563:32;;8620:37;;;;8598:6;160:25:1;;148:2;133:18;;14:177;8620:37:0;;;;;;;;-1:-1:-1;8675:4:0;8471:216;;;;;:::o;13890:257::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;;;;;;;;;13981:12:::1;:24:::0;;;14016:12:::1;:30:::0;;;14070::::1;13996:9:::0;14031:15;14070:16:::1;:30::i;:::-;14059:8;:41:::0;;;14111:17:::1;:28:::0;-1:-1:-1;;13890:257:0:o;13522:98::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;13589:11:::1;:23:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;13522:98::o;9678:370::-;9799:19;;;9778:4;9799:19;;;:11;:19;;;;;;;;9819:10;9799:31;;;;;;;;9834:17;9799:52;9795:188;;9902:69;;;;;;;;;;;;;;;;;;;;:19;;;-1:-1:-1;9902:19:0;;;:11;:19;;;;;9922:10;9902:31;;;;;;;;;;:69;;9938:6;;9902:35;:69::i;:::-;9868:19;;;;;;;:11;:19;;;;;;;;9888:10;9868:31;;;;;;;:103;9795:188;10000:40;10014:6;10022:9;10033:6;10000:13;:40::i;:::-;9993:47;;9678:370;;;;;;:::o;8307:156::-;8442:11;;;;8360:7;8140:18;;;:9;:18;;;;;;8387:68;;8414:11;;;;8123:7;8140:18;;;:9;:18;;;;;;8387:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;8380:75;;8307:156;:::o;8695:122::-;8750:4;8774:35;8782:7;8791:17;8774:7;:35::i;14159:95::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;14223:13:::1;:23:::0;;;::::1;;;;::::0;;;::::1;::::0;;;::::1;::::0;;14159:95::o;13628:119::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;13711:19:::1;::::0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;13628:119::o;4543:148::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;4650:1:::1;4634:6:::0;;4613:40:::1;::::0;::::1;4634:6:::0;;::::1;::::0;4613:40:::1;::::0;4650:1;;4613:40:::1;4681:1;4664:19:::0;;;::::1;::::0;;4543:148::o;14272:210::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;14374:9:::1;14369:106;14385:20:::0;;::::1;14369:106;;;14457:6;14427:13;:27;14441:9;;14451:1;14441:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14427:27;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14427:27:0;:36;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;14407:3:::1;::::0;::::1;:::i;:::-;;;14369:106;;;;14272:210:::0;;;:::o;9176:156::-;9256:4;9280:44;9294:10;9306:9;9317:6;9280:13;:44::i;13413:101::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;13485:10:::1;:21:::0;13413:101::o;4699:244::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;4788:22:::1;::::0;::::1;4780:73;;;::::0;::::1;::::0;;6200:2:1;4780:73:0::1;::::0;::::1;6182:21:1::0;6239:2;6219:18;;;6212:30;6278:34;6258:18;;;6251:62;6349:8;6329:18;;;6322:36;6375:19;;4780:73:0::1;5998:402:1::0;4780:73:0::1;4890:6;::::0;;4869:38:::1;::::0;::::1;::::0;;::::1;::::0;4890:6;::::1;::::0;4869:38:::1;::::0;::::1;4918:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;4699:244::o;13755:127::-;4456:6;;:22;:6;3765:10;4456:22;4448:67;;;;;;;5261:2:1;4448:67:0;;;5243:21:1;;;5280:18;;;5273:30;5339:34;5319:18;;;5312:62;5391:18;;4448:67:0;5059:356:1;4448:67:0;13842:23:::1;::::0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;13755:127::o;2541:179::-;2599:7;;2631:5;2635:1;2631;:5;:::i;:::-;2619:17;;2660:1;2655;:6;;2647:46;;;;;;;6737:2:1;2647:46:0;;;6719:21:1;6776:2;6756:18;;;6749:30;6815:29;6795:18;;;6788:57;6862:18;;2647:46:0;6535:351:1;2872:190:0;2958:7;2994:12;2986:6;;;;2978:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3018:9:0;3030:5;3034:1;3030;:5;:::i;:::-;3018:17;2872:190;-1:-1:-1;;;;;2872:190:0:o;10056:1447::-;10169:16;;10148:4;;10169:16;;10165:73;;;10195:41;10210:6;10218:9;10229:6;10195:14;:41::i;:::-;10188:48;;;;10165:73;10252:22;;;;;;;:14;:22;;;;;;;;10251:23;:53;;;;-1:-1:-1;10279:25:0;;;;;;;:14;:25;;;;;;;;10278:26;10251:53;10248:128;;;10328:11;;;;10320:44;;;;;;;7226:2:1;10320:44:0;;;7208:21:1;7265:2;7245:18;;;7238:30;7304:22;7284:18;;;7277:50;7344:18;;10320:44:0;7024:344:1;10320:44:0;10406:12;;10396:6;:22;;:49;;;-1:-1:-1;10422:23:0;;;;;;;:15;:23;;;;;;;;10396:49;10388:79;;;;;;;7575:2:1;10388:79:0;;;7557:21:1;7614:2;7594:18;;;7587:30;7653:19;7633:18;;;7626:47;7690:18;;10388:79:0;7373:341:1;10388:79:0;10496:4;;;;10482:10;:18;;;;:39;;-1:-1:-1;10505:16:0;;;;10504:17;10482:39;:64;;;;-1:-1:-1;10525:21:0;;;;;;;10482:64;:109;;;;-1:-1:-1;10578:13:0;;10568:4;10550:24;;;;:9;:24;;;;;;:41;;10482:109;10478:141;;;10594:23;:21;:23::i;:::-;8892:10;;:15;;;10633:32;;-1:-1:-1;10661:4:0;;;10648:17;;;10661:4;;10648:17;10633:32;10629:144;;;10690:17;;;10710:1;10690:17;;;:9;:17;;;;;;10682:56;;;;;;;7921:2:1;10682:56:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:24;7979:18;;;7972:52;8041:18;;10682:56:0;7719:346:1;10682:56:0;10753:8;8974:12;8961:10;:25;8923:71;10753:8;10815:13;;;;;;;10811:120;;;10854:21;;;;;;;:13;:21;;;;;;;;10853:22;:51;;;;-1:-1:-1;10880:24:0;;;;;;;:13;:24;;;;;;;;10879:25;10853:51;10845:74;;;;;;;8272:2:1;10845:74:0;;;8254:21:1;8311:2;8291:18;;;8284:30;8350:13;8330:18;;;8323:41;8381:18;;10845:74:0;8070:335:1;10845:74:0;10991:53;;;;;;;;;;;;;;;;;;;;:17;;;-1:-1:-1;10991:17:0;;;:9;:17;;;;;;;;:53;;11013:6;;10991:21;:53::i;:::-;10971:17;;;;;;;;:9;:17;;;;;;;;:73;;;;11062:26;;;;;:15;:26;;;;;;;11061:27;:45;;;;-1:-1:-1;11092:14:0;;;;;;;11061:45;11057:157;;;11167:10;;11131:20;;;;;;;:9;:20;;;;;;:32;;11156:6;11131:24;:32::i;:::-;:46;;11123:79;;;;;;;8612:2:1;11123:79:0;;;8594:21:1;8651:2;8631:18;;;8624:30;8690:22;8670:18;;;8663:50;8730:18;;11123:79:0;8410:344:1;11123:79:0;11249:19;;;11226;11249;;;:11;:19;;;;;;;;11248:20;:47;;;;-1:-1:-1;11273:22:0;;;;;;;:11;:22;;;;;;;;11272:23;11248:47;:96;;11338:6;11248:96;;;11298:37;11309:6;11317:9;11328:6;11298:10;:37::i;:::-;11378:20;;;;;;;:9;:20;;;;;;11226:118;;-1:-1:-1;11378:37:0;;11226:118;11378:24;:37::i;:::-;11355:20;;;;;;;;:9;:20;;;;;;;:60;;;;11433:40;;;;;;;;;;11461:11;160:25:1;;148:2;133:18;;14:177;11433:40:0;;;;;;;;-1:-1:-1;11491:4:0;;10056:1447;-1:-1:-1;;;;10056:1447:0:o;2728:136::-;2786:7;2813:43;2817:1;2820;2813:43;;;;;;;;;;;;;;;;;:3;:43::i;9340:330::-;9470:53;;;;;;;;;;;;;;;;;;;;:17;;;9433:4;9470:17;;;:9;:17;;;;;;;:53;;9492:6;;9470:21;:53::i;:::-;9450:17;;;;;;;;:9;:17;;;;;;:73;;;;9557:20;;;;;;;:32;;9582:6;9557:24;:32::i;:::-;9534:20;;;;;;;;:9;:20;;;;;;;:55;;;;9605:35;;;;;;;;;;9633:6;160:25:1;;148:2;133:18;;14:177;9605:35:0;;;;;;;;-1:-1:-1;9658:4:0;9340:330;;;;;:::o;11951:1419::-;6561:16;:23;;;;6580:4;6561:23;;;12060:4:::1;6561:16:::0;12042:24;;;:9:::1;:24;::::0;;;;;12141:8:::1;::::0;12123:12:::1;::::0;12042:24;;6561:16;12103:54:::1;::::0;12155:1:::1;::::0;12103:47:::1;::::0;12141:8;12103:47;;12042:24;;12103:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;12077:80:::0;-1:-1:-1;12168:20:0::1;12191:36;:15:::0;12077:80;12191:19:::1;:36::i;:::-;12264:16;::::0;;12278:1:::1;12264:16:::0;;;;;::::1;::::0;;12168:59;;-1:-1:-1;12240:21:0::1;::::0;12264:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12264:16:0::1;12240:40;;12309:4;12291;12296:1;12291:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12335:6:::1;::::0;:13:::1;::::0;;;;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12291:7;;12335:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12325:4;12330:1;12325:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12361:6:::1;::::0;:188:::1;::::0;;;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12433:12;;12361:6:::1;::::0;12476:4;;12503::::1;::::0;12523:15:::1;::::0;12361:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12651:12:0::1;::::0;12582:21:::1;::::0;-1:-1:-1;12562:17:0::1;::::0;-1:-1:-1;12638:33:0::1;::::0;12651:19:::1;::::0;12668:1:::1;12651:16;:19::i;:::-;12638:8;::::0;;:12:::1;:33::i;:::-;12616:55;;12684:26;12713:51;12762:1;12713:44;12745:11;12713:27;12727:12;;12713:9;:13;;:27;;;;:::i;:51::-;12684:80;;12775:26;12804:44;12836:11;12804:27;12818:12;;12804:9;:13;;:27;;;;:::i;:44::-;12890:15;::::0;12882:74:::1;::::0;12775:73;;-1:-1:-1;12862:15:0::1;::::0;12890::::1;::::0;;::::1;::::0;12946:5:::1;::::0;12775:73;;12862:15;12882:74;12862:15;12882:74;12775:73;12890:15;12946:5;12882:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;12980:5:0::1;::::0;-1:-1:-1;;13002:19:0;;;-1:-1:-1;12998:365:0::1;;13038:6;::::0;13213:21:::1;::::0;13038:245:::1;::::0;;;;13115:4:::1;13038:245;::::0;::::1;10809:34:1::0;10859:18;;;10852:34;;;13038:6:0::1;10902:18:1::0;;;10895:34;;;10945:18;;;10938:34;13038:6:0::1;13213:21:::0;;::::1;10988:19:1::0;;;10981:44;13253:15:0::1;11041:19:1::0;;;11034:35;13038:6:0;::::1;::::0;:22:::1;::::0;13069:18;;10720:19:1;;13038:245:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13303:48:0::1;::::0;;11565:25:1;;;11621:2;11606:18;;11599:34;;;13303:48:0::1;::::0;-1:-1:-1;11538:18:1;13303:48:0::1;;;;;;;12998:365;-1:-1:-1::0;;6607:16:0;:24;;;;;;-1:-1:-1;;;;;;;11951:1419:0:o;11511:432::-;11644:4;;11600:7;;;;11644:17;;;;:4;;:17;:48;;11684:8;;11644:48;;;11664:17;;11644:48;11620:72;-1:-1:-1;11703:17:0;11723:34;11753:3;11723:25;:6;11620:72;11723:10;:25::i;:34::-;11815:4;11797:24;;;;:9;:24;;;;;;11703:54;;-1:-1:-1;11797:39:0;;11703:54;11797:28;:39::i;:::-;11788:4;11770:24;;;;:9;:24;;;;;;;:66;;;;11852:42;;11770:24;11852:42;;;;;;;11884:9;160:25:1;;148:2;133:18;;14:177;11852:42:0;;;;;;;;11914:21;:6;11925:9;11914:10;:21::i;:::-;11907:28;11511:432;-1:-1:-1;;;;;;11511:432:0:o;3070:222::-;3128:7;3152:1;3157;3152:6;3148:23;;-1:-1:-1;3168:1:0;3161:8;;3148:23;3181:9;3193:5;3197:1;3193;:5;:::i;:::-;3181:17;-1:-1:-1;3226:1:0;3217:5;3221:1;3181:17;3217:5;:::i;:::-;:10;3209:56;;;;;;;12298:2:1;3209:56:0;;;12280:21:1;12337:2;12317:18;;;12310:30;12376:34;12356:18;;;12349:62;12447:3;12427:18;;;12420:31;12468:19;;3209:56:0;12096:397:1;3300:132:0;3358:7;3385:39;3389:1;3392;3385:39;;;;;;;;;;;;;;;;;3526:7;3561:12;3554:5;3546:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3585:9:0;3597:5;3601:1;3597;:5;:::i;196:607:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;794:2;724:66;719:2;711:6;707:15;703:88;692:9;688:104;684:113;676:121;;;;196:607;;;;:::o;808:154::-;894:42;887:5;883:54;876:5;873:65;863:93;;952:1;949;942:12;863:93;808:154;:::o;967:315::-;1035:6;1043;1096:2;1084:9;1075:7;1071:23;1067:32;1064:52;;;1112:1;1109;1102:12;1064:52;1151:9;1138:23;1170:31;1195:5;1170:31;:::i;:::-;1220:5;1272:2;1257:18;;;;1244:32;;-1:-1:-1;;;967:315:1:o;1479:248::-;1547:6;1555;1608:2;1596:9;1587:7;1583:23;1579:32;1576:52;;;1624:1;1621;1614:12;1576:52;-1:-1:-1;;1647:23:1;;;1717:2;1702:18;;;1689:32;;-1:-1:-1;1479:248:1:o;1732:160::-;1797:20;;1853:13;;1846:21;1836:32;;1826:60;;1882:1;1879;1872:12;1826:60;1732:160;;;:::o;1897:180::-;1953:6;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2045:26;2061:9;2045:26;:::i;2082:456::-;2159:6;2167;2175;2228:2;2216:9;2207:7;2203:23;2199:32;2196:52;;;2244:1;2241;2234:12;2196:52;2283:9;2270:23;2302:31;2327:5;2302:31;:::i;:::-;2352:5;-1:-1:-1;2409:2:1;2394:18;;2381:32;2422:33;2381:32;2422:33;:::i;:::-;2082:456;;2474:7;;-1:-1:-1;;;2528:2:1;2513:18;;;;2500:32;;2082:456::o;2732:247::-;2791:6;2844:2;2832:9;2823:7;2819:23;2815:32;2812:52;;;2860:1;2857;2850:12;2812:52;2899:9;2886:23;2918:31;2943:5;2918:31;:::i;2984:315::-;3049:6;3057;3110:2;3098:9;3089:7;3085:23;3081:32;3078:52;;;3126:1;3123;3116:12;3078:52;3165:9;3152:23;3184:31;3209:5;3184:31;:::i;:::-;3234:5;-1:-1:-1;3258:35:1;3289:2;3274:18;;3258:35;:::i;:::-;3248:45;;2984:315;;;;;:::o;3535:689::-;3627:6;3635;3643;3696:2;3684:9;3675:7;3671:23;3667:32;3664:52;;;3712:1;3709;3702:12;3664:52;3752:9;3739:23;3781:18;3822:2;3814:6;3811:14;3808:34;;;3838:1;3835;3828:12;3808:34;3876:6;3865:9;3861:22;3851:32;;3921:7;3914:4;3910:2;3906:13;3902:27;3892:55;;3943:1;3940;3933:12;3892:55;3983:2;3970:16;4009:2;4001:6;3998:14;3995:34;;;4025:1;4022;4015:12;3995:34;4080:7;4073:4;4063:6;4060:1;4056:14;4052:2;4048:23;4044:34;4041:47;4038:67;;;4101:1;4098;4091:12;4038:67;4132:4;4124:13;;;;-1:-1:-1;4156:6:1;-1:-1:-1;4181:37:1;;4197:20;;;-1:-1:-1;4181:37:1;:::i;:::-;4171:47;;3535:689;;;;;:::o;4229:388::-;4297:6;4305;4358:2;4346:9;4337:7;4333:23;4329:32;4326:52;;;4374:1;4371;4364:12;4326:52;4413:9;4400:23;4432:31;4457:5;4432:31;:::i;:::-;4482:5;-1:-1:-1;4539:2:1;4524:18;;4511:32;4552:33;4511:32;4552:33;:::i;:::-;4604:7;4594:17;;;4229:388;;;;;:::o;4622:180::-;4681:6;4734:2;4722:9;4713:7;4709:23;4705:32;4702:52;;;4750:1;4747;4740:12;4702:52;-1:-1:-1;4773:23:1;;4622:180;-1:-1:-1;4622:180:1:o;5420:184::-;5472:77;5469:1;5462:88;5569:4;5566:1;5559:15;5593:4;5590:1;5583:15;5609:184;5661:77;5658:1;5651:88;5758:4;5755:1;5748:15;5782:4;5779:1;5772:15;5798:195;5837:3;5868:66;5861:5;5858:77;5855:103;;5938:18;;:::i;:::-;-1:-1:-1;5985:1:1;5974:13;;5798:195::o;6405:125::-;6470:9;;;6491:10;;;6488:36;;;6504:18;;:::i;6891:128::-;6958:9;;;6979:11;;;6976:37;;;6993:18;;:::i;8948:251::-;9018:6;9071:2;9059:9;9050:7;9046:23;9042:32;9039:52;;;9087:1;9084;9077:12;9039:52;9119:9;9113:16;9138:31;9163:5;9138:31;:::i;9204:1026::-;9466:4;9514:3;9503:9;9499:19;9545:6;9534:9;9527:25;9571:2;9609:6;9604:2;9593:9;9589:18;9582:34;9652:3;9647:2;9636:9;9632:18;9625:31;9676:6;9711;9705:13;9742:6;9734;9727:22;9780:3;9769:9;9765:19;9758:26;;9819:2;9811:6;9807:15;9793:29;;9840:1;9850:218;9864:6;9861:1;9858:13;9850:218;;;9929:13;;9944:42;9925:62;9913:75;;10043:15;;;;10008:12;;;;9886:1;9879:9;9850:218;;;-1:-1:-1;;10136:42:1;10124:55;;;;10119:2;10104:18;;10097:83;-1:-1:-1;;;10211:3:1;10196:19;10189:35;10085:3;9204:1026;-1:-1:-1;;;9204:1026:1:o;11080:306::-;11168:6;11176;11184;11237:2;11225:9;11216:7;11212:23;11208:32;11205:52;;;11253:1;11250;11243:12;11205:52;11282:9;11276:16;11266:26;;11332:2;11321:9;11317:18;11311:25;11301:35;;11376:2;11365:9;11361:18;11355:25;11345:35;;11080:306;;;;;:::o;11644:168::-;11717:9;;;11748;;11765:15;;;11759:22;;11745:37;11735:71;;11786:18;;:::i;11817:274::-;11857:1;11883;11873:189;;11918:77;11915:1;11908:88;12019:4;12016:1;12009:15;12047:4;12044:1;12037:15;11873:189;-1:-1:-1;12076:9:1;;11817:274::o

Swarm Source

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