ETH Price: $2,391.62 (-0.29%)

Token

Bingus Coin (BINGUS)
 

Overview

Max Total Supply

100,000,000 BINGUS

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
661.018467047 BINGUS

Value
$0.00
0xc5afb6546fa01ba0ad205e0ba70a4ea973c01950
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:
Bingus

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-11-02
*/

/*
    SPDX-License-Identifier: None
    Bingus Coin

    Telegram: https://t.me/TheBingusCoin
    Twitter: https://twitter.com/Thebinguscoin
    Website: thebinguscoin.com

*/

pragma solidity ^0.8.19;


interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */

    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    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) {
        // 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;
    }
}

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

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

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

interface IPancakePair {
    function sync() external;
}

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

}

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Bingus is IERC20, Ownable {
    using SafeMath for uint256;

    address constant ROUTER        = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address constant WETH          = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address constant DEAD          = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO          = 0x0000000000000000000000000000000000000000;

    string _name = "Bingus Coin";
    string _symbol = "BINGUS";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100_000_000 * (10 ** _decimals);
    uint256 public _maxWalletToken = (_totalSupply * 100) / 10000;   // 1% 

    /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
    mapping (address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

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

    mapping (address => bool) isFeeExempt;
 
    uint256 liquidityFee = 0; 
    uint256 giveawayFee = 0;  
    uint256 marketingFee = 0;   
    uint256 reflectionFee = 0; 
    uint256 totalFee = 0;  

    uint256 buyFee = 20; 
    uint256 sellFee = 30; 
    uint256 transferFee = 50; 
    uint256 feeDenominator = 100; 
    
    address autoLiquidityReceiver;
    address marketingFeeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public claimingFees = true;
    uint256 public swapThreshold = _totalSupply.mul(1).div(100);
    bool anticlearOn = true;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {

        address deployer = msg.sender;
        router = IDEXRouter(ROUTER);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[address(this)] = true;
        isFeeExempt[deployer] = true;

        autoLiquidityReceiver = deployer;
        marketingFeeReceiver = deployer;

        _rOwned[deployer] = _totalSupply;
        emit Transfer(address(0), deployer, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function name() external view returns (string memory) { return _name; }
    function changeName(string memory newName) external onlyOwner { _name = newName; }
    function changeSymbol(string memory newSymbol) external onlyOwner { _symbol = newSymbol; }
    function symbol() external view returns (string memory) { return _symbol; }
    function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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 _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

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

        if (recipient != pair && recipient != DEAD && !isFeeExempt[recipient] && !isFeeExempt[sender]) {
            require(balanceOf(recipient) + amount <= _maxWalletToken, "Max Wallet Exceeded");
        }

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

        uint256 proportionAmount = tokensToProportion(amount);

        _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance");

        uint256 proportionReceived = shouldTakeFee(sender, recipient) ? takeFeeInProportions(sender, recipient, proportionAmount) : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient].add(proportionReceived);

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens.mul(_totalProportion).div(_totalSupply);
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion.mul(_totalSupply).div(_totalProportion);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        _rOwned[sender] = _rOwned[sender].sub(proportionAmount, "Insufficient Balance");
        _rOwned[recipient] = _rOwned[recipient].add(proportionAmount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function getTotalFee(address sender, address recipient) public view returns (uint256) { 
        if (sender   == pair) { return buyFee; } 
        if (recipient == pair) { return sellFee; } 
        return transferFee;
    }

    function takeFeeInProportions(address sender, address recipient, uint256 proportionAmount) internal returns (uint256) {
        uint256 proportionFeeAmount = proportionAmount.mul(getTotalFee(sender,recipient)).div(feeDenominator);
        uint256 proportionReflected = 0;

        // reflect
        if (totalFee > 0) {
            proportionReflected = proportionFeeAmount.mul(reflectionFee).div(totalFee);
            _totalProportion = _totalProportion.sub(proportionReflected);
            emit Reflect(proportionReflected, _totalProportion);
        }

        // take fees
        uint256 _proportionToContract = proportionFeeAmount.sub(proportionReflected);
        _rOwned[address(this)] = _rOwned[address(this)].add(_proportionToContract);

        emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        return proportionAmount.sub(proportionFeeAmount);
    }

    function clearBalance() external {
        (bool success,) = payable(autoLiquidityReceiver).call{value: address(this).balance, gas: 30000}("");
        require(success);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && claimingFees
        && balanceOf(address(this)) >= swapThreshold;
    }

    function swapBack(uint256 originaltxAmount) internal swapping {

        // uint256 _totalFee = totalFee.sub(reflectionFee);
        uint256 amountToSwap = swapThreshold;
        if (anticlearOn && originaltxAmount < swapThreshold) {
            amountToSwap = originaltxAmount.mul(2) > swapThreshold ? swapThreshold : originaltxAmount.mul(2);
        }

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

        // uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        // uint256 amountETH = address(this).balance.sub(balanceBefore);

        (bool success,) = payable(marketingFeeReceiver).call{value: address(this).balance, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount, bool _anticlearOn) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold = _amount;
        anticlearOn = _anticlearOn;
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _reflection, uint256 _total, uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; reflectionFee = _reflection; totalFee = _total; buyFee = _buy; sellFee = _sell; transferFee = _trans;
        require(totalFee <= feeDenominator && sellFee <= feeDenominator && transferFee <= feeDenominator, "totalFee and sellFee cannot be more than 20%");
    }

    function removeLimits() public onlyOwner {
        _maxWalletToken = _totalSupply;
    }
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _liquidityFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        autoLiquidityReceiver = _liquidityFeeReceiver;
    }

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

    event Reflect(uint256 amountReflected, uint256 newTotalProportion);
}

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":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"string","name":"newName","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSymbol","type":"string"}],"name":"changeSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","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":"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":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_anticlearOn","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_reflection","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a2134b733bab99021b7b4b760a91b60a0526001906200002c908262000503565b5060408051808201909152600681526542494e47555360d01b602082015260029062000059908262000503565b50620000686009600a620006e2565b62000078906305f5e100620006f3565b60035561271060035460646200008f9190620006f3565b6200009b91906200070d565b600455600354600681905560006009819055600a819055600b819055600c819055600d556014600e55601e600f556032601055606460118190556015805460ff60a01b1916600160a01b1790556200010191620000fa90600162000341565b90620003d8565b6016556017805460ff191660011790553480156200011e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905133929163c45a01559160048083019260209291908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000730565b6040516364e329cb60e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000276919062000730565b601580546001600160a01b03199081166001600160a01b0393841617909155306000818152600760209081526040808320601454871684528252808320600019905592825260088152828220805460ff199081166001908117909255958716808452848420805490971690911790955560128054851686179055601380549094168517909355600354600584528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007ab565b6000826000036200035557506000620003d2565b6000620003638385620006f3565b9050826200037285836200070d565b14620003cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620003cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200042260201b60201c565b60008183620004465760405162461bcd60e51b8152600401620003c691906200075b565b5060006200045584866200070d565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048957607f821691505b602082108103620004aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004fe57600081815260208120601f850160051c81016020861015620004d95750805b601f850160051c820191505b81811015620004fa57828155600101620004e5565b5050505b505050565b81516001600160401b038111156200051f576200051f6200045e565b620005378162000530845462000474565b84620004b0565b602080601f8311600181146200056f5760008415620005565750858301515b600019600386901b1c1916600185901b178555620004fa565b600085815260208120601f198616915b82811015620005a0578886015182559484019460019091019084016200057f565b5085821015620005bf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006265781600019048211156200060a576200060a620005cf565b808516156200061857918102915b93841c9390800290620005ea565b509250929050565b6000826200063f57506001620003d2565b816200064e57506000620003d2565b8160018114620006675760028114620006725762000692565b6001915050620003d2565b60ff841115620006865762000686620005cf565b50506001821b620003d2565b5060208310610133831016604e8410600b8410161715620006b7575081810a620003d2565b620006c38383620005e5565b8060001904821115620006da57620006da620005cf565b029392505050565b6000620003cf60ff8416836200062e565b8082028115828204841417620003d257620003d2620005cf565b6000826200072b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074357600080fd5b81516001600160a01b0381168114620003cf57600080fd5b600060208083528351808285015260005b818110156200078a578581018301518582016040015282016200076c565b506000604082860101526040601f19601f8301168501019250505092915050565b611b7880620007bb6000396000f3fe6080604052600436106101e75760003560e01c8063751039fc11610102578063a9059cbb11610095578063d2d55dde11610064578063d2d55dde14610556578063dd62ed3e14610576578063f2fde38b146105bc578063f887ea40146105dc57600080fd5b8063a9059cbb146104e0578063b0f7ec3814610500578063caf5f67d14610521578063cb7f97d71461053657600080fd5b806395d89b41116100d157806395d89b411461046b578063a3895fff14610480578063a4b45c00146104a0578063a8aa1b31146104c057600080fd5b8063751039fc146103ee57806378109e54146104035780637daf4b2b146104195780638da5cb5b1461043957600080fd5b80632d8381191161017a578063571ac8b011610149578063571ac8b014610379578063658d4b7f1461039957806370a08231146103b9578063715018a6146103d957600080fd5b80632d838119146102fb578063313ce5671461031b57806345ce5365146103375780635353a2d81461035757600080fd5b806317800287116101b6578063178002871461029b57806318160ddd146102b157806323b872dd146102c65780632b112e49146102e657600080fd5b80630445b667146101f357806306fdde031461021c578063095ea7b31461023e5780630cfc15f91461026e57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960165481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506102316105fc565b6040516102139190611608565b34801561024a57600080fd5b5061025e610259366004611672565b61068e565b6040519015158152602001610213565b34801561027a57600080fd5b5061020961028936600461169c565b60056020526000908152604090205481565b3480156102a757600080fd5b5061020960065481565b3480156102bd57600080fd5b50600354610209565b3480156102d257600080fd5b5061025e6102e13660046116b7565b6106fb565b3480156102f257600080fd5b506102096107bd565b34801561030757600080fd5b506102096103163660046116f3565b6107ee565b34801561032757600080fd5b5060405160098152602001610213565b34801561034357600080fd5b506102096103523660046116f3565b610811565b34801561036357600080fd5b50610377610372366004611722565b61082e565b005b34801561038557600080fd5b5061025e61039436600461169c565b610871565b3480156103a557600080fd5b506103776103b43660046117e3565b61087f565b3480156103c557600080fd5b506102096103d436600461169c565b6108d4565b3480156103e557600080fd5b506103776108f6565b3480156103fa57600080fd5b5061037761096a565b34801561040f57600080fd5b5061020960045481565b34801561042557600080fd5b50610377610434366004611816565b61099c565b34801561044557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610213565b34801561047757600080fd5b506102316109fa565b34801561048c57600080fd5b5061037761049b366004611722565b610a09565b3480156104ac57600080fd5b506103776104bb366004611852565b610a3f565b3480156104cc57600080fd5b50601554610453906001600160a01b031681565b3480156104ec57600080fd5b5061025e6104fb366004611672565b610a97565b34801561050c57600080fd5b5060155461025e90600160a01b900460ff1681565b34801561052d57600080fd5b50610377610aa4565b34801561054257600080fd5b5061037761055136600461187c565b610b0c565b34801561056257600080fd5b50610209610571366004611852565b610be9565b34801561058257600080fd5b50610209610591366004611852565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156105c857600080fd5b506103776105d736600461169c565b610c34565b3480156105e857600080fd5b50601454610453906001600160a01b031681565b60606001805461060b906118c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610637906118c8565b80156106845780601f1061065957610100808354040283529160200191610684565b820191906000526020600020905b81548152906001019060200180831161066757829003601f168201915b5050505050905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146107a8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610783918490610d1e565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6107b3848484610d58565b90505b9392505050565b60006107e96107cc60006108d4565b6107e36107da61dead6108d4565b60035490610fa0565b90610fa0565b905090565b60006106f560065461080b60035485610fe290919063ffffffff16565b90611064565b60006106f560035461080b60065485610fe290919063ffffffff16565b6000546001600160a01b031633146108615760405162461bcd60e51b815260040161085890611902565b60405180910390fd5b600161086d8282611986565b5050565b60006106f58260001961068e565b6000546001600160a01b031633146108a95760405162461bcd60e51b815260040161085890611902565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600560205260408120546106f5906107ee565b6000546001600160a01b031633146109205760405162461bcd60e51b815260040161085890611902565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109945760405162461bcd60e51b815260040161085890611902565b600354600455565b6000546001600160a01b031633146109c65760405162461bcd60e51b815260040161085890611902565b6015805460ff60a01b1916600160a01b94151594909402939093179092556016556017805460ff1916911515919091179055565b60606002805461060b906118c8565b6000546001600160a01b03163314610a335760405162461bcd60e51b815260040161085890611902565b600261086d8282611986565b6000546001600160a01b03163314610a695760405162461bcd60e51b815260040161085890611902565b601380546001600160a01b039384166001600160a01b03199182161790915560128054929093169116179055565b60006107b6338484610d58565b6012546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610af6576040519150601f19603f3d011682016040523d82523d6000602084013e610afb565b606091505b5050905080610b0957600080fd5b50565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260040161085890611902565b6009879055600b869055600c859055600d849055600e839055600f82905560108190556011548411801590610b6f5750601154600f5411155b8015610b7f575060115460105411155b610be05760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610858565b50505050505050565b6015546000906001600160a01b0390811690841603610c0b5750600e546106f5565b6015546001600160a01b0390811690831603610c2a5750600f546106f5565b5060105492915050565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161085890611902565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610858565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610d425760405162461bcd60e51b81526004016108589190611608565b506000610d4f8486611a5c565b95945050505050565b601754600090610100900460ff1615610d7d57610d768484846110a6565b90506107b6565b6015546001600160a01b03848116911614801590610da657506001600160a01b03831661dead14155b8015610dcb57506001600160a01b03831660009081526008602052604090205460ff16155b8015610df057506001600160a01b03841660009081526008602052604090205460ff16155b15610e505760045482610e02856108d4565b610e0c9190611a6f565b1115610e505760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610858565b610e586111b0565b15610e6657610e6682611205565b6000610e7183610811565b9050610ed98160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d1e9092919063ffffffff16565b6001600160a01b038616600090815260056020526040812091909155610eff8686611409565b610f095781610f14565b610f1486868461144f565b6001600160a01b038616600090815260056020526040902054909150610f3a908261157b565b6001600160a01b0380871660008181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f83846107ee565b60405190815260200160405180910390a350600195945050505050565b60006107b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1e565b600082600003610ff4575060006106f5565b60006110008385611a82565b90508261100d8583611a99565b146107b65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610858565b60006107b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115da565b6000806110b283610811565b905061111a8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d1e9092919063ffffffff16565b6001600160a01b038087166000908152600560205260408082209390935590861681522054611149908261157b565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119d9087815260200190565b60405180910390a3506001949350505050565b6015546000906001600160a01b031633148015906111d65750601754610100900460ff16155b80156111eb5750601554600160a01b900460ff165b80156107e957506016546111fe306108d4565b1015905090565b6017805461ff00198116610100179091556016549060ff16801561122a575060165482105b156112595760165461123d836002610fe2565b116112525761124d826002610fe2565b611256565b6016545b90505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061128e5761128e611abb565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106112d6576112d6611abb565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061131c908590600090869030904290600401611ad1565b600060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b5050601354604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d80600081146113a2576040519150601f19603f3d011682016040523d82523d6000602084013e6113a7565b606091505b50509050806113f85760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610858565b50506017805461ff00191690555050565b6001600160a01b03821660009081526008602052604081205460ff161580156107b65750506001600160a01b031660009081526008602052604090205460ff1615919050565b60008061146c60115461080b6114658888610be9565b8690610fe2565b9050600080600d5411156114e557611495600d5461080b600c5485610fe290919063ffffffff16565b6006549091506114a59082610fa0565b60068190556040805183815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a15b60006114f18383610fa0565b3060009081526005602052604090205490915061150e908261157b565b306000818152600560205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611555846107ee565b60405190815260200160405180910390a36115708584610fa0565b979650505050505050565b6000806115888385611a6f565b9050838110156107b65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610858565b600081836115fb5760405162461bcd60e51b81526004016108589190611608565b506000610d4f8486611a99565b600060208083528351808285015260005b8181101561163557858101830151858201604001528201611619565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461166d57600080fd5b919050565b6000806040838503121561168557600080fd5b61168e83611656565b946020939093013593505050565b6000602082840312156116ae57600080fd5b6107b682611656565b6000806000606084860312156116cc57600080fd5b6116d584611656565b92506116e360208501611656565b9150604084013590509250925092565b60006020828403121561170557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561173457600080fd5b813567ffffffffffffffff8082111561174c57600080fd5b818401915084601f83011261176057600080fd5b8135818111156117725761177261170c565b604051601f8201601f19908116603f0116810190838211818310171561179a5761179a61170c565b816040528281528760208487010111156117b357600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035801515811461166d57600080fd5b600080604083850312156117f657600080fd5b6117ff83611656565b915061180d602084016117d3565b90509250929050565b60008060006060848603121561182b57600080fd5b611834846117d3565b925060208401359150611849604085016117d3565b90509250925092565b6000806040838503121561186557600080fd5b61186e83611656565b915061180d60208401611656565b600080600080600080600060e0888a03121561189757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600181811c908216806118dc57607f821691505b6020821081036118fc57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561198157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b5050505b505050565b815167ffffffffffffffff8111156119a0576119a061170c565b6119b4816119ae84546118c8565b84611937565b602080601f8311600181146119e957600084156119d15750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a18578886015182559484019460019091019084016119f9565b5085821015611a365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b818103818111156106f5576106f5611a46565b808201808211156106f5576106f5611a46565b80820281158282048414176106f5576106f5611a46565b600082611ab657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b215784516001600160a01b031683529383019391830191600101611afc565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207be97fe078557735a05d0dde51a432ab9b70c17c342204e06b6229feafe8d12664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063751039fc11610102578063a9059cbb11610095578063d2d55dde11610064578063d2d55dde14610556578063dd62ed3e14610576578063f2fde38b146105bc578063f887ea40146105dc57600080fd5b8063a9059cbb146104e0578063b0f7ec3814610500578063caf5f67d14610521578063cb7f97d71461053657600080fd5b806395d89b41116100d157806395d89b411461046b578063a3895fff14610480578063a4b45c00146104a0578063a8aa1b31146104c057600080fd5b8063751039fc146103ee57806378109e54146104035780637daf4b2b146104195780638da5cb5b1461043957600080fd5b80632d8381191161017a578063571ac8b011610149578063571ac8b014610379578063658d4b7f1461039957806370a08231146103b9578063715018a6146103d957600080fd5b80632d838119146102fb578063313ce5671461031b57806345ce5365146103375780635353a2d81461035757600080fd5b806317800287116101b6578063178002871461029b57806318160ddd146102b157806323b872dd146102c65780632b112e49146102e657600080fd5b80630445b667146101f357806306fdde031461021c578063095ea7b31461023e5780630cfc15f91461026e57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960165481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506102316105fc565b6040516102139190611608565b34801561024a57600080fd5b5061025e610259366004611672565b61068e565b6040519015158152602001610213565b34801561027a57600080fd5b5061020961028936600461169c565b60056020526000908152604090205481565b3480156102a757600080fd5b5061020960065481565b3480156102bd57600080fd5b50600354610209565b3480156102d257600080fd5b5061025e6102e13660046116b7565b6106fb565b3480156102f257600080fd5b506102096107bd565b34801561030757600080fd5b506102096103163660046116f3565b6107ee565b34801561032757600080fd5b5060405160098152602001610213565b34801561034357600080fd5b506102096103523660046116f3565b610811565b34801561036357600080fd5b50610377610372366004611722565b61082e565b005b34801561038557600080fd5b5061025e61039436600461169c565b610871565b3480156103a557600080fd5b506103776103b43660046117e3565b61087f565b3480156103c557600080fd5b506102096103d436600461169c565b6108d4565b3480156103e557600080fd5b506103776108f6565b3480156103fa57600080fd5b5061037761096a565b34801561040f57600080fd5b5061020960045481565b34801561042557600080fd5b50610377610434366004611816565b61099c565b34801561044557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610213565b34801561047757600080fd5b506102316109fa565b34801561048c57600080fd5b5061037761049b366004611722565b610a09565b3480156104ac57600080fd5b506103776104bb366004611852565b610a3f565b3480156104cc57600080fd5b50601554610453906001600160a01b031681565b3480156104ec57600080fd5b5061025e6104fb366004611672565b610a97565b34801561050c57600080fd5b5060155461025e90600160a01b900460ff1681565b34801561052d57600080fd5b50610377610aa4565b34801561054257600080fd5b5061037761055136600461187c565b610b0c565b34801561056257600080fd5b50610209610571366004611852565b610be9565b34801561058257600080fd5b50610209610591366004611852565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156105c857600080fd5b506103776105d736600461169c565b610c34565b3480156105e857600080fd5b50601454610453906001600160a01b031681565b60606001805461060b906118c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610637906118c8565b80156106845780601f1061065957610100808354040283529160200191610684565b820191906000526020600020905b81548152906001019060200180831161066757829003601f168201915b5050505050905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146107a8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610783918490610d1e565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6107b3848484610d58565b90505b9392505050565b60006107e96107cc60006108d4565b6107e36107da61dead6108d4565b60035490610fa0565b90610fa0565b905090565b60006106f560065461080b60035485610fe290919063ffffffff16565b90611064565b60006106f560035461080b60065485610fe290919063ffffffff16565b6000546001600160a01b031633146108615760405162461bcd60e51b815260040161085890611902565b60405180910390fd5b600161086d8282611986565b5050565b60006106f58260001961068e565b6000546001600160a01b031633146108a95760405162461bcd60e51b815260040161085890611902565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600560205260408120546106f5906107ee565b6000546001600160a01b031633146109205760405162461bcd60e51b815260040161085890611902565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109945760405162461bcd60e51b815260040161085890611902565b600354600455565b6000546001600160a01b031633146109c65760405162461bcd60e51b815260040161085890611902565b6015805460ff60a01b1916600160a01b94151594909402939093179092556016556017805460ff1916911515919091179055565b60606002805461060b906118c8565b6000546001600160a01b03163314610a335760405162461bcd60e51b815260040161085890611902565b600261086d8282611986565b6000546001600160a01b03163314610a695760405162461bcd60e51b815260040161085890611902565b601380546001600160a01b039384166001600160a01b03199182161790915560128054929093169116179055565b60006107b6338484610d58565b6012546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610af6576040519150601f19603f3d011682016040523d82523d6000602084013e610afb565b606091505b5050905080610b0957600080fd5b50565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260040161085890611902565b6009879055600b869055600c859055600d849055600e839055600f82905560108190556011548411801590610b6f5750601154600f5411155b8015610b7f575060115460105411155b610be05760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610858565b50505050505050565b6015546000906001600160a01b0390811690841603610c0b5750600e546106f5565b6015546001600160a01b0390811690831603610c2a5750600f546106f5565b5060105492915050565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161085890611902565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610858565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610d425760405162461bcd60e51b81526004016108589190611608565b506000610d4f8486611a5c565b95945050505050565b601754600090610100900460ff1615610d7d57610d768484846110a6565b90506107b6565b6015546001600160a01b03848116911614801590610da657506001600160a01b03831661dead14155b8015610dcb57506001600160a01b03831660009081526008602052604090205460ff16155b8015610df057506001600160a01b03841660009081526008602052604090205460ff16155b15610e505760045482610e02856108d4565b610e0c9190611a6f565b1115610e505760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610858565b610e586111b0565b15610e6657610e6682611205565b6000610e7183610811565b9050610ed98160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d1e9092919063ffffffff16565b6001600160a01b038616600090815260056020526040812091909155610eff8686611409565b610f095781610f14565b610f1486868461144f565b6001600160a01b038616600090815260056020526040902054909150610f3a908261157b565b6001600160a01b0380871660008181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f83846107ee565b60405190815260200160405180910390a350600195945050505050565b60006107b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1e565b600082600003610ff4575060006106f5565b60006110008385611a82565b90508261100d8583611a99565b146107b65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610858565b60006107b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115da565b6000806110b283610811565b905061111a8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d1e9092919063ffffffff16565b6001600160a01b038087166000908152600560205260408082209390935590861681522054611149908261157b565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119d9087815260200190565b60405180910390a3506001949350505050565b6015546000906001600160a01b031633148015906111d65750601754610100900460ff16155b80156111eb5750601554600160a01b900460ff165b80156107e957506016546111fe306108d4565b1015905090565b6017805461ff00198116610100179091556016549060ff16801561122a575060165482105b156112595760165461123d836002610fe2565b116112525761124d826002610fe2565b611256565b6016545b90505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061128e5761128e611abb565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106112d6576112d6611abb565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061131c908590600090869030904290600401611ad1565b600060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b5050601354604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d80600081146113a2576040519150601f19603f3d011682016040523d82523d6000602084013e6113a7565b606091505b50509050806113f85760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610858565b50506017805461ff00191690555050565b6001600160a01b03821660009081526008602052604081205460ff161580156107b65750506001600160a01b031660009081526008602052604090205460ff1615919050565b60008061146c60115461080b6114658888610be9565b8690610fe2565b9050600080600d5411156114e557611495600d5461080b600c5485610fe290919063ffffffff16565b6006549091506114a59082610fa0565b60068190556040805183815260208101929092527fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac910160405180910390a15b60006114f18383610fa0565b3060009081526005602052604090205490915061150e908261157b565b306000818152600560205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611555846107ee565b60405190815260200160405180910390a36115708584610fa0565b979650505050505050565b6000806115888385611a6f565b9050838110156107b65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610858565b600081836115fb5760405162461bcd60e51b81526004016108589190611608565b506000610d4f8486611a99565b600060208083528351808285015260005b8181101561163557858101830151858201604001528201611619565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461166d57600080fd5b919050565b6000806040838503121561168557600080fd5b61168e83611656565b946020939093013593505050565b6000602082840312156116ae57600080fd5b6107b682611656565b6000806000606084860312156116cc57600080fd5b6116d584611656565b92506116e360208501611656565b9150604084013590509250925092565b60006020828403121561170557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561173457600080fd5b813567ffffffffffffffff8082111561174c57600080fd5b818401915084601f83011261176057600080fd5b8135818111156117725761177261170c565b604051601f8201601f19908116603f0116810190838211818310171561179a5761179a61170c565b816040528281528760208487010111156117b357600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035801515811461166d57600080fd5b600080604083850312156117f657600080fd5b6117ff83611656565b915061180d602084016117d3565b90509250929050565b60008060006060848603121561182b57600080fd5b611834846117d3565b925060208401359150611849604085016117d3565b90509250925092565b6000806040838503121561186557600080fd5b61186e83611656565b915061180d60208401611656565b600080600080600080600060e0888a03121561189757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600181811c908216806118dc57607f821691505b6020821081036118fc57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561198157600081815260208120601f850160051c8101602086101561195e5750805b601f850160051c820191505b8181101561197d5782815560010161196a565b5050505b505050565b815167ffffffffffffffff8111156119a0576119a061170c565b6119b4816119ae84546118c8565b84611937565b602080601f8311600181146119e957600084156119d15750858301515b600019600386901b1c1916600185901b17855561197d565b600085815260208120601f198616915b82811015611a18578886015182559484019460019091019084016119f9565b5085821015611a365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b818103818111156106f5576106f5611a46565b808201808211156106f5576106f5611a46565b80820281158282048414176106f5576106f5611a46565b600082611ab657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b215784516001600160a01b031683529383019391830191600101611afc565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207be97fe078557735a05d0dde51a432ab9b70c17c342204e06b6229feafe8d12664736f6c63430008130033

Deployed Bytecode Sourcemap

6969:9708:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8423:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8423:59:0;;;;;;;;9354:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9967:216::-;;;;;;;;;;-1:-1:-1;9967:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;9967:216:0;1186:187:1;7740:43:0;;;;;;;;;;-1:-1:-1;7740:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;7790:46;;;;;;;;;;;;;;;;9183:88;;;;;;;;;;-1:-1:-1;9256:12:0;;9183:88;;10485:370;;;;;;;;;;-1:-1:-1;10485:370:0;;;;;:::i;:::-;;:::i;16457:142::-;;;;;;;;;;;;;:::i;11964:155::-;;;;;;;;;;-1:-1:-1;11964:155:0;;;;;:::i;:::-;;:::i;9277:71::-;;;;;;;;;;-1:-1:-1;9277:71:0;;7470:1;2229:36:1;;2217:2;2202:18;9277:71:0;2087:184:1;11810:146:0;;;;;;;;;;-1:-1:-1;11810:146:0;;;;;:::i;:::-;;:::i;9431:82::-;;;;;;;;;;-1:-1:-1;9431:82:0;;;;;:::i;:::-;;:::i;:::-;;10191:122;;;;;;;;;;-1:-1:-1;10191:122:0;;;;;:::i;:::-;;:::i;16097:119::-;;;;;;;;;;-1:-1:-1;16097:119:0;;;;;:::i;:::-;;:::i;9696:124::-;;;;;;;;;;-1:-1:-1;9696:124:0;;;;;:::i;:::-;;:::i;6415:148::-;;;;;;;;;;;;;:::i;15995:90::-;;;;;;;;;;;;;:::i;7541:61::-;;;;;;;;;;;;;;;;15261:212;;;;;;;;;;-1:-1:-1;15261:212:0;;;;;:::i;:::-;;:::i;5774:79::-;;;;;;;;;;-1:-1:-1;5812:7:0;5839:6;-1:-1:-1;;;;;5839:6:0;5774:79;;;-1:-1:-1;;;;;4244:32:1;;;4226:51;;4214:2;4199:18;5774:79:0;4080:203:1;9615:75:0;;;;;;;;;;;;;:::i;9519:90::-;;;;;;;;;;-1:-1:-1;9519:90:0;;;;;:::i;:::-;;:::i;16224:225::-;;;;;;;;;;-1:-1:-1;16224:225:0;;;;;:::i;:::-;;:::i;8357:19::-;;;;;;;;;;-1:-1:-1;8357:19:0;;;;-1:-1:-1;;;;;8357:19:0;;;10321:156;;;;;;;;;;-1:-1:-1;10321:156:0;;;;;:::i;:::-;;:::i;8385:31::-;;;;;;;;;;-1:-1:-1;8385:31:0;;;;-1:-1:-1;;;8385:31:0;;;;;;13873:178;;;;;;;;;;;;;:::i;15481:506::-;;;;;;;;;;-1:-1:-1;15481:506:0;;;;;:::i;:::-;;:::i;12709:228::-;;;;;;;;;;-1:-1:-1;12709:228:0;;;;;:::i;:::-;;:::i;9826:133::-;;;;;;;;;;-1:-1:-1;9826:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9928:19:0;;;9910:7;9928:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9826:133;6718:244;;;;;;;;;;-1:-1:-1;6718:244:0;;;;;:::i;:::-;;:::i;8326:24::-;;;;;;;;;;-1:-1:-1;8326:24:0;;;;-1:-1:-1;;;;;8326:24:0;;;9354:71;9393:13;9417:5;9410:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9354:71;:::o;9967:216::-;10071:10;10042:4;10059:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10059:32:0;;;;;;;;;;:41;;;10116:37;10042:4;;10059:32;;10116:37;;;;10094:6;160:25:1;;148:2;133:18;;14:177;10116:37:0;;;;;;;;-1:-1:-1;10171:4:0;9967:216;;;;;:::o;10485:370::-;-1:-1:-1;;;;;10605:19:0;;10585:4;10605:19;;;:11;:19;;;;;;;;10625:10;10605:31;;;;;;;;-1:-1:-1;;10605:52:0;10602:186;;10707:69;;;;;;;;;;;-1:-1:-1;;;10707:69:0;;;;;;;;-1:-1:-1;;;;;10707:19:0;;-1:-1:-1;10707:19:0;;;:11;:19;;;;;10727:10;10707:31;;;;;;;;;;:69;;10743:6;;10707:35;:69::i;:::-;-1:-1:-1;;;;;10673:19:0;;;;;;:11;:19;;;;;;;;10693:10;10673:31;;;;;;;:103;10602:186;10807:40;10821:6;10829:9;10840:6;10807:13;:40::i;:::-;10800:47;;10485:370;;;;;;:::o;16457:142::-;16510:7;16537:54;16575:15;7325:42;16575:9;:15::i;:::-;16537:33;16554:15;7243:42;16554:9;:15::i;:::-;16537:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;16530:61;;16457:142;:::o;11964:155::-;12034:7;12061:50;12094:16;;12061:28;12076:12;;12061:10;:14;;:28;;;;:::i;:::-;:32;;:50::i;11810:146::-;11875:7;11902:46;11935:12;;11902:28;11913:16;;11902:6;:10;;:28;;;;:::i;9431:82::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;;;;;;;;;9495:5:::1;:15;9503:7:::0;9495:5;:15:::1;:::i;:::-;;9431:82:::0;:::o;10191:122::-;10246:4;10270:35;10278:7;-1:-1:-1;;10270:7:0;:35::i;16097:119::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16180:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16180:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16097:119::o;9696:124::-;-1:-1:-1;;;;;9800:16:0;;9762:7;9800:16;;;:7;:16;;;;;;9780:37;;:19;:37::i;6415:148::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;6522:1:::1;6506:6:::0;;6485:40:::1;::::0;-1:-1:-1;;;;;6506:6:0;;::::1;::::0;6485:40:::1;::::0;6522:1;;6485:40:::1;6553:1;6536:19:::0;;-1:-1:-1;;;;;;6536:19:0::1;::::0;;6415:148::o;15995:90::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;16065:12:::1;::::0;16047:15:::1;:30:::0;15995:90::o;15261:212::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;15371:12:::1;:23:::0;;-1:-1:-1;;;;15371:23:0::1;-1:-1:-1::0;;;15371:23:0;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;15405:13:::1;:23:::0;15439:11:::1;:26:::0;;-1:-1:-1;;15439:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15261:212::o;9615:75::-;9656:13;9680:7;9673:14;;;;;:::i;9519:90::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;9587:7:::1;:19;9597:9:::0;9587:7;:19:::1;:::i;16224:225::-:0;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;16341:20:::1;:44:::0;;-1:-1:-1;;;;;16341:44:0;;::::1;-1:-1:-1::0;;;;;;16341:44:0;;::::1;;::::0;;;16396:21:::1;:45:::0;;;;;::::1;::::0;::::1;;::::0;;16224:225::o;10321:156::-;10401:4;10425:44;10439:10;10451:9;10462:6;10425:13;:44::i;13873:178::-;13943:21;;13935:81;;13918:12;;-1:-1:-1;;;;;13943:21:0;;14006:5;;13978:21;;13918:12;13935:81;13918:12;13935:81;13978:21;13943;14006:5;13935:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13917:99;;;14035:7;14027:16;;;;;;13906:145;13873:178::o;15481:506::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;15669:12:::1;:25:::0;;;15696:12:::1;:25:::0;;;15723:13:::1;:27:::0;;;15752:8:::1;:17:::0;;;15771:6:::1;:13:::0;;;15786:7:::1;:15:::0;;;15803:11:::1;:20:::0;;;15854:14:::1;::::0;15842:26;::::1;::::0;::::1;::::0;:55:::1;;;15883:14;;15872:7;;:25;;15842:55;:88;;;;;15916:14;;15901:11;;:29;;15842:88;15834:145;;;::::0;-1:-1:-1;;;15834:145:0;;8738:2:1;15834:145:0::1;::::0;::::1;8720:21:1::0;8777:2;8757:18;;;8750:30;8816:34;8796:18;;;8789:62;-1:-1:-1;;;8867:18:1;;;8860:42;8919:19;;15834:145:0::1;8536:408:1::0;15834:145:0::1;15481:506:::0;;;;;;;:::o;12709:228::-;12823:4;;12786:7;;-1:-1:-1;;;;;12823:4:0;;;12811:16;;;;12807:40;;-1:-1:-1;12838:6:0;;12831:13;;12807:40;12875:4;;-1:-1:-1;;;;;12875:4:0;;;12862:17;;;;12858:42;;-1:-1:-1;12890:7:0;;12883:14;;12858:42;-1:-1:-1;12918:11:0;;12709:228;;;;:::o;6718:244::-;5986:6;;-1:-1:-1;;;;;5986:6:0;4205:10;5986:22;5978:67;;;;-1:-1:-1;;;5978:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6807:22:0;::::1;6799:73;;;::::0;-1:-1:-1;;;6799:73:0;;9151:2:1;6799:73:0::1;::::0;::::1;9133:21:1::0;9190:2;9170:18;;;9163:30;9229:34;9209:18;;;9202:62;-1:-1:-1;;;9280:18:1;;;9273:36;9326:19;;6799:73:0::1;8949:402:1::0;6799:73:0::1;6909:6;::::0;;6888:38:::1;::::0;-1:-1:-1;;;;;6888:38:0;;::::1;::::0;6909:6;::::1;::::0;6888:38:::1;::::0;::::1;6937:6;:17:::0;;-1:-1:-1;;;;;;6937:17:0::1;-1:-1:-1::0;;;;;6937:17:0;;;::::1;::::0;;;::::1;::::0;;6718:244::o;3140:192::-;3226:7;3262:12;3254:6;;;;3246:29;;;;-1:-1:-1;;;3246:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3286:9:0;3298:5;3302:1;3298;:5;:::i;:::-;3286:17;3140:192;-1:-1:-1;;;;;3140:192:0:o;10863:939::-;10975:6;;10955:4;;10975:6;;;;;10972:63;;;10991:41;11006:6;11014:9;11025:6;10991:14;:41::i;:::-;10984:48;;;;10972:63;11064:4;;-1:-1:-1;;;;;11051:17:0;;;11064:4;;11051:17;;;;:38;;-1:-1:-1;;;;;;11072:17:0;;7243:42;11072:17;;11051:38;:65;;;;-1:-1:-1;;;;;;11094:22:0;;;;;;:11;:22;;;;;;;;11093:23;11051:65;:89;;;;-1:-1:-1;;;;;;11121:19:0;;;;;;:11;:19;;;;;;;;11120:20;11051:89;11047:202;;;11198:15;;11188:6;11165:20;11175:9;11165;:20::i;:::-;:29;;;;:::i;:::-;:48;;11157:80;;;;-1:-1:-1;;;11157:80:0;;9953:2:1;11157:80:0;;;9935:21:1;9992:2;9972:18;;;9965:30;-1:-1:-1;;;10011:18:1;;;10004:49;10070:18;;11157:80:0;9751:343:1;11157:80:0;11264:16;:14;:16::i;:::-;11261:41;;;11283:16;11292:6;11283:8;:16::i;:::-;11314:24;11341:26;11360:6;11341:18;:26::i;:::-;11314:53;;11398:61;11418:16;11398:61;;;;;;;;;;;;;-1:-1:-1;;;11398:61:0;;;:7;:15;11406:6;-1:-1:-1;;;;;11398:15:0;-1:-1:-1;;;;;11398:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;11380:15:0;;;;;;:7;:15;;;;;:79;;;;11501:32;11388:6;11523:9;11501:13;:32::i;:::-;:111;;11596:16;11501:111;;;11536:57;11557:6;11565:9;11576:16;11536:20;:57::i;:::-;-1:-1:-1;;;;;11644:18:0;;;;;;:7;:18;;;;;;11472:140;;-1:-1:-1;11644:42:0;;11472:140;11644:22;:42::i;:::-;-1:-1:-1;;;;;11623:18:0;;;;;;;:7;:18;;;;;:63;;;;11704:68;;;11732:39;11752:18;11732:19;:39::i;:::-;11704:68;;160:25:1;;;148:2;133:18;11704:68:0;;;;;;;-1:-1:-1;11790:4:0;;10863:939;-1:-1:-1;;;;;10863:939:0:o;2998:136::-;3056:7;3083:43;3087:1;3090;3083:43;;;;;;;;;;;;;;;;;:3;:43::i;3338:250::-;3396:7;3420:1;3425;3420:6;3416:47;;-1:-1:-1;3450:1:0;3443:8;;3416:47;3475:9;3487:5;3491:1;3487;:5;:::i;:::-;3475:17;-1:-1:-1;3520:1:0;3511:5;3515:1;3475:17;3511:5;:::i;:::-;:10;3503:56;;;;-1:-1:-1;;;3503:56:0;;10696:2:1;3503:56:0;;;10678:21:1;10735:2;10715:18;;;10708:30;10774:34;10754:18;;;10747:62;-1:-1:-1;;;10825:18:1;;;10818:31;10866:19;;3503:56:0;10494:397:1;3594:132:0;3652:7;3679:39;3683:1;3686;3679:39;;;;;;;;;;;;;;;;;:3;:39::i;12127:406::-;12220:4;12237:24;12264:26;12283:6;12264:18;:26::i;:::-;12237:53;;12319:61;12339:16;12319:61;;;;;;;;;;;;;-1:-1:-1;;;12319:61:0;;;:7;:15;12327:6;-1:-1:-1;;;;;12319:15:0;-1:-1:-1;;;;;12319:15:0;;;;;;;;;;;;;:19;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;12301:15:0;;;;;;;:7;:15;;;;;;:79;;;;12412:18;;;;;;;:40;;12435:16;12412:22;:40::i;:::-;-1:-1:-1;;;;;12391:18:0;;;;;;;:7;:18;;;;;;;:61;;;;12468:35;;;;;;;;;;12496:6;160:25:1;;148:2;133:18;;14:177;12468:35:0;;;;;;;;-1:-1:-1;12521:4:0;;12127:406;-1:-1:-1;;;;12127:406:0:o;14059:198::-;14146:4;;14108;;-1:-1:-1;;;;;14146:4:0;14132:10;:18;;;;:38;;-1:-1:-1;14164:6:0;;;;;;;14163:7;14132:38;:63;;;;-1:-1:-1;14183:12:0;;-1:-1:-1;;;14183:12:0;;;;14132:63;:117;;;;;14236:13;;14208:24;14226:4;14208:9;:24::i;:::-;:41;;14125:124;;14059:198;:::o;14265:988::-;8561:6;:13;;-1:-1:-1;;8561:13:0;;;;;;;14424::::1;::::0;;8561;14452:11;:47;::::1;;;;14486:13;;14467:16;:32;14452:47;14448:176;;;14557:13;::::0;14531:23:::1;:16:::0;14552:1:::1;14531:20;:23::i;:::-;:39;:81;;14589:23;:16:::0;14610:1:::1;14589:20;:23::i;:::-;14531:81;;;14573:13;;14531:81;14516:96;;14448:176;14660:16;::::0;;14674:1:::1;14660:16:::0;;;;;::::1;::::0;;14636:21:::1;::::0;14660:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14660:16:0::1;14636:40;;14705:4;14687;14692:1;14687:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14687:23:0::1;;;-1:-1:-1::0;;;;;14687:23:0::1;;;::::0;::::1;7161:42;14721:4;14726:1;14721:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14721:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14809:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14809:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14881:12;;14809:6:::1;::::0;14924:4;;14951::::1;::::0;14971:15:::1;::::0;14809:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15112:20:0::1;::::0;15104:80:::1;::::0;15087:12:::1;::::0;-1:-1:-1;;;;;;15112:20:0;;::::1;::::0;-1:-1:-1;15174:5:0::1;::::0;15146:21:::1;::::0;15087:12;15104:80;15087:12;15104:80;15146:21;15112:20;15174:5;15104:80:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15086:98;;;15203:7;15195:50;;;::::0;-1:-1:-1;;;15195:50:0;;12215:2:1;15195:50:0::1;::::0;::::1;12197:21:1::0;12254:2;12234:18;;;12227:30;12293:32;12273:18;;;12266:60;12343:18;;15195:50:0::1;12013:354:1::0;15195:50:0::1;-1:-1:-1::0;;8579:6:0;:14;;-1:-1:-1;;8579:14:0;;;-1:-1:-1;;14265:988:0:o;12541:160::-;-1:-1:-1;;;;;12647:19:0;;12622:4;12647:19;;;:11;:19;;;;;;;;12646:20;:47;;;;-1:-1:-1;;;;;;;12671:22:0;;;;;:11;:22;;;;;;;;12670:23;;12541:160;-1:-1:-1;12541:160:0:o;12945:920::-;13054:7;13074:27;13104:71;13160:14;;13104:51;13125:29;13137:6;13144:9;13125:11;:29::i;:::-;13104:16;;:20;:51::i;:71::-;13074:101;;13186:27;13265:1;13254:8;;:12;13250:260;;;13305:52;13348:8;;13305:38;13329:13;;13305:19;:23;;:38;;;;:::i;:52::-;13391:16;;13283:74;;-1:-1:-1;13391:41:0;;13283:74;13391:20;:41::i;:::-;13372:16;:60;;;13452:46;;;12546:25:1;;;12602:2;12587:18;;12580:34;;;;13452:46:0;;12519:18:1;13452:46:0;;;;;;;13250:260;13544:29;13576:44;:19;13600;13576:23;:44::i;:::-;13672:4;13656:22;;;;:7;:22;;;;;;13544:76;;-1:-1:-1;13656:49:0;;13544:76;13656:26;:49::i;:::-;13647:4;13631:22;;;;:7;:22;;;;;:74;;;;-1:-1:-1;;;;;13723:75:0;;;13755:42;13775:21;13755:19;:42::i;:::-;13723:75;;160:25:1;;;148:2;133:18;13723:75:0;;;;;;;13816:41;:16;13837:19;13816:20;:41::i;:::-;13809:48;12945:920;-1:-1:-1;;;;;;;12945:920:0:o;2811:181::-;2869:7;;2901:5;2905:1;2901;:5;:::i;:::-;2889:17;;2930:1;2925;:6;;2917:46;;;;-1:-1:-1;;;2917:46:0;;12827:2:1;2917:46:0;;;12809:21:1;12866:2;12846:18;;;12839:30;12905:29;12885:18;;;12878:57;12952:18;;2917:46:0;12625:351:1;3732:345:0;3818:7;3920:12;3913:5;3905:28;;;;-1:-1:-1;;;3905:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3944:9:0;3956:5;3960:1;3956;: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:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;1902:180::-;1961:6;2014:2;2002:9;1993:7;1989:23;1985:32;1982:52;;;2030:1;2027;2020:12;1982:52;-1:-1:-1;2053:23:1;;1902:180;-1:-1:-1;1902:180:1:o;2276:127::-;2337:10;2332:3;2328:20;2325:1;2318:31;2368:4;2365:1;2358:15;2392:4;2389:1;2382:15;2408:922;2477:6;2530:2;2518:9;2509:7;2505:23;2501:32;2498:52;;;2546:1;2543;2536:12;2498:52;2586:9;2573:23;2615:18;2656:2;2648:6;2645:14;2642:34;;;2672:1;2669;2662:12;2642:34;2710:6;2699:9;2695:22;2685:32;;2755:7;2748:4;2744:2;2740:13;2736:27;2726:55;;2777:1;2774;2767:12;2726:55;2813:2;2800:16;2835:2;2831;2828:10;2825:36;;;2841:18;;:::i;:::-;2916:2;2910:9;2884:2;2970:13;;-1:-1:-1;;2966:22:1;;;2990:2;2962:31;2958:40;2946:53;;;3014:18;;;3034:22;;;3011:46;3008:72;;;3060:18;;:::i;:::-;3100:10;3096:2;3089:22;3135:2;3127:6;3120:18;3175:7;3170:2;3165;3161;3157:11;3153:20;3150:33;3147:53;;;3196:1;3193;3186:12;3147:53;3252:2;3247;3243;3239:11;3234:2;3226:6;3222:15;3209:46;3297:1;3275:15;;;3292:2;3271:24;3264:35;;;;-1:-1:-1;3279:6:1;2408:922;-1:-1:-1;;;;;2408:922:1:o;3335:160::-;3400:20;;3456:13;;3449:21;3439:32;;3429:60;;3485:1;3482;3475:12;3500:254;3565:6;3573;3626:2;3614:9;3605:7;3601:23;3597:32;3594:52;;;3642:1;3639;3632:12;3594:52;3665:29;3684:9;3665:29;:::i;:::-;3655:39;;3713:35;3744:2;3733:9;3729:18;3713:35;:::i;:::-;3703:45;;3500:254;;;;;:::o;3759:316::-;3830:6;3838;3846;3899:2;3887:9;3878:7;3874:23;3870:32;3867:52;;;3915:1;3912;3905:12;3867:52;3938:26;3954:9;3938:26;:::i;:::-;3928:36;;4011:2;4000:9;3996:18;3983:32;3973:42;;4034:35;4065:2;4054:9;4050:18;4034:35;:::i;:::-;4024:45;;3759:316;;;;;:::o;4288:260::-;4356:6;4364;4417:2;4405:9;4396:7;4392:23;4388:32;4385:52;;;4433:1;4430;4423:12;4385:52;4456:29;4475:9;4456:29;:::i;:::-;4446:39;;4504:38;4538:2;4527:9;4523:18;4504:38;:::i;4553:592::-;4666:6;4674;4682;4690;4698;4706;4714;4767:3;4755:9;4746:7;4742:23;4738:33;4735:53;;;4784:1;4781;4774:12;4735:53;-1:-1:-1;;4807:23:1;;;4877:2;4862:18;;4849:32;;-1:-1:-1;4928:2:1;4913:18;;4900:32;;4979:2;4964:18;;4951:32;;-1:-1:-1;5030:3:1;5015:19;;5002:33;;-1:-1:-1;5082:3:1;5067:19;;5054:33;;-1:-1:-1;5134:3:1;5119:19;5106:33;;-1:-1:-1;4553:592:1;-1:-1:-1;4553:592:1:o;5376:380::-;5455:1;5451:12;;;;5498;;;5519:61;;5573:4;5565:6;5561:17;5551:27;;5519:61;5626:2;5618:6;5615:14;5595:18;5592:38;5589:161;;5672:10;5667:3;5663:20;5660:1;5653:31;5707:4;5704:1;5697:15;5735:4;5732:1;5725:15;5589:161;;5376:380;;;:::o;5761:356::-;5963:2;5945:21;;;5982:18;;;5975:30;6041:34;6036:2;6021:18;;6014:62;6108:2;6093:18;;5761:356::o;6248:545::-;6350:2;6345:3;6342:11;6339:448;;;6386:1;6411:5;6407:2;6400:17;6456:4;6452:2;6442:19;6526:2;6514:10;6510:19;6507:1;6503:27;6497:4;6493:38;6562:4;6550:10;6547:20;6544:47;;;-1:-1:-1;6585:4:1;6544:47;6640:2;6635:3;6631:12;6628:1;6624:20;6618:4;6614:31;6604:41;;6695:82;6713:2;6706:5;6703:13;6695:82;;;6758:17;;;6739:1;6728:13;6695:82;;;6699:3;;;6339:448;6248:545;;;:::o;6969:1352::-;7095:3;7089:10;7122:18;7114:6;7111:30;7108:56;;;7144:18;;:::i;:::-;7173:97;7263:6;7223:38;7255:4;7249:11;7223:38;:::i;:::-;7217:4;7173:97;:::i;:::-;7325:4;;7389:2;7378:14;;7406:1;7401:663;;;;8108:1;8125:6;8122:89;;;-1:-1:-1;8177:19:1;;;8171:26;8122:89;-1:-1:-1;;6926:1:1;6922:11;;;6918:24;6914:29;6904:40;6950:1;6946:11;;;6901:57;8224:81;;7371:944;;7401:663;6195:1;6188:14;;;6232:4;6219:18;;-1:-1:-1;;7437:20:1;;;7555:236;7569:7;7566:1;7563:14;7555:236;;;7658:19;;;7652:26;7637:42;;7750:27;;;;7718:1;7706:14;;;;7585:19;;7555:236;;;7559:3;7819:6;7810:7;7807:19;7804:201;;;7880:19;;;7874:26;-1:-1:-1;;7963:1:1;7959:14;;;7975:3;7955:24;7951:37;7947:42;7932:58;7917:74;;7804:201;-1:-1:-1;;;;;8051:1:1;8035:14;;;8031:22;8018:36;;-1:-1:-1;6969:1352:1:o;9356:127::-;9417:10;9412:3;9408:20;9405:1;9398:31;9448:4;9445:1;9438:15;9472:4;9469:1;9462:15;9488:128;9555:9;;;9576:11;;;9573:37;;;9590:18;;:::i;9621:125::-;9686:9;;;9707:10;;;9704:36;;;9720:18;;:::i;10099:168::-;10172:9;;;10203;;10220:15;;;10214:22;;10200:37;10190:71;;10241:18;;:::i;10272:217::-;10312:1;10338;10328:132;;10382:10;10377:3;10373:20;10370:1;10363:31;10417:4;10414:1;10407:15;10445:4;10442:1;10435:15;10328:132;-1:-1:-1;10474:9:1;;10272:217::o;10896:127::-;10957:10;10952:3;10948:20;10945:1;10938:31;10988:4;10985:1;10978:15;11012:4;11009:1;11002:15;11028:980;11290:4;11338:3;11327:9;11323:19;11369:6;11358:9;11351:25;11395:2;11433:6;11428:2;11417:9;11413:18;11406:34;11476:3;11471:2;11460:9;11456:18;11449:31;11500:6;11535;11529:13;11566:6;11558;11551:22;11604:3;11593:9;11589:19;11582:26;;11643:2;11635:6;11631:15;11617:29;;11664:1;11674:195;11688:6;11685:1;11682:13;11674:195;;;11753:13;;-1:-1:-1;;;;;11749:39:1;11737:52;;11844:15;;;;11809:12;;;;11785:1;11703:9;11674:195;;;-1:-1:-1;;;;;;;11925:32:1;;;;11920:2;11905:18;;11898:60;-1:-1:-1;;;11989:3:1;11974:19;11967:35;11886:3;11028:980;-1:-1:-1;;;11028:980:1:o

Swarm Source

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