ETH Price: $4,000.20 (+2.87%)

Token

ERC-20: LIQUID (LIQUID)
 

Overview

Max Total Supply

20,009.276052727232297663 LIQUID

Holders

1,371

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000444359729473 LIQUID

Value
$0.00
0xe209ebc612f7200ea460fb76cfdf12d9a501319d
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:
LIQUID

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-26
*/

//   _    _ _   _                __ _                            
//  | |  (_) | | |              / _(_)                           
//  | | ___| |_| |_ ___ _ __   | |_ _ _ __   __ _ _ __   ___ ___ 
//  | |/ / | __| __/ _ \ '_ \  |  _| | '_ \ / _` | '_ \ / __/ _ \
//  |   <| | |_| ||  __/ | | |_| | | | | | | (_| | | | | (_|  __/
//  |_|\_\_|\__|\__\___|_| |_(_)_| |_|_| |_|\__,_|_| |_|\___\___|
//
//  LIQUID : a token with deep floor liquidity & ever-rising floor price
//
//  https://www.KittenSwap.org
//
//  https://www.Kitten.finance
//
pragma solidity ^0.5.17;

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

        return c;
    }
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }
    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

contract ERC20Detailed {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

////////////////////////////////////////////////////////////////////////////////

interface IERC20 {
    function balanceOf(address account) external view returns (uint);
}

////////////////////////////////////////////////////////////////////////////////

contract LIQUID is ERC20Detailed 
{
    address public DEPLOYER = 0xD8d71629950cE53d7E9F94619b09058D9D9f5866;
    uint public constant INITIAL_EthReserve = 2100 * (10 ** 18);
    uint public constant INITIAL_TokenReserve = 21000 * (10 ** 18);
    
    ////////////////////////////////////////////////////////////////////////////////
    
    using SafeMath for uint;
    
    uint public MARKET_OPEN_STAGE = 0; // 0: closed; 1: open;
    
    uint public MARKET_BUY_ETH_LIMIT = (10 ** 18) / 1000; // 0: ignore; x: limit purchase amt;
    
    address public MARKET_WHITELIST_TOKEN = address(0);
    uint public MARKET_WHITELIST_TOKEN_BP = 10 * 10000; // 0: ignore; x: require y TOKEN to hold [x * y / 10000] LIQUID
    
    uint public MARKET_WHITELIST_BASE_AMT = 10 * (10 ** 18); // can always own some LIQUID

    ////////////////////////////////////////////////////////////////////////////////
    
    uint public gTransferBurnBP = 60;
    uint public gSellBurnBP = 60;
    uint public gSellTreasuryBP = 0;
    
    // special BurnBP for some addresses
    mapping (address => uint) public gTransferFromBurnBP;
    mapping (address => uint) public gTransferToBurnBP;
    
    ////////////////////////////////////////////////////////////////////////////////
    
    uint public gContractCheckBuyLevel = 3; // 0: no check; 1: methodA; 2: methodB; 3: both;
    uint public gContractCheckSellLevel = 3; // 0: no check; 1: methodA; 2: methodB; 3: both;
    
    mapping (address => uint) public gContractWhitelist; // 0: disableALL; 1: disableBUY; 2: disableSELL; 3: allowALL;
    
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }

    ////////////////////////////////////////////////////////////////////////////////

    address constant tokenFactoryAddr = 0x1111111111111111111111111111111111111111;
    
    address public govAddr;
    
    address public treasuryAddr;
    uint public treasuryAmtTotal = 0;

    constructor () public ERC20Detailed("LIQUID", "LIQUID", 18) {
        if (msg.sender == DEPLOYER) {
            govAddr = msg.sender;
            treasuryAddr = msg.sender;
            _mint(tokenFactoryAddr, INITIAL_TokenReserve);
        }        
    }

    ////////////////////////////////////////////////////////////////////////////////
    
    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
    
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;

    uint private _totalSupply;
    function totalSupply() public view returns (uint) {
        return _totalSupply;
    }
    function balanceOf(address account) public view returns (uint) {
        return _balances[account];
    }
    function transfer(address recipient, uint amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view returns (uint) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    function _transfer(address sender, address recipient, uint amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);

        //------------------------------------------------------------------------------

        // 0         ===> default BurnBP
        // 1 ~ 10000 ===> customized BurnBP
        // >10000    ===> zero BurnBP
        
        uint fromBurnBP = gTransferFromBurnBP[sender];
        if (fromBurnBP == 0)
            fromBurnBP = gTransferBurnBP;
        else if (fromBurnBP > 10000)
            fromBurnBP = 0;

        uint toBurnBP = gTransferToBurnBP[recipient];
        if (toBurnBP == 0)
            toBurnBP = gTransferBurnBP;
        else if (toBurnBP > 10000)
            toBurnBP = 0;

        uint BurnBP = fromBurnBP; // BurnBP = min(fromBurnBP, toBurnBP)
        if (BurnBP > toBurnBP)
            BurnBP = toBurnBP;
        
        if (BurnBP > 0) {
            uint burnAmt = amount.mul(BurnBP).div(10000);
            _burn(recipient, burnAmt);
        }
    }
    function _transferRawNoBurn(address sender, address recipient, uint amount) internal {
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }    
    function _mint(address account, uint amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        
        if (amount == 0) return;
        if (_balances[account] == 0) return;

        if (account != tokenFactoryAddr) {

            _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
            emit Transfer(account, address(0), amount);

            //------------------------------------------------------------------------------
            // AutoBoost : because totalSupply is reduced, we can burn tokenReserve to boost price
            // Check our Medium on https://www.Kitten.finance for details
            //------------------------------------------------------------------------------
            
            uint TokenReserve = _balances[tokenFactoryAddr];
            
            if (_totalSupply > TokenReserve) { // shall always satisfy
                uint extraBurn = TokenReserve.mul(amount).div(_totalSupply.sub(TokenReserve));
                _balances[tokenFactoryAddr] = TokenReserve.sub(extraBurn);
                emit Transfer(tokenFactoryAddr, address(0), extraBurn);
                
                _totalSupply = _totalSupply.sub(amount).sub(extraBurn);
            } else {
                _totalSupply = _totalSupply.sub(amount);
            }
        }
    }
    function _approve(address owner, address spender, uint amount) internal {
        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 getEthReserve() public view returns (uint) {
        return INITIAL_EthReserve.add(address(this).balance).sub(treasuryAmtTotal);
    }

    function getTokenReserve() public view returns (uint) {
        return _balances[tokenFactoryAddr];
    }
    
    event BuyToken(address indexed user, uint tokenAmt, uint ethAmt);
    event SellToken(address indexed user, uint tokenAmt, uint ethAmt);

    function buyToken(uint minTokenAmt, uint expireTimestamp) external payable 
    {
        address user = msg.sender;

        if (gContractWhitelist[user] < 2) { // 0: disableALL; 1: disableBUY; 2: disableSELL; 3: allowALL;
            if (gContractCheckBuyLevel % 2 == 1) require(!isContract(user), '!human'); // 0: no check; 1: methodA; 2: methodB; 3: both;
            if (gContractCheckBuyLevel >= 2) require(user == tx.origin, '!human');     // 0: no check; 1: methodA; 2: methodB; 3: both;
        }

        require ((MARKET_OPEN_STAGE > 0) || (user == govAddr), '!market'); // govAddr can test contract before market open
        require (msg.value > 0, '!eth');
        require (minTokenAmt > 0, '!minToken');
        require ((expireTimestamp == 0) || (block.timestamp <= expireTimestamp), '!expire');
        require ((MARKET_BUY_ETH_LIMIT == 0) || (msg.value <= MARKET_BUY_ETH_LIMIT), '!ethLimit');
        
        //------------------------------------------------------------------------------
        
        uint newEthReserve = INITIAL_EthReserve.add(address(this).balance).sub(treasuryAmtTotal);
        uint oldEthReserve = newEthReserve.sub(msg.value);

        uint oldTokenReserve = _balances[tokenFactoryAddr];
        uint newTokenReserve = (oldEthReserve.mul(oldTokenReserve).add(newEthReserve / 2)).div(newEthReserve);
        
        uint outTokenAmt = oldTokenReserve.sub(newTokenReserve);
        require (outTokenAmt > 0, '!outToken');
        require (outTokenAmt >= minTokenAmt, "KittenSwap: INSUFFICIENT_OUTPUT_AMOUNT");
        
        if ((MARKET_WHITELIST_TOKEN_BP > 0) && (MARKET_WHITELIST_TOKEN != address(0))) 
        {
            uint amtWhitelistToken = IERC20(MARKET_WHITELIST_TOKEN).balanceOf(user);
            uint amtLimit = amtWhitelistToken.mul(MARKET_WHITELIST_TOKEN_BP).div(10000);
            
            if (amtLimit < MARKET_WHITELIST_BASE_AMT) {
                amtLimit = MARKET_WHITELIST_BASE_AMT;
            }
            
            require (_balances[user].add(outTokenAmt) <= amtLimit, '!need-more-whitelist-token');
        }

        _transferRawNoBurn(tokenFactoryAddr, user, outTokenAmt);

        //------------------------------------------------------------------------------
        
        emit BuyToken(user, outTokenAmt, msg.value);
    }
    
    function sellToken(uint tokenAmt, uint minEthAmt, uint expireTimestamp) external 
    {
        address payable user = msg.sender;

        if (gContractWhitelist[user] % 2 == 0) { // 0: disableALL; 1: disableBUY; 2: disableSELL; 3: allowALL;
            if (gContractCheckSellLevel % 2 == 1) require(!isContract(user), '!human'); // 0: no check; 1: methodA; 2: methodB; 3: both;
            if (gContractCheckSellLevel >= 2) require(user == tx.origin, '!human');     // 0: no check; 1: methodA; 2: methodB; 3: both;
        }

        require (tokenAmt > 0, '!token');
        require (minEthAmt > 0, '!minEth');
        require ((expireTimestamp == 0) || (block.timestamp <= expireTimestamp), '!expire');
        
        uint burnAmt = tokenAmt.mul(gSellBurnBP).div(10000);
        _burn(user, burnAmt);
        uint tokenAmtAfterBurn = tokenAmt.sub(burnAmt);

        //------------------------------------------------------------------------------

        uint oldEthReserve = INITIAL_EthReserve.add(address(this).balance).sub(treasuryAmtTotal);
        uint oldTokenReserve = _balances[tokenFactoryAddr];

        uint newTokenReserve = oldTokenReserve.add(tokenAmtAfterBurn);
        uint newEthReserve = (oldEthReserve.mul(oldTokenReserve).add(newTokenReserve / 2)).div(newTokenReserve);
        
        uint outEthAmt = oldEthReserve.sub(newEthReserve);
        require (outEthAmt > 0, '!outEth');
        require (outEthAmt >= minEthAmt, "KittenSwap: INSUFFICIENT_OUTPUT_AMOUNT");

        _transferRawNoBurn(user, tokenFactoryAddr, tokenAmtAfterBurn);

        //------------------------------------------------------------------------------

        if (gSellTreasuryBP > 0) 
        {
            uint treasuryAmt = outEthAmt.mul(gSellTreasuryBP).div(10000);
            treasuryAmtTotal = treasuryAmtTotal.add(treasuryAmt);
            user.transfer(outEthAmt.sub(treasuryAmt));
        } 
        else
        {
            user.transfer(outEthAmt);
        }
        
        emit SellToken(user, tokenAmt, outEthAmt);
    }
    
    ////////////////////////////////////////////////////////////////////////////////
    
    modifier govOnly() 
    {
    	require(msg.sender == govAddr, "!gov");
    	_;
    }
    
    function govTransferAddr(address newAddr) external govOnly 
    {
    	require(newAddr != address(0), "!addr");
    	govAddr = newAddr;
    }
    
    function govOpenMarket() external govOnly
    {
        MARKET_OPEN_STAGE = 1;
    }

    function govSetTreasury(address newAddr) external govOnly
    {
    	require(newAddr != address(0), "!addr");
    	treasuryAddr = newAddr;
    }    
    
    function govSetBurn(uint transferBurnBP, uint sellBurnBP, uint sellTreasuryBP) external govOnly
    {
        require (transferBurnBP <= 60);
        require (sellBurnBP <= 60);
        require (sellTreasuryBP <= 30);
        require (sellTreasuryBP <= sellBurnBP);
        require (sellBurnBP.add(sellTreasuryBP) <= 60);
        
        gTransferBurnBP = transferBurnBP;
        gSellBurnBP = sellBurnBP;
        gSellTreasuryBP = sellTreasuryBP;
    }
    
    function govSetBurnForAddress(address addr, uint transferFromBurnBP, uint transferToBurnBP) external govOnly
    {
        // 0         ===> default BurnBP
        // 1 ~ 10000 ===> customized BurnBP
        // 10001     ===> zero BurnBP
        require (transferFromBurnBP <= 10001);
        require (transferToBurnBP <= 10001);
        
        gTransferFromBurnBP[addr] = transferFromBurnBP;
        gTransferToBurnBP[addr] = transferToBurnBP;
    }

    function govSetContractCheckLevel(uint buyLevel, uint sellLevel) external govOnly
    {
        gContractCheckBuyLevel = buyLevel;
        gContractCheckSellLevel = sellLevel;
    }
    function govSetContractWhiteList(address addr, uint state) external govOnly
    {
        gContractWhitelist[addr] = state;
    }
    
    function govSetBuyLimit(uint new_MARKET_BUY_ETH_LIMIT) external govOnly 
    {
        MARKET_BUY_ETH_LIMIT = new_MARKET_BUY_ETH_LIMIT;
    }

    function govSetWhitelistToken(address new_MARKET_WHITELIST_TOKEN, uint new_MARKET_WHITELIST_TOKEN_BP) external govOnly 
    {
        MARKET_WHITELIST_TOKEN = new_MARKET_WHITELIST_TOKEN;
        MARKET_WHITELIST_TOKEN_BP = new_MARKET_WHITELIST_TOKEN_BP;
    }
    
    function govSetWhitelistBaseAmt(uint new_MARKET_WHITELIST_BASE_AMT) external govOnly 
    {
        MARKET_WHITELIST_BASE_AMT = new_MARKET_WHITELIST_BASE_AMT;
    }    
    
    ////////////////////////////////////////////////////////////////////////////////

    modifier treasuryOnly() 
    {
    	require(msg.sender == treasuryAddr, "!treasury");
    	_;
    }    
    
    function treasurySend(uint amt) external treasuryOnly
    {
        require(amt <= treasuryAmtTotal);

        treasuryAmtTotal = treasuryAmtTotal.sub(amt);
        
        address payable _treasuryAddr = address(uint160(treasuryAddr));
        _treasuryAddr.transfer(amt);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmt","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmt","type":"uint256"}],"name":"SellToken","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"},{"constant":true,"inputs":[],"name":"DEPLOYER","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_EthReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_TokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKET_BUY_ETH_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKET_OPEN_STAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKET_WHITELIST_BASE_AMT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKET_WHITELIST_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKET_WHITELIST_TOKEN_BP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"minTokenAmt","type":"uint256"},{"internalType":"uint256","name":"expireTimestamp","type":"uint256"}],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gContractCheckBuyLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gContractCheckSellLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gContractWhitelist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gSellBurnBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gSellTreasuryBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gTransferBurnBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gTransferFromBurnBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gTransferToBurnBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getEthReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"govAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"govOpenMarket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"transferBurnBP","type":"uint256"},{"internalType":"uint256","name":"sellBurnBP","type":"uint256"},{"internalType":"uint256","name":"sellTreasuryBP","type":"uint256"}],"name":"govSetBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"transferFromBurnBP","type":"uint256"},{"internalType":"uint256","name":"transferToBurnBP","type":"uint256"}],"name":"govSetBurnForAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"new_MARKET_BUY_ETH_LIMIT","type":"uint256"}],"name":"govSetBuyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"buyLevel","type":"uint256"},{"internalType":"uint256","name":"sellLevel","type":"uint256"}],"name":"govSetContractCheckLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"state","type":"uint256"}],"name":"govSetContractWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"govSetTreasury","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"new_MARKET_WHITELIST_BASE_AMT","type":"uint256"}],"name":"govSetWhitelistBaseAmt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"new_MARKET_WHITELIST_TOKEN","type":"address"},{"internalType":"uint256","name":"new_MARKET_WHITELIST_TOKEN_BP","type":"uint256"}],"name":"govSetWhitelistToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"govTransferAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"tokenAmt","type":"uint256"},{"internalType":"uint256","name":"minEthAmt","type":"uint256"},{"internalType":"uint256","name":"expireTimestamp","type":"uint256"}],"name":"sellToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasuryAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"treasuryAmtTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"treasurySend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405260028054610100600160a81b03191674d8d71629950ce53d7e9f94619b09058d9d9f5866001790556000600381815566038d7ea4c68000600455600580546001600160a01b0319169055620186a0600655678ac7230489e80000600755603c6008819055600955600a829055600d819055600e556012553480156200008857600080fd5b5060408051808201825260068082526513125455525160d21b602080840182815285518087019096529285528401528151919291601291620000ce9160009190620002ce565b508151620000e4906001906020850190620002ce565b506002805460ff191660ff92909216919091179081905561010090046001600160a01b031633141591506200016190505760108054336001600160a01b0319918216811790925560118054909116909117905562000161731111111111111111111111111111111111111111690472698b413b4320000062000167565b62000373565b6001600160a01b038216620001c3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001df816015546200026c60201b62001c601790919060201c565b6015556001600160a01b0382166000908152601360209081526040909120546200021491839062001c606200026c821b17901c565b6001600160a01b03831660008181526013602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620002c7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031157805160ff191683800117855562000341565b8280016001018555821562000341579182015b828111156200034157825182559160200191906001019062000324565b506200034f92915062000353565b5090565b6200037091905b808211156200034f57600081556001016200035a565b90565b61265d80620003836000396000f3fe6080604052600436106102725760003560e01c8063683f92871161014f578063c21d74fe116100c1578063d9b697741161007a578063d9b6977414610907578063dd62ed3e1461091c578063eb0ee93414610957578063f1d9f88b1461096c578063fa59e6d414610981578063ff71b4e51461099657610272565b8063c21d74fe14610814578063c83ce00a14610847578063ca392e0e14610871578063cac65b1d146108aa578063cb85ce67146108dd578063d222f1bc146108f257610272565b80638a9118c0116101135780638a9118c01461074e57806395d89b4114610763578063a457c2d714610778578063a9059cbb146107b1578063bf47f715146107ea578063c1b8411a146107ff57610272565b8063683f92871461064357806370a082311461067357806372223c6c146106a65780637cfd312d146106e557806380abb0551461071857610272565b806330d9a62a116101e85780633ad6bd34116101ac5780633ad6bd34146105745780633dae21aa1461058957806342edd8e01461059e5780634a427c0c146105d157806352c0686514610604578063580c85441461062e57610272565b806330d9a62a146104b5578063313ce567146104e6578063327ba06c1461051157806337e2cde914610526578063395093511461053b57610272565b806318160ddd1161023a57806318160ddd146103d65780631efbe895146103fd5780631f181d571461041257806323b872dd1461044857806324c0fb001461048b57806325653eca146104a057610272565b8063057466ea1461027757806306fdde031461029c578063095ea7b3146103265780630c278a8d146103735780631073b3751461039d575b600080fd5b61029a6004803603604081101561028d57600080fd5b50803590602001356109ab565b005b3480156102a857600080fd5b506102b1610ed5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102eb5781810151838201526020016102d3565b50505050905090810190601f1680156103185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033257600080fd5b5061035f6004803603604081101561034957600080fd5b506001600160a01b038135169060200135610f6b565b604080519115158252519081900360200190f35b34801561037f57600080fd5b5061029a6004803603602081101561039657600080fd5b5035610f89565b3480156103a957600080fd5b5061029a600480360360408110156103c057600080fd5b506001600160a01b038135169060200135610fd6565b3480156103e257600080fd5b506103eb611044565b60408051918252519081900360200190f35b34801561040957600080fd5b506103eb61104a565b34801561041e57600080fd5b5061029a6004803603606081101561043557600080fd5b5080359060208101359060400135611050565b34801561045457600080fd5b5061035f6004803603606081101561046b57600080fd5b506001600160a01b0381358116916020810135909116906040013561145c565b34801561049757600080fd5b506103eb6114e9565b3480156104ac57600080fd5b506103eb6114f7565b3480156104c157600080fd5b506104ca6114fd565b604080516001600160a01b039092168252519081900360200190f35b3480156104f257600080fd5b506104fb61150c565b6040805160ff9092168252519081900360200190f35b34801561051d57600080fd5b506103eb611515565b34801561053257600080fd5b506103eb61151b565b34801561054757600080fd5b5061035f6004803603604081101561055e57600080fd5b506001600160a01b038135169060200135611521565b34801561058057600080fd5b5061029a611575565b34801561059557600080fd5b506103eb6115c4565b3480156105aa57600080fd5b5061029a600480360360208110156105c157600080fd5b50356001600160a01b03166115ca565b3480156105dd57600080fd5b506103eb600480360360208110156105f457600080fd5b50356001600160a01b0316611677565b34801561061057600080fd5b5061029a6004803603602081101561062757600080fd5b5035611689565b34801561063a57600080fd5b506103eb6116d6565b34801561064f57600080fd5b5061029a6004803603604081101561066657600080fd5b50803590602001356116dc565b34801561067f57600080fd5b506103eb6004803603602081101561069657600080fd5b50356001600160a01b031661172f565b3480156106b257600080fd5b5061029a600480360360608110156106c957600080fd5b506001600160a01b03813516906020810135906040013561174a565b3480156106f157600080fd5b5061029a6004803603602081101561070857600080fd5b50356001600160a01b03166117d8565b34801561072457600080fd5b5061029a6004803603606081101561073b57600080fd5b5080359060208101359060400135611885565b34801561075a57600080fd5b506103eb61192f565b34801561076f57600080fd5b506102b1611957565b34801561078457600080fd5b5061035f6004803603604081101561079b57600080fd5b506001600160a01b0381351690602001356119b7565b3480156107bd57600080fd5b5061035f600480360360408110156107d457600080fd5b506001600160a01b038135169060200135611a25565b3480156107f657600080fd5b506103eb611a39565b34801561080b57600080fd5b506104ca611a3f565b34801561082057600080fd5b506103eb6004803603602081101561083757600080fd5b50356001600160a01b0316611a53565b34801561085357600080fd5b5061029a6004803603602081101561086a57600080fd5b5035611a65565b34801561087d57600080fd5b5061029a6004803603604081101561089457600080fd5b506001600160a01b038135169060200135611b16565b3480156108b657600080fd5b506103eb600480360360208110156108cd57600080fd5b50356001600160a01b0316611b7a565b3480156108e957600080fd5b506104ca611b8c565b3480156108fe57600080fd5b506103eb611b9b565b34801561091357600080fd5b506103eb611ba1565b34801561092857600080fd5b506103eb6004803603604081101561093f57600080fd5b506001600160a01b0381358116916020013516611ba7565b34801561096357600080fd5b506104ca611bd2565b34801561097857600080fd5b506103eb611be1565b34801561098d57600080fd5b506103eb611c11565b3480156109a257600080fd5b506103eb611c1e565b336000818152600f602052604090205460021115610a6c576002600d54816109cf57fe5b0660011415610a1c576109e181611c24565b15610a1c576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6002600d5410610a6c576001600160a01b0381163214610a6c576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b60006003541180610a8a57506010546001600160a01b038281169116145b610ac5576040805162461bcd60e51b8152602060048201526007602482015266085b585c9ad95d60ca1b604482015290519081900360640190fd5b60003411610b03576040805162461bcd60e51b81526020600480830191909152602482015263042cae8d60e31b604482015290519081900360640190fd5b60008311610b44576040805162461bcd60e51b815260206004820152600960248201526810b6b4b72a37b5b2b760b91b604482015290519081900360640190fd5b811580610b515750814211155b610b8c576040805162461bcd60e51b81526020600482015260076024820152662165787069726560c81b604482015290519081900360640190fd5b6004541580610b9d57506004543411155b610bda576040805162461bcd60e51b815260206004820152600960248201526808595d1a131a5b5a5d60ba1b604482015290519081900360640190fd5b601254600090610c0990610bfd6871d75ab9b9205000004763ffffffff611c6016565b9063ffffffff611cc116565b90506000610c1d823463ffffffff611cc116565b731111111111111111111111111111111111111111600090815260136020526000805160206125be83398151915254919250610c8284610c7660028204610c6a878763ffffffff611d0316565b9063ffffffff611c6016565b9063ffffffff611d5c16565b90506000610c96838363ffffffff611cc116565b905060008111610cd9576040805162461bcd60e51b815260206004820152600960248201526810b7baba2a37b5b2b760b91b604482015290519081900360640190fd5b87811015610d185760405162461bcd60e51b81526004018080602001828103825260268152602001806125de6026913960400191505060405180910390fd5b6000600654118015610d3457506005546001600160a01b031615155b15610e6a57600554604080516370a0823160e01b81526001600160a01b038981166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b5051600654909150600090610dd89061271090610c7690859063ffffffff611d0316565b9050600754811015610de957506007545b6001600160a01b0388166000908152601360205260409020548190610e14908563ffffffff611c6016565b1115610e67576040805162461bcd60e51b815260206004820152601a60248201527f216e6565642d6d6f72652d77686974656c6973742d746f6b656e000000000000604482015290519081900360640190fd5b50505b610e897311111111111111111111111111111111111111118783611d9e565b6040805182815234602082015281516001600160a01b038916927ff6f342132c7de5e5a1e99c8efae544c94731f3ff093f5c3c97c6973d9415cdfb928290030190a25050505050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f615780601f10610f3657610100808354040283529160200191610f61565b820191906000526020600020905b815481529060010190602001808311610f4457829003601f168201915b5050505050905090565b6000610f7f610f78611e60565b8484611e64565b5060015b92915050565b6010546001600160a01b03163314610fd1576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600755565b6010546001600160a01b0316331461101e576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b039390931692909217909155600655565b60155490565b60075481565b336000818152600f6020526040902054600116611110576002600e548161107357fe5b06600114156110c05761108581611c24565b156110c0576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6002600e5410611110576001600160a01b0381163214611110576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6000841161114e576040805162461bcd60e51b815260206004820152600660248201526510ba37b5b2b760d11b604482015290519081900360640190fd5b6000831161118d576040805162461bcd60e51b8152602060048201526007602482015266042dad2dc8ae8d60cb1b604482015290519081900360640190fd5b81158061119a5750814211155b6111d5576040805162461bcd60e51b81526020600482015260076024820152662165787069726560c81b604482015290519081900360640190fd5b60006111f2612710610c7660095488611d0390919063ffffffff16565b90506111fe8282611f50565b6000611210868363ffffffff611cc116565b90506000611236601254610bfd476871d75ab9b920500000611c6090919063ffffffff16565b731111111111111111111111111111111111111111600090815260136020526000805160206125be83398151915254919250611278828563ffffffff611c6016565b9050600061129782610c7660028204610c6a888863ffffffff611d0316565b905060006112ab858363ffffffff611cc116565b9050600081116112ec576040805162461bcd60e51b8152602060048201526007602482015266042deeae88ae8d60cb1b604482015290519081900360640190fd5b8981101561132b5760405162461bcd60e51b81526004018080602001828103825260268152602001806125de6026913960400191505060405180910390fd5b61134a8873111111111111111111111111111111111111111188611d9e565b600a54156113d457600061136f612710610c76600a5485611d0390919063ffffffff16565b601254909150611385908263ffffffff611c6016565b6012556001600160a01b0389166108fc6113a5848463ffffffff611cc116565b6040518115909202916000818181858888f193505050501580156113cd573d6000803e3d6000fd5b505061140c565b6040516001600160a01b0389169082156108fc029083906000818181858888f1935050505015801561140a573d6000803e3d6000fd5b505b604080518c81526020810183905281516001600160a01b038b16927fa8ff15eb642b39da3ab82bb74a87b76cc3e1aef2b82b70bc2a35458386db29aa928290030190a25050505050505050505050565b6000611469848484612170565b6114df84611475611e60565b6114da8560405180606001604052806028815260200161250c602891396001600160a01b038a166000908152601460205260408120906114b3611e60565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61236116565b611e64565b5060019392505050565b690472698b413b4320000081565b60065481565b6011546001600160a01b031681565b60025460ff1690565b60045481565b600a5481565b6000610f7f61152e611e60565b846114da856014600061153f611e60565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611c6016565b6010546001600160a01b031633146115bd576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600355565b60035481565b6010546001600160a01b03163314611612576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b038116611655576040805162461bcd60e51b815260206004820152600560248201526410b0b2323960d91b604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205481565b6010546001600160a01b031633146116d1576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600455565b600e5481565b6010546001600160a01b03163314611724576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600d91909155600e55565b6001600160a01b031660009081526013602052604090205490565b6010546001600160a01b03163314611792576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6127118211156117a157600080fd5b6127118111156117b057600080fd5b6001600160a01b039092166000908152600b6020908152604080832093909355600c90522055565b6010546001600160a01b03163314611820576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b038116611863576040805162461bcd60e51b815260206004820152600560248201526410b0b2323960d91b604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633146118cd576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b603c8311156118db57600080fd5b603c8211156118e957600080fd5b601e8111156118f757600080fd5b8181111561190457600080fd5b603c611916838363ffffffff611c6016565b111561192157600080fd5b600892909255600955600a55565b60125460009061195290610bfd6871d75ab9b9205000004763ffffffff611c6016565b905090565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f615780601f10610f3657610100808354040283529160200191610f61565b6000610f7f6119c4611e60565b846114da8560405180606001604052806025815260200161260460259139601460006119ee611e60565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61236116565b6000610f7f611a32611e60565b8484612170565b60095481565b60025461010090046001600160a01b031681565b600f6020526000908152604090205481565b6011546001600160a01b03163314611ab0576040805162461bcd60e51b815260206004820152600960248201526821747265617375727960b81b604482015290519081900360640190fd5b601254811115611abf57600080fd5b601254611ad2908263ffffffff611cc116565b6012556011546040516001600160a01b0390911690819083156108fc029084906000818181858888f19350505050158015611b11573d6000803e3d6000fd5b505050565b6010546001600160a01b03163314611b5e576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b039091166000908152600f6020526040902055565b600c6020526000908152604090205481565b6010546001600160a01b031681565b60085481565b600d5481565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b6005546001600160a01b031681565b73111111111111111111111111111111111111111160005260136020526000805160206125be8339815191525490565b6871d75ab9b92050000081565b60125481565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611c585750808214155b949350505050565b600082820183811015611cba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611cba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612361565b600082611d1257506000610f83565b82820282848281611d1f57fe5b0414611cba5760405162461bcd60e51b81526004018080602001828103825260218152602001806124eb6021913960400191505060405180910390fd5b6000611cba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123f8565b611de1816040518060600160405280602681526020016124c5602691396001600160a01b038616600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038085166000908152601360205260408082209390935590841681522054611e16908263ffffffff611c6016565b6001600160a01b03808416600081815260136020908152604091829020949094558051858152905191939287169260008051602061253483398151915292918290030190a3505050565b3390565b6001600160a01b038316611ea95760405162461bcd60e51b815260040180806020018281038252602481526020018061259a6024913960400191505060405180910390fd5b6001600160a01b038216611eee5760405162461bcd60e51b81526004018080602001828103825260228152602001806124a36022913960400191505060405180910390fd5b6001600160a01b03808416600081815260146020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216611f955760405162461bcd60e51b81526004018080602001828103825260218152602001806125546021913960400191505060405180910390fd5b80611f9f5761216c565b6001600160a01b038216600090815260136020526040902054611fc15761216c565b6001600160a01b0382167311111111111111111111111111111111111111111461216c5761202881604051806060016040528060228152602001612481602291396001600160a01b038516600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038316600081815260136020908152604080832094909455835185815293519193600080516020612534833981519152929081900390910190a373111111111111111111111111111111111111111160005260136020526000805160206125be833981519152546015548110156121545760006120ca6120ba83601554611cc190919063ffffffff16565b610c76848663ffffffff611d0316565b90506120dc828263ffffffff611cc116565b7311111111111111111111111111111111111111116000818152601360209081526000805160206125be83398151915293909355604080518581529051919360008051602061253483398151915292918290030190a361214b81610bfd85601554611cc190919063ffffffff16565b60155550611b11565b601554612167908363ffffffff611cc116565b601555505b5050565b6001600160a01b0383166121b55760405162461bcd60e51b81526004018080602001828103825260258152602001806125756025913960400191505060405180910390fd5b6001600160a01b0382166121fa5760405162461bcd60e51b815260040180806020018281038252602381526020018061245e6023913960400191505060405180910390fd5b61223d816040518060600160405280602681526020016124c5602691396001600160a01b038616600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038085166000908152601360205260408082209390935590841681522054612272908263ffffffff611c6016565b6001600160a01b03808416600081815260136020908152604091829020949094558051858152905191939287169260008051602061253483398151915292918290030190a36001600160a01b0383166000908152600b6020526040902054806122de57506008546122ec565b6127108111156122ec575060005b6001600160a01b0383166000908152600c6020526040902054806123135750600854612321565b612710811115612321575060005b818181111561232d5750805b801561235957600061234b612710610c76878563ffffffff611d0316565b90506123578682611f50565b505b505050505050565b600081848411156123f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b557818101518382015260200161239d565b50505050905090810190601f1680156123e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836124475760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b557818101518382015260200161239d565b50600083858161245357fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373b80c4db41d74a7d9fa7e40985cc7e838aad3e70f26bd87a5ba27862c558955624b697474656e537761703a20494e53554646494349454e545f4f55545055545f414d4f554e5445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158209f02fe762af55ad2d1716063cbaffebb244b86d4b2b16cc1ecde087e6f3492a464736f6c63430005110032

