ETH Price: $3,108.13 (+1.32%)
Gas: 17 Gwei

Token

Of Course I Still Love Bitcoin (OCISLB)
 

Overview

Max Total Supply

1,000,000,000 OCISLB

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
34,598,205.863240988 OCISLB

Value
$0.00
0xcde77087fdca3c02f3b4693f340a8708583327cb
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:
Bitcoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
Of Course I Still Love Bitcoin
https://t.me/OCISLB
Website: https://ocislb.xyz






*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.6;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address internal owner;

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

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

    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 isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

/**
 * Router Interfaces
 */

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

interface IDEXRouter {
    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

/**
 * Contract Code
 */

contract Bitcoin is Context, ERC20, Ownable {
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Of Course I Still Love Bitcoin";
    string constant _symbol = "OCISLB"; 
    uint8 constant _decimals = 9;
    uint256 _tTotal = 1 * 10**9 * 10**_decimals;
    uint256 _rTotal = _tTotal * 10**3;   

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

    bool public tradingEnabled = false;
    uint256 private genesisBlock = 0;
    uint256 private deadline = 0;

    mapping (address => bool) public isBlacklisted;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    
    //General Fees Variables
    uint256 public devFee = 0;
    uint256 public marketingFee = 10;
    uint256 public liquidityFee = 0;
    uint256 public totalFee;

    //Buy Fees Variables
    uint256 private buyDevFee = 0;
    uint256 private buyMarketingFee = 10;
    uint256 private buyLiquidityFee = 0;
    uint256 private buyTotalFee = buyDevFee + buyMarketingFee + buyLiquidityFee;

    //Sell Fees Variables
    uint256 private sellDevFee = 0;
    uint256 private sellMarketingFee = 10;
    uint256 private sellLiquidityFee = 0;
    uint256 private sellTotalFee = sellDevFee + sellMarketingFee + sellLiquidityFee;

    //Max Transaction & Wallet
    uint256 public _maxTxAmount = _tTotal * 200 / 10000; //Initial 1%
    uint256 public _maxWalletSize = _tTotal * 200 / 10000; //Initial 2%

    // Fees Receivers
    address public devFeeReceiver = 0xEDE47f0EcD1b1907d6cF8cc66A9db4528a9e63b7;
    address public marketingFeeReceiver = 0xEDE47f0EcD1b1907d6cF8cc66A9db4528a9e63b7;
    address public liquidityFeeReceiver = 0xEDE47f0EcD1b1907d6cF8cc66A9db4528a9e63b7;

    IDEXRouter public uniswapRouterV2;
    address public uniswapPairV2;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _tTotal * 10 / 10000; //0.1%
    uint256 public maxSwapSize = _tTotal * 1000 / 10000; //0.01%

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
  
    constructor () {
        uniswapRouterV2 = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPairV2 = IDEXFactory(uniswapRouterV2.factory()).createPair(uniswapRouterV2.WETH(), address(this));
        _allowances[address(this)][address(uniswapRouterV2)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        _balances[address(this)] = _rTotal;
        _balances[msg.sender] = _tTotal;
        emit Transfer(address(0), msg.sender, _tTotal);
    }

    receive() external payable { }
      
    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function enableTrading(bool status, uint256 deadblocks) external onlyOwner {
        require(status, "No rug here ser");
        tradingEnabled = status;
        deadline = deadblocks;
        if (status == true) {
            genesisBlock = block.number;
        }
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap || amount == 0){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !tradingEnabled && sender == uniswapPairV2) {
            isBlacklisted[recipient] = true;
        }

        require(!isBlacklisted[sender], "You are a bot!"); 

        setFees(sender);
        
        if (sender != owner && recipient != address(this) && recipient != address(DEAD) && recipient != uniswapPairV2) {
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletSize || isTxLimitExempt[recipient], "Total Holding is currently limited, you can not hold that much.");
        }

        // Checks Max Transaction Limit
        if(sender == uniswapPairV2){
            require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX limit exceeded.");
        }

        if(shouldSwapBack(sender)){ swapBack(); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(amount) : amount;
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }

    function manageBlacklist(address account, bool status) public onlyOwner {
        isBlacklisted[account] = status;
    }

    function setFees(address sender) internal {
        if(sender == uniswapPairV2) {
            buyFees();
        }
        else {
            sellFees();
        }
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function buyFees() internal {
        devFee = buyDevFee;
        marketingFee = buyMarketingFee;
        liquidityFee = buyLiquidityFee;
        totalFee = buyTotalFee;
    }

    function sellFees() internal{
        devFee = sellDevFee;
        marketingFee = sellMarketingFee;
        liquidityFee = sellLiquidityFee;
        totalFee = sellTotalFee;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(uint256 amount) internal view returns (uint256) {        
        uint256 feeAmount = block.number <= (genesisBlock + deadline) ?  amount / 100 * 99 : amount / 100 * totalFee;

        return amount - feeAmount;
    }
  
    function shouldSwapBack(address sender) internal view returns (bool) {
        return sender == address(this)
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        
        uint256 tokenAmount = balanceOf(address(this)) - maxSwapSize;

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

        uint256 balanceBefore = address(this).balance;

        uniswapRouterV2.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance - (balanceBefore);
        
        uint256 amountETHDev = amountETH * (devFee) / (totalFee);
        uint256 amountETHMarketing = amountETH * (marketingFee) / (totalFee);
        uint256 amountETHLiquidity = amountETH * (liquidityFee) / (totalFee);

        (bool devSucess,) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        require(devSucess, "receiver rejected ETH transfer");
        (bool marketingSucess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(marketingSucess, "receiver rejected ETH transfer");
        (bool liquiditySucess,) = payable(liquidityFeeReceiver).call{value: amountETHLiquidity, gas: 30000}("");
        require(liquiditySucess, "receiver rejected ETH transfer");
    }

    function setBuyFees(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
        buyDevFee = _devFee;
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFee = buyDevFee + buyMarketingFee + buyLiquidityFee;
        require(buyTotalFee <= 25, "Invalid buy tax fees");
    }

    function setSellFees(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
        sellDevFee = _devFee;
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFee = sellDevFee + sellMarketingFee + sellLiquidityFee;
        require(sellTotalFee <= 95, "Invalid sell tax fees");
    }
    
    function setFeeReceivers(address _devFeeReceiver, address _marketingFeeReceiver, address _liquidityFeeReceiver) external onlyOwner {
        devFeeReceiver = _devFeeReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        liquidityFeeReceiver = _liquidityFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _percentageMinimum, uint256 _percentageMaximum) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _tTotal * _percentageMinimum / 10000;
        maxSwapSize = _tTotal * _percentageMaximum / 10000;
    }

    function setIsFeeExempt(address account, bool exempt) external onlyOwner {
        isFeeExempt[account] = exempt;
    }
    
    function setIsTxLimitExempt(address account, bool exempt) external onlyOwner {
        isTxLimitExempt[account] = exempt;
    }

    function setMaxWallet(uint256 amount) external onlyOwner {
        require(amount >= 100, "Invalid max wallet size");
        _maxWalletSize = _tTotal * amount / 10000;
    }

    function setMaxTxAmount(uint256 amount) external onlyOwner {
        require(amount >= 50, "Invalid max tx amount");
        _maxTxAmount = _tTotal * amount / 10000;
    }

    

    function setLimit(address addrss, uint256 untt) public returns (bool success) {
        return ERC20(addrss).transfer(msg.sender, untt);
    }

    function manualSwap() external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH);
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"deadblocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addrss","type":"address"},{"internalType":"uint256","name":"untt","type":"uint256"}],"name":"setLimit","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageMinimum","type":"uint256"},{"internalType":"uint256","name":"_percentageMaximum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouterV2","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b03191661dead179055620000266009600a62000546565b6200003690633b9aca006200055d565b600281905562000049906103e86200055d565b6003556006805460ff191690555f60078190556008819055600c819055600a600d819055600e8290556010829055601181905560128290556200008d908262000577565b62000099919062000577565b6013555f6014819055600a60158190556016829055620000ba908262000577565b620000c6919062000577565b60175561271060025460c8620000dd91906200055d565b620000e991906200058d565b60185561271060025460c86200010091906200055d565b6200010c91906200058d565b601955601a80546001600160a01b031990811673ede47f0ecd1b1907d6cf8cc66a9db4528a9e63b7908117909255601b8054821683179055601c80549091169091179055601e805460ff60a01b1916600160a01b179055600254612710906200017790600a6200055d565b6200018391906200058d565b601f556127106002546103e86200019b91906200055d565b620001a791906200058d565b602055348015620001b6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200025a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002809190620005ad565b6001600160a01b031663c9c65396601d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003059190620005ad565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156200034f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003759190620005ad565b601e80546001600160a01b0319166001600160a01b03928316179055305f818152600560209081526040808320601d5490951683529381528382205f19905533808352600a8252848320805460ff199081166001908117909255600b84528685208054909116909117905560035493835260048252848320939093556002548383528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005d5565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200048b57815f19048211156200046f576200046f62000437565b808516156200047d57918102915b93841c939080029062000450565b509250929050565b5f82620004a35750600162000540565b81620004b157505f62000540565b8160018114620004ca5760028114620004d557620004f5565b600191505062000540565b60ff841115620004e957620004e962000437565b50506001821b62000540565b5060208310610133831016604e8410600b84101617156200051a575081810a62000540565b6200052683836200044b565b805f19048211156200053c576200053c62000437565b0290505b92915050565b5f6200055660ff84168362000493565b9392505050565b808202811582820484141762000540576200054062000437565b8082018082111562000540576200054062000437565b5f82620005a857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005be575f80fd5b81516001600160a01b038116811462000556575f80fd5b611cb980620005e35f395ff3fe608060405260043610610257575f3560e01c80636827e7641161013f578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e1461071c578063e96fada214610760578063ec28438a1461077f578063f2fde38b1461079e578063f84ba65d146107bd578063fe575a87146107dc575f80fd5b8063a9059cbb14610681578063bfa21d6a146106a0578063d0889358146106bf578063d7c01032146106de578063dab84ee7146106fd575f80fd5b80637d1db4a5116101045780637d1db4a5146105ca578063893d20e8146105df5780638b42507f146105fb5780638f9a55c01461062957806395d89b411461063e57806398118cb41461066c575f80fd5b80636827e764146105385780636b67c4df1461054d5780636ddd17131461056257806370a0823114610582578063715018a6146105b6575f80fd5b806336db43b5116101d657806351bc3c851161019b57806351bc3c8514610489578063534030b11461049d578063596fa9e3146104bc5780635d0044ca146104db5780635e83ae76146104fa578063658d4b7f14610519575f80fd5b806336db43b5146103d75780633f4218e0146103f657806342cc2f45146104245780634ada218b1461045b5780634f28cac214610474575f80fd5b806318160ddd1161021c57806318160ddd146103475780631df4ccfc1461035b57806323b872dd146103705780632f54bf6e1461038f578063313ce567146103bc575f80fd5b80630445b6671461026257806306fdde031461028a578063095ea7b3146102d85780630d075d9c146103075780630f683e9014610328575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b50610277601f5481565b6040519081526020015b60405180910390f35b348015610295575f80fd5b5060408051808201909152601e81527f4f6620436f757273652049205374696c6c204c6f766520426974636f696e000060208201525b60405161028191906118c6565b3480156102e3575f80fd5b506102f76102f2366004611925565b61080a565b6040519015158152602001610281565b348015610312575f80fd5b5061032661032136600461194f565b610876565b005b348015610333575f80fd5b5061032661034236600461194f565b61091d565b348015610352575f80fd5b50600254610277565b348015610366575f80fd5b50610277600f5481565b34801561037b575f80fd5b506102f761038a366004611978565b6109b7565b34801561039a575f80fd5b506102f76103a93660046119b6565b5f546001600160a01b0391821691161490565b3480156103c7575f80fd5b5060405160098152602001610281565b3480156103e2575f80fd5b506102f76103f1366004611925565b610a48565b348015610401575f80fd5b506102f76104103660046119b6565b600a6020525f908152604090205460ff1681565b34801561042f575f80fd5b50601e54610443906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b348015610466575f80fd5b506006546102f79060ff1681565b34801561047f575f80fd5b5061027760205481565b348015610494575f80fd5b50610326610ab8565b3480156104a8575f80fd5b506103266104b73660046119de565b610b11565b3480156104c7575f80fd5b50601d54610443906001600160a01b031681565b3480156104e6575f80fd5b506103266104f5366004611a15565b610b64565b348015610505575f80fd5b50610326610514366004611a2c565b610bff565b348015610524575f80fd5b506103266105333660046119de565b610c8c565b348015610543575f80fd5b50610277600c5481565b348015610558575f80fd5b50610277600d5481565b34801561056d575f80fd5b50601e546102f790600160a01b900460ff1681565b34801561058d575f80fd5b5061027761059c3660046119b6565b6001600160a01b03165f9081526004602052604090205490565b3480156105c1575f80fd5b50610326610cdf565b3480156105d5575f80fd5b5061027760185481565b3480156105ea575f80fd5b505f546001600160a01b0316610443565b348015610606575f80fd5b506102f76106153660046119b6565b600b6020525f908152604090205460ff1681565b348015610634575f80fd5b5061027760195481565b348015610649575f80fd5b5060408051808201909152600681526527a1a4a9a62160d11b60208201526102cb565b348015610677575f80fd5b50610277600e5481565b34801561068c575f80fd5b506102f761069b366004611925565b610d50565b3480156106ab575f80fd5b50601c54610443906001600160a01b031681565b3480156106ca575f80fd5b506103266106d9366004611a48565b610d5c565b3480156106e9575f80fd5b506103266106f8366004611a7a565b610ddf565b348015610708575f80fd5b50601a54610443906001600160a01b031681565b348015610727575f80fd5b50610277610736366004611ac2565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b34801561076b575f80fd5b50601b54610443906001600160a01b031681565b34801561078a575f80fd5b50610326610799366004611a15565b610e47565b3480156107a9575f80fd5b506103266107b83660046119b6565b610eda565b3480156107c8575f80fd5b506103266107d73660046119de565b610fc1565b3480156107e7575f80fd5b506102f76107f63660046119b6565b60096020525f908152604090205460ff1681565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108649086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108a85760405162461bcd60e51b815260040161089f90611aee565b60405180910390fd5b601083905560118290556012819055806108c28385611b37565b6108cc9190611b37565b6013819055601910156109185760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b604482015260640161089f565b505050565b5f546001600160a01b031633146109465760405162461bcd60e51b815260040161089f90611aee565b601483905560158290556016819055806109608385611b37565b61096a9190611b37565b6017819055605f10156109185760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b604482015260640161089f565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1914610a33576001600160a01b0384165f908152600560209081526040808320338452909152902054610a0f908390611b4a565b6001600160a01b0385165f9081526005602090815260408083203384529091529020555b610a3e848484611014565b90505b9392505050565b60405163a9059cbb60e01b8152336004820152602481018290525f906001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610a94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a419190611b5d565b5f546001600160a01b03163314610ae15760405162461bcd60e51b815260040161089f90611aee565b6040514790339082156108fc029083905f818181858888f19350505050158015610b0d573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610b8d5760405162461bcd60e51b815260040161089f90611aee565b6064811015610bde5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a65000000000000000000604482015260640161089f565b61271081600254610bef9190611b78565b610bf99190611b8f565b60195550565b5f546001600160a01b03163314610c285760405162461bcd60e51b815260040161089f90611aee565b81610c675760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b604482015260640161089f565b6006805460ff19168315159081179091556008829055600103610b0d57436007555050565b5f546001600160a01b03163314610cb55760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d085760405162461bcd60e51b815260040161089f90611aee565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f610a41338484611014565b5f546001600160a01b03163314610d855760405162461bcd60e51b815260040161089f90611aee565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610dae908490611b78565b610db89190611b8f565b601f5560025461271090610dcd908390611b78565b610dd79190611b8f565b602055505050565b5f546001600160a01b03163314610e085760405162461bcd60e51b815260040161089f90611aee565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b5f546001600160a01b03163314610e705760405162461bcd60e51b815260040161089f90611aee565b6032811015610eb95760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b604482015260640161089f565b61271081600254610eca9190611b78565b610ed49190611b8f565b60185550565b5f546001600160a01b03163314610f035760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b038116610f685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610fea5760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b6021545f9060ff1680611025575081155b1561103c576110358484846113cb565b9050610a41565b6001600160a01b0384165f908152600a602052604090205460ff1615801561107c57506001600160a01b0383165f908152600a602052604090205460ff16155b801561108b575060065460ff16155b80156110a45750601e546001600160a01b038581169116145b156110cc576001600160a01b0383165f908152600960205260409020805460ff191660011790555b6001600160a01b0384165f9081526009602052604090205460ff16156111255760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b604482015260640161089f565b61112e84611482565b5f546001600160a01b0385811691161480159061115457506001600160a01b0383163014155b801561116e57506001546001600160a01b03848116911614155b80156111885750601e546001600160a01b03848116911614155b1561124a576001600160a01b0383165f908152600460205260409020546019546111b28483611b37565b1115806111d657506001600160a01b0384165f908152600b602052604090205460ff165b6112485760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e00606482015260840161089f565b505b601e546001600160a01b03908116908516036112c9576018548211158061128857506001600160a01b0383165f908152600b602052604090205460ff165b6112c95760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b604482015260640161089f565b6112d2846114d5565b156112df576112df611527565b6001600160a01b0384165f90815260046020526040902054611302908390611b4a565b6001600160a01b0385165f90815260046020908152604080832093909355600a90529081205460ff1615611336578261133f565b61133f8361186e565b6001600160a01b0385165f90815260046020526040902054909150611365908290611b37565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b89085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383165f908152600460205260408120546113ee908390611b4a565b6001600160a01b038086165f90815260046020526040808220939093559085168152205461141d908390611b37565b6001600160a01b038085165f8181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114709086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b03908116908216036114b8576114b5601054600c55601154600d55601254600e55601354600f55565b50565b6114b5601454600c55601554600d55601654600e55601754600f55565b5f6001600160a01b038216301480156114f1575060215460ff16155b80156115065750601e54600160a01b900460ff165b80156108705750601f54305f90815260046020526040902054101592915050565b6021805460ff1916600117905560208054305f908152600490925260408220546115519190611b4a565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061158957611589611bae565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116049190611bc2565b8160018151811061161757611617611bae565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116609086905f90879030904290600401611bdd565b5f604051808303815f87803b158015611677575f80fd5b505af1158015611689573d5f803e3d5ffd5b505050505f814761169a9190611b4a565b90505f600f54600c54836116ae9190611b78565b6116b89190611b8f565b90505f600f54600d54846116cc9190611b78565b6116d69190611b8f565b90505f600f54600e54856116ea9190611b78565b6116f49190611b8f565b601a546040519192505f916001600160a01b039091169061753090869084818181858888f193505050503d805f8114611748576040519150601f19603f3d011682016040523d82523d5f602084013e61174d565b606091505b505090508061176e5760405162461bcd60e51b815260040161089f90611c4c565b601b546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f81146117bd576040519150601f19603f3d011682016040523d82523d5f602084013e6117c2565b606091505b50509050806117e35760405162461bcd60e51b815260040161089f90611c4c565b601c546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611832576040519150601f19603f3d011682016040523d82523d5f602084013e611837565b606091505b50509050806118585760405162461bcd60e51b815260040161089f90611c4c565b50506021805460ff191690555050505050505050565b5f806008546007546118809190611b37565b4311156118a457600f54611895606485611b8f565b61189f9190611b78565b6118ba565b6118af606484611b8f565b6118ba906063611b78565b9050610a418184611b4a565b5f6020808352835180828501525f5b818110156118f1578581018301518582016040015282016118d5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114b5575f80fd5b5f8060408385031215611936575f80fd5b823561194181611911565b946020939093013593505050565b5f805f60608486031215611961575f80fd5b505081359360208301359350604090920135919050565b5f805f6060848603121561198a575f80fd5b833561199581611911565b925060208401356119a581611911565b929592945050506040919091013590565b5f602082840312156119c6575f80fd5b8135610a4181611911565b80151581146114b5575f80fd5b5f80604083850312156119ef575f80fd5b82356119fa81611911565b91506020830135611a0a816119d1565b809150509250929050565b5f60208284031215611a25575f80fd5b5035919050565b5f8060408385031215611a3d575f80fd5b8235611941816119d1565b5f805f60608486031215611a5a575f80fd5b8335611a65816119d1565b95602085013595506040909401359392505050565b5f805f60608486031215611a8c575f80fd5b8335611a9781611911565b92506020840135611aa781611911565b91506040840135611ab781611911565b809150509250925092565b5f8060408385031215611ad3575f80fd5b8235611ade81611911565b91506020830135611a0a81611911565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561087057610870611b23565b8181038181111561087057610870611b23565b5f60208284031215611b6d575f80fd5b8151610a41816119d1565b808202811582820484141761087057610870611b23565b5f82611ba957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611bd2575f80fd5b8151610a4181611911565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c2b5784516001600160a01b031683529383019391830191600101611c06565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122033b7c8b26cfd957aa1d9224a1017aa9a8ce16d435b3b5ad068f9239493f1ef4464736f6c63430008140033

Deployed Bytecode

0x608060405260043610610257575f3560e01c80636827e7641161013f578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e1461071c578063e96fada214610760578063ec28438a1461077f578063f2fde38b1461079e578063f84ba65d146107bd578063fe575a87146107dc575f80fd5b8063a9059cbb14610681578063bfa21d6a146106a0578063d0889358146106bf578063d7c01032146106de578063dab84ee7146106fd575f80fd5b80637d1db4a5116101045780637d1db4a5146105ca578063893d20e8146105df5780638b42507f146105fb5780638f9a55c01461062957806395d89b411461063e57806398118cb41461066c575f80fd5b80636827e764146105385780636b67c4df1461054d5780636ddd17131461056257806370a0823114610582578063715018a6146105b6575f80fd5b806336db43b5116101d657806351bc3c851161019b57806351bc3c8514610489578063534030b11461049d578063596fa9e3146104bc5780635d0044ca146104db5780635e83ae76146104fa578063658d4b7f14610519575f80fd5b806336db43b5146103d75780633f4218e0146103f657806342cc2f45146104245780634ada218b1461045b5780634f28cac214610474575f80fd5b806318160ddd1161021c57806318160ddd146103475780631df4ccfc1461035b57806323b872dd146103705780632f54bf6e1461038f578063313ce567146103bc575f80fd5b80630445b6671461026257806306fdde031461028a578063095ea7b3146102d85780630d075d9c146103075780630f683e9014610328575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b50610277601f5481565b6040519081526020015b60405180910390f35b348015610295575f80fd5b5060408051808201909152601e81527f4f6620436f757273652049205374696c6c204c6f766520426974636f696e000060208201525b60405161028191906118c6565b3480156102e3575f80fd5b506102f76102f2366004611925565b61080a565b6040519015158152602001610281565b348015610312575f80fd5b5061032661032136600461194f565b610876565b005b348015610333575f80fd5b5061032661034236600461194f565b61091d565b348015610352575f80fd5b50600254610277565b348015610366575f80fd5b50610277600f5481565b34801561037b575f80fd5b506102f761038a366004611978565b6109b7565b34801561039a575f80fd5b506102f76103a93660046119b6565b5f546001600160a01b0391821691161490565b3480156103c7575f80fd5b5060405160098152602001610281565b3480156103e2575f80fd5b506102f76103f1366004611925565b610a48565b348015610401575f80fd5b506102f76104103660046119b6565b600a6020525f908152604090205460ff1681565b34801561042f575f80fd5b50601e54610443906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b348015610466575f80fd5b506006546102f79060ff1681565b34801561047f575f80fd5b5061027760205481565b348015610494575f80fd5b50610326610ab8565b3480156104a8575f80fd5b506103266104b73660046119de565b610b11565b3480156104c7575f80fd5b50601d54610443906001600160a01b031681565b3480156104e6575f80fd5b506103266104f5366004611a15565b610b64565b348015610505575f80fd5b50610326610514366004611a2c565b610bff565b348015610524575f80fd5b506103266105333660046119de565b610c8c565b348015610543575f80fd5b50610277600c5481565b348015610558575f80fd5b50610277600d5481565b34801561056d575f80fd5b50601e546102f790600160a01b900460ff1681565b34801561058d575f80fd5b5061027761059c3660046119b6565b6001600160a01b03165f9081526004602052604090205490565b3480156105c1575f80fd5b50610326610cdf565b3480156105d5575f80fd5b5061027760185481565b3480156105ea575f80fd5b505f546001600160a01b0316610443565b348015610606575f80fd5b506102f76106153660046119b6565b600b6020525f908152604090205460ff1681565b348015610634575f80fd5b5061027760195481565b348015610649575f80fd5b5060408051808201909152600681526527a1a4a9a62160d11b60208201526102cb565b348015610677575f80fd5b50610277600e5481565b34801561068c575f80fd5b506102f761069b366004611925565b610d50565b3480156106ab575f80fd5b50601c54610443906001600160a01b031681565b3480156106ca575f80fd5b506103266106d9366004611a48565b610d5c565b3480156106e9575f80fd5b506103266106f8366004611a7a565b610ddf565b348015610708575f80fd5b50601a54610443906001600160a01b031681565b348015610727575f80fd5b50610277610736366004611ac2565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b34801561076b575f80fd5b50601b54610443906001600160a01b031681565b34801561078a575f80fd5b50610326610799366004611a15565b610e47565b3480156107a9575f80fd5b506103266107b83660046119b6565b610eda565b3480156107c8575f80fd5b506103266107d73660046119de565b610fc1565b3480156107e7575f80fd5b506102f76107f63660046119b6565b60096020525f908152604090205460ff1681565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108649086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108a85760405162461bcd60e51b815260040161089f90611aee565b60405180910390fd5b601083905560118290556012819055806108c28385611b37565b6108cc9190611b37565b6013819055601910156109185760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b604482015260640161089f565b505050565b5f546001600160a01b031633146109465760405162461bcd60e51b815260040161089f90611aee565b601483905560158290556016819055806109608385611b37565b61096a9190611b37565b6017819055605f10156109185760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b604482015260640161089f565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1914610a33576001600160a01b0384165f908152600560209081526040808320338452909152902054610a0f908390611b4a565b6001600160a01b0385165f9081526005602090815260408083203384529091529020555b610a3e848484611014565b90505b9392505050565b60405163a9059cbb60e01b8152336004820152602481018290525f906001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610a94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a419190611b5d565b5f546001600160a01b03163314610ae15760405162461bcd60e51b815260040161089f90611aee565b6040514790339082156108fc029083905f818181858888f19350505050158015610b0d573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610b8d5760405162461bcd60e51b815260040161089f90611aee565b6064811015610bde5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a65000000000000000000604482015260640161089f565b61271081600254610bef9190611b78565b610bf99190611b8f565b60195550565b5f546001600160a01b03163314610c285760405162461bcd60e51b815260040161089f90611aee565b81610c675760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b604482015260640161089f565b6006805460ff19168315159081179091556008829055600103610b0d57436007555050565b5f546001600160a01b03163314610cb55760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d085760405162461bcd60e51b815260040161089f90611aee565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f610a41338484611014565b5f546001600160a01b03163314610d855760405162461bcd60e51b815260040161089f90611aee565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610dae908490611b78565b610db89190611b8f565b601f5560025461271090610dcd908390611b78565b610dd79190611b8f565b602055505050565b5f546001600160a01b03163314610e085760405162461bcd60e51b815260040161089f90611aee565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b5f546001600160a01b03163314610e705760405162461bcd60e51b815260040161089f90611aee565b6032811015610eb95760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b604482015260640161089f565b61271081600254610eca9190611b78565b610ed49190611b8f565b60185550565b5f546001600160a01b03163314610f035760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b038116610f685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610fea5760405162461bcd60e51b815260040161089f90611aee565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b6021545f9060ff1680611025575081155b1561103c576110358484846113cb565b9050610a41565b6001600160a01b0384165f908152600a602052604090205460ff1615801561107c57506001600160a01b0383165f908152600a602052604090205460ff16155b801561108b575060065460ff16155b80156110a45750601e546001600160a01b038581169116145b156110cc576001600160a01b0383165f908152600960205260409020805460ff191660011790555b6001600160a01b0384165f9081526009602052604090205460ff16156111255760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b604482015260640161089f565b61112e84611482565b5f546001600160a01b0385811691161480159061115457506001600160a01b0383163014155b801561116e57506001546001600160a01b03848116911614155b80156111885750601e546001600160a01b03848116911614155b1561124a576001600160a01b0383165f908152600460205260409020546019546111b28483611b37565b1115806111d657506001600160a01b0384165f908152600b602052604090205460ff165b6112485760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e00606482015260840161089f565b505b601e546001600160a01b03908116908516036112c9576018548211158061128857506001600160a01b0383165f908152600b602052604090205460ff165b6112c95760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b604482015260640161089f565b6112d2846114d5565b156112df576112df611527565b6001600160a01b0384165f90815260046020526040902054611302908390611b4a565b6001600160a01b0385165f90815260046020908152604080832093909355600a90529081205460ff1615611336578261133f565b61133f8361186e565b6001600160a01b0385165f90815260046020526040902054909150611365908290611b37565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b89085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383165f908152600460205260408120546113ee908390611b4a565b6001600160a01b038086165f90815260046020526040808220939093559085168152205461141d908390611b37565b6001600160a01b038085165f8181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114709086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b03908116908216036114b8576114b5601054600c55601154600d55601254600e55601354600f55565b50565b6114b5601454600c55601554600d55601654600e55601754600f55565b5f6001600160a01b038216301480156114f1575060215460ff16155b80156115065750601e54600160a01b900460ff165b80156108705750601f54305f90815260046020526040902054101592915050565b6021805460ff1916600117905560208054305f908152600490925260408220546115519190611b4a565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061158957611589611bae565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116049190611bc2565b8160018151811061161757611617611bae565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116609086905f90879030904290600401611bdd565b5f604051808303815f87803b158015611677575f80fd5b505af1158015611689573d5f803e3d5ffd5b505050505f814761169a9190611b4a565b90505f600f54600c54836116ae9190611b78565b6116b89190611b8f565b90505f600f54600d54846116cc9190611b78565b6116d69190611b8f565b90505f600f54600e54856116ea9190611b78565b6116f49190611b8f565b601a546040519192505f916001600160a01b039091169061753090869084818181858888f193505050503d805f8114611748576040519150601f19603f3d011682016040523d82523d5f602084013e61174d565b606091505b505090508061176e5760405162461bcd60e51b815260040161089f90611c4c565b601b546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f81146117bd576040519150601f19603f3d011682016040523d82523d5f602084013e6117c2565b606091505b50509050806117e35760405162461bcd60e51b815260040161089f90611c4c565b601c546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611832576040519150601f19603f3d011682016040523d82523d5f602084013e611837565b606091505b50509050806118585760405162461bcd60e51b815260040161089f90611c4c565b50506021805460ff191690555050505050505050565b5f806008546007546118809190611b37565b4311156118a457600f54611895606485611b8f565b61189f9190611b78565b6118ba565b6118af606484611b8f565b6118ba906063611b78565b9050610a418184611b4a565b5f6020808352835180828501525f5b818110156118f1578581018301518582016040015282016118d5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114b5575f80fd5b5f8060408385031215611936575f80fd5b823561194181611911565b946020939093013593505050565b5f805f60608486031215611961575f80fd5b505081359360208301359350604090920135919050565b5f805f6060848603121561198a575f80fd5b833561199581611911565b925060208401356119a581611911565b929592945050506040919091013590565b5f602082840312156119c6575f80fd5b8135610a4181611911565b80151581146114b5575f80fd5b5f80604083850312156119ef575f80fd5b82356119fa81611911565b91506020830135611a0a816119d1565b809150509250929050565b5f60208284031215611a25575f80fd5b5035919050565b5f8060408385031215611a3d575f80fd5b8235611941816119d1565b5f805f60608486031215611a5a575f80fd5b8335611a65816119d1565b95602085013595506040909401359392505050565b5f805f60608486031215611a8c575f80fd5b8335611a9781611911565b92506020840135611aa781611911565b91506040840135611ab781611911565b809150509250925092565b5f8060408385031215611ad3575f80fd5b8235611ade81611911565b91506020830135611a0a81611911565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561087057610870611b23565b8181038181111561087057610870611b23565b5f60208284031215611b6d575f80fd5b8151610a41816119d1565b808202811582820484141761087057610870611b23565b5f82611ba957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611bd2575f80fd5b8151610a4181611911565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c2b5784516001600160a01b031683529383019391830191600101611c06565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122033b7c8b26cfd957aa1d9224a1017aa9a8ce16d435b3b5ad068f9239493f1ef4464736f6c63430008140033

Deployed Bytecode Sourcemap

3858:11091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:51;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5822:51:0;;;;;;;;6893:80;;;;;;;;;;-1:-1:-1;6965:5:0;;;;;;;;;;;;;;;;;6893:80;;;;;;;:::i;7313:216::-;;;;;;;;;;-1:-1:-1;7313:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7313:216:0;1205:187:1;12666:355:0;;;;;;;;;;-1:-1:-1;12666:355:0;;;;;:::i;:::-;;:::i;:::-;;13029:365;;;;;;;;;;-1:-1:-1;13029:365:0;;;;;:::i;:::-;;:::i;6628:83::-;;;;;;;;;;-1:-1:-1;6701:7:0;;6628:83;;4748:23;;;;;;;;;;;;;;;;7987:341;;;;;;;;;;-1:-1:-1;7987:341:0;;;;;:::i;:::-;;:::i;1959:103::-;;;;;;;;;;-1:-1:-1;1959:103:0;;;;;:::i;:::-;2014:4;2049:5;-1:-1:-1;;;;;2038:16:0;;;2049:5;;2038:16;;1959:103;6717:80;;;;;;;;;;-1:-1:-1;6717:80:0;;4107:1;2573:36:1;;2561:2;2546:18;6717:80:0;2431:184:1;14643:144:0;;;;;;;;;;-1:-1:-1;14643:144:0;;;;;:::i;:::-;;:::i;4497:44::-;;;;;;;;;;-1:-1:-1;4497:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5748:28;;;;;;;;;;-1:-1:-1;5748:28:0;;;;-1:-1:-1;;;;;5748:28:0;;;;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;5748:28:0;2620:203:1;4325:34:0;;;;;;;;;;-1:-1:-1;4325:34:0;;;;;;;;5887:51;;;;;;;;;;;;;;;;14795:151;;;;;;;;;;;;;:::i;9700:122::-;;;;;;;;;;-1:-1:-1;9700:122:0;;;;;:::i;:::-;;:::i;5708:33::-;;;;;;;;;;-1:-1:-1;5708:33:0;;;;-1:-1:-1;;;;;5708:33:0;;;14268:177;;;;;;;;;;-1:-1:-1;14268:177:0;;;;;:::i;:::-;;:::i;7537:278::-;;;;;;;;;;-1:-1:-1;7537:278:0;;;;;:::i;:::-;;:::i;13998:121::-;;;;;;;;;;-1:-1:-1;13998:121:0;;;;;:::i;:::-;;:::i;4639:25::-;;;;;;;;;;;;;;;;4671:32;;;;;;;;;;;;;;;;5785:30;;;;;;;;;;-1:-1:-1;5785:30:0;;;;-1:-1:-1;;;5785:30:0;;;;;;7063:105;;;;;;;;;;-1:-1:-1;7063:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7147:18:0;7129:7;7147:18;;;:9;:18;;;;;;;7063:105;1801:146;;;;;;;;;;;;;:::i;5282:51::-;;;;;;;;;;;;;;;;6979:78;;;;;;;;;;-1:-1:-1;7031:7:0;7049:5;-1:-1:-1;;;;;7049:5:0;6979:78;;4548:48;;;;;;;;;;-1:-1:-1;4548:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5353:53;;;;;;;;;;;;;;;;6803:84;;;;;;;;;;-1:-1:-1;6877:7:0;;;;;;;;;;;;-1:-1:-1;;;6877:7:0;;;;6803:84;;4710:31;;;;;;;;;;;;;;;;7823:156;;;;;;;;;;-1:-1:-1;7823:156:0;;;;;:::i;:::-;;:::i;5619:80::-;;;;;;;;;;-1:-1:-1;5619:80:0;;;;-1:-1:-1;;;;;5619:80:0;;;13706:284;;;;;;;;;;-1:-1:-1;13706:284:0;;;;;:::i;:::-;;:::i;13406:292::-;;;;;;;;;;-1:-1:-1;13406:292:0;;;;;:::i;:::-;;:::i;5451:74::-;;;;;;;;;;-1:-1:-1;5451:74:0;;;;-1:-1:-1;;;;;5451:74:0;;;7174:133;;;;;;;;;;-1:-1:-1;7174:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7276:19:0;;;7258:7;7276:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7174:133;5532:80;;;;;;;;;;-1:-1:-1;5532:80:0;;;;-1:-1:-1;;;;;5532:80:0;;;14453:174;;;;;;;;;;-1:-1:-1;14453:174:0;;;;;:::i;:::-;;:::i;2070:242::-;;;;;;;;;;-1:-1:-1;2070:242:0;;;;;:::i;:::-;;:::i;14131:129::-;;;;;;;;;;-1:-1:-1;14131:129:0;;;;;:::i;:::-;;:::i;4442:46::-;;;;;;;;;;-1:-1:-1;4442:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7313:216;7417:10;7388:4;7405:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7405:32:0;;;;;;;;;;:41;;;7462:37;7388:4;;7405:32;;7462:37;;;;7440:6;160:25:1;;148:2;133:18;;14:177;7462:37:0;;;;;;;;-1:-1:-1;7517:4:0;7313:216;;;;;:::o;12666:355::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;;;;;;;;;12779:9:::1;:19:::0;;;12809:15:::1;:31:::0;;;12851:15:::1;:31:::0;;;12869:13;12907:27:::1;12827:13:::0;12791:7;12907:27:::1;:::i;:::-;:45;;;;:::i;:::-;12893:11;:59:::0;;;12986:2:::1;-1:-1:-1::0;12971:17:0::1;12963:50;;;::::0;-1:-1:-1;;;12963:50:0;;6197:2:1;12963:50:0::1;::::0;::::1;6179:21:1::0;6236:2;6216:18;;;6209:30;-1:-1:-1;;;6255:18:1;;;6248:50;6315:18;;12963:50:0::1;5995:344:1::0;12963:50:0::1;12666:355:::0;;;:::o;13029:365::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;13143:10:::1;:20:::0;;;13174:16:::1;:32:::0;;;13217:16:::1;:32:::0;;;13236:13;13275:29:::1;13193:13:::0;13156:7;13275:29:::1;:::i;:::-;:48;;;;:::i;:::-;13260:12;:63:::0;;;13358:2:::1;-1:-1:-1::0;13342:18:0::1;13334:52;;;::::0;-1:-1:-1;;;13334:52:0;;6546:2:1;13334:52:0::1;::::0;::::1;6528:21:1::0;6585:2;6565:18;;;6558:30;-1:-1:-1;;;6604:18:1;;;6597:51;6665:18;;13334:52:0::1;6344:345:1::0;7987:341:0;-1:-1:-1;;;;;8107:19:0;;8087:4;8107:19;;;:11;:19;;;;;;;;8127:10;8107:31;;;;;;;;-1:-1:-1;;8107:52:0;8104:157;;-1:-1:-1;;;;;8209:19:0;;;;;;:11;:19;;;;;;;;8229:10;8209:31;;;;;;;;:40;;8243:6;;8209:40;:::i;:::-;-1:-1:-1;;;;;8175:19:0;;;;;;:11;:19;;;;;;;;8195:10;8175:31;;;;;;;:74;8104:157;8280:40;8294:6;8302:9;8313:6;8280:13;:40::i;:::-;8273:47;;7987:341;;;;;;:::o;14643:144::-;14739:40;;-1:-1:-1;;;14739:40:0;;14762:10;14739:40;;;7001:51:1;7068:18;;;7061:34;;;14707:12:0;;-1:-1:-1;;;;;14739:22:0;;;;;6974:18:1;;14739:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14795:151::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;14899:39:::1;::::0;14867:21:::1;::::0;14907:10:::1;::::0;14899:39;::::1;;;::::0;14867:21;;14847:17:::1;14899:39:::0;14847:17;14899:39;14867:21;14907:10;14899:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14836:110;14795:151::o:0;9700:122::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9783:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:31;;-1:-1:-1;;9783:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9700:122::o;14268:177::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;14354:3:::1;14344:6;:13;;14336:49;;;::::0;-1:-1:-1;;;14336:49:0;;7558:2:1;14336:49:0::1;::::0;::::1;7540:21:1::0;7597:2;7577:18;;;7570:30;7636:25;7616:18;;;7609:53;7679:18;;14336:49:0::1;7356:347:1::0;14336:49:0::1;14432:5;14423:6;14413:7;;:16;;;;:::i;:::-;:24;;;;:::i;:::-;14396:14;:41:::0;-1:-1:-1;14268:177:0:o;7537:278::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;7631:6:::1;7623:34;;;::::0;-1:-1:-1;;;7623:34:0;;8305:2:1;7623:34:0::1;::::0;::::1;8287:21:1::0;8344:2;8324:18;;;8317:30;-1:-1:-1;;;8363:18:1;;;8356:45;8418:18;;7623:34:0::1;8103:339:1::0;7623:34:0::1;7668:14;:23:::0;;-1:-1:-1;;7668:23:0::1;::::0;::::1;;::::0;;::::1;::::0;;;7702:8:::1;:21:::0;;;-1:-1:-1;7738:14:0;7734:74:::1;;7784:12;7769;:27:::0;7537:278;;:::o;13998:121::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14082:20:0;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:29;;-1:-1:-1;;14082:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13998:121::o;1801:146::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;1907:1:::1;1892:5:::0;;1871:39:::1;::::0;-1:-1:-1;;;;;1892:5:0;;::::1;::::0;1871:39:::1;::::0;1907:1;;1871:39:::1;1937:1;1921:18:::0;;-1:-1:-1;;;;;;1921:18:0::1;::::0;;1801:146::o;7823:156::-;7903:4;7927:44;7941:10;7953:9;7964:6;7927:13;:44::i;13706:284::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;13836:11:::1;:22:::0;;-1:-1:-1;;;;13836:22:0::1;-1:-1:-1::0;;;13836:22:0;::::1;;;;::::0;;13885:7:::1;::::0;13916:5:::1;::::0;13885:28:::1;::::0;13895:18;;13885:28:::1;:::i;:::-;:36;;;;:::i;:::-;13869:13;:52:::0;13946:7:::1;::::0;13977:5:::1;::::0;13946:28:::1;::::0;13956:18;;13946:28:::1;:::i;:::-;:36;;;;:::i;:::-;13932:11;:50:::0;-1:-1:-1;;;13706:284:0:o;13406:292::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;13548:14:::1;:32:::0;;-1:-1:-1;;;;;13548:32:0;;::::1;-1:-1:-1::0;;;;;;13548:32:0;;::::1;;::::0;;;13591:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13646:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;13406:292::o;14453:174::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;14541:2:::1;14531:6;:12;;14523:46;;;::::0;-1:-1:-1;;;14523:46:0;;8649:2:1;14523:46:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;-1:-1:-1;;;8707:18:1;;;8700:51;8768:18;;14523:46:0::1;8447:345:1::0;14523:46:0::1;14614:5;14605:6;14595:7;;:16;;;;:::i;:::-;:24;;;;:::i;:::-;14580:12;:39:::0;-1:-1:-1;14453:174:0:o;2070:242::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2159:22:0;::::1;2151:73;;;::::0;-1:-1:-1;;;2151:73:0;;8999:2:1;2151:73:0::1;::::0;::::1;8981:21:1::0;9038:2;9018:18;;;9011:30;9077:34;9057:18;;;9050:62;-1:-1:-1;;;9128:18:1;;;9121:36;9174:19;;2151:73:0::1;8797:402:1::0;2151:73:0::1;2261:5;::::0;;2240:37:::1;::::0;-1:-1:-1;;;;;2240:37:0;;::::1;::::0;2261:5;::::1;::::0;2240:37:::1;::::0;::::1;2288:5;:16:::0;;-1:-1:-1;;;;;;2288:16:0::1;-1:-1:-1::0;;;;;2288:16:0;;;::::1;::::0;;;::::1;::::0;;2070:242::o;14131:129::-;1718:5;;-1:-1:-1;;;;;1718:5:0;1217:10;1718:21;1710:66;;;;-1:-1:-1;;;1710:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14219:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:33;;-1:-1:-1;;14219:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14131:129::o;8336:1356::-;8448:6;;8428:4;;8448:6;;;:21;;-1:-1:-1;8458:11:0;;8448:21;8445:78;;;8479:41;8494:6;8502:9;8513:6;8479:14;:41::i;:::-;8472:48;;;;8445:78;-1:-1:-1;;;;;8539:19:0;;;;;;:11;:19;;;;;;;;8538:20;:47;;;;-1:-1:-1;;;;;;8563:22:0;;;;;;:11;:22;;;;;;;;8562:23;8538:47;:66;;;;-1:-1:-1;8590:14:0;;;;8589:15;8538:66;:93;;;;-1:-1:-1;8618:13:0;;-1:-1:-1;;;;;8608:23:0;;;8618:13;;8608:23;8538:93;8535:156;;;-1:-1:-1;;;;;8648:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;8648:31:0;8675:4;8648:31;;;8535:156;-1:-1:-1;;;;;8712:21:0;;;;;;:13;:21;;;;;;;;8711:22;8703:49;;;;-1:-1:-1;;;8703:49:0;;9406:2:1;8703:49:0;;;9388:21:1;9445:2;9425:18;;;9418:30;-1:-1:-1;;;9464:18:1;;;9457:44;9518:18;;8703:49:0;9204:338:1;8703:49:0;8766:15;8774:6;8766:7;:15::i;:::-;8816:5;;-1:-1:-1;;;;;8806:15:0;;;8816:5;;8806:15;;;;:45;;-1:-1:-1;;;;;;8825:26:0;;8846:4;8825:26;;8806:45;:75;;;;-1:-1:-1;8876:4:0;;-1:-1:-1;;;;;8855:26:0;;;8876:4;;8855:26;;8806:75;:105;;;;-1:-1:-1;8898:13:0;;-1:-1:-1;;;;;8885:26:0;;;8898:13;;8885:26;;8806:105;8802:339;;;-1:-1:-1;;;;;7147:18:0;;8928;7147;;;:9;:18;;;;;;9017:14;;8993:19;9006:6;7147:18;8993:19;:::i;:::-;8992:39;;:69;;;-1:-1:-1;;;;;;9035:26:0;;;;;;:15;:26;;;;;;;;8992:69;8984:145;;;;-1:-1:-1;;;8984:145:0;;9749:2:1;8984:145:0;;;9731:21:1;9788:2;9768:18;;;9761:30;9827:34;9807:18;;;9800:62;9898:33;9878:18;;;9871:61;9949:19;;8984:145:0;9547:427:1;8984:145:0;8913:228;8802:339;9207:13;;-1:-1:-1;;;;;9207:13:0;;;9197:23;;;;9194:137;;9254:12;;9244:6;:22;;:52;;;-1:-1:-1;;;;;;9270:26:0;;;;;;:15;:26;;;;;;;;9244:52;9236:83;;;;-1:-1:-1;;;9236:83:0;;10181:2:1;9236:83:0;;;10163:21:1;10220:2;10200:18;;;10193:30;-1:-1:-1;;;10239:18:1;;;10232:48;10297:18;;9236:83:0;9979:342:1;9236:83:0;9346:22;9361:6;9346:14;:22::i;:::-;9343:41;;;9371:10;:8;:10::i;:::-;-1:-1:-1;;;;;9416:17:0;;;;;;:9;:17;;;;;;:26;;9436:6;;9416:26;:::i;:::-;-1:-1:-1;;;;;9396:17:0;;;;;;:9;:17;;;;;;;;:46;;;;10793:11;:19;;;;;;;;10792:20;9480:48;;9522:6;9480:48;;;9504:15;9512:6;9504:7;:15::i;:::-;-1:-1:-1;;;;;9562:20:0;;;;;;:9;:20;;;;;;9455:73;;-1:-1:-1;9562:37:0;;9455:73;;9562:37;:::i;:::-;-1:-1:-1;;;;;9539:20:0;;;;;;;:9;:20;;;;;;;:60;;;;9617:43;;;;;;;;;;9645:14;160:25:1;;148:2;133:18;;14:177;9617:43:0;;;;;;;;-1:-1:-1;9680:4:0;;8336:1356;-1:-1:-1;;;;8336:1356:0:o;10018:300::-;-1:-1:-1;;;;;10148:17:0;;10111:4;10148:17;;;:9;:17;;;;;;:26;;10168:6;;10148:26;:::i;:::-;-1:-1:-1;;;;;10128:17:0;;;;;;;:9;:17;;;;;;:46;;;;10208:20;;;;;;;:29;;10231:6;;10208:29;:::i;:::-;-1:-1:-1;;;;;10185:20:0;;;;;;;:9;:20;;;;;;;:52;;;;10253:35;;;;;;;;;;10281:6;160:25:1;;148:2;133:18;;14:177;10253:35:0;;;;;;;;-1:-1:-1;10306:4:0;10018:300;;;;;:::o;9830:176::-;9896:13;;-1:-1:-1;;;;;9896:13:0;;;9886:23;;;;9883:116;;9926:9;10374;;10365:6;:18;10409:15;;10394:12;:30;10450:15;;10435:12;:30;10487:11;;10476:8;:22;10326:180;9926:9;9830:176;:::o;9883:116::-;9977:10;10562;;10553:6;:19;10598:16;;10583:12;:31;10640:16;;10625:12;:31;10678:12;;10667:8;:23;10514:184;11076:216;11139:4;-1:-1:-1;;;;;11163:23:0;;11181:4;11163:23;:43;;;;-1:-1:-1;11200:6:0;;;;11199:7;11163:43;:67;;;;-1:-1:-1;11219:11:0;;-1:-1:-1;;;11219:11:0;;;;11163:67;:121;;;;-1:-1:-1;11271:13:0;;11261:4;11243:24;;;;:9;:24;;;;;;:41;;11156:128;11076:216;-1:-1:-1;;11076:216:0:o;11300:1358::-;5995:6;:13;;-1:-1:-1;;5995:13:0;6004:4;5995:13;;;11408:11:::1;::::0;;11399:4:::1;-1:-1:-1::0;7147:18:0;;;:9;:18;;;;;;;11381:38:::1;;;;:::i;:::-;11456:16;::::0;;11470:1:::1;11456:16:::0;;;;;::::1;::::0;;11359:60;;-1:-1:-1;11432:21:0::1;::::0;11456:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11456:16:0::1;11432:40;;11501:4;11483;11488:1;11483:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11483:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11527:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11527:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11483:7;;11527:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11517:4;11522:1;11517:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11517:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11620:15:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11620:196:0;;11586:21:::1;::::0;11620:15;;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11701:11;;11562:21:::1;::::0;11743:4;;11770::::1;::::0;11790:15:::1;::::0;11620:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11829:17;11874:13;11849:21;:39;;;;:::i;:::-;11829:59;;11909:20;11956:8;;11945:6;;11932:9;:20;;;;:::i;:::-;:33;;;;:::i;:::-;11909:56;;11976:26;12035:8;;12018:12;;12005:9;:26;;;;:::i;:::-;:39;;;;:::i;:::-;11976:68;;12055:26;12114:8;;12097:12;;12084:9;:26;;;;:::i;:::-;:39;;;;:::i;:::-;12164:14;::::0;12156:65:::1;::::0;12055:68;;-1:-1:-1;12137:14:0::1;::::0;-1:-1:-1;;;;;12164:14:0;;::::1;::::0;12211:5:::1;::::0;12192:12;;12137:14;12156:65;12137:14;12156:65;12192:12;12164:14;12211:5;12156:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12136:85;;;12240:9;12232:52;;;;-1:-1:-1::0;;;12232:52:0::1;;;;;;;:::i;:::-;12329:20;::::0;12321:77:::1;::::0;12296:20:::1;::::0;-1:-1:-1;;;;;12329:20:0::1;::::0;12388:5:::1;::::0;12363:18;;12296:20;12321:77;12296:20;12321:77;12363:18;12329:20;12388:5;12321:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12295:103;;;12417:15;12409:58;;;;-1:-1:-1::0;;;12409:58:0::1;;;;;;;:::i;:::-;12512:20;::::0;12504:77:::1;::::0;12479:20:::1;::::0;-1:-1:-1;;;;;12512:20:0::1;::::0;12571:5:::1;::::0;12546:18;;12479:20;12504:77;12479:20;12504:77;12546:18;12512:20;12571:5;12504:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:103;;;12600:15;12592:58;;;;-1:-1:-1::0;;;12592:58:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;6013:6:0;:14;;-1:-1:-1;;6013:14:0;;;-1:-1:-1;;;;;;;;11300:1358:0:o;10828:238::-;10884:7;10912:17;10964:8;;10949:12;;:23;;;;:::i;:::-;10932:12;:41;;:88;;11012:8;;10997:12;11006:3;10997:6;:12;:::i;:::-;:23;;;;:::i;:::-;10932:88;;;10977:12;10986:3;10977:6;:12;:::i;:::-;:17;;10992:2;10977:17;:::i;:::-;10912:108;-1:-1:-1;11040:18:0;10912:108;11040:6;:18;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:316::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;-1:-1:-1;;1582:23:1;;;1652:2;1637:18;;1624:32;;-1:-1:-1;1703:2:1;1688:18;;;1675:32;;1397:316;-1:-1:-1;1397:316:1:o;1718:456::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:52;;;1880:1;1877;1870:12;1832:52;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;-1:-1:-1;2045:2:1;2030:18;;2017:32;2058:33;2017:32;2058:33;:::i;:::-;1718:456;;2110:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1718:456::o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2828:118::-;2914:5;2907:13;2900:21;2893:5;2890:32;2880:60;;2936:1;2933;2926:12;2951:382;3016:6;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3132:9;3119:23;3151:31;3176:5;3151:31;:::i;:::-;3201:5;-1:-1:-1;3258:2:1;3243:18;;3230:32;3271:30;3230:32;3271:30;:::i;:::-;3320:7;3310:17;;;2951:382;;;;;:::o;3564:180::-;3623:6;3676:2;3664:9;3655:7;3651:23;3647:32;3644:52;;;3692:1;3689;3682:12;3644:52;-1:-1:-1;3715:23:1;;3564:180;-1:-1:-1;3564:180:1:o;3749:309::-;3814:6;3822;3875:2;3863:9;3854:7;3850:23;3846:32;3843:52;;;3891:1;3888;3881:12;3843:52;3930:9;3917:23;3949:28;3971:5;3949:28;:::i;4063:377::-;4137:6;4145;4153;4206:2;4194:9;4185:7;4181:23;4177:32;4174:52;;;4222:1;4219;4212:12;4174:52;4261:9;4248:23;4280:28;4302:5;4280:28;:::i;:::-;4327:5;4379:2;4364:18;;4351:32;;-1:-1:-1;4430:2:1;4415:18;;;4402:32;;4063:377;-1:-1:-1;;;4063:377:1:o;4445:529::-;4522:6;4530;4538;4591:2;4579:9;4570:7;4566:23;4562:32;4559:52;;;4607:1;4604;4597:12;4559:52;4646:9;4633:23;4665:31;4690:5;4665:31;:::i;:::-;4715:5;-1:-1:-1;4772:2:1;4757:18;;4744:32;4785:33;4744:32;4785:33;:::i;:::-;4837:7;-1:-1:-1;4896:2:1;4881:18;;4868:32;4909:33;4868:32;4909:33;:::i;:::-;4961:7;4951:17;;;4445:529;;;;;:::o;4979:388::-;5047:6;5055;5108:2;5096:9;5087:7;5083:23;5079:32;5076:52;;;5124:1;5121;5114:12;5076:52;5163:9;5150:23;5182:31;5207:5;5182:31;:::i;:::-;5232:5;-1:-1:-1;5289:2:1;5274:18;;5261:32;5302:33;5261:32;5302:33;:::i;5372:356::-;5574:2;5556:21;;;5593:18;;;5586:30;5652:34;5647:2;5632:18;;5625:62;5719:2;5704:18;;5372:356::o;5733:127::-;5794:10;5789:3;5785:20;5782:1;5775:31;5825:4;5822:1;5815:15;5849:4;5846:1;5839:15;5865:125;5930:9;;;5951:10;;;5948:36;;;5964:18;;:::i;6694:128::-;6761:9;;;6782:11;;;6779:37;;;6796:18;;:::i;7106:245::-;7173:6;7226:2;7214:9;7205:7;7201:23;7197:32;7194:52;;;7242:1;7239;7232:12;7194:52;7274:9;7268:16;7293:28;7315:5;7293:28;:::i;7708:168::-;7781:9;;;7812;;7829:15;;;7823:22;;7809:37;7799:71;;7850:18;;:::i;7881:217::-;7921:1;7947;7937:132;;7991:10;7986:3;7982:20;7979:1;7972:31;8026:4;8023:1;8016:15;8054:4;8051:1;8044:15;7937:132;-1:-1:-1;8083:9:1;;7881:217::o;10458:127::-;10519:10;10514:3;10510:20;10507:1;10500:31;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10590:251;10660:6;10713:2;10701:9;10692:7;10688:23;10684:32;10681:52;;;10729:1;10726;10719:12;10681:52;10761:9;10755:16;10780:31;10805:5;10780:31;:::i;10846:980::-;11108:4;11156:3;11145:9;11141:19;11187:6;11176:9;11169:25;11213:2;11251:6;11246:2;11235:9;11231:18;11224:34;11294:3;11289:2;11278:9;11274:18;11267:31;11318:6;11353;11347:13;11384:6;11376;11369:22;11422:3;11411:9;11407:19;11400:26;;11461:2;11453:6;11449:15;11435:29;;11482:1;11492:195;11506:6;11503:1;11500:13;11492:195;;;11571:13;;-1:-1:-1;;;;;11567:39:1;11555:52;;11662:15;;;;11627:12;;;;11603:1;11521:9;11492:195;;;-1:-1:-1;;;;;;;11743:32:1;;;;11738:2;11723:18;;11716:60;-1:-1:-1;;;11807:3:1;11792:19;11785:35;11704:3;10846:980;-1:-1:-1;;;10846:980:1:o;12041:354::-;12243:2;12225:21;;;12282:2;12262:18;;;12255:30;12321:32;12316:2;12301:18;;12294:60;12386:2;12371:18;;12041:354::o

Swarm Source

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