ETH Price: $3,227.13 (+3.65%)

Token

GBTC,ARKB,IBIT,HODL,BTCW,BTCO,FBTC,EZBC,DEFI,BRRR ... (BTC-ETF)
 

Overview

Max Total Supply

69,420,000,000 BTC-ETF

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000232647976051 BTC-ETF

Value
$0.00
0x74909Eb15D413cfaC9D127b259d8BB40A892307E
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.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mintOnce(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

contract BTCETF is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feeOnBuy;
    uint256 public  feeOnSell;

    uint256 public  feeOnTransfer;

    address public  feeReceiver;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("GBTC,ARKB,IBIT,HODL,BTCW,BTCO,FBTC,EZBC,DEFI,BRRR ETF", "BTC-ETF") 
    {   
        address router;
        address pinkLock;
        
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
            pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
            pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
            pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock
        } else {
            revert();
        }

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        feeOnBuy  = 1;
        feeOnSell = 1;

        feeOnTransfer = 0;

        feeReceiver = 0x41E6b95603594B437943c69b02943849c3C17Dfd;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[pinkLock] = true;

        _mintOnce(owner(), 69_420_000_000 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        swapEnabled = false;
    }

    receive() external payable {}

    function creator() public pure returns (string memory) {
        return "tg.me/coinsult_tg";
    }

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        
        IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    event FeeReceiverChanged(address feeReceiver);

    function changeFeeReceiver(address _feeReceiver) external onlyOwner{
        require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address");
        feeReceiver = _feeReceiver;

        emit FeeReceiverChanged(feeReceiver);
    }
    
    event TradingEnabled(bool tradingEnabled);

    bool public tradingEnabled;
    uint256 public tradingTime;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "CSLT: Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;
        tradingTime = block.timestamp;

        emit TradingEnabled(tradingEnabled);
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "CSLT: transfer from the zero address");
        require(to != address(0), "CSLT: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            feeOnBuy + feeOnSell > 0 &&
            !_isExcludedFromFees[from] &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);     

            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            if(block.timestamp > tradingTime + 10 minutes){
                _totalFees = feeOnBuy;
            }else{
                _totalFees = 0;
            }
        } else if (to == uniswapV2Pair) {
            if(block.timestamp > tradingTime + 10 minutes){
                _totalFees = feeOnSell;
            }else{
                _totalFees = 20;
            }
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
        require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
        swapEnabled = _swapEnabled;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 newBalance = address(this).balance - initialBalance;

        payable(feeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":[{"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":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTime","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060600160405280603581526020016200248e60359139604080518082019091526007815266212a2196a2aa2360c91b602082015260036200005883826200071c565b5060046200006782826200071c565b50505060006200007c6200046260201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600080466038036200010957507310ed43c718714eb63d5aa57b78b54704e256024e905073407993575c91ce7643a4d4ccacc9a98c36ee1bbe62000193565b4660610362000145575073d99d1c33f9fc3444f8101754abc46c52416550d19050735e5b9be5fd939c578abe5800a90c566eeeba44a562000193565b4660011480620001555750466005145b156200018e5750737a250d5630b4cf539739df2c5dacb4c659f2488d90507371b5759d73262fbb223956913ecf4ecc5105764162000193565b600080fd5b60008290506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff9190620007e8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002739190620007e8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e79190620007e8565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200032890309060001962000466565b60016009819055600a8190556000600b819055600c80546001600160a01b0319167341e6b95603594b437943c69b02943849c3c17dfd179055600890620003776005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054851660019081179091553084528284208054861682179055908716835291208054909216179055620004306200040b6005546001600160a01b031690565b620004196012600a6200092f565b6200042a90641029c1230062000940565b62000592565b6113886200043d60025490565b6200044991906200095a565b600d555050600e805461ff001916905550620009939050565b3390565b6001600160a01b038316620004ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004c5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620005ea5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004c5565b8060026000828254620005fe91906200097d565b90915550506001600160a01b038216600090815260208190526040812080548392906200062d9084906200097d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a257607f821691505b602082108103620006c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071757600081815260208120601f850160051c81016020861015620006f25750805b601f850160051c820191505b818110156200071357828155600101620006fe565b5050505b505050565b81516001600160401b0381111562000738576200073862000677565b62000750816200074984546200068d565b84620006c9565b602080601f8311600181146200078857600084156200076f5750858301515b600019600386901b1c1916600185901b17855562000713565b600085815260208120601f198616915b82811015620007b95788860151825594840194600190910190840162000798565b5085821015620007d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007fb57600080fd5b81516001600160a01b03811681146200081357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008715781600019048211156200085557620008556200081a565b808516156200086357918102915b93841c939080029062000835565b509250929050565b6000826200088a5750600162000929565b81620008995750600062000929565b8160018114620008b25760028114620008bd57620008dd565b600191505062000929565b60ff841115620008d157620008d16200081a565b50506001821b62000929565b5060208310610133831016604e8410600b841016171562000902575081810a62000929565b6200090e838362000830565b80600019048211156200092557620009256200081a565b0290505b92915050565b60006200081360ff84168362000879565b80820281158282048414176200092957620009296200081a565b6000826200097857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200092957620009296200081a565b611aeb80620009a36000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063b3f0067411610095578063dd62ed3e11610064578063dd62ed3e14610575578063e2f45605146105bb578063f2fde38b146105d1578063f9d0831a146105f157600080fd5b8063b3f0067414610509578063b8158d6014610529578063bb8c3ee01461053f578063c02466681461055557600080fd5b806395d89b41116100d157806395d89b4114610494578063a457c2d7146104a9578063a9059cbb146104c9578063b1fde9f8146104e957600080fd5b8063715018a61461042a5780637c08b964146104415780638a8c523c146104615780638da5cb5b1461047657600080fd5b8063313ce5671161017a5780634fbee193116101495780634fbee1931461038657806365048d08146103bf5780636ddd1713146103d557806370a08231146103f457600080fd5b8063313ce5671461030a578063395093511461032657806349bd5a5e146103465780634ada218b1461036657600080fd5b80630fa1eeab116101b65780630fa1eeab146102795780631694505e1461029d57806318160ddd146102d557806323b872dd146102ea57600080fd5b806302d05d3f146101e857806306fdde0314610234578063095ea7b31461024957600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b60405161022b9190611769565b60405180910390f35b34801561024057600080fd5b5061021e610611565b34801561025557600080fd5b506102696102643660046117cc565b6106a3565b604051901515815260200161022b565b34801561028557600080fd5b5061028f600b5481565b60405190815260200161022b565b3480156102a957600080fd5b506006546102bd906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102e157600080fd5b5060025461028f565b3480156102f657600080fd5b506102696103053660046117f8565b6106ba565b34801561031657600080fd5b506040516012815260200161022b565b34801561033257600080fd5b506102696103413660046117cc565b610770565b34801561035257600080fd5b506007546102bd906001600160a01b031681565b34801561037257600080fd5b50600e546102699062010000900460ff1681565b34801561039257600080fd5b506102696103a1366004611839565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103cb57600080fd5b5061028f600a5481565b3480156103e157600080fd5b50600e5461026990610100900460ff1681565b34801561040057600080fd5b5061028f61040f366004611839565b6001600160a01b031660009081526020819052604090205490565b34801561043657600080fd5b5061043f6107ac565b005b34801561044d57600080fd5b5061043f61045c366004611839565b610820565b34801561046d57600080fd5b5061043f61090a565b34801561048257600080fd5b506005546001600160a01b03166102bd565b3480156104a057600080fd5b5061021e6109e6565b3480156104b557600080fd5b506102696104c43660046117cc565b6109f5565b3480156104d557600080fd5b506102696104e43660046117cc565b610a8e565b3480156104f557600080fd5b5061043f61050436600461186b565b610a9b565b34801561051557600080fd5b50600c546102bd906001600160a01b031681565b34801561053557600080fd5b5061028f600f5481565b34801561054b57600080fd5b5061028f60095481565b34801561056157600080fd5b5061043f61057036600461189b565b610bad565b34801561058157600080fd5b5061028f6105903660046118c9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105c757600080fd5b5061028f600d5481565b3480156105dd57600080fd5b5061043f6105ec366004611839565b610c36565b3480156105fd57600080fd5b5061043f61060c366004611839565b610d21565b606060038054610620906118f7565b80601f016020809104026020016040519081016040528092919081815260200182805461064c906118f7565b80156106995780601f1061066e57610100808354040283529160200191610699565b820191906000526020600020905b81548152906001019060200180831161067c57829003601f168201915b5050505050905090565b60006106b0338484610ec9565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461075a578281101561074d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61075a8533858403610ec9565b610765858585610fed565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106b09185906107a7908690611947565b610ec9565b6005546001600160a01b031633146107d65760405162461bcd60e51b81526004016107449061195a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461084a5760405162461bcd60e51b81526004016107449061195a565b6001600160a01b0381166108b65760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610744565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109345760405162461bcd60e51b81526004016107449061195a565b600e5462010000900460ff161561098d5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610744565b600e80546201010062ffff0019909116179081905542600f556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610620906118f7565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a775760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610744565b610a843385858403610ec9565b5060019392505050565b60006106b0338484610fed565b6005546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107449061195a565b620f4240610ad260025490565b610adc919061198f565b8211610b5e5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610744565b600d829055600e805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610bd75760405162461bcd60e51b81526004016107449061195a565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016107449061195a565b6001600160a01b038116610cc55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610744565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016107449061195a565b306001600160a01b03821603610dc95760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610744565b6001600160a01b038116610de557610de13347611343565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5791906119b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906119ca565b50565b6001600160a01b038316610f2b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b038216610f8c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104f5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b0382166110b05760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b600e5462010000900460ff16806110df57506001600160a01b03831660009081526008602052604090205460ff165b8061110257506001600160a01b03821660009081526008602052604090205460ff165b61114e5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610744565b8060000361116757611162838360006113f2565b505050565b30600090815260208190526040902054600d548110801590819061118e5750600e5460ff16155b80156111a757506007546001600160a01b038581169116145b80156111c257506000600a546009546111c09190611947565b115b80156111e757506001600160a01b03851660009081526008602052604090205460ff16155b80156111fa5750600e54610100900460ff165b1561122057600e805460ff19166001179055611215826115c1565b600e805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff168061125f57506001600160a01b03851660009081526008602052604090205460ff165b8061126c5750600e5460ff165b15611279575060006112f7565b6007546001600160a01b03908116908716036112b657600f5461129e90610258611947565b4211156112ae57506009546112f7565b5060006112f7565b6007546001600160a01b03908116908616036112f357600f546112db90610258611947565b4211156112eb5750600a546112f7565b5060146112f7565b5060005b8015611330576000606461130b83876119e7565b611315919061198f565b905061132181866119fe565b945061132e8730836113f2565b505b61133b8686866113f2565b505050505050565b6000814710156113955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610744565b6000836001600160a01b03168360405160006040518083038185875af1925050503d80600081146113e2576040519150601f19603f3d011682016040523d82523d6000602084013e6113e7565b606091505b509095945050505050565b6001600160a01b0383166114565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610744565b6001600160a01b0382166114b85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610744565b6001600160a01b038316600090815260208190526040902054818110156115305760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610744565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611567908490611947565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b391815260200190565b60405180910390a350505050565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106115fa576115fa611a11565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116779190611a27565b8160018151811061168a5761168a611a11565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116d0908690600090869030904290600401611a44565b600060405180830381600087803b1580156116ea57600080fd5b505af19250505080156116fb575060015b61170457505050565b600061171083476119fe565b600c54909150611729906001600160a01b031682611343565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117965785810183015185820160400152820161177a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ec657600080fd5b600080604083850312156117df57600080fd5b82356117ea816117b7565b946020939093013593505050565b60008060006060848603121561180d57600080fd5b8335611818816117b7565b92506020840135611828816117b7565b929592945050506040919091013590565b60006020828403121561184b57600080fd5b8135611856816117b7565b9392505050565b8015158114610ec657600080fd5b6000806040838503121561187e57600080fd5b8235915060208301356118908161185d565b809150509250929050565b600080604083850312156118ae57600080fd5b82356118b9816117b7565b915060208301356118908161185d565b600080604083850312156118dc57600080fd5b82356118e7816117b7565b91506020830135611890816117b7565b600181811c9082168061190b57607f821691505b60208210810361192b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b4576106b4611931565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826119ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156119c357600080fd5b5051919050565b6000602082840312156119dc57600080fd5b81516118568161185d565b80820281158282048414176106b4576106b4611931565b818103818111156106b4576106b4611931565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a3957600080fd5b8151611856816117b7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a945784516001600160a01b031683529383019391830191600101611a6f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122058c912e4afc3f0dd0f94c85f574f9aa9a52a97a3732f4eeaacee81e020bd303264736f6c63430008130033474254432c41524b422c494249542c484f444c2c425443572c4254434f2c464254432c455a42432c444546492c4252525220455446

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063b3f0067411610095578063dd62ed3e11610064578063dd62ed3e14610575578063e2f45605146105bb578063f2fde38b146105d1578063f9d0831a146105f157600080fd5b8063b3f0067414610509578063b8158d6014610529578063bb8c3ee01461053f578063c02466681461055557600080fd5b806395d89b41116100d157806395d89b4114610494578063a457c2d7146104a9578063a9059cbb146104c9578063b1fde9f8146104e957600080fd5b8063715018a61461042a5780637c08b964146104415780638a8c523c146104615780638da5cb5b1461047657600080fd5b8063313ce5671161017a5780634fbee193116101495780634fbee1931461038657806365048d08146103bf5780636ddd1713146103d557806370a08231146103f457600080fd5b8063313ce5671461030a578063395093511461032657806349bd5a5e146103465780634ada218b1461036657600080fd5b80630fa1eeab116101b65780630fa1eeab146102795780631694505e1461029d57806318160ddd146102d557806323b872dd146102ea57600080fd5b806302d05d3f146101e857806306fdde0314610234578063095ea7b31461024957600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5060408051808201909152601181527074672e6d652f636f696e73756c745f746760781b60208201525b60405161022b9190611769565b60405180910390f35b34801561024057600080fd5b5061021e610611565b34801561025557600080fd5b506102696102643660046117cc565b6106a3565b604051901515815260200161022b565b34801561028557600080fd5b5061028f600b5481565b60405190815260200161022b565b3480156102a957600080fd5b506006546102bd906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102e157600080fd5b5060025461028f565b3480156102f657600080fd5b506102696103053660046117f8565b6106ba565b34801561031657600080fd5b506040516012815260200161022b565b34801561033257600080fd5b506102696103413660046117cc565b610770565b34801561035257600080fd5b506007546102bd906001600160a01b031681565b34801561037257600080fd5b50600e546102699062010000900460ff1681565b34801561039257600080fd5b506102696103a1366004611839565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103cb57600080fd5b5061028f600a5481565b3480156103e157600080fd5b50600e5461026990610100900460ff1681565b34801561040057600080fd5b5061028f61040f366004611839565b6001600160a01b031660009081526020819052604090205490565b34801561043657600080fd5b5061043f6107ac565b005b34801561044d57600080fd5b5061043f61045c366004611839565b610820565b34801561046d57600080fd5b5061043f61090a565b34801561048257600080fd5b506005546001600160a01b03166102bd565b3480156104a057600080fd5b5061021e6109e6565b3480156104b557600080fd5b506102696104c43660046117cc565b6109f5565b3480156104d557600080fd5b506102696104e43660046117cc565b610a8e565b3480156104f557600080fd5b5061043f61050436600461186b565b610a9b565b34801561051557600080fd5b50600c546102bd906001600160a01b031681565b34801561053557600080fd5b5061028f600f5481565b34801561054b57600080fd5b5061028f60095481565b34801561056157600080fd5b5061043f61057036600461189b565b610bad565b34801561058157600080fd5b5061028f6105903660046118c9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105c757600080fd5b5061028f600d5481565b3480156105dd57600080fd5b5061043f6105ec366004611839565b610c36565b3480156105fd57600080fd5b5061043f61060c366004611839565b610d21565b606060038054610620906118f7565b80601f016020809104026020016040519081016040528092919081815260200182805461064c906118f7565b80156106995780601f1061066e57610100808354040283529160200191610699565b820191906000526020600020905b81548152906001019060200180831161067c57829003601f168201915b5050505050905090565b60006106b0338484610ec9565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461075a578281101561074d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61075a8533858403610ec9565b610765858585610fed565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106b09185906107a7908690611947565b610ec9565b6005546001600160a01b031633146107d65760405162461bcd60e51b81526004016107449061195a565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461084a5760405162461bcd60e51b81526004016107449061195a565b6001600160a01b0381166108b65760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610744565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109345760405162461bcd60e51b81526004016107449061195a565b600e5462010000900460ff161561098d5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610744565b600e80546201010062ffff0019909116179081905542600f556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610620906118f7565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a775760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610744565b610a843385858403610ec9565b5060019392505050565b60006106b0338484610fed565b6005546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107449061195a565b620f4240610ad260025490565b610adc919061198f565b8211610b5e5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610744565b600d829055600e805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610bd75760405162461bcd60e51b81526004016107449061195a565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016107449061195a565b6001600160a01b038116610cc55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610744565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016107449061195a565b306001600160a01b03821603610dc95760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610744565b6001600160a01b038116610de557610de13347611343565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5791906119b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906119ca565b50565b6001600160a01b038316610f2b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b038216610f8c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104f5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610744565b6001600160a01b0382166110b05760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610744565b600e5462010000900460ff16806110df57506001600160a01b03831660009081526008602052604090205460ff165b8061110257506001600160a01b03821660009081526008602052604090205460ff165b61114e5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610744565b8060000361116757611162838360006113f2565b505050565b30600090815260208190526040902054600d548110801590819061118e5750600e5460ff16155b80156111a757506007546001600160a01b038581169116145b80156111c257506000600a546009546111c09190611947565b115b80156111e757506001600160a01b03851660009081526008602052604090205460ff16155b80156111fa5750600e54610100900460ff165b1561122057600e805460ff19166001179055611215826115c1565b600e805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff168061125f57506001600160a01b03851660009081526008602052604090205460ff165b8061126c5750600e5460ff165b15611279575060006112f7565b6007546001600160a01b03908116908716036112b657600f5461129e90610258611947565b4211156112ae57506009546112f7565b5060006112f7565b6007546001600160a01b03908116908616036112f357600f546112db90610258611947565b4211156112eb5750600a546112f7565b5060146112f7565b5060005b8015611330576000606461130b83876119e7565b611315919061198f565b905061132181866119fe565b945061132e8730836113f2565b505b61133b8686866113f2565b505050505050565b6000814710156113955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610744565b6000836001600160a01b03168360405160006040518083038185875af1925050503d80600081146113e2576040519150601f19603f3d011682016040523d82523d6000602084013e6113e7565b606091505b509095945050505050565b6001600160a01b0383166114565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610744565b6001600160a01b0382166114b85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610744565b6001600160a01b038316600090815260208190526040902054818110156115305760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610744565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611567908490611947565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b391815260200190565b60405180910390a350505050565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106115fa576115fa611a11565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116779190611a27565b8160018151811061168a5761168a611a11565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116d0908690600090869030904290600401611a44565b600060405180830381600087803b1580156116ea57600080fd5b505af19250505080156116fb575060015b61170457505050565b600061171083476119fe565b600c54909150611729906001600160a01b031682611343565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117965785810183015185820160400152820161177a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ec657600080fd5b600080604083850312156117df57600080fd5b82356117ea816117b7565b946020939093013593505050565b60008060006060848603121561180d57600080fd5b8335611818816117b7565b92506020840135611828816117b7565b929592945050506040919091013590565b60006020828403121561184b57600080fd5b8135611856816117b7565b9392505050565b8015158114610ec657600080fd5b6000806040838503121561187e57600080fd5b8235915060208301356118908161185d565b809150509250929050565b600080604083850312156118ae57600080fd5b82356118b9816117b7565b915060208301356118908161185d565b600080604083850312156118dc57600080fd5b82356118e7816117b7565b91506020830135611890816117b7565b600181811c9082168061190b57607f821691505b60208210810361192b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b4576106b4611931565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826119ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156119c357600080fd5b5051919050565b6000602082840312156119dc57600080fd5b81516118568161185d565b80820281158282048414176106b4576106b4611931565b818103818111156106b4576106b4611931565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a3957600080fd5b8151611856816117b7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a945784516001600160a01b031683529383019391830191600101611a6f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122058c912e4afc3f0dd0f94c85f574f9aa9a52a97a3732f4eeaacee81e020bd303264736f6c63430008130033

Deployed Bytecode Sourcemap

7956:6994:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10496:100;;;;;;;;;;-1:-1:-1;10562:26:0;;;;;;;;;;;;-1:-1:-1;;;10562:26:0;;;;10496:100;;;;;;;:::i;:::-;;;;;;;;3867;;;;;;;;;;;;;:::i;4781:169::-;;;;;;;;;;-1:-1:-1;4781:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4781:169:0;1023:187:1;8252:29:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;8252:29:0;1215:177:1;8039:41:0;;;;;;;;;;-1:-1:-1;8039:41:0;;;;-1:-1:-1;;;;;8039:41:0;;;;;;-1:-1:-1;;;;;1586:32:1;;;1568:51;;1556:2;1541:18;8039:41:0;1397:228:1;4188:108:0;;;;;;;;;;-1:-1:-1;4276:12:0;;4188:108;;4958:573;;;;;;;;;;-1:-1:-1;4958:573:0;;;;;:::i;:::-;;:::i;4087:93::-;;;;;;;;;;-1:-1:-1;4087:93:0;;4170:2;2233:36:1;;2221:2;2206:18;4087:93:0;2091:184:1;5539:215:0;;;;;;;;;;-1:-1:-1;5539:215:0;;;;;:::i;:::-;;:::i;8087:29::-;;;;;;;;;;-1:-1:-1;8087:29:0;;;;-1:-1:-1;;;;;8087:29:0;;;11717:26;;;;;;;;;;-1:-1:-1;11717:26:0;;;;;;;;;;;11212:125;;;;;;;;;;-1:-1:-1;11212:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11301:28:0;11277:4;11301:28;;;:19;:28;;;;;;;;;11212:125;8218:25;;;;;;;;;;;;;;;;8400:26;;;;;;;;;;-1:-1:-1;8400:26:0;;;;;;;;;;;4304:127;;;;;;;;;;-1:-1:-1;4304:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4405:18:0;4378:7;4405:18;;;;;;;;;;;;4304:127;3056:148;;;;;;;;;;;;;:::i;:::-;;11399:256;;;;;;;;;;-1:-1:-1;11399:256:0;;;;;:::i;:::-;;:::i;11785:269::-;;;;;;;;;;;;;:::i;2842:79::-;;;;;;;;;;-1:-1:-1;2907:6:0;;-1:-1:-1;;;;;2907:6:0;2842:79;;3975:104;;;;;;;;;;;;;:::i;5762:413::-;;;;;;;;;;-1:-1:-1;5762:413:0;;;;;:::i;:::-;;:::i;4439:175::-;;;;;;;;;;-1:-1:-1;4439:175:0;;;;;:::i;:::-;;:::i;13886:366::-;;;;;;;;;;-1:-1:-1;13886:366:0;;;;;:::i;:::-;;:::i;8290:27::-;;;;;;;;;;-1:-1:-1;8290:27:0;;;;-1:-1:-1;;;;;8290:27:0;;;11750:26;;;;;;;;;;;;;;;;8187:24;;;;;;;;;;;;;;;;11019:185;;;;;;;;;;-1:-1:-1;11019:185:0;;;;;:::i;:::-;;:::i;4622:151::-;;;;;;;;;;-1:-1:-1;4622:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4738:18:0;;;4711:7;4738:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4622:151;8326:34;;;;;;;;;;;;;;;;3212:244;;;;;;;;;;-1:-1:-1;3212:244:0;;;;;:::i;:::-;;:::i;10604:407::-;;;;;;;;;;-1:-1:-1;10604:407:0;;;;;:::i;:::-;;:::i;3867:100::-;3921:13;3954:5;3947:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3867:100;:::o;4781:169::-;4864:4;4881:39;2245:10;4904:7;4913:6;4881:8;:39::i;:::-;-1:-1:-1;4938:4:0;4781:169;;;;;:::o;4958:573::-;-1:-1:-1;;;;;5142:19:0;;5098:4;5142:19;;;:11;:19;;;;;;;;2245:10;5142:33;;;;;;;;-1:-1:-1;;5190:37:0;;5186:265;;5272:6;5252:16;:26;;5244:79;;;;-1:-1:-1;;;5244:79:0;;4544:2:1;5244:79:0;;;4526:21:1;4583:2;4563:18;;;4556:30;4622:34;4602:18;;;4595:62;-1:-1:-1;;;4673:18:1;;;4666:38;4721:19;;5244:79:0;;;;;;;;;5367:57;5376:6;2245:10;5417:6;5398:16;:25;5367:8;:57::i;:::-;5463:36;5473:6;5481:9;5492:6;5463:9;:36::i;:::-;-1:-1:-1;5519:4:0;;4958:573;-1:-1:-1;;;;4958:573:0:o;5539:215::-;2245:10;5627:4;5676:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5676:34:0;;;;;;;;;;5627:4;;5644:80;;5667:7;;5676:47;;5713:10;;5676:47;:::i;:::-;5644:8;:80::i;3056:148::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;3147:6:::1;::::0;3126:40:::1;::::0;3163:1:::1;::::0;-1:-1:-1;;;;;3147:6:0::1;::::0;3126:40:::1;::::0;3163:1;;3126:40:::1;3177:6;:19:::0;;-1:-1:-1;;;;;;3177:19:0::1;::::0;;3056:148::o;11399:256::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11485:26:0;::::1;11477:84;;;::::0;-1:-1:-1;;;11477:84:0;;5576:2:1;11477:84:0::1;::::0;::::1;5558:21:1::0;5615:2;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;-1:-1:-1;;;5705:18:1;;;5698:43;5758:19;;11477:84:0::1;5374:409:1::0;11477:84:0::1;11572:11;:26:::0;;-1:-1:-1;;;;;;11572:26:0::1;-1:-1:-1::0;;;;;11572:26:0;::::1;::::0;;::::1;::::0;;;11616:31:::1;::::0;1568:51:1;;;11616:31:0::1;::::0;1556:2:1;1541:18;11616:31:0::1;;;;;;;11399:256:::0;:::o;11785:269::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;11848:14:::1;::::0;;;::::1;;;11847:15;11839:58;;;::::0;-1:-1:-1;;;11839:58:0;;5990:2:1;11839:58:0::1;::::0;::::1;5972:21:1::0;6029:2;6009:18;;;6002:30;6068:32;6048:18;;;6041:60;6118:18;;11839:58:0::1;5788:354:1::0;11839:58:0::1;11908:14;:21:::0;;11940:18;-1:-1:-1;;11940:18:0;;;;;;;;11983:15:::1;11969:11;:29:::0;12016:30:::1;::::0;11908:21;12031:14;;::::1;11908:21;12031:14;1188::1::0;1181:22;1163:41;;12016:30:0::1;::::0;1151:2:1;1136:18;12016:30:0::1;;;;;;;11785:269::o:0;3975:104::-;4031:13;4064:7;4057:14;;;;;:::i;5762:413::-;2245:10;5855:4;5899:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5899:34:0;;;;;;;;;;5952:35;;;;5944:85;;;;-1:-1:-1;;;5944:85:0;;6349:2:1;5944:85:0;;;6331:21:1;6388:2;6368:18;;;6361:30;6427:34;6407:18;;;6400:62;-1:-1:-1;;;6478:18:1;;;6471:35;6523:19;;5944:85:0;6147:401:1;5944:85:0;6065:67;2245:10;6088:7;6116:15;6097:16;:34;6065:8;:67::i;:::-;-1:-1:-1;6163:4:0;;5762:413;-1:-1:-1;;;5762:413:0:o;4439:175::-;4525:4;4542:42;2245:10;4566:9;4577:6;4542:9;:42::i;13886:366::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;14020:9:::1;14004:13;4276:12:::0;;;4188:108;14004:13:::1;:25;;;;:::i;:::-;13992:9;:37;13984:119;;;::::0;-1:-1:-1;;;13984:119:0;;6977:2:1;13984:119:0::1;::::0;::::1;6959:21:1::0;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;7126:34;7106:18;;;7099:62;-1:-1:-1;;;7177:19:1;;;7170:36;7223:19;;13984:119:0::1;6775:473:1::0;13984:119:0::1;14114:18;:30:::0;;;14155:11:::1;:26:::0;;-1:-1:-1;;14155:26:0::1;;::::0;::::1;;;;::::0;;14199:45:::1;::::0;1361:25:1;;;14199:45:0::1;::::0;1349:2:1;1334:18;14199:45:0::1;;;;;;;13886:366:::0;;:::o;11019:185::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11105:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;11105:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11162:34;;1163:41:1;;;11162:34:0::1;::::0;1136:18:1;11162:34:0::1;;;;;;;11019:185:::0;;:::o;3212:244::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3301:22:0;::::1;3293:73;;;::::0;-1:-1:-1;;;3293:73:0;;7455:2:1;3293:73:0::1;::::0;::::1;7437:21:1::0;7494:2;7474:18;;;7467:30;7533:34;7513:18;;;7506:62;-1:-1:-1;;;7584:18:1;;;7577:36;7630:19;;3293:73:0::1;7253:402:1::0;3293:73:0::1;3403:6;::::0;3382:38:::1;::::0;-1:-1:-1;;;;;3382:38:0;;::::1;::::0;3403:6:::1;::::0;3382:38:::1;::::0;3403:6:::1;::::0;3382:38:::1;3431:6;:17:::0;;-1:-1:-1;;;;;;3431:17:0::1;-1:-1:-1::0;;;;;3431:17:0;;;::::1;::::0;;;::::1;::::0;;3212:244::o;10604:407::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;10700:4:::1;-1:-1:-1::0;;;;;10683:22:0;::::1;::::0;10675:96:::1;;;::::0;-1:-1:-1;;;10675:96:0;;7862:2:1;10675:96:0::1;::::0;::::1;7844:21:1::0;7901:2;7881:18;;;7874:30;7940:34;7920:18;;;7913:62;8011:31;7991:18;;;7984:59;8060:19;;10675:96:0::1;7660:425:1::0;10675:96:0::1;-1:-1:-1::0;;;;;10786:21:0;::::1;10782:127;;10824:52;10832:10;10854:21;10824:29;:52::i;:::-;;10604:407:::0;:::o;10782:127::-:1;10964:38;::::0;-1:-1:-1;;;10964:38:0;;10996:4:::1;10964:38;::::0;::::1;1568:51:1::0;-1:-1:-1;;;;;10929:22:0;::::1;::::0;::::1;::::0;10952:10:::1;::::0;10929:22;;10964:23:::1;::::0;1541:18:1;;10964:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10929:74;::::0;-1:-1:-1;;;;;;10929:74:0::1;::::0;;;;;;-1:-1:-1;;;;;8471:32:1;;;10929:74:0::1;::::0;::::1;8453:51:1::0;8520:18;;;8513:34;8426:18;;10929:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3039:1::-;10604:407:::0;:::o;7569:380::-;-1:-1:-1;;;;;7705:19:0;;7697:68;;;;-1:-1:-1;;;7697:68:0;;9010:2:1;7697:68:0;;;8992:21:1;9049:2;9029:18;;;9022:30;9088:34;9068:18;;;9061:62;-1:-1:-1;;;9139:18:1;;;9132:34;9183:19;;7697:68:0;8808:400:1;7697:68:0;-1:-1:-1;;;;;7784:21:0;;7776:68;;;;-1:-1:-1;;;7776:68:0;;9415:2:1;7776:68:0;;;9397:21:1;9454:2;9434:18;;;9427:30;9493:34;9473:18;;;9466:62;-1:-1:-1;;;9544:18:1;;;9537:32;9586:19;;7776:68:0;9213:398:1;7776:68:0;-1:-1:-1;;;;;7857:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7909:32;;1361:25:1;;;7909:32:0;;1334:18:1;7909:32:0;;;;;;;7569:380;;;:::o;12062:1816::-;-1:-1:-1;;;;;12159:18:0;;12151:67;;;;-1:-1:-1;;;12151:67:0;;9818:2:1;12151:67:0;;;9800:21:1;9857:2;9837:18;;;9830:30;9896:34;9876:18;;;9869:62;-1:-1:-1;;;9947:18:1;;;9940:34;9991:19;;12151:67:0;9616:400:1;12151:67:0;-1:-1:-1;;;;;12237:16:0;;12229:63;;;;-1:-1:-1;;;12229:63:0;;10223:2:1;12229:63:0;;;10205:21:1;10262:2;10242:18;;;10235:30;10301:34;10281:18;;;10274:62;-1:-1:-1;;;10352:18:1;;;10345:32;10394:19;;12229:63:0;10021:398:1;12229:63:0;12311:14;;;;;;;;:43;;-1:-1:-1;;;;;;12329:25:0;;;;;;:19;:25;;;;;;;;12311:43;:70;;;-1:-1:-1;;;;;;12358:23:0;;;;;;:19;:23;;;;;;;;12311:70;12303:113;;;;-1:-1:-1;;;12303:113:0;;10626:2:1;12303:113:0;;;10608:21:1;10665:2;10645:18;;;10638:30;10704:32;10684:18;;;10677:60;10754:18;;12303:113:0;10424:354:1;12303:113:0;12440:6;12450:1;12440:11;12436:93;;12468:28;12484:4;12490:2;12494:1;12468:15;:28::i;:::-;12062:1816;;;:::o;12436:93::-;12584:4;12535:28;4405:18;;;;;;;;;;;12642;;12618:42;;;;;;;12677:33;;-1:-1:-1;12702:8:0;;;;12701:9;12677:33;:69;;;;-1:-1:-1;12733:13:0;;-1:-1:-1;;;;;12727:19:0;;;12733:13;;12727:19;12677:69;:110;;;;;12786:1;12774:9;;12763:8;;:20;;;;:::i;:::-;:24;12677:110;:153;;;;-1:-1:-1;;;;;;12805:25:0;;;;;;:19;:25;;;;;;;;12804:26;12677:153;:181;;;;-1:-1:-1;12847:11:0;;;;;;;12677:181;12673:330;;;12885:8;:15;;-1:-1:-1;;12885:15:0;12896:4;12885:15;;;12917:36;12932:20;12917:14;:36::i;:::-;12975:8;:16;;-1:-1:-1;;12975:16:0;;;12673:330;-1:-1:-1;;;;;13048:25:0;;13015:18;13048:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13077:23:0;;;;;;:19;:23;;;;;;;;13048:52;:64;;;-1:-1:-1;13104:8:0;;;;13048:64;13044:586;;;-1:-1:-1;13142:1:0;13044:586;;;13173:13;;-1:-1:-1;;;;;13173:13:0;;;13165:21;;;;13161:469;;13224:11;;:24;;13238:10;13224:24;:::i;:::-;13206:15;:42;13203:155;;;-1:-1:-1;13281:8:0;;13161:469;;13203:155;-1:-1:-1;13341:1:0;13161:469;;;13385:13;;-1:-1:-1;;;;;13385:13:0;;;13379:19;;;;13375:255;;13436:11;;:24;;13450:10;13436:24;:::i;:::-;13418:15;:42;13415:157;;;-1:-1:-1;13493:9:0;;13375:255;;13415:157;-1:-1:-1;13554:2:0;13375:255;;;-1:-1:-1;13617:1:0;13375:255;13646:14;;13642:183;;13677:12;13716:3;13693:19;13702:10;13693:6;:19;:::i;:::-;13692:27;;;;:::i;:::-;13677:42;-1:-1:-1;13743:13:0;13677:42;13743:6;:13;:::i;:::-;13734:22;;13771:42;13787:4;13801;13808;13771:15;:42::i;:::-;13662:163;13642:183;13837:33;13853:4;13859:2;13863:6;13837:15;:33::i;:::-;12140:1738;;;12062:1816;;;:::o;1840:285::-;1919:4;1968:6;1943:21;:31;;1935:73;;;;-1:-1:-1;;;1935:73:0;;11291:2:1;1935:73:0;;;11273:21:1;11330:2;11310:18;;;11303:30;11369:31;11349:18;;;11342:59;11418:18;;1935:73:0;11089:353:1;1935:73:0;2022:12;2040:9;-1:-1:-1;;;;;2040:14:0;2062:6;2040:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2021:52:0;;1840:285;-1:-1:-1;;;;;1840:285:0:o;6183:614::-;-1:-1:-1;;;;;6323:20:0;;6315:70;;;;-1:-1:-1;;;6315:70:0;;11859:2:1;6315:70:0;;;11841:21:1;11898:2;11878:18;;;11871:30;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:18:1;;;11981:35;12033:19;;6315:70:0;11657:401:1;6315:70:0;-1:-1:-1;;;;;6404:23:0;;6396:71;;;;-1:-1:-1;;;6396:71:0;;12265:2:1;6396:71:0;;;12247:21:1;12304:2;12284:18;;;12277:30;12343:34;12323:18;;;12316:62;-1:-1:-1;;;12394:18:1;;;12387:33;12437:19;;6396:71:0;12063:399:1;6396:71:0;-1:-1:-1;;;;;6504:17:0;;6480:21;6504:17;;;;;;;;;;;6540:23;;;;6532:74;;;;-1:-1:-1;;;6532:74:0;;12669:2:1;6532:74:0;;;12651:21:1;12708:2;12688:18;;;12681:30;12747:34;12727:18;;;12720:62;-1:-1:-1;;;12798:18:1;;;12791:36;12844:19;;6532:74:0;12467:402:1;6532:74:0;-1:-1:-1;;;;;6642:17:0;;;:9;:17;;;;;;;;;;;6662:22;;;6642:42;;6706:20;;;;;;;;:30;;6678:6;;6642:9;6706:30;;6678:6;;6706:30;:::i;:::-;;;;;;;;6771:9;-1:-1:-1;;;;;6754:35:0;6763:6;-1:-1:-1;;;;;6754:35:0;;6782:6;6754:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;6754:35:0;;;;;;;;6304:493;6183:614;;;:::o;14260:687::-;14407:16;;;14421:1;14407:16;;;;;;;;14349:21;;14324:22;;14407:16;14421:1;14407:16;;;;;;;;;;-1:-1:-1;14407:16:0;14383:40;;14452:4;14434;14439:1;14434:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14434:23:0;;;:7;;;;;;;;;;:23;;;;14478:15;;:22;;;-1:-1:-1;;;14478:22:0;;;;:15;;;;;:20;;:22;;;;;14434:7;;14478:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14468:4;14473:1;14468:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14468:32:0;;;:7;;;;;;;;;:32;14517:15;;:196;;-1:-1:-1;;;14517:196:0;;:15;;;:66;;:196;;14598:11;;14517:15;;14640:4;;14667;;14687:15;;14517:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14513:243;;14738:7;;14260:687;:::o;14513:243::-;14768:18;14789:38;14813:14;14789:21;:38;:::i;:::-;14848:11;;14768:59;;-1:-1:-1;14840:42:0;;-1:-1:-1;;;;;14848:11:0;14768:59;14840:30;:42::i;:::-;-1:-1:-1;14900:39:0;;;14553:25:1;;;14609:2;14594:18;;14587:34;;;14900:39:0;;14526:18:1;14900:39:0;;;;;;;14313:634;;;14260:687;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:309;2928:6;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3041:9;3028:23;3018:33;;3101:2;3090:9;3086:18;3073:32;3114:28;3136:5;3114:28;:::i;:::-;3161:5;3151:15;;;2863:309;;;;;:::o;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;3564:388::-;3632:6;3640;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3748:9;3735:23;3767:31;3792:5;3767:31;:::i;:::-;3817:5;-1:-1:-1;3874:2:1;3859:18;;3846:32;3887:33;3846:32;3887:33;:::i;3957:380::-;4036:1;4032:12;;;;4079;;;4100:61;;4154:4;4146:6;4142:17;4132:27;;4100:61;4207:2;4199:6;4196:14;4176:18;4173:38;4170:161;;4253:10;4248:3;4244:20;4241:1;4234:31;4288:4;4285:1;4278:15;4316:4;4313:1;4306:15;4170:161;;3957:380;;;:::o;4751:127::-;4812:10;4807:3;4803:20;4800:1;4793:31;4843:4;4840:1;4833:15;4867:4;4864:1;4857:15;4883:125;4948:9;;;4969:10;;;4966:36;;;4982:18;;:::i;5013:356::-;5215:2;5197:21;;;5234:18;;;5227:30;5293:34;5288:2;5273:18;;5266:62;5360:2;5345:18;;5013:356::o;6553:217::-;6593:1;6619;6609:132;;6663:10;6658:3;6654:20;6651:1;6644:31;6698:4;6695:1;6688:15;6726:4;6723:1;6716:15;6609:132;-1:-1:-1;6755:9:1;;6553:217::o;8090:184::-;8160:6;8213:2;8201:9;8192:7;8188:23;8184:32;8181:52;;;8229:1;8226;8219:12;8181:52;-1:-1:-1;8252:16:1;;8090:184;-1:-1:-1;8090:184:1:o;8558:245::-;8625:6;8678:2;8666:9;8657:7;8653:23;8649:32;8646:52;;;8694:1;8691;8684:12;8646:52;8726:9;8720:16;8745:28;8767:5;8745:28;:::i;10783:168::-;10856:9;;;10887;;10904:15;;;10898:22;;10884:37;10874:71;;10925:18;;:::i;10956:128::-;11023:9;;;11044:11;;;11041:37;;;11058:18;;:::i;13006:127::-;13067:10;13062:3;13058:20;13055:1;13048:31;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13138:251;13208:6;13261:2;13249:9;13240:7;13236:23;13232:32;13229:52;;;13277:1;13274;13267:12;13229:52;13309:9;13303:16;13328:31;13353:5;13328:31;:::i;13394:980::-;13656:4;13704:3;13693:9;13689:19;13735:6;13724:9;13717:25;13761:2;13799:6;13794:2;13783:9;13779:18;13772:34;13842:3;13837:2;13826:9;13822:18;13815:31;13866:6;13901;13895:13;13932:6;13924;13917:22;13970:3;13959:9;13955:19;13948:26;;14009:2;14001:6;13997:15;13983:29;;14030:1;14040:195;14054:6;14051:1;14048:13;14040:195;;;14119:13;;-1:-1:-1;;;;;14115:39:1;14103:52;;14210:15;;;;14175:12;;;;14151:1;14069:9;14040:195;;;-1:-1:-1;;;;;;;14291:32:1;;;;14286:2;14271:18;;14264:60;-1:-1:-1;;;14355:3:1;14340:19;14333:35;14252:3;13394:980;-1:-1:-1;;;13394:980:1:o

Swarm Source

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