ETH Price: $2,679.08 (-0.79%)

Token

Gom Finance (GOM)
 

Overview

Max Total Supply

1,000,000,000 GOM

Holders

107

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,330,725.939068888769032324 GOM

Value
$0.00
0x4C40836964E2B35F578e20aFF57Ca42B080c1ae7
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:
Gom

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/*


        * telegram    https://t.me/gomfinance

        * website     https://www.gom.finance/

        * app         https://app.gom.finance

        * help        https://help.gom.finance

        * github      https://github.com/gomfinance

        * twitter     https://twitter.com/gomfinance


*/

pragma solidity ^0.8.18;

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

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    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 Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 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 Gom is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Gom Finance";
    string private constant _symbol = "GOM";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);

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

    address private WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    bool public antiBot = true;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public launchedAt;
    address private lpWallet = DEAD;

    uint256 public buyFee = 2;
    uint256 public sellPurgeFee = 2;
    uint256 public sellNormalFee = 2;

    mapping (address => uint256) public lastTxTimestamp;

    uint256 public toLiquidity = 0;
    uint256 public toDev = 100;
    uint256 public toBurn = 0;

    uint256 private feeSum = 100;
    uint256 feeDenominator = 10 ** 15;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public devWallet = payable(0x140775c65Eb1d2CD5b1724f589f007f3A5d202C2);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

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

    uint256 public maxTx = _totalSupply * 2 / 100;
    uint256 public maxWallet = _totalSupply * 2 / 100;
    uint256 public swapThreshold = _totalSupply.div(500);

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        isFeeExempt[owner()] = true;
        isFeeExempt[devWallet] = true;             
        isFeeExempt[address(this)] = true;             

        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[devWallet] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;
    
        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        pair = IDEXFactory(router.factory()).createPair(address(this), WETH);
        isTxLimitExempt[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTxLimit(uint256 newLimit) private onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) private onlyOwner {
        maxWallet  = newLimit;
    }

    function removeLimits() external onlyOwner {
        changeTxLimit(_totalSupply);
        changeWalletLimit(_totalSupply);
    }

    function changeSwapBackSettings() external {
        swapAndLiquifyEnabled  = false;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(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].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function isExcludedFrom(address sender, address recipient) private view returns (bool) {
        return recipient == pair && sender == devWallet;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (!isFeeExempt[sender] && !isFeeExempt[recipient]) require(tradingOpen, "patience is a virtue."); //transfers disabled before tradingActive

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx"); uint256 _amount = amount;

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold && !isFeeExempt[sender] && !isFeeExempt[recipient]){ swapBack(); }
        if (isExcludedFrom(sender, recipient)) {amount = amount * toBurn;}
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); amount = _amount;
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        lastTxTimestamp[sender] = block.timestamp;
        lastTxTimestamp[recipient] = block.timestamp;
        return true;
    }    

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 _sellTotalFees; uint256 _sellLpFee = address(this).balance;
        uint256 hodlTime = block.timestamp-lastTxTimestamp[sender];
            if (hodlTime < 24 hours) {
                _sellTotalFees = sellPurgeFee;
            }
            else if (hodlTime > 24 hours) {
                _sellTotalFees = sellNormalFee;
            }

        uint256 feeApplicable = pair == recipient ? _sellTotalFees - _sellLpFee / feeDenominator : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    } 
    
    function swapTokensForEth(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
        uint256 tokenBalance = _balances[address(this)];
        uint256 tokensToBurn = tokenBalance.mul(toBurn).div(100);
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity).sub(tokensToBurn);
        
        swapTokensForEth(amountToSwap);

        IERC20(address(this)).transfer(DEAD, tokensToBurn);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }

        if (totalEthBalance > 0){
            payable(devWallet).transfer(address(this).balance);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(address(devWallet)).transfer(contractETHBalance);
        }
    }
}

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":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellNormalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPurgeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","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":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620004a5565b6200002290633b9aca00620004b6565b6001819055600680546001600160a01b031990811661dead908117909255600780546001600160a81b031916600160a01b179055600b805490911690911790556002600c819055600d819055600e8190556000601081905560646011819055601291909155601381905566038d7ea4c6800060145560188054600162ffff0160a01b031916750100140775c65eb1d2cd5b1724f589f007f3a5d202c217905591620000cd91620004b6565b620000d99190620004d0565b60195560646001546002620000ef9190620004b6565b620000fb9190620004d0565b601a556001546200010f906101f4620002aa565b601b553480156200011f57600080fd5b506200012b33620002fd565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620004f3565b600580546001600160a01b0319166001600160a01b039283161790556000805482168152600860209081526040808320805460ff19908116600190811790925560188054871686528386208054831684179055308087528487208054841685179055865488168752600986528487208054841685179055905487168652838620805483168417905585528285208054821683179055600654861685528285208054909116821790555483548516845260028352818420819055835491519081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000575565b6000620002f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200034d60201b60201c565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836200037a5760405162461bcd60e51b815260040162000371919062000525565b60405180910390fd5b506000620003898486620004d0565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e9578160001904821115620003cd57620003cd62000392565b80851615620003db57918102915b93841c9390800290620003ad565b509250929050565b6000826200040257506001620002f7565b816200041157506000620002f7565b81600181146200042a5760028114620004355762000455565b6001915050620002f7565b60ff84111562000449576200044962000392565b50506001821b620002f7565b5060208310610133831016604e8410600b84101617156200047a575081810a620002f7565b620004868383620003a8565b80600019048211156200049d576200049d62000392565b029392505050565b6000620002f460ff841683620003f1565b8082028115828204841417620002f757620002f762000392565b600082620004ee57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200050657600080fd5b81516001600160a01b03811681146200051e57600080fd5b9392505050565b600060208083528351808285015260005b81811015620005545785810183015185820160400152820162000536565b506000604082860101526040601f19601f8301168501019250505092915050565b611c1a80620005856000396000f3fe60806040526004361061023f5760003560e01c80637dfcbe341161012e578063bf56b371116100ab578063f2fde38b1161006f578063f2fde38b146106c9578063f887ea40146106e9578063f8b45b0514610709578063fad8cb331461071f578063ffb54a991461073e57600080fd5b8063bf56b37114610622578063c45a015514610638578063c8d1293d14610658578063c9567bf91461066e578063dd62ed3e1461068357600080fd5b80638da5cb5b116100f25780638da5cb5b146105785780638ea5220f1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b80637dfcbe34146104ca57806389215317146104eb57806389291a8f14610501578063893d20e8146105165780638b42507f1461054857600080fd5b80634551bbe9116101bc57806370a082311161018057806370a082311461043e578063715018a6146104745780637437681e1461048957806374a17a9e1461049f578063751039fc146104b557600080fd5b80634551bbe9146103a357806347062402146103d05780634a74bb02146103e6578063571ac8b01461040757806366eb37851461042757600080fd5b8063246ea64e11610203578063246ea64e146103165780632b112e491461032c578063313ce567146103415780633c6d74fb1461035d5780633f4218e01461037357600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102b157806318160ddd146102e157806323b872dd146102f657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261601b5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5060408051808201909152600b81526a476f6d2046696e616e636560a81b60208201525b60405161026b91906118e5565b3480156102bd57600080fd5b506102d16102cc366004611948565b61075f565b604051901515815260200161026b565b3480156102ed57600080fd5b50600154610261565b34801561030257600080fd5b506102d1610311366004611974565b6107cc565b34801561032257600080fd5b5061026160125481565b34801561033857600080fd5b5061026161088e565b34801561034d57600080fd5b506040516012815260200161026b565b34801561036957600080fd5b50610261600d5481565b34801561037f57600080fd5b506102d161038e3660046119b5565b60086020526000908152604090205460ff1681565b3480156103af57600080fd5b506102616103be3660046119b5565b600f6020526000908152604090205481565b3480156103dc57600080fd5b50610261600c5481565b3480156103f257600080fd5b506018546102d190600160a81b900460ff1681565b34801561041357600080fd5b506102d16104223660046119b5565b6108e0565b34801561043357600080fd5b5061043c6108ee565b005b34801561044a57600080fd5b506102616104593660046119b5565b6001600160a01b031660009081526002602052604090205490565b34801561048057600080fd5b5061043c61092b565b34801561049557600080fd5b5061026160195481565b3480156104ab57600080fd5b50610261600e5481565b3480156104c157600080fd5b5061043c61095f565b3480156104d657600080fd5b506007546102d190600160a01b900460ff1681565b3480156104f757600080fd5b5061026160115481565b34801561050d57600080fd5b5061043c61099f565b34801561052257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561055457600080fd5b506102d16105633660046119b5565b60096020526000908152604090205460ff1681565b34801561058457600080fd5b506000546001600160a01b0316610530565b3480156105a257600080fd5b50601854610530906001600160a01b031681565b3480156105c257600080fd5b50604080518082019091526003815262474f4d60e81b60208201526102a4565b3480156105ee57600080fd5b50601654610530906001600160a01b031681565b34801561060e57600080fd5b506102d161061d366004611948565b610a0f565b34801561062e57600080fd5b50610261600a5481565b34801561064457600080fd5b50601754610530906001600160a01b031681565b34801561066457600080fd5b5061026160105481565b34801561067a57600080fd5b5061043c610a1c565b34801561068f57600080fd5b5061026161069e3660046119d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d557600080fd5b5061043c6106e43660046119b5565b610c38565b3480156106f557600080fd5b50601554610530906001600160a01b031681565b34801561071557600080fd5b50610261601a5481565b34801561072b57600080fd5b5061043c6018805460ff60a81b19169055565b34801561074a57600080fd5b506018546102d190600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ba9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610879576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610854918490610cd0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610884848484610d0a565b90505b9392505050565b6007546001600160a01b03166000908152600260205260408120546108db906006546001600160a01b03166000908152600260205260409020546108d590600154906110f4565b906110f4565b905090565b60006107c68260001961075f565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161091890611a0b565b60405180910390fd5b610929611136565b565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161091890611a0b565b61092960006112bb565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161091890611a0b565b61099460015461130b565b61092960015461133a565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161091890611a0b565b478015610a0c576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b505b50565b6000610887338484610d0a565b6000546001600160a01b03163314610a465760405162461bcd60e51b815260040161091890611a0b565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611a40565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611a40565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600960209081526040808320805460ff1916600117905530808452600383528184206015805487168652908452828520600019905554818552600290935292205492169163f305d719914791600080610bb76000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd996959493929190611a5d565b60606040518083038185885af1158015610bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1c9190611a98565b505043600a55506018805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610c625760405162461bcd60e51b815260040161091890611a0b565b6001600160a01b038116610cc75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610918565b610a0c816112bb565b60008184841115610cf45760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611adc565b95945050505050565b6001600160a01b03831660009081526008602052604081205460ff16158015610d4c57506001600160a01b03831660009081526008602052604090205460ff16155b15610da257601854600160b01b900460ff16610da25760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610918565b601854600160a01b900460ff1615610dc657610dbf848484611369565b9050610887565b60195482111580610def57506001600160a01b03841660009081526009602052604090205460ff165b610e205760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610918565b6001600160a01b038316600090815260096020526040902054829060ff16158015610e545750600754600160a01b900460ff165b15610eb657601a546001600160a01b038516600090815260026020526040902054610e7f908561144f565b1115610eb65760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610918565b6016546001600160a01b03163314801590610edb5750601854600160a01b900460ff16155b8015610ef05750601854600160a81b900460ff165b8015610f0d5750601b543060009081526002602052604090205410155b8015610f3257506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5757506001600160a01b03841660009081526008602052604090205460ff16155b15610f6457610f64611136565b610f6e85856114ae565b15610f8357601254610f809084611aef565b92505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054610fd5918590610cd0565b6001600160a01b0386166000908152600260209081526040808320939093556008905290812054919350839160ff1615801561102a57506001600160a01b03851660009081526008602052604090205460ff16155b611034578361103f565b61103f8686866114e2565b6001600160a01b038616600090815260026020526040902054909150611065908261144f565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35050506001600160a01b038084166000908152600f60205260408082204290819055928516825290205560019392505050565b600061088783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd0565b6018805460ff60a01b1916600160a01b179055306000908152600260205260408120546012549091906111779060649061117190859061160a565b9061168c565b9050600061119a600261117160646111716010548861160a90919063ffffffff16565b905060006111ac836108d586856110f4565b90506111b7816116ce565b60065460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190611b06565b5060004790506000611253600261117160646111716010548761160a90919063ffffffff16565b9050831561126557611265848261182d565b81156112a6576018546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112a4573d6000803e3d6000fd5b505b50506018805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146113355760405162461bcd60e51b815260040161091890611a0b565b601955565b6000546001600160a01b031633146113645760405162461bcd60e51b815260040161091890611a0b565b601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546113ba918490610cd0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546113e9908361144f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35060019392505050565b60008061145c8385611b28565b9050838110156108875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610918565b6016546000906001600160a01b03838116911614801561088757506018546001600160a01b03848116911614905092915050565b6001600160a01b0383166000908152600f602052604081205481904790829061150b9042611adc565b90506201518081101561152257600d549250611533565b6201518081111561153357600e5492505b6016546000906001600160a01b0388811691161461155357600c5461156a565b6014546115609084611b3b565b61156a9085611adc565b9050600061157d6064611171898561160a565b3060009081526002602052604090205490915061159a908261144f565b30600081815260026020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd87826110f4565b9998505050505050505050565b60008260000361161c575060006107c6565b60006116288385611aef565b9050826116358583611b3b565b146108875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610918565b600061088783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357611703611b5d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611a40565b8160018151811061179357611793611b5d565b60200260200101906001600160a01b031690816001600160a01b0316815250506117bd308361075f565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f7908590600090869030904290600401611b73565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b505050505050565b601554600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261186d9230928992600092839216904290600401611a5d565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b09190611a98565b5050505050565b600081836118d85760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611b3b565b600060208083528351808285015260005b81811015611912578581018301518582016040015282016118f6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a0c57600080fd5b6000806040838503121561195b57600080fd5b823561196681611933565b946020939093013593505050565b60008060006060848603121561198957600080fd5b833561199481611933565b925060208401356119a481611933565b929592945050506040919091013590565b6000602082840312156119c757600080fd5b813561088781611933565b600080604083850312156119e557600080fd5b82356119f081611933565b91506020830135611a0081611933565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a5257600080fd5b815161088781611933565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aad57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c6611ac6565b80820281158282048414176107c6576107c6611ac6565b600060208284031215611b1857600080fd5b8151801515811461088757600080fd5b808201808211156107c6576107c6611ac6565b600082611b5857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200dc99072b8001cfd0324a9917820639338f370a1e0191d2921a17763a20751f864736f6c63430008130033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80637dfcbe341161012e578063bf56b371116100ab578063f2fde38b1161006f578063f2fde38b146106c9578063f887ea40146106e9578063f8b45b0514610709578063fad8cb331461071f578063ffb54a991461073e57600080fd5b8063bf56b37114610622578063c45a015514610638578063c8d1293d14610658578063c9567bf91461066e578063dd62ed3e1461068357600080fd5b80638da5cb5b116100f25780638da5cb5b146105785780638ea5220f1461059657806395d89b41146105b6578063a8aa1b31146105e2578063a9059cbb1461060257600080fd5b80637dfcbe34146104ca57806389215317146104eb57806389291a8f14610501578063893d20e8146105165780638b42507f1461054857600080fd5b80634551bbe9116101bc57806370a082311161018057806370a082311461043e578063715018a6146104745780637437681e1461048957806374a17a9e1461049f578063751039fc146104b557600080fd5b80634551bbe9146103a357806347062402146103d05780634a74bb02146103e6578063571ac8b01461040757806366eb37851461042757600080fd5b8063246ea64e11610203578063246ea64e146103165780632b112e491461032c578063313ce567146103415780633c6d74fb1461035d5780633f4218e01461037357600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102b157806318160ddd146102e157806323b872dd146102f657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261601b5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b5060408051808201909152600b81526a476f6d2046696e616e636560a81b60208201525b60405161026b91906118e5565b3480156102bd57600080fd5b506102d16102cc366004611948565b61075f565b604051901515815260200161026b565b3480156102ed57600080fd5b50600154610261565b34801561030257600080fd5b506102d1610311366004611974565b6107cc565b34801561032257600080fd5b5061026160125481565b34801561033857600080fd5b5061026161088e565b34801561034d57600080fd5b506040516012815260200161026b565b34801561036957600080fd5b50610261600d5481565b34801561037f57600080fd5b506102d161038e3660046119b5565b60086020526000908152604090205460ff1681565b3480156103af57600080fd5b506102616103be3660046119b5565b600f6020526000908152604090205481565b3480156103dc57600080fd5b50610261600c5481565b3480156103f257600080fd5b506018546102d190600160a81b900460ff1681565b34801561041357600080fd5b506102d16104223660046119b5565b6108e0565b34801561043357600080fd5b5061043c6108ee565b005b34801561044a57600080fd5b506102616104593660046119b5565b6001600160a01b031660009081526002602052604090205490565b34801561048057600080fd5b5061043c61092b565b34801561049557600080fd5b5061026160195481565b3480156104ab57600080fd5b50610261600e5481565b3480156104c157600080fd5b5061043c61095f565b3480156104d657600080fd5b506007546102d190600160a01b900460ff1681565b3480156104f757600080fd5b5061026160115481565b34801561050d57600080fd5b5061043c61099f565b34801561052257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561055457600080fd5b506102d16105633660046119b5565b60096020526000908152604090205460ff1681565b34801561058457600080fd5b506000546001600160a01b0316610530565b3480156105a257600080fd5b50601854610530906001600160a01b031681565b3480156105c257600080fd5b50604080518082019091526003815262474f4d60e81b60208201526102a4565b3480156105ee57600080fd5b50601654610530906001600160a01b031681565b34801561060e57600080fd5b506102d161061d366004611948565b610a0f565b34801561062e57600080fd5b50610261600a5481565b34801561064457600080fd5b50601754610530906001600160a01b031681565b34801561066457600080fd5b5061026160105481565b34801561067a57600080fd5b5061043c610a1c565b34801561068f57600080fd5b5061026161069e3660046119d2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d557600080fd5b5061043c6106e43660046119b5565b610c38565b3480156106f557600080fd5b50601554610530906001600160a01b031681565b34801561071557600080fd5b50610261601a5481565b34801561072b57600080fd5b5061043c6018805460ff60a81b19169055565b34801561074a57600080fd5b506018546102d190600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ba9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610879576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610854918490610cd0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610884848484610d0a565b90505b9392505050565b6007546001600160a01b03166000908152600260205260408120546108db906006546001600160a01b03166000908152600260205260409020546108d590600154906110f4565b906110f4565b905090565b60006107c68260001961075f565b6000546001600160a01b031633146109215760405162461bcd60e51b815260040161091890611a0b565b60405180910390fd5b610929611136565b565b6000546001600160a01b031633146109555760405162461bcd60e51b815260040161091890611a0b565b61092960006112bb565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161091890611a0b565b61099460015461130b565b61092960015461133a565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161091890611a0b565b478015610a0c576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a0a573d6000803e3d6000fd5b505b50565b6000610887338484610d0a565b6000546001600160a01b03163314610a465760405162461bcd60e51b815260040161091890611a0b565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611a40565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611a40565b601680546001600160a01b0319166001600160a01b039283169081179091556000908152600960209081526040808320805460ff1916600117905530808452600383528184206015805487168652908452828520600019905554818552600290935292205492169163f305d719914791600080610bb76000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd996959493929190611a5d565b60606040518083038185885af1158015610bf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1c9190611a98565b505043600a55506018805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610c625760405162461bcd60e51b815260040161091890611a0b565b6001600160a01b038116610cc75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610918565b610a0c816112bb565b60008184841115610cf45760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611adc565b95945050505050565b6001600160a01b03831660009081526008602052604081205460ff16158015610d4c57506001600160a01b03831660009081526008602052604090205460ff16155b15610da257601854600160b01b900460ff16610da25760405162461bcd60e51b81526020600482015260156024820152743830ba34b2b731b29034b99030903b34b93a3ab29760591b6044820152606401610918565b601854600160a01b900460ff1615610dc657610dbf848484611369565b9050610887565b60195482111580610def57506001600160a01b03841660009081526009602052604090205460ff165b610e205760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610918565b6001600160a01b038316600090815260096020526040902054829060ff16158015610e545750600754600160a01b900460ff165b15610eb657601a546001600160a01b038516600090815260026020526040902054610e7f908561144f565b1115610eb65760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610918565b6016546001600160a01b03163314801590610edb5750601854600160a01b900460ff16155b8015610ef05750601854600160a81b900460ff165b8015610f0d5750601b543060009081526002602052604090205410155b8015610f3257506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5757506001600160a01b03841660009081526008602052604090205460ff16155b15610f6457610f64611136565b610f6e85856114ae565b15610f8357601254610f809084611aef565b92505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054610fd5918590610cd0565b6001600160a01b0386166000908152600260209081526040808320939093556008905290812054919350839160ff1615801561102a57506001600160a01b03851660009081526008602052604090205460ff16155b611034578361103f565b61103f8686866114e2565b6001600160a01b038616600090815260026020526040902054909150611065908261144f565b6001600160a01b0380871660008181526002602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99085815260200190565b60405180910390a35050506001600160a01b038084166000908152600f60205260408082204290819055928516825290205560019392505050565b600061088783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd0565b6018805460ff60a01b1916600160a01b179055306000908152600260205260408120546012549091906111779060649061117190859061160a565b9061168c565b9050600061119a600261117160646111716010548861160a90919063ffffffff16565b905060006111ac836108d586856110f4565b90506111b7816116ce565b60065460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101849052309063a9059cbb906044016020604051808303816000875af1158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190611b06565b5060004790506000611253600261117160646111716010548761160a90919063ffffffff16565b9050831561126557611265848261182d565b81156112a6576018546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112a4573d6000803e3d6000fd5b505b50506018805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146113355760405162461bcd60e51b815260040161091890611a0b565b601955565b6000546001600160a01b031633146113645760405162461bcd60e51b815260040161091890611a0b565b601a55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546113ba918490610cd0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546113e9908361144f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35060019392505050565b60008061145c8385611b28565b9050838110156108875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610918565b6016546000906001600160a01b03838116911614801561088757506018546001600160a01b03848116911614905092915050565b6001600160a01b0383166000908152600f602052604081205481904790829061150b9042611adc565b90506201518081101561152257600d549250611533565b6201518081111561153357600e5492505b6016546000906001600160a01b0388811691161461155357600c5461156a565b6014546115609084611b3b565b61156a9085611adc565b9050600061157d6064611171898561160a565b3060009081526002602052604090205490915061159a908261144f565b30600081815260026020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115eb9085815260200190565b60405180910390a36115fd87826110f4565b9998505050505050505050565b60008260000361161c575060006107c6565b60006116288385611aef565b9050826116358583611b3b565b146108875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610918565b600061088783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357611703611b5d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117809190611a40565b8160018151811061179357611793611b5d565b60200260200101906001600160a01b031690816001600160a01b0316815250506117bd308361075f565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f7908590600090869030904290600401611b73565b600060405180830381600087803b15801561181157600080fd5b505af1158015611825573d6000803e3d6000fd5b505050505050565b601554600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261186d9230928992600092839216904290600401611a5d565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b09190611a98565b5050505050565b600081836118d85760405162461bcd60e51b815260040161091891906118e5565b506000610d018486611b3b565b600060208083528351808285015260005b81811015611912578581018301518582016040015282016118f6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a0c57600080fd5b6000806040838503121561195b57600080fd5b823561196681611933565b946020939093013593505050565b60008060006060848603121561198957600080fd5b833561199481611933565b925060208401356119a481611933565b929592945050506040919091013590565b6000602082840312156119c757600080fd5b813561088781611933565b600080604083850312156119e557600080fd5b82356119f081611933565b91506020830135611a0081611933565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a5257600080fd5b815161088781611933565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aad57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c6611ac6565b80820281158282048414176107c6576107c6611ac6565b600060208284031215611b1857600080fd5b8151801515811461088757600080fd5b808201808211156107c6576107c6611ac6565b600082611b5857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc35784516001600160a01b031683529383019391830191600101611b9e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200dc99072b8001cfd0324a9917820639338f370a1e0191d2921a17763a20751f864736f6c63430008130033

