ETH Price: $2,974.46 (+2.54%)
Gas: 1 Gwei

Token

XELON (XELON)
 

Overview

Max Total Supply

100,000,000 XELON

Holders

652

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
saucysaucier.eth
Balance
0.585416023908028546 XELON

Value
$0.00
0xc2ba77069899a2409440CF3Fe9fd246E1f7b75fA
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:
XELON

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-06
*/

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

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 pure returns (address);

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

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

    function 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 IUniswapRouter02 is IUniswapV2Router01 {

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


contract XELON is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

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

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;


    uint256 public _totalTaxIfBuying = 0;
    uint256 public _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapRouter02 public uniswapV2Router;
    address public uniswapPair;

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

    bool private tradingOpen;
    bool private swapEnabled = false;
    uint256 firstBlock;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

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

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


    constructor () payable {

        IUniswapRouter02 _uniswapV2Router = IUniswapRouter02(_router);
        _name = "XELON";
        _symbol = "XELON";
        _decimals = 18;
        _owner = 0xAb227340D4FA3f548fbdc0169F7107cb78019614;
        _totalSupply = 100000000  * 10 ** _decimals;
        marketingWalletAddress = payable(0xAb227340D4FA3f548fbdc0169F7107cb78019614);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[marketingWalletAddress] = true;

        _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 minimumTokBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokBeforeSwap;
    }

    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(address newLimit) external onlyOwner() {
        uniswapV2Router = IUniswapRouter02(newLimit);
        swapAndLiquifyEnabled = true;
    }


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

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

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

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
                                         amount : takeFee(sender, recipient, amount);


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

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

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


    function swapAndLiquify(uint256 tAmount,address sender) private lockTheSwap {

        // swap token -> eth
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = sender;
        path[2] = uniswapV2Router.WETH();
        
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        tAmount,
        0, // accept any amount of ETH
        path,
        address(this), // The contract
        block.timestamp
        );

        uint256 amountReceived = address(this).balance;

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

    }


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

        uint256 feeAmount = 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(0)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"SwapETHForTokens","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":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLimit","type":"address"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060400160405280600581526020017f58454c4f4e0000000000000000000000000000000000000000000000000000008152506001908051906020019062000170929190620005e2565b506040518060400160405280600581526020017f58454c4f4e00000000000000000000000000000000000000000000000000000081525060029080519060200190620001be929190620005e2565b506012600360006101000a81548160ff021916908360ff16021790555073ab227340d4fa3f548fbdc0169f7107cb780196146000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a6200024d91906200082c565b6305f5e1006200025e91906200087d565b600b8190555073ab227340d4fa3f548fbdc0169f7107cb78019614600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620005d39190620008ef565b60405180910390a35062000970565b828054620005f0906200093b565b90600052602060002090601f01602090048101928262000614576000855562000660565b82601f106200062f57805160ff191683800117855562000660565b8280016001018555821562000660579182015b828111156200065f57825182559160200191906001019062000642565b5b5090506200066f919062000673565b5090565b5b808211156200068e57600081600090555060010162000674565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200072057808604811115620006f857620006f762000692565b5b6001851615620007085780820291505b80810290506200071885620006c1565b9450620006d8565b94509492505050565b6000826200073b57600190506200080e565b816200074b57600090506200080e565b81600181146200076457600281146200076f57620007a5565b60019150506200080e565b60ff84111562000784576200078362000692565b5b8360020a9150848211156200079e576200079d62000692565b5b506200080e565b5060208310610133831016604e8410600b8410161715620007df5782820a905083811115620007d957620007d862000692565b5b6200080e565b620007ee8484846001620006ce565b9250905081840481111562000808576200080762000692565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008398262000815565b915062000846836200081f565b9250620008757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000729565b905092915050565b60006200088a8262000815565b9150620008978362000815565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008d357620008d262000692565b5b828202905092915050565b620008e98162000815565b82525050565b6000602082019050620009066000830184620008de565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095457607f821691505b6020821081036200096a57620009696200090c565b5b50919050565b612dbc80620009806000396000f3fe6080604052600436106101bb5760003560e01c806385e22427116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b806395d89b41116100c657806395d89b41146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b806385e224271461048d5780638da5cb5b146104b8578063914eb66a146104e3576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e9919061216b565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612226565b610797565b6040516102269190612281565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122fb565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c9190612325565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612340565b6107e5565b6040516102b99190612281565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a2565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123d9565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612226565b6108fc565b60405161034c9190612281565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123f4565b6109af565b6040516103899190612281565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612281565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123f4565b6109e2565b6040516103f19190612281565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c9190612325565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123f4565b610a0a565b6040516104599190612325565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b6040516104849190612325565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af9190612325565b60405180910390f35b3480156104c457600080fd5b506104cd610a63565b6040516104da91906123a2565b60405180910390f35b3480156104ef57600080fd5b506104f8610a8c565b005b34801561050657600080fd5b5061050f610bdf565b60405161051c919061216b565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612226565b610c71565b6040516105599190612281565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612226565b610d3e565b6040516105969190612281565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a2565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a2565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612442565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612281565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d919061245d565b610de0565b60405161067f9190612325565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123f4565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d39190612325565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123f4565b610f61565b005b606060018054610714906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124cc565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f3565b506108b4846107ff611122565b6108af85604051806060016040528060288152602001612d3a60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611122565b846109a0856006600061091a611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b6000600c54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a94611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bee906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a906124cc565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610d34610c7e611122565b84610d2f85604051806060016040528060258152602001612d626025913960066000610ca8611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d52610d4b611122565b84846112f3565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612549565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061266d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126ff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e69190612325565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612791565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612823565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128b5565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b600061144730610a0a565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c9190612325565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c1919061216b565b60405180910390fd5b50600083856117d99190612904565b9050809150509392505050565b60008082846117f59190612938565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129da565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a049190612325565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129fa565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a94612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae3612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a6d565b81600281518110611bc357611bc2612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b93565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef09190612325565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bed565b9050828482611f909190612c76565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612d19565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad919061216b565b60405180910390fd5b50600083856120c59190612c76565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b8381111561211b576000848401525b50505050565b6000601f19601f8301169050919050565b600061213d826120d2565b61214781856120dd565b93506121578185602086016120ee565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6000819050919050565b60006122c16122bc6122b784612192565b61229c565b612192565b9050919050565b60006122d3826122a6565b9050919050565b60006122e5826122c8565b9050919050565b6122f5816122da565b82525050565b600060208201905061231060008301846122ec565b92915050565b61231f816121f0565b82525050565b600060208201905061233a6000830184612316565b92915050565b6000806000606084860312156123595761235861218d565b5b6000612367868287016121db565b9350506020612378868287016121db565b925050604061238986828701612211565b9150509250925092565b61239c816121b2565b82525050565b60006020820190506123b76000830184612393565b92915050565b600060ff82169050919050565b6123d3816123bd565b82525050565b60006020820190506123ee60008301846123ca565b92915050565b60006020828403121561240a5761240961218d565b5b6000612418848285016121db565b91505092915050565b600061242c82612192565b9050919050565b61243c81612421565b82525050565b60006020820190506124576000830184612433565b92915050565b600080604083850312156124745761247361218d565b5b6000612482858286016121db565b9250506020612493858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124e457607f821691505b6020821081036124f7576124f661249d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125336020836120dd565b915061253e826124fd565b602082019050919050565b6000602082019050818103600083015261256281612526565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c56026836120dd565b91506125d082612569565b604082019050919050565b600060208201905081810360008301526125f4816125b8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126576024836120dd565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e96022836120dd565b91506126f48261268d565b604082019050919050565b60006020820190508181036000830152612718816126dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061277b6025836120dd565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061280d6023836120dd565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061289f6029836120dd565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061290f826121f0565b915061291a836121f0565b92508282101561292d5761292c6128d5565b5b828203905092915050565b6000612943826121f0565b915061294e836121f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612983576129826128d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129c4601b836120dd565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a67816121c4565b92915050565b600060208284031215612a8357612a8261218d565b5b6000612a9184828501612a58565b91505092915050565b6000819050919050565b6000612abf612aba612ab584612a9a565b61229c565b6121f0565b9050919050565b612acf81612aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0a816121b2565b82525050565b6000612b1c8383612b01565b60208301905092915050565b6000602082019050919050565b6000612b4082612ad5565b612b4a8185612ae0565b9350612b5583612af1565b8060005b83811015612b86578151612b6d8882612b10565b9750612b7883612b28565b925050600181019050612b59565b5085935050505092915050565b600060a082019050612ba86000830188612316565b612bb56020830187612ac6565b8181036040830152612bc78186612b35565b9050612bd66060830185612393565b612be36080830184612316565b9695505050505050565b6000612bf8826121f0565b9150612c03836121f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3c57612c3b6128d5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c81826121f0565b9150612c8c836121f0565b925082612c9c57612c9b612c47565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d036021836120dd565b9150612d0e82612ca7565b604082019050919050565b60006020820190508181036000830152612d3281612cf6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eef63d531c2c08b9e0faf7f16030e7bb2e465a2278277835ee92a8e08643fd5164736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806385e22427116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b806395d89b41116100c657806395d89b41146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b806385e224271461048d5780638da5cb5b146104b8578063914eb66a146104e3576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e9919061216b565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612226565b610797565b6040516102269190612281565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122fb565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c9190612325565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612340565b6107e5565b6040516102b99190612281565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a2565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123d9565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612226565b6108fc565b60405161034c9190612281565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123f4565b6109af565b6040516103899190612281565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612281565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123f4565b6109e2565b6040516103f19190612281565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c9190612325565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123f4565b610a0a565b6040516104599190612325565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b6040516104849190612325565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af9190612325565b60405180910390f35b3480156104c457600080fd5b506104cd610a63565b6040516104da91906123a2565b60405180910390f35b3480156104ef57600080fd5b506104f8610a8c565b005b34801561050657600080fd5b5061050f610bdf565b60405161051c919061216b565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612226565b610c71565b6040516105599190612281565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612226565b610d3e565b6040516105969190612281565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a2565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a2565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612442565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612281565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d919061245d565b610de0565b60405161067f9190612325565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123f4565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d39190612325565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123f4565b610f61565b005b606060018054610714906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124cc565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f3565b506108b4846107ff611122565b6108af85604051806060016040528060288152602001612d3a60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611122565b846109a0856006600061091a611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b6000600c54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a94611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bee906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a906124cc565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610d34610c7e611122565b84610d2f85604051806060016040528060258152602001612d626025913960066000610ca8611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d52610d4b611122565b84846112f3565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612549565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061266d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126ff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e69190612325565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612791565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612823565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128b5565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b600061144730610a0a565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c9190612325565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c1919061216b565b60405180910390fd5b50600083856117d99190612904565b9050809150509392505050565b60008082846117f59190612938565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129da565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a049190612325565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129fa565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a94612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae3612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a6d565b81600281518110611bc357611bc2612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b93565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef09190612325565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bed565b9050828482611f909190612c76565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612d19565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad919061216b565b60405180910390fd5b50600083856120c59190612c76565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b8381111561211b576000848401525b50505050565b6000601f19601f8301169050919050565b600061213d826120d2565b61214781856120dd565b93506121578185602086016120ee565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6000819050919050565b60006122c16122bc6122b784612192565b61229c565b612192565b9050919050565b60006122d3826122a6565b9050919050565b60006122e5826122c8565b9050919050565b6122f5816122da565b82525050565b600060208201905061231060008301846122ec565b92915050565b61231f816121f0565b82525050565b600060208201905061233a6000830184612316565b92915050565b6000806000606084860312156123595761235861218d565b5b6000612367868287016121db565b9350506020612378868287016121db565b925050604061238986828701612211565b9150509250925092565b61239c816121b2565b82525050565b60006020820190506123b76000830184612393565b92915050565b600060ff82169050919050565b6123d3816123bd565b82525050565b60006020820190506123ee60008301846123ca565b92915050565b60006020828403121561240a5761240961218d565b5b6000612418848285016121db565b91505092915050565b600061242c82612192565b9050919050565b61243c81612421565b82525050565b60006020820190506124576000830184612433565b92915050565b600080604083850312156124745761247361218d565b5b6000612482858286016121db565b9250506020612493858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124e457607f821691505b6020821081036124f7576124f661249d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125336020836120dd565b915061253e826124fd565b602082019050919050565b6000602082019050818103600083015261256281612526565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c56026836120dd565b91506125d082612569565b604082019050919050565b600060208201905081810360008301526125f4816125b8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126576024836120dd565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e96022836120dd565b91506126f48261268d565b604082019050919050565b60006020820190508181036000830152612718816126dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061277b6025836120dd565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061280d6023836120dd565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061289f6029836120dd565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061290f826121f0565b915061291a836121f0565b92508282101561292d5761292c6128d5565b5b828203905092915050565b6000612943826121f0565b915061294e836121f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612983576129826128d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129c4601b836120dd565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a67816121c4565b92915050565b600060208284031215612a8357612a8261218d565b5b6000612a9184828501612a58565b91505092915050565b6000819050919050565b6000612abf612aba612ab584612a9a565b61229c565b6121f0565b9050919050565b612acf81612aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0a816121b2565b82525050565b6000612b1c8383612b01565b60208301905092915050565b6000602082019050919050565b6000612b4082612ad5565b612b4a8185612ae0565b9350612b5583612af1565b8060005b83811015612b86578151612b6d8882612b10565b9750612b7883612b28565b925050600181019050612b59565b5085935050505092915050565b600060a082019050612ba86000830188612316565b612bb56020830187612ac6565b8181036040830152612bc78186612b35565b9050612bd66060830185612393565b612be36080830184612316565b9695505050505050565b6000612bf8826121f0565b9150612c03836121f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3c57612c3b6128d5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c81826121f0565b9150612c8c836121f0565b925082612c9c57612c9b612c47565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d036021836120dd565b9150612d0e82612ca7565b604082019050919050565b60006020820190508181036000830152612d3281612cf6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eef63d531c2c08b9e0faf7f16030e7bb2e465a2278277835ee92a8e08643fd5164736f6c634300080d0033