Deployed Bytecode

0x6080604052600436106102725760003560e01c8063683f92871161014f578063c21d74fe116100c1578063d9b697741161007a578063d9b6977414610907578063dd62ed3e1461091c578063eb0ee93414610957578063f1d9f88b1461096c578063fa59e6d414610981578063ff71b4e51461099657610272565b8063c21d74fe14610814578063c83ce00a14610847578063ca392e0e14610871578063cac65b1d146108aa578063cb85ce67146108dd578063d222f1bc146108f257610272565b80638a9118c0116101135780638a9118c01461074e57806395d89b4114610763578063a457c2d714610778578063a9059cbb146107b1578063bf47f715146107ea578063c1b8411a146107ff57610272565b8063683f92871461064357806370a082311461067357806372223c6c146106a65780637cfd312d146106e557806380abb0551461071857610272565b806330d9a62a116101e85780633ad6bd34116101ac5780633ad6bd34146105745780633dae21aa1461058957806342edd8e01461059e5780634a427c0c146105d157806352c0686514610604578063580c85441461062e57610272565b806330d9a62a146104b5578063313ce567146104e6578063327ba06c1461051157806337e2cde914610526578063395093511461053b57610272565b806318160ddd1161023a57806318160ddd146103d65780631efbe895146103fd5780631f181d571461041257806323b872dd1461044857806324c0fb001461048b57806325653eca146104a057610272565b8063057466ea1461027757806306fdde031461029c578063095ea7b3146103265780630c278a8d146103735780631073b3751461039d575b600080fd5b61029a6004803603604081101561028d57600080fd5b50803590602001356109ab565b005b3480156102a857600080fd5b506102b1610ed5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102eb5781810151838201526020016102d3565b50505050905090810190601f1680156103185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033257600080fd5b5061035f6004803603604081101561034957600080fd5b506001600160a01b038135169060200135610f6b565b604080519115158252519081900360200190f35b34801561037f57600080fd5b5061029a6004803603602081101561039657600080fd5b5035610f89565b3480156103a957600080fd5b5061029a600480360360408110156103c057600080fd5b506001600160a01b038135169060200135610fd6565b3480156103e257600080fd5b506103eb611044565b60408051918252519081900360200190f35b34801561040957600080fd5b506103eb61104a565b34801561041e57600080fd5b5061029a6004803603606081101561043557600080fd5b5080359060208101359060400135611050565b34801561045457600080fd5b5061035f6004803603606081101561046b57600080fd5b506001600160a01b0381358116916020810135909116906040013561145c565b34801561049757600080fd5b506103eb6114e9565b3480156104ac57600080fd5b506103eb6114f7565b3480156104c157600080fd5b506104ca6114fd565b604080516001600160a01b039092168252519081900360200190f35b3480156104f257600080fd5b506104fb61150c565b6040805160ff9092168252519081900360200190f35b34801561051d57600080fd5b506103eb611515565b34801561053257600080fd5b506103eb61151b565b34801561054757600080fd5b5061035f6004803603604081101561055e57600080fd5b506001600160a01b038135169060200135611521565b34801561058057600080fd5b5061029a611575565b34801561059557600080fd5b506103eb6115c4565b3480156105aa57600080fd5b5061029a600480360360208110156105c157600080fd5b50356001600160a01b03166115ca565b3480156105dd57600080fd5b506103eb600480360360208110156105f457600080fd5b50356001600160a01b0316611677565b34801561061057600080fd5b5061029a6004803603602081101561062757600080fd5b5035611689565b34801561063a57600080fd5b506103eb6116d6565b34801561064f57600080fd5b5061029a6004803603604081101561066657600080fd5b50803590602001356116dc565b34801561067f57600080fd5b506103eb6004803603602081101561069657600080fd5b50356001600160a01b031661172f565b3480156106b257600080fd5b5061029a600480360360608110156106c957600080fd5b506001600160a01b03813516906020810135906040013561174a565b3480156106f157600080fd5b5061029a6004803603602081101561070857600080fd5b50356001600160a01b03166117d8565b34801561072457600080fd5b5061029a6004803603606081101561073b57600080fd5b5080359060208101359060400135611885565b34801561075a57600080fd5b506103eb61192f565b34801561076f57600080fd5b506102b1611957565b34801561078457600080fd5b5061035f6004803603604081101561079b57600080fd5b506001600160a01b0381351690602001356119b7565b3480156107bd57600080fd5b5061035f600480360360408110156107d457600080fd5b506001600160a01b038135169060200135611a25565b3480156107f657600080fd5b506103eb611a39565b34801561080b57600080fd5b506104ca611a3f565b34801561082057600080fd5b506103eb6004803603602081101561083757600080fd5b50356001600160a01b0316611a53565b34801561085357600080fd5b5061029a6004803603602081101561086a57600080fd5b5035611a65565b34801561087d57600080fd5b5061029a6004803603604081101561089457600080fd5b506001600160a01b038135169060200135611b16565b3480156108b657600080fd5b506103eb600480360360208110156108cd57600080fd5b50356001600160a01b0316611b7a565b3480156108e957600080fd5b506104ca611b8c565b3480156108fe57600080fd5b506103eb611b9b565b34801561091357600080fd5b506103eb611ba1565b34801561092857600080fd5b506103eb6004803603604081101561093f57600080fd5b506001600160a01b0381358116916020013516611ba7565b34801561096357600080fd5b506104ca611bd2565b34801561097857600080fd5b506103eb611be1565b34801561098d57600080fd5b506103eb611c11565b3480156109a257600080fd5b506103eb611c1e565b336000818152600f602052604090205460021115610a6c576002600d54816109cf57fe5b0660011415610a1c576109e181611c24565b15610a1c576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6002600d5410610a6c576001600160a01b0381163214610a6c576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b60006003541180610a8a57506010546001600160a01b038281169116145b610ac5576040805162461bcd60e51b8152602060048201526007602482015266085b585c9ad95d60ca1b604482015290519081900360640190fd5b60003411610b03576040805162461bcd60e51b81526020600480830191909152602482015263042cae8d60e31b604482015290519081900360640190fd5b60008311610b44576040805162461bcd60e51b815260206004820152600960248201526810b6b4b72a37b5b2b760b91b604482015290519081900360640190fd5b811580610b515750814211155b610b8c576040805162461bcd60e51b81526020600482015260076024820152662165787069726560c81b604482015290519081900360640190fd5b6004541580610b9d57506004543411155b610bda576040805162461bcd60e51b815260206004820152600960248201526808595d1a131a5b5a5d60ba1b604482015290519081900360640190fd5b601254600090610c0990610bfd6871d75ab9b9205000004763ffffffff611c6016565b9063ffffffff611cc116565b90506000610c1d823463ffffffff611cc116565b731111111111111111111111111111111111111111600090815260136020526000805160206125be83398151915254919250610c8284610c7660028204610c6a878763ffffffff611d0316565b9063ffffffff611c6016565b9063ffffffff611d5c16565b90506000610c96838363ffffffff611cc116565b905060008111610cd9576040805162461bcd60e51b815260206004820152600960248201526810b7baba2a37b5b2b760b91b604482015290519081900360640190fd5b87811015610d185760405162461bcd60e51b81526004018080602001828103825260268152602001806125de6026913960400191505060405180910390fd5b6000600654118015610d3457506005546001600160a01b031615155b15610e6a57600554604080516370a0823160e01b81526001600160a01b038981166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b5051600654909150600090610dd89061271090610c7690859063ffffffff611d0316565b9050600754811015610de957506007545b6001600160a01b0388166000908152601360205260409020548190610e14908563ffffffff611c6016565b1115610e67576040805162461bcd60e51b815260206004820152601a60248201527f216e6565642d6d6f72652d77686974656c6973742d746f6b656e000000000000604482015290519081900360640190fd5b50505b610e897311111111111111111111111111111111111111118783611d9e565b6040805182815234602082015281516001600160a01b038916927ff6f342132c7de5e5a1e99c8efae544c94731f3ff093f5c3c97c6973d9415cdfb928290030190a25050505050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f615780601f10610f3657610100808354040283529160200191610f61565b820191906000526020600020905b815481529060010190602001808311610f4457829003601f168201915b5050505050905090565b6000610f7f610f78611e60565b8484611e64565b5060015b92915050565b6010546001600160a01b03163314610fd1576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600755565b6010546001600160a01b0316331461101e576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b039390931692909217909155600655565b60155490565b60075481565b336000818152600f6020526040902054600116611110576002600e548161107357fe5b06600114156110c05761108581611c24565b156110c0576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6002600e5410611110576001600160a01b0381163214611110576040805162461bcd60e51b815260206004820152600660248201526510b43ab6b0b760d11b604482015290519081900360640190fd5b6000841161114e576040805162461bcd60e51b815260206004820152600660248201526510ba37b5b2b760d11b604482015290519081900360640190fd5b6000831161118d576040805162461bcd60e51b8152602060048201526007602482015266042dad2dc8ae8d60cb1b604482015290519081900360640190fd5b81158061119a5750814211155b6111d5576040805162461bcd60e51b81526020600482015260076024820152662165787069726560c81b604482015290519081900360640190fd5b60006111f2612710610c7660095488611d0390919063ffffffff16565b90506111fe8282611f50565b6000611210868363ffffffff611cc116565b90506000611236601254610bfd476871d75ab9b920500000611c6090919063ffffffff16565b731111111111111111111111111111111111111111600090815260136020526000805160206125be83398151915254919250611278828563ffffffff611c6016565b9050600061129782610c7660028204610c6a888863ffffffff611d0316565b905060006112ab858363ffffffff611cc116565b9050600081116112ec576040805162461bcd60e51b8152602060048201526007602482015266042deeae88ae8d60cb1b604482015290519081900360640190fd5b8981101561132b5760405162461bcd60e51b81526004018080602001828103825260268152602001806125de6026913960400191505060405180910390fd5b61134a8873111111111111111111111111111111111111111188611d9e565b600a54156113d457600061136f612710610c76600a5485611d0390919063ffffffff16565b601254909150611385908263ffffffff611c6016565b6012556001600160a01b0389166108fc6113a5848463ffffffff611cc116565b6040518115909202916000818181858888f193505050501580156113cd573d6000803e3d6000fd5b505061140c565b6040516001600160a01b0389169082156108fc029083906000818181858888f1935050505015801561140a573d6000803e3d6000fd5b505b604080518c81526020810183905281516001600160a01b038b16927fa8ff15eb642b39da3ab82bb74a87b76cc3e1aef2b82b70bc2a35458386db29aa928290030190a25050505050505050505050565b6000611469848484612170565b6114df84611475611e60565b6114da8560405180606001604052806028815260200161250c602891396001600160a01b038a166000908152601460205260408120906114b3611e60565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61236116565b611e64565b5060019392505050565b690472698b413b4320000081565b60065481565b6011546001600160a01b031681565b60025460ff1690565b60045481565b600a5481565b6000610f7f61152e611e60565b846114da856014600061153f611e60565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611c6016565b6010546001600160a01b031633146115bd576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600355565b60035481565b6010546001600160a01b03163314611612576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b038116611655576040805162461bcd60e51b815260206004820152600560248201526410b0b2323960d91b604482015290519081900360640190fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205481565b6010546001600160a01b031633146116d1576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600455565b600e5481565b6010546001600160a01b03163314611724576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600d91909155600e55565b6001600160a01b031660009081526013602052604090205490565b6010546001600160a01b03163314611792576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6127118211156117a157600080fd5b6127118111156117b057600080fd5b6001600160a01b039092166000908152600b6020908152604080832093909355600c90522055565b6010546001600160a01b03163314611820576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b038116611863576040805162461bcd60e51b815260206004820152600560248201526410b0b2323960d91b604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633146118cd576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b603c8311156118db57600080fd5b603c8211156118e957600080fd5b601e8111156118f757600080fd5b8181111561190457600080fd5b603c611916838363ffffffff611c6016565b111561192157600080fd5b600892909255600955600a55565b60125460009061195290610bfd6871d75ab9b9205000004763ffffffff611c6016565b905090565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f615780601f10610f3657610100808354040283529160200191610f61565b6000610f7f6119c4611e60565b846114da8560405180606001604052806025815260200161260460259139601460006119ee611e60565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61236116565b6000610f7f611a32611e60565b8484612170565b60095481565b60025461010090046001600160a01b031681565b600f6020526000908152604090205481565b6011546001600160a01b03163314611ab0576040805162461bcd60e51b815260206004820152600960248201526821747265617375727960b81b604482015290519081900360640190fd5b601254811115611abf57600080fd5b601254611ad2908263ffffffff611cc116565b6012556011546040516001600160a01b0390911690819083156108fc029084906000818181858888f19350505050158015611b11573d6000803e3d6000fd5b505050565b6010546001600160a01b03163314611b5e576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b039091166000908152600f6020526040902055565b600c6020526000908152604090205481565b6010546001600160a01b031681565b60085481565b600d5481565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b6005546001600160a01b031681565b73111111111111111111111111111111111111111160005260136020526000805160206125be8339815191525490565b6871d75ab9b92050000081565b60125481565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611c585750808214155b949350505050565b600082820183811015611cba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611cba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612361565b600082611d1257506000610f83565b82820282848281611d1f57fe5b0414611cba5760405162461bcd60e51b81526004018080602001828103825260218152602001806124eb6021913960400191505060405180910390fd5b6000611cba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123f8565b611de1816040518060600160405280602681526020016124c5602691396001600160a01b038616600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038085166000908152601360205260408082209390935590841681522054611e16908263ffffffff611c6016565b6001600160a01b03808416600081815260136020908152604091829020949094558051858152905191939287169260008051602061253483398151915292918290030190a3505050565b3390565b6001600160a01b038316611ea95760405162461bcd60e51b815260040180806020018281038252602481526020018061259a6024913960400191505060405180910390fd5b6001600160a01b038216611eee5760405162461bcd60e51b81526004018080602001828103825260228152602001806124a36022913960400191505060405180910390fd5b6001600160a01b03808416600081815260146020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216611f955760405162461bcd60e51b81526004018080602001828103825260218152602001806125546021913960400191505060405180910390fd5b80611f9f5761216c565b6001600160a01b038216600090815260136020526040902054611fc15761216c565b6001600160a01b0382167311111111111111111111111111111111111111111461216c5761202881604051806060016040528060228152602001612481602291396001600160a01b038516600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038316600081815260136020908152604080832094909455835185815293519193600080516020612534833981519152929081900390910190a373111111111111111111111111111111111111111160005260136020526000805160206125be833981519152546015548110156121545760006120ca6120ba83601554611cc190919063ffffffff16565b610c76848663ffffffff611d0316565b90506120dc828263ffffffff611cc116565b7311111111111111111111111111111111111111116000818152601360209081526000805160206125be83398151915293909355604080518581529051919360008051602061253483398151915292918290030190a361214b81610bfd85601554611cc190919063ffffffff16565b60155550611b11565b601554612167908363ffffffff611cc116565b601555505b5050565b6001600160a01b0383166121b55760405162461bcd60e51b81526004018080602001828103825260258152602001806125756025913960400191505060405180910390fd5b6001600160a01b0382166121fa5760405162461bcd60e51b815260040180806020018281038252602381526020018061245e6023913960400191505060405180910390fd5b61223d816040518060600160405280602681526020016124c5602691396001600160a01b038616600090815260136020526040902054919063ffffffff61236116565b6001600160a01b038085166000908152601360205260408082209390935590841681522054612272908263ffffffff611c6016565b6001600160a01b03808416600081815260136020908152604091829020949094558051858152905191939287169260008051602061253483398151915292918290030190a36001600160a01b0383166000908152600b6020526040902054806122de57506008546122ec565b6127108111156122ec575060005b6001600160a01b0383166000908152600c6020526040902054806123135750600854612321565b612710811115612321575060005b818181111561232d5750805b801561235957600061234b612710610c76878563ffffffff611d0316565b90506123578682611f50565b505b505050505050565b600081848411156123f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b557818101518382015260200161239d565b50505050905090810190601f1680156123e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836124475760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b557818101518382015260200161239d565b50600083858161245357fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373b80c4db41d74a7d9fa7e40985cc7e838aad3e70f26bd87a5ba27862c558955624b697474656e537761703a20494e53554646494349454e545f4f55545055545f414d4f554e5445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158209f02fe762af55ad2d1716063cbaffebb244b86d4b2b16cc1ecde087e6f3492a464736f6c63430005110032