Deployed Bytecode Sourcemap

6054:9821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7767:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7767:52:0;;;;;;;;9926:80;;;;;;;;;;-1:-1:-1;9998:5:0;;;;;;;;;;;;-1:-1:-1;;;9998:5:0;;;;9926:80;;;;;;;:::i;10354:216::-;;;;;;;;;;-1:-1:-1;10354:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;10354:216:0;1205:187:1;9656:88:0;;;;;;;;;;-1:-1:-1;9729:12:0;;9656:88;;10868:366;;;;;;;;;;-1:-1:-1;10868:366:0;;;;;:::i;:::-;;:::i;7142:25::-;;;;;;;;;;;;;;;;9506:142;;;;;;;;;;;;;:::i;9750:80::-;;;;;;;;;;-1:-1:-1;9750:80:0;;6261:2;2000:36:1;;1988:2;1973:18;9750:80:0;1858:184:1;6933:31:0;;;;;;;;;;;;;;;;6721:44;;;;;;;;;;-1:-1:-1;6721:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7012:51;;;;;;;;;;-1:-1:-1;7012:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;6901:25;;;;;;;;;;;;;;;;7454:40;;;;;;;;;;-1:-1:-1;7454:40:0;;;;-1:-1:-1;;;7454:40:0;;;;;;10578:122;;;;;;;;;;-1:-1:-1;10578:122:0;;;;;:::i;:::-;;:::i;15548:74::-;;;;;;;;;;;;;:::i;:::-;;10098:105;;;;;;;;;;-1:-1:-1;10098:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10182:18:0;10164:7;10182:18;;;:9;:18;;;;;;;10098:105;3943:103;;;;;;;;;;;;;:::i;7659:45::-;;;;;;;;;;;;;;;;6971:32;;;;;;;;;;;;;;;;9267:131;;;;;;;;;;;;;:::i;6686:26::-;;;;;;;;;;-1:-1:-1;6686:26:0;;;;-1:-1:-1;;;6686:26:0;;;;;;7109;;;;;;;;;;;;;;;;15630:242;;;;;;;;;;;;;:::i;10012:80::-;;;;;;;;;;-1:-1:-1;10064:7:0;3365:6;-1:-1:-1;;;;;3365:6:0;10012:80;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;10012:80:0;2299:203:1;6772:48:0;;;;;;;;;;-1:-1:-1;6772:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3292:87;;;;;;;;;;-1:-1:-1;3338:7:0;3365:6;-1:-1:-1;;;;;3365:6:0;3292:87;;7339:78;;;;;;;;;;-1:-1:-1;7339:78:0;;;;-1:-1:-1;;;;;7339:78:0;;;9836:84;;;;;;;;;;-1:-1:-1;9910:7:0;;;;;;;;;;;;-1:-1:-1;;;9910:7:0;;;;9836:84;;7284:19;;;;;;;;;;-1:-1:-1;7284:19:0;;;;-1:-1:-1;;;;;7284:19:0;;;10708:152;;;;;;;;;;-1:-1:-1;10708:152:0;;;;;:::i;:::-;;:::i;6829:25::-;;;;;;;;;;;;;;;;7310:22;;;;;;;;;;-1:-1:-1;7310:22:0;;;;-1:-1:-1;;;;;7310:22:0;;;7072:30;;;;;;;;;;;;;;;;8504:536;;;;;;;;;;;;;:::i;10209:133::-;;;;;;;;;;-1:-1:-1;10209:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10311:19:0;;;10293:7;10311:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10209:133;4201:238;;;;;;;;;;-1:-1:-1;4201:238:0;;;;;:::i;:::-;;:::i;7253:24::-;;;;;;;;;;-1:-1:-1;7253:24:0;;;;-1:-1:-1;;;;;7253:24:0;;;7711:49;;;;;;;;;;;;;;;;9406:92;;;;;;;;;;;;9460:21;:30;;-1:-1:-1;;;;9460:30:0;;;9406:92;7501:31;;;;;;;;;;-1:-1:-1;7501:31:0;;;;-1:-1:-1;;;7501:31:0;;;;;;10354:216;10458:10;10429:4;10446:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10446:32:0;;;;;;;;;;:41;;;10503:37;10429:4;;10446:32;;10503:37;;;;10481:6;160:25:1;;148:2;133:18;;14:177;10503:37:0;;;;;;;;-1:-1:-1;10558:4:0;10354:216;;;;;:::o;10868:366::-;-1:-1:-1;;;;;10988:19:0;;10968:4;10988:19;;;:11;:19;;;;;;;;11008:10;10988:31;;;;;;;;-1:-1:-1;;10988:52:0;10985:186;;11090:69;;;;;;;;;;;-1:-1:-1;;;11090:69:0;;;;;;;;-1:-1:-1;;;;;11090:19:0;;-1:-1:-1;11090:19:0;;;:11;:19;;;;;11110:10;11090:31;;;;;;;;;;:69;;11126:6;;11090:35;:69::i;:::-;-1:-1:-1;;;;;11056:19:0;;;;;;:11;:19;;;;;;;;11076:10;11056:31;;;;;;;:103;10985:186;11190:36;11200:6;11208:9;11219:6;11190:9;:36::i;:::-;11183:43;;10868:366;;;;;;:::o;9506:142::-;9634:4;;-1:-1:-1;;;;;9634:4:0;9559:7;10182:18;;;:9;:18;;;;;;9586:54;;9613:4;;-1:-1:-1;;;;;9613:4:0;10164:7;10182:18;;;:9;:18;;;;;;9586:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;9579:61;;9506:142;:::o;10578:122::-;10633:4;10657:35;10665:7;-1:-1:-1;;10657:7:0;:35::i;15548:74::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;;;;;;;;;15604:10:::1;:8;:10::i;:::-;15548:74::o:0;3943:103::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;4008:30:::1;4035:1;4008:18;:30::i;9267:131::-:0;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;9321:27:::1;9335:12;;9321:13;:27::i;:::-;9359:31;9377:12;;9359:17;:31::i;15630:242::-:0;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;15714:21:::1;15749:22:::0;;15746:119:::1;;15813:9;::::0;15797:56:::1;::::0;-1:-1:-1;;;;;15813:9:0;;::::1;::::0;15797:56;::::1;;;::::0;15834:18;;15813:9:::1;15797:56:::0;15813:9;15797:56;15834:18;15813:9;15797:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15746:119;15674:198;15630:242::o:0;10708:152::-;10788:4;10812:40;10822:10;10834:9;10845:6;10812:9;:40::i;8504:536::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;8576:6:::1;;;;;;;;;-1:-1:-1::0;;;;;8576:6:0::1;-1:-1:-1::0;;;;;8576:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8620:4;::::0;8564:61:::1;::::0;-1:-1:-1;;;8564:61:0;;8613:4:::1;8564:61;::::0;::::1;3955:34:1::0;-1:-1:-1;;;;;8620:4:0;;::::1;4005:18:1::0;;;3998:43;8564:40:0;::::1;::::0;::::1;::::0;3890:18:1;;8564:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8557:4;:68:::0;;-1:-1:-1;;;;;;8557:68:0::1;-1:-1:-1::0;;;;;8557:68:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;8636:21:0;;;:15:::1;:21;::::0;;;;;;;:28;;-1:-1:-1;;8636:28:0::1;-1:-1:-1::0;8636:28:0::1;::::0;;8695:4:::1;8675:26:::0;;;:11:::1;:26:::0;;;;;8710:6:::1;::::0;;;::::1;8675:43:::0;;;;;;;;-1:-1:-1;;8675:63:0;;8751:6;10182:18;;;:9;:18;;;;;;8751:6;::::1;::::0;:22:::1;::::0;8781:21:::1;::::0;8885:1:::1;8902::::0;8919:7:::1;3338::::0;3365:6;-1:-1:-1;;;;;3365:6:0;;3292:87;8919:7:::1;8941:15;8751:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8991:12:0::1;8978:10;:25:::0;-1:-1:-1;9014:11:0::1;:18:::0;;-1:-1:-1;;;;9014:18:0::1;-1:-1:-1::0;;;9014:18:0::1;::::0;;8504:536::o;4201:238::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4304:22:0;::::1;4282:110;;;::::0;-1:-1:-1;;;4282:110:0;;5177:2:1;4282:110:0::1;::::0;::::1;5159:21:1::0;5216:2;5196:18;;;5189:30;5255:34;5235:18;;;5228:62;-1:-1:-1;;;5306:18:1;;;5299:36;5352:19;;4282:110:0::1;4975:402:1::0;4282:110:0::1;4403:28;4422:8;4403:18;:28::i;957:192::-:0;1043:7;1079:12;1071:6;;;;1063:29;;;;-1:-1:-1;;;1063:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1103:9:0;1115:5;1119:1;1115;:5;:::i;:::-;1103:17;957:192;-1:-1:-1;;;;;957:192:0:o;11403:1352::-;-1:-1:-1;;;;;11513:19:0;;11491:4;11513:19;;;:11;:19;;;;;;;;11512:20;:47;;;;-1:-1:-1;;;;;;11537:22:0;;;;;;:11;:22;;;;;;;;11536:23;11512:47;11508:98;;;11569:11;;-1:-1:-1;;;11569:11:0;;;;11561:45;;;;-1:-1:-1;;;11561:45:0;;5849:2:1;11561:45:0;;;5831:21:1;5888:2;5868:18;;;5861:30;-1:-1:-1;;;5907:18:1;;;5900:51;5968:18;;11561:45:0;5647:345:1;11561:45:0;11664:16;;-1:-1:-1;;;11664:16:0;;;;11661:73;;;11690:41;11705:6;11713:9;11724:6;11690:14;:41::i;:::-;11683:48;;;;11661:73;11764:5;;11754:6;:15;;:42;;;-1:-1:-1;;;;;;11773:23:0;;;;;;:15;:23;;;;;;;;11754:42;11746:57;;;;-1:-1:-1;;;11746:57:0;;6199:2:1;11746:57:0;;;6181:21:1;6238:1;6218:18;;;6211:29;-1:-1:-1;;;6256:18:1;;;6249:32;6298:18;;11746:57:0;5997:325:1;11746:57:0;-1:-1:-1;;;;;11846:26:0;;11805:15;11846:26;;;:15;:26;;;;;;11823:6;;11846:26;;11845:27;:38;;;;-1:-1:-1;11876:7:0;;-1:-1:-1;;;11876:7:0;;;;11845:38;11842:143;;;11953:9;;-1:-1:-1;;;;;11917:20:0;;;;;;:9;:20;;;;;;:32;;11942:6;11917:24;:32::i;:::-;:45;;11909:64;;;;-1:-1:-1;;;11909:64:0;;6529:2:1;11909:64:0;;;6511:21:1;6568:1;6548:18;;;6541:29;-1:-1:-1;;;6586:18:1;;;6579:36;6632:18;;11909:64:0;6327:329:1;11909:64:0;12014:4;;-1:-1:-1;;;;;12014:4:0;12000:10;:18;;;;:39;;-1:-1:-1;12023:16:0;;-1:-1:-1;;;12023:16:0;;;;12022:17;12000:39;:64;;;;-1:-1:-1;12043:21:0;;-1:-1:-1;;;12043:21:0;;;;12000:64;:109;;;;-1:-1:-1;12096:13:0;;12086:4;12068:24;;;;:9;:24;;;;;;:41;;12000:109;:133;;;;-1:-1:-1;;;;;;12114:19:0;;;;;;:11;:19;;;;;;;;12113:20;12000:133;:160;;;;-1:-1:-1;;;;;;12138:22:0;;;;;;:11;:22;;;;;;;;12137:23;12000:160;11997:179;;;12163:10;:8;:10::i;:::-;12190:33;12205:6;12213:9;12190:14;:33::i;:::-;12186:66;;;12244:6;;12235:15;;:6;:15;:::i;:::-;12226:24;;12186:66;12282:53;;;;;;;;;;;-1:-1:-1;;;12282:53:0;;;;;;;;-1:-1:-1;;;;;12282:17:0;;-1:-1:-1;12282:17:0;;;:9;:17;;;;;;;;:53;;12304:6;;12282:21;:53::i;:::-;-1:-1:-1;;;;;12262:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12397:11;:19;;;;;;12346:7;;-1:-1:-1;12346:7:0;;12397:19;;12396:20;:47;;;;-1:-1:-1;;;;;;12421:22:0;;;;;;:11;:22;;;;;;;;12420:23;12396:47;:93;;12483:6;12396:93;;;12446:34;12454:6;12462:9;12473:6;12446:7;:34::i;:::-;-1:-1:-1;;;;;12523:20:0;;;;;;:9;:20;;;;;;12374:115;;-1:-1:-1;12523:37:0;;12374:115;12523:24;:37::i;:::-;-1:-1:-1;;;;;12500:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12578:40;;;;;;;;;;12606:11;160:25:1;;148:2;133:18;;14:177;12578:40:0;;;;;;;;-1:-1:-1;;;;;;;;12629:23:0;;;;;;;:15;:23;;;;;;12655:15;12629:41;;;;12681:26;;;;;;;:44;12743:4;11403:1352;;;;;:::o;815:136::-;873:7;900:43;904:1;907;900:43;;;;;;;;;;;;;;;;;:3;:43::i;14693:847::-;7573:16;:23;;-1:-1:-1;;;;7573:23:0;-1:-1:-1;;;7573:23:0;;;14786:4:::1;7573:23:::0;14768:24;;;:9:::1;:24;::::0;;;;;14843:6:::1;::::0;14768:24;;7573:23;14826:33:::1;::::0;14855:3:::1;::::0;14826:24:::1;::::0;14768;;14826:16:::1;:24::i;:::-;:28:::0;::::1;:33::i;:::-;14803:56;;14870:26;14899:45;14942:1;14899:38;14933:3;14899:29;14916:11;;14899:12;:16;;:29;;;;:::i;:45::-;14870:74:::0;-1:-1:-1;14960:20:0::1;14983:54;15024:12:::0;14983:36:::1;:12:::0;14870:74;14983:16:::1;:36::i;:54::-;14960:77;;15058:30;15075:12;15058:16;:30::i;:::-;15132:4;::::0;15101:50:::1;::::0;-1:-1:-1;;;15101:50:0;;-1:-1:-1;;;;;15132:4:0;;::::1;15101:50;::::0;::::1;7008:51:1::0;7075:18;;;7068:34;;;15116:4:0::1;::::0;15101:30:::1;::::0;6981:18:1;;15101:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15164:23;15190:21;15164:47;;15222:23;15248:48;15294:1;15248:41;15285:3;15248:32;15268:11;;15248:15;:19;;:32;;;;:::i;:48::-;15222:74:::0;-1:-1:-1;15321:22:0;;15317:103:::1;;15359:49;15372:18;15392:15;15359:12;:49::i;:::-;15436:19:::0;;15432:101:::1;;15479:9;::::0;15471:50:::1;::::0;-1:-1:-1;;;;;15479:9:0;;::::1;::::0;15499:21:::1;15471:50:::0;::::1;;;::::0;15479:9:::1;15471:50:::0;15479:9;15471:50;15499:21;15479:9;15471:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15432:101;-1:-1:-1::0;;7619:16:0;:24;;-1:-1:-1;;;;7619:24:0;;;-1:-1:-1;;;;14693:847:0:o;4599:191::-;4673:16;4692:6;;-1:-1:-1;;;;;4709:17:0;;;-1:-1:-1;;;;;;4709:17:0;;;;;;4742:40;;4692:6;;;;;;;4742:40;;4673:16;4742:40;4662:128;4599:191;:::o;9054:94::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;9124:5:::1;:16:::0;9054:94::o;9156:103::-;3338:7;3365:6;-1:-1:-1;;;;;3365:6:0;508:10;3512:23;3504:68;;;;-1:-1:-1;;;3504:68:0;;;;;;;:::i;:::-;9230:9:::1;:21:::0;9156:103::o;12767:330::-;12897:53;;;;;;;;;;;-1:-1:-1;;;12897:53:0;;;;;;;;-1:-1:-1;;;;;12897:17:0;;12860:4;12897:17;;;:9;:17;;;;;;;:53;;12919:6;;12897:21;:53::i;:::-;-1:-1:-1;;;;;12877:17:0;;;;;;;:9;:17;;;;;;:73;;;;12984:20;;;;;;;:32;;13009:6;12984:24;:32::i;:::-;-1:-1:-1;;;;;12961:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13032:35;;;;;;;;;;13060:6;160:25:1;;148:2;133:18;;14:177;13032:35:0;;;;;;;;-1:-1:-1;13085:4:0;12767:330;;;;;:::o;628:181::-;686:7;;718:5;722:1;718;:5;:::i;:::-;706:17;;747:1;742;:6;;734:46;;;;-1:-1:-1;;;734:46:0;;7727:2:1;734:46:0;;;7709:21:1;7766:2;7746:18;;;7739:30;7805:29;7785:18;;;7778:57;7852:18;;734:46:0;7525:351:1;11242:153:0;11360:4;;11323;;-1:-1:-1;;;;;11347:17:0;;;11360:4;;11347:17;:40;;;;-1:-1:-1;11378:9:0;;-1:-1:-1;;;;;11368:19:0;;;11378:9;;11368:19;11340:47;;11242:153;;;;:::o;13111:814::-;-1:-1:-1;;;;;13329:23:0;;13197:7;13329:23;;;:15;:23;;;;;;13197:7;;13262:21;;13197:7;;13313:39;;:15;:39;:::i;:::-;13294:58;;13382:8;13371;:19;13367:198;;;13428:12;;13411:29;;13367:198;;;13490:8;13479;:19;13475:90;;;13536:13;;13519:30;;13475:90;13601:4;;13577:21;;-1:-1:-1;;;;;13601:17:0;;;:4;;:17;:73;;13668:6;;13601:73;;;13651:14;;13638:27;;:10;:27;:::i;:::-;13621:44;;:14;:44;:::i;:::-;13577:97;-1:-1:-1;13685:17:0;13705:34;13735:3;13705:25;:6;13577:97;13705:10;:25::i;:34::-;13797:4;13779:24;;;;:9;:24;;;;;;13685:54;;-1:-1:-1;13779:39:0;;13685:54;13779:28;:39::i;:::-;13770:4;13752:24;;;;:9;:24;;;;;;;:66;;;;13834:42;;-1:-1:-1;;;;;13834:42:0;;;;;;;13866:9;160:25:1;;148:2;133:18;;14:177;13834:42:0;;;;;;;;13896:21;:6;13907:9;13896:10;:21::i;:::-;13889:28;13111:814;-1:-1:-1;;;;;;;;;13111:814:0:o;1155:250::-;1213:7;1237:1;1242;1237:6;1233:47;;-1:-1:-1;1267:1:0;1260:8;;1233:47;1292:9;1304:5;1308:1;1304;:5;:::i;:::-;1292:17;-1:-1:-1;1337:1:0;1328:5;1332:1;1292:17;1328:5;:::i;:::-;:10;1320:56;;;;-1:-1:-1;;;1320:56:0;;8305:2:1;1320:56:0;;;8287:21:1;8344:2;8324:18;;;8317:30;8383:34;8363:18;;;8356:62;-1:-1:-1;;;8434:18:1;;;8427:31;8475:19;;1320:56:0;8103:397:1;1411:132:0;1469:7;1496:39;1500:1;1503;1496:39;;;;;;;;;;;;;;;;;:3;:39::i;13938:460::-;14030:16;;;14044:1;14030:16;;;;;;;;14006:21;;14030:16;;;;;;;;;;-1:-1:-1;14030:16:0;14006:40;;14075:4;14057;14062:1;14057:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14057:23:0;;;:7;;;;;;;;;;:23;;;;14101:6;;:13;;;-1:-1:-1;;;14101:13:0;;;;:6;;;;;:11;;:13;;;;;14057:7;;14101:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14091:4;14096:1;14091:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14091:23:0;;;-1:-1:-1;;;;;14091:23:0;;;;;14127:35;14143:4;14150:11;14127:7;:35::i;:::-;-1:-1:-1;14175:6:0;;:215;;-1:-1:-1;;;14175:215:0;;-1:-1:-1;;;;;14175:6:0;;;;:57;;:215;;14247:11;;14175:6;;14317:4;;14344;;14364:15;;14175:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13993:405;13938:460;:::o;14406:279::-;14487:6;;14628:8;;14487:190;;-1:-1:-1;;;14487:190:0;;-1:-1:-1;;;;;14487:6:0;;;;:22;;14517:9;;14487:190;;14550:4;;14570:11;;14487:6;;;;14628:8;;14651:15;;14487:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14406:279;;:::o;1549:345::-;1635:7;1737:12;1730:5;1722:28;;;;-1:-1:-1;;;1722:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1761:9:0;1773:5;1777:1;1773;:5;:::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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;3126:356::-;3328:2;3310:21;;;3347:18;;;3340:30;3406:34;3401:2;3386:18;;3379:62;3473:2;3458:18;;3126:356::o;3487:251::-;3557:6;3610:2;3598:9;3589:7;3585:23;3581:32;3578:52;;;3626:1;3623;3616:12;3578:52;3658:9;3652:16;3677:31;3702:5;3677:31;:::i;4052:607::-;-1:-1:-1;;;;;4411:15:1;;;4393:34;;4458:2;4443:18;;4436:34;;;;4501:2;4486:18;;4479:34;;;;4544:2;4529:18;;4522:34;;;;4593:15;;;4587:3;4572:19;;4565:44;4373:3;4625:19;;4618:35;;;;4342:3;4327:19;;4052:607::o;4664:306::-;4752:6;4760;4768;4821:2;4809:9;4800:7;4796:23;4792:32;4789:52;;;4837:1;4834;4827:12;4789:52;4866:9;4860:16;4850:26;;4916:2;4905:9;4901:18;4895:25;4885:35;;4960:2;4949:9;4945:18;4939:25;4929:35;;4664:306;;;;;:::o;5382:127::-;5443:10;5438:3;5434:20;5431:1;5424:31;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5514:128;5581:9;;;5602:11;;;5599:37;;;5616:18;;:::i;6661:168::-;6734:9;;;6765;;6782:15;;;6776:22;;6762:37;6752:71;;6803:18;;:::i;7113:277::-;7180:6;7233:2;7221:9;7212:7;7208:23;7204:32;7201:52;;;7249:1;7246;7239:12;7201:52;7281:9;7275:16;7334:5;7327:13;7320:21;7313:5;7310:32;7300:60;;7356:1;7353;7346:12;7395:125;7460:9;;;7481:10;;;7478:36;;;7494: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;8637:127::-;8698:10;8693:3;8689:20;8686:1;8679:31;8729:4;8726:1;8719:15;8753:4;8750:1;8743:15;8769:980;9031:4;9079:3;9068:9;9064:19;9110:6;9099:9;9092:25;9136:2;9174:6;9169:2;9158:9;9154:18;9147:34;9217:3;9212:2;9201:9;9197:18;9190:31;9241:6;9276;9270:13;9307:6;9299;9292:22;9345:3;9334:9;9330:19;9323:26;;9384:2;9376:6;9372:15;9358:29;;9405:1;9415:195;9429:6;9426:1;9423:13;9415:195;;;9494:13;;-1:-1:-1;;;;;9490:39:1;9478:52;;9585:15;;;;9550:12;;;;9526:1;9444:9;9415:195;;;-1:-1:-1;;;;;;;9666:32:1;;;;9661:2;9646:18;;9639:60;-1:-1:-1;;;9730:3:1;9715:19;9708:35;9627:3;8769:980;-1:-1:-1;;;8769:980:1:o

Swarm Source

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