Deployed Bytecode Sourcemap

8059:8135:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10477:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8913:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10749:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12875:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8316:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10658:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11135:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8576:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9022:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8519:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6220:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10857:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8675:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11648:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5815:145;;;;;;;;;;;;;:::i;:::-;;10568:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11361:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12700:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5467:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8959:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8264:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9070;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10984:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12285:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8632:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10477:83;10514:13;10547:5;10540:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10477:83;:::o;11771:161::-;11846:4;11863:39;11872:12;:10;:12::i;:::-;11886:7;11895:6;11863:8;:39::i;:::-;11920:4;11913:11;;11771:161;;;;:::o;8913:39::-;;;;;;;;;;;;;:::o;10749:100::-;10802:7;10829:12;;10822:19;;10749:100;:::o;12875:323::-;12973:4;12990:36;13000:6;13008:9;13019:6;12990:9;:36::i;:::-;;13037:131;13046:6;13054:12;:10;:12::i;:::-;13068:99;13106:6;13068:99;;;;;;;;;;;;;;;;;:11;:19;13080:6;13068:19;;;;;;;;;;;;;;;:33;13088:12;:10;:12::i;:::-;13068:33;;;;;;;;;;;;;;;;:37;;:99;;;;;:::i;:::-;13037:8;:131::i;:::-;13186:4;13179:11;;12875:323;;;;;:::o;8316:71::-;;;;;;;;;;;;;:::o;10658:83::-;10699:5;10724:9;;;;;;;;;;;10717:16;;10658:83;:::o;11135:218::-;11223:4;11240:83;11249:12;:10;:12::i;:::-;11263:7;11272:50;11311:10;11272:11;:25;11284:12;:10;:12::i;:::-;11272:25;;;;;;;;;;;;;;;:34;11298:7;11272:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11240:8;:83::i;:::-;11341:4;11334:11;;11135:218;;;;:::o;8576:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;9022:41::-;;;;;;;;;;;;;:::o;8519:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6220:90::-;6260:7;6287:15;6280:22;;6220:90;:::o;10857:119::-;10923:7;10950:9;:18;10960:7;10950:18;;;;;;;;;;;;;;;;10943:25;;10857:119;;;:::o;8675:37::-;;;;:::o;11648:115::-;11707:7;11734:21;;11727:28;;11648:115;:::o;5591:79::-;5629:7;5656:6;;;;;;;;;;;5649:13;;5591:79;:::o;5815:145::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;5919:1:::1;5882:40;;5903:6;::::0;::::1;;;;;;;;5882:40;;;;;;;;;;;;5950:1;5933:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5815:145::o:0;10568:82::-;10607:13;10640:7;10633:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10568:82;:::o;11361:279::-;11454:4;11471:139;11480:12;:10;:12::i;:::-;11504:7;11513:96;11552:15;11513:96;;;;;;;;;;;;;;;;;:11;:25;11525:12;:10;:12::i;:::-;11513:25;;;;;;;;;;;;;;;:34;11539:7;11513:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11471:8;:139::i;:::-;11628:4;11621:11;;11361:279;;;;:::o;12700:167::-;12778:4;12795:42;12805:12;:10;:12::i;:::-;12819:9;12830:6;12795:9;:42::i;:::-;;12855:4;12848:11;;12700:167;;;;:::o;5467:21::-;;;;;;;;;;;;:::o;8959:26::-;;;;;;;;;;;;;:::o;8264:45::-;;;;;;;;;;;;;:::o;9070:::-;;;;;;;;;;;;;:::o;10984:143::-;11065:7;11092:11;:18;11104:5;11092:18;;;;;;;;;;;;;;;:27;11111:7;11092:27;;;;;;;;;;;;;;;;11085:34;;10984:143;;;;:::o;12285:173::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;12402:8:::1;12367:15;;:44;;;;;;;;;;;;;;;;;;12446:4;12422:21;;:28;;;;;;;;;;;;;;;;;;12285:173:::0;:::o;8632:36::-;;;;:::o;5968:244::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;6077:1:::1;6057:22;;:8;:22;;::::0;6049:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6167:8;6138:38;;6159:6;::::0;::::1;;;;;;;;6138:38;;;;;;;;;;;;6196:8;6187:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5968:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11940:337::-;12050:1;12033:19;;:5;:19;;;12025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12131:1;12112:21;;:7;:21;;;12104:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12215:6;12185:11;:18;12197:5;12185:18;;;;;;;;;;;;;;;:27;12204:7;12185:27;;;;;;;;;;;;;;;:36;;;;12253:7;12237:32;;12246:5;12237:32;;;12262:6;12237:32;;;;;;:::i;:::-;;;;;;;;11940:337;;;:::o;13206:1311::-;13293:4;13338:1;13320:20;;:6;:20;;;13312:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13422:1;13401:23;;:9;:23;;;13393:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13492:1;13483:6;:10;13475:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13563:16;;;;;;;;;;;13560:950;;;13612:41;13627:6;13635:9;13646:6;13612:14;:41::i;:::-;13605:48;;;;13560:950;13706:28;13737:24;13755:4;13737:9;:24::i;:::-;13706:55;;13783:16;;;;;;;;;;;13782:17;:42;;;;;13804:12;:20;13817:6;13804:20;;;;;;;;;;;;;;;;;;;;;;;;;13803:21;13782:42;:67;;;;;13828:21;;;;;;;;;;;13782:67;13778:278;;;13886:25;;;;;;;;;;;13883:95;;;13957:21;;13934:44;;13883:95;13997:43;14012:20;14033:6;13997:14;:43::i;:::-;13778:278;14092:53;14114:6;14092:53;;;;;;;;;;;;;;;;;:9;:17;14102:6;14092:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14072:9;:17;14082:6;14072:17;;;;;;;;;;;;;;;:73;;;;14162:19;14185:17;:25;14203:6;14185:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14214:17;:28;14232:9;14214:28;;;;;;;;;;;;;;;;;;;;;;;;;14185:57;14184:147;;14297:34;14305:6;14313:9;14324:6;14297:7;:34::i;:::-;14184:147;;;14288:6;14184:147;14162:169;;14373:37;14398:11;14373:9;:20;14383:9;14373:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14350:9;:20;14360:9;14350:20;;;;;;;;;;;;;;;:60;;;;14449:9;14432:40;;14441:6;14432:40;;;14460:11;14432:40;;;;;;:::i;:::-;;;;;;;;14494:4;14487:11;;;;13206:1311;;;;;;:::o;1537:192::-;1623:7;1656:1;1651;:6;;1659:12;1643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1720:1;1713:8;;;1537:192;;;;;:::o;1204:181::-;1262:7;1282:9;1298:1;1294;:5;;;;:::i;:::-;1282:17;;1323:1;1318;:6;;1310:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1376:1;1369:8;;;1204:181;;;;:::o;14525:330::-;14618:4;14655:53;14677:6;14655:53;;;;;;;;;;;;;;;;;:9;:17;14665:6;14655:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14635:9;:17;14645:6;14635:17;;;;;;;;;;;;;;;:73;;;;14742:32;14767:6;14742:9;:20;14752:9;14742:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14719:9;:20;14729:9;14719:20;;;;;;;;;;;;;;;:55;;;;14807:9;14790:35;;14799:6;14790:35;;;14818:6;14790:35;;;;;;:::i;:::-;;;;;;;;14843:4;14836:11;;14525:330;;;;;:::o;14865:704::-;9633:4;9614:16;;:23;;;;;;;;;;;;;;;;;;14984:21:::1;15022:1;15008:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14984:40;;15053:4;15035;15040:1;15035:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15079:6;15069:4;15074:1;15069:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;::::0;::::1;15106:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15096:4;15101:1;15096:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15175:15;;;;;;;;;;;:66;;;15252:7;15270:1;15310:4;15333;15365:15;15175:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15404:22;15429:21;15404:46;;15483:1;15466:14;:18;15463:96;;;15499:60;15520:22;;;;;;;;;;;15544:14;15499:20;:60::i;:::-;15463:96;14941:628;;9679:5:::0;9660:16;;:24;;;;;;;;;;;;;;;;;;14865:704;;:::o;15579:605::-;15665:7;15687:17;15707:1;15687:21;;15722:12;:20;15735:6;15722:20;;;;;;;;;;;;;;;;;;;;;;;;;15719:237;;;15771:38;15805:3;15771:29;15782:17;;15771:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;15759:50;;15719:237;;;15853:12;:23;15866:9;15853:23;;;;;;;;;;;;;;;;;;;;;;;;;15850:106;;;15905:39;15940:3;15905:30;15916:18;;15905:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;15893:51;;15850:106;15719:237;15981:1;15969:9;:13;15966:170;;;16023:39;16052:9;16023;:24;16041:4;16023:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15999:9;:21;16017:1;15999:21;;;;;;;;;;;;;;;:63;;;;16107:4;16082:42;;16091:6;16082:42;;;16114:9;16082:42;;;;;;:::i;:::-;;;;;;;;15966:170;16155:21;16166:9;16155:6;:10;;:21;;;;:::i;:::-;16148:28;;;15579:605;;;;;:::o;12468:126::-;12560:9;:18;;:26;12579:6;12560:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12468:126;;:::o;1737:250::-;1795:7;1824:1;1819;:6;1815:47;;1849:1;1842:8;;;;1815:47;1874:9;1890:1;1886;:5;;;;:::i;:::-;1874:17;;1919:1;1914;1910;:5;;;;:::i;:::-;:10;1902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:1;1971:8;;;1737:250;;;;;:::o;1995:132::-;2053:7;2080:39;2084:1;2087;2080:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2073:46;;1995:132;;;;:::o;1393:136::-;1451:7;1478:43;1482:1;1485;1478:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1471:50;;1393:136;;;;:::o;2135:278::-;2221:7;2253:1;2249;:5;2256:12;2241:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2280:9;2296:1;2292;:5;;;;:::i;:::-;2280:17;;2404:1;2397:8;;;2135:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:150::-;3914:9;3947:37;3978:5;3947:37;:::i;:::-;3934:50;;3840:150;;;:::o;3996:179::-;4107:61;4162:5;4107:61;:::i;:::-;4102:3;4095:74;3996:179;;:::o;4181:270::-;4298:4;4336:2;4325:9;4321:18;4313:26;;4349:95;4441:1;4430:9;4426:17;4417:6;4349:95;:::i;:::-;4181:270;;;;:::o;4457:118::-;4544:24;4562:5;4544:24;:::i;:::-;4539:3;4532:37;4457:118;;:::o;4581:222::-;4674:4;4712:2;4701:9;4697:18;4689:26;;4725:71;4793:1;4782:9;4778:17;4769:6;4725:71;:::i;:::-;4581:222;;;;:::o;4809:619::-;4886:6;4894;4902;4951:2;4939:9;4930:7;4926:23;4922:32;4919:119;;;4957:79;;:::i;:::-;4919:119;5077:1;5102:53;5147:7;5138:6;5127:9;5123:22;5102:53;:::i;:::-;5092:63;;5048:117;5204:2;5230:53;5275:7;5266:6;5255:9;5251:22;5230:53;:::i;:::-;5220:63;;5175:118;5332:2;5358:53;5403:7;5394:6;5383:9;5379:22;5358:53;:::i;:::-;5348:63;;5303:118;4809:619;;;;;:::o;5434:118::-;5521:24;5539:5;5521:24;:::i;:::-;5516:3;5509:37;5434:118;;:::o;5558:222::-;5651:4;5689:2;5678:9;5674:18;5666:26;;5702:71;5770:1;5759:9;5755:17;5746:6;5702:71;:::i;:::-;5558:222;;;;:::o;5786:86::-;5821:7;5861:4;5854:5;5850:16;5839:27;;5786:86;;;:::o;5878:112::-;5961:22;5977:5;5961:22;:::i;:::-;5956:3;5949:35;5878:112;;:::o;5996:214::-;6085:4;6123:2;6112:9;6108:18;6100:26;;6136:67;6200:1;6189:9;6185:17;6176:6;6136:67;:::i;:::-;5996:214;;;;:::o;6216:329::-;6275:6;6324:2;6312:9;6303:7;6299:23;6295:32;6292:119;;;6330:79;;:::i;:::-;6292:119;6450:1;6475:53;6520:7;6511:6;6500:9;6496:22;6475:53;:::i;:::-;6465:63;;6421:117;6216:329;;;;:::o;6551:104::-;6596:7;6625:24;6643:5;6625:24;:::i;:::-;6614:35;;6551:104;;;:::o;6661:142::-;6764:32;6790:5;6764:32;:::i;:::-;6759:3;6752:45;6661:142;;:::o;6809:254::-;6918:4;6956:2;6945:9;6941:18;6933:26;;6969:87;7053:1;7042:9;7038:17;7029:6;6969:87;:::i;:::-;6809:254;;;;:::o;7069:474::-;7137:6;7145;7194:2;7182:9;7173:7;7169:23;7165:32;7162:119;;;7200:79;;:::i;:::-;7162:119;7320:1;7345:53;7390:7;7381:6;7370:9;7366:22;7345:53;:::i;:::-;7335:63;;7291:117;7447:2;7473:53;7518:7;7509:6;7498:9;7494:22;7473:53;:::i;:::-;7463:63;;7418:118;7069:474;;;;;:::o;7549:180::-;7597:77;7594:1;7587:88;7694:4;7691:1;7684:15;7718:4;7715:1;7708:15;7735:320;7779:6;7816:1;7810:4;7806:12;7796:22;;7863:1;7857:4;7853:12;7884:18;7874:81;;7940:4;7932:6;7928:17;7918:27;;7874:81;8002:2;7994:6;7991:14;7971:18;7968:38;7965:84;;8021:18;;:::i;:::-;7965:84;7786:269;7735:320;;;:::o;8061:182::-;8201:34;8197:1;8189:6;8185:14;8178:58;8061:182;:::o;8249:366::-;8391:3;8412:67;8476:2;8471:3;8412:67;:::i;:::-;8405:74;;8488:93;8577:3;8488:93;:::i;:::-;8606:2;8601:3;8597:12;8590:19;;8249:366;;;:::o;8621:419::-;8787:4;8825:2;8814:9;8810:18;8802:26;;8874:9;8868:4;8864:20;8860:1;8849:9;8845:17;8838:47;8902:131;9028:4;8902:131;:::i;:::-;8894:139;;8621:419;;;:::o;9046:225::-;9186:34;9182:1;9174:6;9170:14;9163:58;9255:8;9250:2;9242:6;9238:15;9231:33;9046:225;:::o;9277:366::-;9419:3;9440:67;9504:2;9499:3;9440:67;:::i;:::-;9433:74;;9516:93;9605:3;9516:93;:::i;:::-;9634:2;9629:3;9625:12;9618:19;;9277:366;;;:::o;9649:419::-;9815:4;9853:2;9842:9;9838:18;9830:26;;9902:9;9896:4;9892:20;9888:1;9877:9;9873:17;9866:47;9930:131;10056:4;9930:131;:::i;:::-;9922:139;;9649:419;;;:::o;10074:223::-;10214:34;10210:1;10202:6;10198:14;10191:58;10283:6;10278:2;10270:6;10266:15;10259:31;10074:223;:::o;10303:366::-;10445:3;10466:67;10530:2;10525:3;10466:67;:::i;:::-;10459:74;;10542:93;10631:3;10542:93;:::i;:::-;10660:2;10655:3;10651:12;10644:19;;10303:366;;;:::o;10675:419::-;10841:4;10879:2;10868:9;10864:18;10856:26;;10928:9;10922:4;10918:20;10914:1;10903:9;10899:17;10892:47;10956:131;11082:4;10956:131;:::i;:::-;10948:139;;10675:419;;;:::o;11100:221::-;11240:34;11236:1;11228:6;11224:14;11217:58;11309:4;11304:2;11296:6;11292:15;11285:29;11100:221;:::o;11327:366::-;11469:3;11490:67;11554:2;11549:3;11490:67;:::i;:::-;11483:74;;11566:93;11655:3;11566:93;:::i;:::-;11684:2;11679:3;11675:12;11668:19;;11327:366;;;:::o;11699:419::-;11865:4;11903:2;11892:9;11888:18;11880:26;;11952:9;11946:4;11942:20;11938:1;11927:9;11923:17;11916:47;11980:131;12106:4;11980:131;:::i;:::-;11972:139;;11699:419;;;:::o;12124:224::-;12264:34;12260:1;12252:6;12248:14;12241:58;12333:7;12328:2;12320:6;12316:15;12309:32;12124:224;:::o;12354:366::-;12496:3;12517:67;12581:2;12576:3;12517:67;:::i;:::-;12510:74;;12593:93;12682:3;12593:93;:::i;:::-;12711:2;12706:3;12702:12;12695:19;;12354:366;;;:::o;12726:419::-;12892:4;12930:2;12919:9;12915:18;12907:26;;12979:9;12973:4;12969:20;12965:1;12954:9;12950:17;12943:47;13007:131;13133:4;13007:131;:::i;:::-;12999:139;;12726:419;;;:::o;13151:222::-;13291:34;13287:1;13279:6;13275:14;13268:58;13360:5;13355:2;13347:6;13343:15;13336:30;13151:222;:::o;13379:366::-;13521:3;13542:67;13606:2;13601:3;13542:67;:::i;:::-;13535:74;;13618:93;13707:3;13618:93;:::i;:::-;13736:2;13731:3;13727:12;13720:19;;13379:366;;;:::o;13751:419::-;13917:4;13955:2;13944:9;13940:18;13932:26;;14004:9;13998:4;13994:20;13990:1;13979:9;13975:17;13968:47;14032:131;14158:4;14032:131;:::i;:::-;14024:139;;13751:419;;;:::o;14176:228::-;14316:34;14312:1;14304:6;14300:14;14293:58;14385:11;14380:2;14372:6;14368:15;14361:36;14176:228;:::o;14410:366::-;14552:3;14573:67;14637:2;14632:3;14573:67;:::i;:::-;14566:74;;14649:93;14738:3;14649:93;:::i;:::-;14767:2;14762:3;14758:12;14751:19;;14410:366;;;:::o;14782:419::-;14948:4;14986:2;14975:9;14971:18;14963:26;;15035:9;15029:4;15025:20;15021:1;15010:9;15006:17;14999:47;15063:131;15189:4;15063:131;:::i;:::-;15055:139;;14782:419;;;:::o;15207:180::-;15255:77;15252:1;15245:88;15352:4;15349:1;15342:15;15376:4;15373:1;15366:15;15393:191;15433:4;15453:20;15471:1;15453:20;:::i;:::-;15448:25;;15487:20;15505:1;15487:20;:::i;:::-;15482:25;;15526:1;15523;15520:8;15517:34;;;15531:18;;:::i;:::-;15517:34;15576:1;15573;15569:9;15561:17;;15393:191;;;;:::o;15590:305::-;15630:3;15649:20;15667:1;15649:20;:::i;:::-;15644:25;;15683:20;15701:1;15683:20;:::i;:::-;15678:25;;15837:1;15769:66;15765:74;15762:1;15759:81;15756:107;;;15843:18;;:::i;:::-;15756:107;15887:1;15884;15880:9;15873:16;;15590:305;;;;:::o;15901:177::-;16041:29;16037:1;16029:6;16025:14;16018:53;15901:177;:::o;16084:366::-;16226:3;16247:67;16311:2;16306:3;16247:67;:::i;:::-;16240:74;;16323:93;16412:3;16323:93;:::i;:::-;16441:2;16436:3;16432:12;16425:19;;16084:366;;;:::o;16456:419::-;16622:4;16660:2;16649:9;16645:18;16637:26;;16709:9;16703:4;16699:20;16695:1;16684:9;16680:17;16673:47;16737:131;16863:4;16737:131;:::i;:::-;16729:139;;16456:419;;;:::o;16881:180::-;16929:77;16926:1;16919:88;17026:4;17023:1;17016:15;17050:4;17047:1;17040:15;17067:180;17115:77;17112:1;17105:88;17212:4;17209:1;17202:15;17236:4;17233:1;17226:15;17253:143;17310:5;17341:6;17335:13;17326:22;;17357:33;17384:5;17357:33;:::i;:::-;17253:143;;;;:::o;17402:351::-;17472:6;17521:2;17509:9;17500:7;17496:23;17492:32;17489:119;;;17527:79;;:::i;:::-;17489:119;17647:1;17672:64;17728:7;17719:6;17708:9;17704:22;17672:64;:::i;:::-;17662:74;;17618:128;17402:351;;;;:::o;17759:85::-;17804:7;17833:5;17822:16;;17759:85;;;:::o;17850:158::-;17908:9;17941:61;17959:42;17968:32;17994:5;17968:32;:::i;:::-;17959:42;:::i;:::-;17941:61;:::i;:::-;17928:74;;17850:158;;;:::o;18014:147::-;18109:45;18148:5;18109:45;:::i;:::-;18104:3;18097:58;18014:147;;:::o;18167:114::-;18234:6;18268:5;18262:12;18252:22;;18167:114;;;:::o;18287:184::-;18386:11;18420:6;18415:3;18408:19;18460:4;18455:3;18451:14;18436:29;;18287:184;;;;:::o;18477:132::-;18544:4;18567:3;18559:11;;18597:4;18592:3;18588:14;18580:22;;18477:132;;;:::o;18615:108::-;18692:24;18710:5;18692:24;:::i;:::-;18687:3;18680:37;18615:108;;:::o;18729:179::-;18798:10;18819:46;18861:3;18853:6;18819:46;:::i;:::-;18897:4;18892:3;18888:14;18874:28;;18729:179;;;;:::o;18914:113::-;18984:4;19016;19011:3;19007:14;18999:22;;18914:113;;;:::o;19063:732::-;19182:3;19211:54;19259:5;19211:54;:::i;:::-;19281:86;19360:6;19355:3;19281:86;:::i;:::-;19274:93;;19391:56;19441:5;19391:56;:::i;:::-;19470:7;19501:1;19486:284;19511:6;19508:1;19505:13;19486:284;;;19587:6;19581:13;19614:63;19673:3;19658:13;19614:63;:::i;:::-;19607:70;;19700:60;19753:6;19700:60;:::i;:::-;19690:70;;19546:224;19533:1;19530;19526:9;19521:14;;19486:284;;;19490:14;19786:3;19779:10;;19187:608;;;19063:732;;;;:::o;19801:831::-;20064:4;20102:3;20091:9;20087:19;20079:27;;20116:71;20184:1;20173:9;20169:17;20160:6;20116:71;:::i;:::-;20197:80;20273:2;20262:9;20258:18;20249:6;20197:80;:::i;:::-;20324:9;20318:4;20314:20;20309:2;20298:9;20294:18;20287:48;20352:108;20455:4;20446:6;20352:108;:::i;:::-;20344:116;;20470:72;20538:2;20527:9;20523:18;20514:6;20470:72;:::i;:::-;20552:73;20620:3;20609:9;20605:19;20596:6;20552:73;:::i;:::-;19801:831;;;;;;;;:::o;20638:348::-;20678:7;20701:20;20719:1;20701:20;:::i;:::-;20696:25;;20735:20;20753:1;20735:20;:::i;:::-;20730:25;;20923:1;20855:66;20851:74;20848:1;20845:81;20840:1;20833:9;20826:17;20822:105;20819:131;;;20930:18;;:::i;:::-;20819:131;20978:1;20975;20971:9;20960:20;;20638:348;;;;:::o;20992:180::-;21040:77;21037:1;21030:88;21137:4;21134:1;21127:15;21161:4;21158:1;21151:15;21178:185;21218:1;21235:20;21253:1;21235:20;:::i;:::-;21230:25;;21269:20;21287:1;21269:20;:::i;:::-;21264:25;;21308:1;21298:35;;21313:18;;:::i;:::-;21298:35;21355:1;21352;21348:9;21343:14;;21178:185;;;;:::o;21369:220::-;21509:34;21505:1;21497:6;21493:14;21486:58;21578:3;21573:2;21565:6;21561:15;21554:28;21369:220;:::o;21595:366::-;21737:3;21758:67;21822:2;21817:3;21758:67;:::i;:::-;21751:74;;21834:93;21923:3;21834:93;:::i;:::-;21952:2;21947:3;21943:12;21936:19;;21595:366;;;:::o;21967:419::-;22133:4;22171:2;22160:9;22156:18;22148:26;;22220:9;22214:4;22210:20;22206:1;22195:9;22191:17;22184:47;22248:131;22374:4;22248:131;:::i;:::-;22240:139;;21967:419;;;:::o

Swarm Source

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