Deployed Bytecode Sourcemap

2555:16733:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11816:2363;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11816:2363:0;;;;;;;:::i;:::-;;2019:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2019:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2019:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6579:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6579:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6579:149:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18607:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18607:167:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18607:167:0;;:::i;18332:263::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18332:263:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18332:263:0;;;;;;;;:::i;6074:88::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6074:88:0;;;:::i;:::-;;;;;;;;;;;;;;;;3296:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3296:55:0;;;:::i;14191:2087::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14191:2087:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14191:2087:0;;;;;;;;;;;;:::i;6734:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6734:301:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6734:301:0;;;;;;;;;;;;;;;;;:::i;2738:62::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:62:0;;;:::i;3169:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3169:50:0;;;:::i;5209:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5209:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;5209:27:0;;;;;;;;;;;;;;2201:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2201:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3010:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3010:52:0;;;:::i;3556:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3556:31:0;;;:::i;7041:207::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7041:207:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7041:207:0;;;;;;;;:::i;16639:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16639:87:0;;;:::i;2941:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:33:0;;;:::i;16482:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16482:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16482:145:0;-1:-1:-1;;;;;16482:145:0;;:::i;3642:52::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3642:52:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3642:52:0;-1:-1:-1;;;;;3642:52:0;;:::i;18180:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18180:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18180:144:0;;:::i;3950:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3950:39:0;;;:::i;17845:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17845:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17845:185:0;;;;;;;:::i;6168:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6168:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6168:107:0;-1:-1:-1;;;;;6168:107:0;;:::i;17375:462::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17375:462:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17375:462:0;;;;;;;;;;;;;:::i;16734:148::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16734:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16734:148:0;-1:-1:-1;;;;;16734:148:0;;:::i;16898:465::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16898:465:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16898:465:0;;;;;;;;;;;;:::i;11399:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11399:145:0;;;:::i;2108:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2108:87:0;;;:::i;7254:258::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7254:258:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7254:258:0;;;;;;;;:::i;6281:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6281:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6281:155:0;;;;;;;;:::i;3521:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3521:28:0;;;:::i;2597:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2597:68:0;;;:::i;4051:51::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4051:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4051:51:0;-1:-1:-1;;;;;4051:51:0;;:::i;18997:288::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18997:288:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18997:288:0;;:::i;18036:132::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18036:132:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18036:132:0;;;;;;;;:::i;3701:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3701:50:0;-1:-1:-1;;;;;3701:50:0;;:::i;5174:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5174:22:0;;;:::i;3482:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3482:32:0;;;:::i;3856:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3856:38:0;;;:::i;6442:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6442:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6442:131:0;;;;;;;;;;:::i;3112:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3112:50:0;;;:::i;11552:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11552:107:0;;;:::i;2672:59::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2672:59:0;;;:::i;5243:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5243:32:0;;;:::i;11816:2363::-;11923:10;11908:12;11950:24;;;:18;:24;;;;;;11977:1;-1:-1:-1;11946:382:0;;;12086:1;12061:22;;:26;;;;;;12091:1;12061:31;12057:73;;;12103:16;12114:4;12103:10;:16::i;:::-;12102:17;12094:36;;;;;-1:-1:-1;;;12094:36:0;;;;;;;;;;;;-1:-1:-1;;;12094:36:0;;;;;;;;;;;;;;;12224:1;12198:22;;:27;12194:69;;-1:-1:-1;;;;;12235:17:0;;12243:9;12235:17;12227:36;;;;;-1:-1:-1;;;12227:36:0;;;;;;;;;;;;-1:-1:-1;;;12227:36:0;;;;;;;;;;;;;;;12370:1;12350:17;;:21;12349:44;;;-1:-1:-1;12385:7:0;;-1:-1:-1;;;;;12377:15:0;;;12385:7;;12377:15;12349:44;12340:65;;;;;-1:-1:-1;;;12340:65:0;;;;;;;;;;;;-1:-1:-1;;;12340:65:0;;;;;;;;;;;;;;;12485:1;12473:9;:13;12464:31;;;;;-1:-1:-1;;;12464:31:0;;;;;;;;;;;;;;;-1:-1:-1;;;12464:31:0;;;;;;;;;;;;;;;12529:1;12515:11;:15;12506:38;;;;;-1:-1:-1;;;12506:38:0;;;;;;;;;;;;-1:-1:-1;;;12506:38:0;;;;;;;;;;;;;;;12565:20;;;12564:62;;;12610:15;12591;:34;;12564:62;12555:83;;;;;-1:-1:-1;;;12555:83:0;;;;;;;;;;;;-1:-1:-1;;;12555:83:0;;;;;;;;;;;;;;;12659:20;;:25;;12658:66;;;12703:20;;12690:9;:33;;12658:66;12649:89;;;;;-1:-1:-1;;;12649:89:0;;;;;;;;;;;;-1:-1:-1;;;12649:89:0;;;;;;;;;;;;;;;12930:16;;12859:18;;12880:67;;:45;2714:17;12903:21;12880:45;:22;:45;:::i;:::-;:49;:67;:49;:67;:::i;:::-;12859:88;-1:-1:-1;12958:18:0;12979:28;12859:88;12997:9;12979:28;:17;:28;:::i;:::-;5119:42;13020:20;13043:27;;;:9;:27;;-1:-1:-1;;;;;;;;;;;13043:27:0;12958:49;;-1:-1:-1;13104:78:0;13168:13;13105:57;13160:1;13168:13;13144:17;13105:34;:13;13123:15;13105:34;:17;:34;:::i;:::-;:38;:57;:38;:57;:::i;:::-;13104:63;:78;:63;:78;:::i;:::-;13081:101;-1:-1:-1;13203:16:0;13222:36;:15;13081:101;13222:36;:19;:36;:::i;:::-;13203:55;;13292:1;13278:11;:15;13269:38;;;;;-1:-1:-1;;;13269:38:0;;;;;;;;;;;;-1:-1:-1;;;13269:38:0;;;;;;;;;;;;;;;13342:11;13327;:26;;13318:78;;;;-1:-1:-1;;;13318:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13450:1;13422:25;;:29;13421:73;;;;-1:-1:-1;13457:22:0;;-1:-1:-1;;;;;13457:22:0;:36;;13421:73;13417:531;;;13553:22;;13546:46;;;-1:-1:-1;;;13546:46:0;;-1:-1:-1;;;;;13546:46:0;;;;;;;;;13521:22;;13553;;;;;13546:40;;:46;;;;;;;;;;;;;;;13553:22;13546:46;;;5:2:-1;;;;30:1;27;20:12;5:2;13546:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13546:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13546:46:0;13645:25;;13546:46;;-1:-1:-1;13607:13:0;;13623:59;;13676:5;;13623:48;;13546:46;;13623:48;:21;:48;:::i;:59::-;13607:75;;13726:25;;13715:8;:36;13711:113;;;-1:-1:-1;13783:25:0;;13711:113;-1:-1:-1;;;;;13861:15:0;;;;;;:9;:15;;;;;;13897:8;;13861:32;;13881:11;13861:32;:19;:32;:::i;:::-;:44;;13852:84;;;;;-1:-1:-1;;;13852:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13417:531;;;13960:55;5119:42;13997:4;14003:11;13960:18;:55::i;:::-;14133:38;;;;;;14161:9;14133:38;;;;;;-1:-1:-1;;;;;14133:38:0;;;;;;;;;;;11816:2363;;;;;;;;:::o;2019:83::-;2089:5;2082:12;;;;;;;;-1:-1:-1;;2082:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:13;;2082:12;;2089:5;;2082:12;;2089:5;2082:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2019:83;:::o;6579:149::-;6642:4;6659:39;6668:12;:10;:12::i;:::-;6682:7;6691:6;6659:8;:39::i;:::-;-1:-1:-1;6716:4:0;6579:149;;;;;:::o;18607:167::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;18709:25;:57;18607:167::o;18332:263::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;18468:22;:51;;-1:-1:-1;;;;;;18468:51:0;-1:-1:-1;;;;;18468:51:0;;;;;;;;;;;18530:25;:57;18332:263::o;6074:88::-;6142:12;;6074:88;:::o;3296:55::-;;;;:::o;14191:2087::-;14312:10;14289:20;14339:24;;;:18;:24;;;;;;:28;;14335:389;;14481:1;14455:23;;:27;;;;;;14486:1;14455:32;14451:74;;;14498:16;14509:4;14498:10;:16::i;:::-;14497:17;14489:36;;;;;-1:-1:-1;;;14489:36:0;;;;;;;;;;;;-1:-1:-1;;;14489:36:0;;;;;;;;;;;;;;;14620:1;14593:23;;:28;14589:70;;-1:-1:-1;;;;;14631:17:0;;14639:9;14631:17;14623:36;;;;;-1:-1:-1;;;14623:36:0;;;;;;;;;;;;-1:-1:-1;;;14623:36:0;;;;;;;;;;;;;;;14756:1;14745:8;:12;14736:32;;;;;-1:-1:-1;;;14736:32:0;;;;;;;;;;;;-1:-1:-1;;;14736:32:0;;;;;;;;;;;;;;;14800:1;14788:9;:13;14779:34;;;;;-1:-1:-1;;;14779:34:0;;;;;;;;;;;;-1:-1:-1;;;14779:34:0;;;;;;;;;;;;;;;14834:20;;;14833:62;;;14879:15;14860;:34;;14833:62;14824:83;;;;;-1:-1:-1;;;14824:83:0;;;;;;;;;;;;-1:-1:-1;;;14824:83:0;;;;;;;;;;;;;;;14928:12;14943:36;14973:5;14943:25;14956:11;;14943:8;:12;;:25;;;;:::i;:36::-;14928:51;;14990:20;14996:4;15002:7;14990:5;:20::i;:::-;15021:22;15046:21;:8;15059:7;15046:21;:12;:21;:::i;:::-;15021:46;;15172:18;15193:67;15243:16;;15193:45;15216:21;2714:17;15193:22;;:45;;;;:::i;:67::-;5119:42;15271:20;15294:27;;;:9;:27;;-1:-1:-1;;;;;;;;;;;15294:27:0;15172:88;;-1:-1:-1;15357:38:0;15294:27;15377:17;15357:38;:19;:38;:::i;:::-;15334:61;-1:-1:-1;15406:18:0;15427:82;15334:61;15428:59;15485:1;15334:61;15467:19;15428:34;:13;15446:15;15428:34;:17;:34;:::i;15427:82::-;15406:103;-1:-1:-1;15530:14:0;15547:32;:13;15406:103;15547:32;:17;:32;:::i;:::-;15530:49;;15611:1;15599:9;:13;15590:34;;;;;-1:-1:-1;;;15590:34:0;;;;;;;;;;;;-1:-1:-1;;;15590:34:0;;;;;;;;;;;;;;;15657:9;15644;:22;;15635:74;;;;-1:-1:-1;;;15635:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15722:61;15741:4;5119:42;15765:17;15722:18;:61::i;:::-;15892:15;;:19;15888:321;;15938:16;15957:41;15992:5;15957:30;15971:15;;15957:9;:13;;:30;;;;:::i;:41::-;16032:16;;15938:60;;-1:-1:-1;16032:33:0;;15938:60;16032:33;:20;:33;:::i;:::-;16013:16;:52;-1:-1:-1;;;;;16080:13:0;;:41;16094:26;:9;16108:11;16094:26;:13;:26;:::i;:::-;16080:41;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16080:41:0;15888:321;;;;16173:24;;-1:-1:-1;;;;;16173:13:0;;;:24;;;;;16187:9;;16173:24;;;;16187:9;16173:13;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16173:24:0;15888:321;16234:36;;;;;;;;;;;;;;-1:-1:-1;;;;;16234:36:0;;;;;;;;;;;14191:2087;;;;;;;;;;;:::o;6734:301::-;6820:4;6837:36;6847:6;6855:9;6866:6;6837:9;:36::i;:::-;6884:121;6893:6;6901:12;:10;:12::i;:::-;6915:89;6953:6;6915:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6915:19:0;;;;;;:11;:19;;;;;;6935:12;:10;:12::i;:::-;-1:-1:-1;;;;;6915:33:0;;;;;;;;;;;;-1:-1:-1;6915:33:0;;;:89;;:37;:89;:::i;:::-;6884:8;:121::i;:::-;-1:-1:-1;7023:4:0;6734:301;;;;;:::o;2738:62::-;2782:18;2738:62;:::o;3169:50::-;;;;:::o;5209:27::-;;;-1:-1:-1;;;;;5209:27:0;;:::o;2201:83::-;2267:9;;;;2201:83;:::o;3010:52::-;;;;:::o;3556:31::-;;;;:::o;7041:207::-;7118:4;7135:83;7144:12;:10;:12::i;:::-;7158:7;7167:50;7206:10;7167:11;:25;7179:12;:10;:12::i;:::-;-1:-1:-1;;;;;7167:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;7167:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;16639:87::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;16717:1;16697:17;:21;16639:87::o;2941:33::-;;;;:::o;16482:145::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16563:21:0;;16555:39;;;;;-1:-1:-1;;;16555:39:0;;;;;;;;;;;;-1:-1:-1;;;16555:39:0;;;;;;;;;;;;;;;16602:7;:17;;-1:-1:-1;;;;;;16602:17:0;-1:-1:-1;;;;;16602:17:0;;;;;;;;;;16482:145::o;3642:52::-;;;;;;;;;;;;;:::o;18180:144::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;18269:20;:47;18180:144::o;3950:39::-;;;;:::o;17845:185::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;17943:22;:33;;;;17987:23;:35;17845:185::o;6168:107::-;-1:-1:-1;;;;;6249:18:0;6225:4;6249:18;;;:9;:18;;;;;;;6168:107::o;17375:462::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;17657:5;17635:18;:27;;17626:37;;;;;;17703:5;17683:16;:25;;17674:35;;;;;;-1:-1:-1;;;;;17730:25:0;;;;;;;:19;:25;;;;;;;;:46;;;;17787:17;:23;;;:42;17375:462::o;16734:148::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16813:21:0;;16805:39;;;;;-1:-1:-1;;;16805:39:0;;;;;;;;;;;;-1:-1:-1;;;16805:39:0;;;;;;;;;;;;;;;16852:12;:22;;-1:-1:-1;;;;;;16852:22:0;-1:-1:-1;;;;;16852:22:0;;;;;;;;;;16734:148::o;16898:465::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;17037:2;17019:14;:20;;17010:30;;;;;;17074:2;17060:10;:16;;17051:26;;;;;;17115:2;17097:14;:20;;17088:30;;;;;;17156:10;17138:14;:28;;17129:38;;;;;;17221:2;17187:30;:10;17202:14;17187:30;:14;:30;:::i;:::-;:36;;17178:46;;;;;;17245:15;:32;;;;17288:11;:24;17323:15;:32;16898:465::o;11399:145::-;11519:16;;11445:4;;11469:67;;:45;2714:17;11492:21;11469:45;:22;:45;:::i;:67::-;11462:74;;11399:145;:::o;2108:87::-;2180:7;2173:14;;;;;;;;-1:-1:-1;;2173:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2147:13;;2173:14;;2180:7;;2173:14;;2180:7;2173:14;;;;;;;;;;;;;;;;;;;;;;;;7254:258;7336:4;7353:129;7362:12;:10;:12::i;:::-;7376:7;7385:96;7424:15;7385:96;;;;;;;;;;;;;;;;;:11;:25;7397:12;:10;:12::i;:::-;-1:-1:-1;;;;;7385:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;7385:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;6281:155::-;6347:4;6364:42;6374:12;:10;:12::i;:::-;6388:9;6399:6;6364:9;:42::i;3521:28::-;;;;:::o;2597:68::-;;;;;;-1:-1:-1;;;;;2597:68:0;;:::o;4051:51::-;;;;;;;;;;;;;:::o;18997:288::-;18938:12;;-1:-1:-1;;;;;18938:12:0;18924:10;:26;18916:48;;;;;-1:-1:-1;;;18916:48:0;;;;;;;;;;;;-1:-1:-1;;;18916:48:0;;;;;;;;;;;;;;;19082:16;;19075:3;:23;;19067:32;;;;;;19131:16;;:25;;19152:3;19131:25;:20;:25;:::i;:::-;19112:16;:44;19225:12;;19250:27;;-1:-1:-1;;;;;19225:12:0;;;;;;19250:27;;;;;19273:3;;19177:29;19250:27;19177:29;19250:27;19273:3;19225:12;19250:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19250:27:0;18972:1;18997:288;:::o;18036:132::-;16437:7;;-1:-1:-1;;;;;16437:7:0;16423:10;:21;16415:38;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;16415:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18128:24:0;;;;;;;:18;:24;;;;;:32;18036:132::o;3701:50::-;;;;;;;;;;;;;:::o;5174:22::-;;;-1:-1:-1;;;;;5174:22:0;;:::o;3482:32::-;;;;:::o;3856:38::-;;;;:::o;6442:131::-;-1:-1:-1;;;;;6538:18:0;;;6514:4;6538:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6442:131::o;3112:50::-;;;-1:-1:-1;;;;;3112:50:0;;:::o;11552:107::-;5119:42;11600:4;11624:27;:9;:27;;-1:-1:-1;;;;;;;;;;;11624:27:0;11552:107;:::o;2672:59::-;2714:17;2672:59;:::o;5243:32::-;;;;:::o;4177:810::-;4237:4;4896:20;;4739:66;4936:15;;;;;:42;;;4967:11;4955:8;:23;;4936:42;4928:51;4177:810;-1:-1:-1;;;;4177:810:0:o;608:169::-;660:4;686:5;;;710:6;;;;702:46;;;;;-1:-1:-1;;;702:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;768:1;608:169;-1:-1:-1;;;608:169:0:o;783:127::-;835:4;859:43;863:1;866;859:43;;;;;;;;;;;;;;;;;:3;:43::i;1102:238::-;1154:4;1175:6;1171:47;;-1:-1:-1;1205:1:0;1198:8;;1171:47;1239:5;;;1243:1;1239;:5;:1;1263:5;;;;;:10;1255:56;;;;-1:-1:-1;;;1255:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:123;1398:4;1422:39;1426:1;1429;1422:39;;;;;;;;;;;;;;;;;:3;:39::i;8903:322::-;9019:71;9041:6;9019:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9019:17:0;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;8999:17:0;;;;;;;:9;:17;;;;;;:91;;;;9134:20;;;;;;;:32;;9159:6;9134:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;9111:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;9182:35;;;;;;;9111:20;;9182:35;;;;-1:-1:-1;;;;;;;;;;;9182:35:0;;;;;;;;8903:322;;;:::o;5645:98::-;5725:10;5645:98;:::o;10960:335::-;-1:-1:-1;;;;;11051:19:0;;11043:68;;;;-1:-1:-1;;;11043:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11130:21:0;;11122:68;;;;-1:-1:-1;;;11122:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11203:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11255:32;;;;;;;;;;;;;;;;;10960:335;;;:::o;9546:1408::-;-1:-1:-1;;;;;9619:21:0;;9611:67;;;;-1:-1:-1;;;9611:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9703:11;9699:24;;9716:7;;9699:24;-1:-1:-1;;;;;9737:18:0;;;;;;:9;:18;;;;;;9733:36;;9762:7;;9733:36;-1:-1:-1;;;;;9785:27:0;;5119:42;9785:27;9781:1166;;9852:68;9875:6;9852:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9852:18:0;;;;;;:9;:18;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;9831:18:0;;;;;;:9;:18;;;;;;;;:89;;;;9940:37;;;;;;;9831:18;;-1:-1:-1;;;;;;;;;;;9940:37:0;;;;;;;;;;5119:42;10371:17;10391:27;:9;:27;;-1:-1:-1;;;;;;;;;;;10391:27:0;10451:12;;:27;-1:-1:-1;10447:489:0;;;10523:14;10540:60;10569:30;10586:12;10569;;:16;;:30;;;;:::i;:::-;10540:24;:12;10557:6;10540:24;:16;:24;:::i;:60::-;10523:77;-1:-1:-1;10649:27:0;:12;10523:77;10649:27;:16;:27;:::i;:::-;5119:42;10619:27;;;;:9;:27;;;;-1:-1:-1;;;;;;;;;;;10619:57:0;;;;:27;10700:49;;;;;;;10619:27;;-1:-1:-1;;;;;;;;;;;10700:49:0;;;;;;;;10801:39;10830:9;10801:24;10818:6;10801:12;;:16;;:24;;;;:::i;:39::-;10786:12;:54;-1:-1:-1;10447:489:0;;;10896:12;;:24;;10913:6;10896:24;:16;:24;:::i;:::-;10881:12;:39;9781:1166;;9546:1408;;:::o;7518:1379::-;-1:-1:-1;;;;;7613:20:0;;7605:70;;;;-1:-1:-1;;;7605:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7694:23:0;;7686:71;;;;-1:-1:-1;;;7686:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7790;7812:6;7790:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7790:17:0;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;7770:17:0;;;;;;;:9;:17;;;;;;:91;;;;7905:20;;;;;;;:32;;7930:6;7905:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;7882:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;7953:35;;;;;;;7882:20;;7953:35;;;;-1:-1:-1;;;;;;;;;;;7953:35:0;;;;;;;;-1:-1:-1;;;;;8247:27:0;;8229:15;8247:27;;;:19;:27;;;;;;8289:15;8285:129;;-1:-1:-1;8332:15:0;;8285:129;;;8380:5;8367:10;:18;8363:51;;;-1:-1:-1;8413:1:0;8363:51;-1:-1:-1;;;;;8443:28:0;;8427:13;8443:28;;;:17;:28;;;;;;8486:13;8482:121;;-1:-1:-1;8525:15:0;;8482:121;;;8571:5;8560:8;:16;8556:47;;;-1:-1:-1;8602:1:0;8556:47;8630:10;8693:17;;;8689:53;;;-1:-1:-1;8734:8:0;8689:53;8767:10;;8763:127;;8794:12;8809:29;8832:5;8809:18;:6;8820;8809:18;:10;:18;:::i;:29::-;8794:44;;8853:25;8859:9;8870:7;8853:5;:25::i;:::-;8763:127;;7518:1379;;;;;;:::o;916:180::-;996:4;1029:12;1021:6;;;;1013:29;;;;-1:-1:-1;;;1013:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1013:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1062:5:0;;;916:180::o;1475:246::-;1555:4;1654:12;1647:5;1639:28;;;;-1:-1:-1;;;1639:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1639:28:0;;1678:6;1691:1;1687;:5;;;;;;;1475:246;-1:-1:-1;;;;;1475:246:0:o

Swarm Source

bzzr://9f02fe762af55ad2d1716063cbaffebb244b86d4b2b16cc1ecde087e6f3492a4
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.