ETH Price: $3,467.58 (+0.28%)
Gas: 13 Gwei

Token

YUGE (YUGE)
 

Overview

Max Total Supply

1,000,000,000,000 YUGE

Holders

714 ( 3.094%)

Market

Price

$0.00 @ 0.000000 ETH (+170.20%)

Onchain Market Cap

$247,035.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000095 YUGE

Value
$0.00 ( ~0 Eth) [0.0000%]
0xc2078086eb1c26426f3a400f854f3b36ce8e7f6e
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

YUGE is a cryptocurrency token riding the Ethereum blockchain, echoing the infamous catchphrase of Donald Trump.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YUGE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-25
*/

/**
This will be $YUGE!

https://yuge.fun/
https://t.me/YugeOnEth
https://x.com/YugeOnEth

*/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    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 YUGE is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'YUGE';
    string private constant _symbol = 'YUGE';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 2000;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 4000;
    uint256 private transferFee = 4000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x7b0aB94d8c00aF2Bf89F02d2A4C49C430E0B1Aa6; 
    address internal marketing_receiver = 0x7b0aB94d8c00aF2Bf89F02d2A4C49C430E0B1Aa6;
    address internal liquidity_receiver = 0x7b0aB94d8c00aF2Bf89F02d2A4C49C430E0B1Aa6;
    uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 150 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 150 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function OpenTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapFido(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setTransactionRequireFido(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimitFido(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

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

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

Contract 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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapFido","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimitFido","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequireFido","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004d4565b620000239064e8d4a51000620004ec565b60018181556007805461ffff60a01b1916600160a81b179055600a55620186a09062000052906103e8620004ec565b6200005e919062000506565b600b55620186a0600154600a620000769190620004ec565b62000082919062000506565b600c556000600d8190556107d0600e819055600f829055601091909155601155610fa06012819055601355612710601481905560158054737b0ab94d8c00af2bf89f02d2a4c49c430e0b1aa66001600160a01b031991821681179092556016805482168317905560178054909116909117905560015462000105906096620004ec565b62000111919062000506565b6018556127106001546096620001289190620004ec565b62000134919062000506565b60195561271060015460966200014b9190620004ec565b62000157919062000506565b601a553480156200016757600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000529565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000269919062000529565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000529565b600680546001600160a01b038581166001600160a01b031992831617909255600780548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560175486168552828520805482168317905560165486168552828520805482168317905560155490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000554565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000416578160001904821115620003fa57620003fa620003bf565b808516156200040857918102915b93841c9390800290620003da565b509250929050565b6000826200042f57506001620004ce565b816200043e57506000620004ce565b8160018114620004575760028114620004625762000482565b6001915050620004ce565b60ff841115620004765762000476620003bf565b50506001821b620004ce565b5060208310610133831016604e8410600b8410161715620004a7575081810a620004ce565b620004b38383620003d5565b8060001904821115620004ca57620004ca620003bf565b0290505b92915050565b6000620004e560ff8416836200041e565b9392505050565b8082028115828204841417620004ce57620004ce620003bf565b6000826200052457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053c57600080fd5b81516001600160a01b0381168114620004e557600080fd5b611ebe80620005646000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb146104a1578063dd62ed3e146104c1578063de95021814610507578063f2fde38b1461052757600080fd5b806395d89b41146101ac5780639cfac46a14610461578063a8aa1b311461048157600080fd5b80637d1db4a5116100c65780637d1db4a5146103d9578063893d20e8146103ef5780638cd4426d146104215780639213c3581461044157600080fd5b8063715018a61461039857806378109e54146103ad5780637cca52fe146103c357600080fd5b806332bc67aa1161015957806348ff2b8b1161013357806348ff2b8b1461031857806351bc3c851461033857806351cd7cc31461034d57806370a082311461036257600080fd5b806332bc67aa146102a657806339efcf9e146102c85780633f4218e0146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101e857806318160ddd1461021857806323b872dd1461023b5780632f54bf6e1461025b578063313ce5671461028a57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201825260048152635955474560e01b602082015290516101df9190611a07565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611a6d565b610547565b60405190151581526020016101df565b34801561022457600080fd5b5061022d61055e565b6040519081526020016101df565b34801561024757600080fd5b50610208610256366004611a99565b6105cf565b34801561026757600080fd5b50610208610276366004611ada565b6000546001600160a01b0391821691161490565b34801561029657600080fd5b50604051600981526020016101df565b3480156102b257600080fd5b506102c66102c1366004611af7565b610639565b005b3480156102d457600080fd5b506102c66102e3366004611b31565b610783565b3480156102f457600080fd5b50610208610303366004611ada565b60046020526000908152604090205460ff1681565b34801561032457600080fd5b506102c6610333366004611bb7565b610824565b34801561034457600080fd5b506102c6610879565b34801561035957600080fd5b506102c66108b0565b34801561036e57600080fd5b5061022d61037d366004611ada565b6001600160a01b031660009081526002602052604090205490565b3480156103a457600080fd5b506102c66108ef565b3480156103b957600080fd5b5061022d601a5481565b3480156103cf57600080fd5b5061022d60195481565b3480156103e557600080fd5b5061022d60185481565b3480156103fb57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b34801561042d57600080fd5b506102c661043c366004611a6d565b61095e565b34801561044d57600080fd5b506102c661045c366004611bf0565b610a79565b34801561046d57600080fd5b506102c661047c366004611af7565b610b1f565b34801561048d57600080fd5b50600754610409906001600160a01b031681565b3480156104ad57600080fd5b506102086104bc366004611a6d565b610b85565b3480156104cd57600080fd5b5061022d6104dc366004611c30565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561051357600080fd5b506102c6610522366004611c5e565b610b92565b34801561053357600080fd5b506102c6610542366004611ada565b610c89565b6000610554338484610d07565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105ca9290916105c49190610e2b565b90610e2b565b905090565b60006105dc848484610e37565b61062e843361062985604051806060016040528060288152602001611e61602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611384565b610d07565b5060015b9392505050565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161066390611caa565b60405180910390fd5b600061068f612710610689866001546113b090919063ffffffff16565b906113bc565b905060006106ae612710610689866001546113b090919063ffffffff16565b905060006106cd612710610689866001546113b090919063ffffffff16565b60188490556019839055601a819055905060006106f96103e861068960056106f361055e565b906113b0565b905080841015801561070b5750808310155b80156107175750808210155b61077a5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610663565b50505050505050565b6000546001600160a01b031633146107ad5760405162461bcd60e51b815260040161066390611caa565b60005b8281101561081e5781600560008686858181106107cf576107cf611cca565b90506020020160208101906107e49190611ada565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061081681611cf6565b9150506107b0565b50505050565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161066390611caa565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260040161066390611caa565b6108ae600b546113c8565b565b6000546001600160a01b031633146108da5760405162461bcd60e51b815260040161066390611caa565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109195760405162461bcd60e51b815260040161066390611caa565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109885760405162461bcd60e51b815260040161066390611caa565b6040516370a0823160e01b8152306004820152600090610a00906064906106899085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190611d0f565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e9190611d28565b6000546001600160a01b03163314610aa35760405162461bcd60e51b815260040161066390611caa565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610b495760405162461bcd60e51b815260040161066390611caa565b600a839055600154610b6490620186a09061068990856113b0565b600b55600154610b7d90620186a09061068990846113b0565b600c55505050565b6000610554338484610e37565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b815260040161066390611caa565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610bed9060016113bc565b60115411158015610c0d5750601454610c079060016113bc565b60125411155b8015610c285750601454610c229060016113bc565b60135411155b61077a5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610663565b6000546001600160a01b03163314610cb35760405162461bcd60e51b815260040161066390611caa565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610dca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106328284611d45565b6001600160a01b038316610e9b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610663565b6001600160a01b038216610efd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610663565b6001600160a01b038316600090815260026020526040902054811115610f7f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610663565b6001600160a01b03831660009081526004602052604090205460ff16158015610fc157506001600160a01b03821660009081526004602052604090205460ff16155b1561101057600754600160a01b900460ff166110105760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610663565b6001600160a01b03831660009081526004602052604090205460ff1615801561105257506001600160a01b03821660009081526004602052604090205460ff16155b801561106c57506007546001600160a01b03838116911614155b801561108357506001600160a01b03821661dead14155b156110fc57601a546001600160a01b0383166000908152600260205260409020546110ae9083611545565b11156110fc5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610663565b6007546001600160a01b0384811691161461119d576019548111158061113a57506001600160a01b03831660009081526004602052604090205460ff165b8061115d57506001600160a01b03821660009081526004602052604090205460ff165b61119d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610663565b601854811115806111c657506001600160a01b03831660009081526004602052604090205460ff165b806111e957506001600160a01b03821660009081526004602052604090205460ff165b6112295760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610663565b6007546001600160a01b03838116911614801561125f57506001600160a01b03831660009081526004602052604090205460ff16155b1561127d576001600860008282546112779190611d58565b90915550505b611288838383611551565b1561129e57611298600b546113c8565b60006008555b6001600160a01b0383166000908152600260205260409020546112c19082610e2b565b6001600160a01b0384166000908152600260205260408120919091556112e7848461160b565b6112f157816112fc565b6112fc848484611651565b6001600160a01b0384166000908152600260205260409020549091506113229082611545565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113769085815260200190565b60405180910390a350505050565b600081848411156113a85760405162461bcd60e51b81526004016106639190611a07565b505050900390565b60006106328284611d6b565b60006106328284611d82565b6009805460ff19166001908117909155600f54600e54600d54600093611402936002936106f39391926113fc928391611545565b90611545565b9050600061141f82610689600d54866113b090919063ffffffff16565b9050600061142d8483610e2b565b90504761143982611758565b60006114454783610e2b565b90506000611468611461600d5488610e2b90919063ffffffff16565b83906113bc565b90506000611481600d54836113b090919063ffffffff16565b905080156114935761149386826118b2565b600e546000906114a8906106f38560026113b0565b905080156114ec576016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114ea573d6000803e3d6000fd5b505b47801561152f576015546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561152d573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106328284611d58565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561158c5750600754600160a81b900460ff165b80156115a15750600754600160a01b900460ff165b80156115aa5750815b80156115cf57506001600160a01b03861660009081526004602052604090205460ff16155b80156115e857506007546001600160a01b038681169116145b80156115f85750600a5460085410155b80156116015750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106325750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061165e8585611966565b11156117515760006116816116738686611966565b6014546106f39086906113bc565b3060009081526002602052604090205490915061169e9082611545565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ef9085815260200190565b60405180910390a3600060105411801561171357506010546117118686611966565b115b1561173f5761173f3061dead61173a6010546106f3601454896113bc90919063ffffffff16565b610e37565b6117498382610e2b565b915050610632565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061178d5761178d611cca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180a9190611da4565b8160018151811061181d5761181d611cca565b6001600160a01b0392831660209182029290920101526006546118439130911684610d07565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061187c908590600090869030904290600401611dc1565b600060405180830381600087803b15801561189657600080fd5b505af11580156118aa573d6000803e3d6000fd5b505050505050565b6006546118ca9030906001600160a01b031684610d07565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561193a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061195f9190611e32565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff16806119a557506001600160a01b03821660009081526005602052604090205460ff165b156119bf576014546119b8906064610e2b565b9050610558565b6007546001600160a01b03908116908316036119de5750601254610558565b6007546001600160a01b03908116908416036119fd5750601154610558565b5060135492915050565b600060208083528351808285015260005b81811015611a3457858101830151858201604001528201611a18565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a6a57600080fd5b50565b60008060408385031215611a8057600080fd5b8235611a8b81611a55565b946020939093013593505050565b600080600060608486031215611aae57600080fd5b8335611ab981611a55565b92506020840135611ac981611a55565b929592945050506040919091013590565b600060208284031215611aec57600080fd5b813561063281611a55565b600080600060608486031215611b0c57600080fd5b505081359360208301359350604090920135919050565b8015158114611a6a57600080fd5b600080600060408486031215611b4657600080fd5b833567ffffffffffffffff80821115611b5e57600080fd5b818601915086601f830112611b7257600080fd5b813581811115611b8157600080fd5b8760208260051b8501011115611b9657600080fd5b60209283019550935050840135611bac81611b23565b809150509250925092565b60008060408385031215611bca57600080fd5b8235611bd581611a55565b91506020830135611be581611b23565b809150509250929050565b600080600060608486031215611c0557600080fd5b8335611c1081611a55565b92506020840135611c2081611a55565b91506040840135611bac81611a55565b60008060408385031215611c4357600080fd5b8235611c4e81611a55565b91506020830135611be581611a55565b600080600080600080600060e0888a031215611c7957600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d0857611d08611ce0565b5060010190565b600060208284031215611d2157600080fd5b5051919050565b600060208284031215611d3a57600080fd5b815161063281611b23565b8181038181111561055857610558611ce0565b8082018082111561055857610558611ce0565b808202811582820484141761055857610558611ce0565b600082611d9f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611db657600080fd5b815161063281611a55565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e115784516001600160a01b031683529383019391830191600101611dec565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611e4757600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122076b242dd3e085158edc24ba2cbedc0e9ab6adca2c4257abc9d387a8203dd5c5564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb146104a1578063dd62ed3e146104c1578063de95021814610507578063f2fde38b1461052757600080fd5b806395d89b41146101ac5780639cfac46a14610461578063a8aa1b311461048157600080fd5b80637d1db4a5116100c65780637d1db4a5146103d9578063893d20e8146103ef5780638cd4426d146104215780639213c3581461044157600080fd5b8063715018a61461039857806378109e54146103ad5780637cca52fe146103c357600080fd5b806332bc67aa1161015957806348ff2b8b1161013357806348ff2b8b1461031857806351bc3c851461033857806351cd7cc31461034d57806370a082311461036257600080fd5b806332bc67aa146102a657806339efcf9e146102c85780633f4218e0146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101e857806318160ddd1461021857806323b872dd1461023b5780632f54bf6e1461025b578063313ce5671461028a57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201825260048152635955474560e01b602082015290516101df9190611a07565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611a6d565b610547565b60405190151581526020016101df565b34801561022457600080fd5b5061022d61055e565b6040519081526020016101df565b34801561024757600080fd5b50610208610256366004611a99565b6105cf565b34801561026757600080fd5b50610208610276366004611ada565b6000546001600160a01b0391821691161490565b34801561029657600080fd5b50604051600981526020016101df565b3480156102b257600080fd5b506102c66102c1366004611af7565b610639565b005b3480156102d457600080fd5b506102c66102e3366004611b31565b610783565b3480156102f457600080fd5b50610208610303366004611ada565b60046020526000908152604090205460ff1681565b34801561032457600080fd5b506102c6610333366004611bb7565b610824565b34801561034457600080fd5b506102c6610879565b34801561035957600080fd5b506102c66108b0565b34801561036e57600080fd5b5061022d61037d366004611ada565b6001600160a01b031660009081526002602052604090205490565b3480156103a457600080fd5b506102c66108ef565b3480156103b957600080fd5b5061022d601a5481565b3480156103cf57600080fd5b5061022d60195481565b3480156103e557600080fd5b5061022d60185481565b3480156103fb57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b34801561042d57600080fd5b506102c661043c366004611a6d565b61095e565b34801561044d57600080fd5b506102c661045c366004611bf0565b610a79565b34801561046d57600080fd5b506102c661047c366004611af7565b610b1f565b34801561048d57600080fd5b50600754610409906001600160a01b031681565b3480156104ad57600080fd5b506102086104bc366004611a6d565b610b85565b3480156104cd57600080fd5b5061022d6104dc366004611c30565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561051357600080fd5b506102c6610522366004611c5e565b610b92565b34801561053357600080fd5b506102c6610542366004611ada565b610c89565b6000610554338484610d07565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105ca9290916105c49190610e2b565b90610e2b565b905090565b60006105dc848484610e37565b61062e843361062985604051806060016040528060288152602001611e61602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611384565b610d07565b5060015b9392505050565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161066390611caa565b60405180910390fd5b600061068f612710610689866001546113b090919063ffffffff16565b906113bc565b905060006106ae612710610689866001546113b090919063ffffffff16565b905060006106cd612710610689866001546113b090919063ffffffff16565b60188490556019839055601a819055905060006106f96103e861068960056106f361055e565b906113b0565b905080841015801561070b5750808310155b80156107175750808210155b61077a5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610663565b50505050505050565b6000546001600160a01b031633146107ad5760405162461bcd60e51b815260040161066390611caa565b60005b8281101561081e5781600560008686858181106107cf576107cf611cca565b90506020020160208101906107e49190611ada565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061081681611cf6565b9150506107b0565b50505050565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161066390611caa565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260040161066390611caa565b6108ae600b546113c8565b565b6000546001600160a01b031633146108da5760405162461bcd60e51b815260040161066390611caa565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109195760405162461bcd60e51b815260040161066390611caa565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109885760405162461bcd60e51b815260040161066390611caa565b6040516370a0823160e01b8152306004820152600090610a00906064906106899085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190611d0f565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e9190611d28565b6000546001600160a01b03163314610aa35760405162461bcd60e51b815260040161066390611caa565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610b495760405162461bcd60e51b815260040161066390611caa565b600a839055600154610b6490620186a09061068990856113b0565b600b55600154610b7d90620186a09061068990846113b0565b600c55505050565b6000610554338484610e37565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b815260040161066390611caa565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610bed9060016113bc565b60115411158015610c0d5750601454610c079060016113bc565b60125411155b8015610c285750601454610c229060016113bc565b60135411155b61077a5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610663565b6000546001600160a01b03163314610cb35760405162461bcd60e51b815260040161066390611caa565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610dca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106328284611d45565b6001600160a01b038316610e9b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610663565b6001600160a01b038216610efd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610663565b6001600160a01b038316600090815260026020526040902054811115610f7f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610663565b6001600160a01b03831660009081526004602052604090205460ff16158015610fc157506001600160a01b03821660009081526004602052604090205460ff16155b1561101057600754600160a01b900460ff166110105760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610663565b6001600160a01b03831660009081526004602052604090205460ff1615801561105257506001600160a01b03821660009081526004602052604090205460ff16155b801561106c57506007546001600160a01b03838116911614155b801561108357506001600160a01b03821661dead14155b156110fc57601a546001600160a01b0383166000908152600260205260409020546110ae9083611545565b11156110fc5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610663565b6007546001600160a01b0384811691161461119d576019548111158061113a57506001600160a01b03831660009081526004602052604090205460ff165b8061115d57506001600160a01b03821660009081526004602052604090205460ff165b61119d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610663565b601854811115806111c657506001600160a01b03831660009081526004602052604090205460ff165b806111e957506001600160a01b03821660009081526004602052604090205460ff165b6112295760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610663565b6007546001600160a01b03838116911614801561125f57506001600160a01b03831660009081526004602052604090205460ff16155b1561127d576001600860008282546112779190611d58565b90915550505b611288838383611551565b1561129e57611298600b546113c8565b60006008555b6001600160a01b0383166000908152600260205260409020546112c19082610e2b565b6001600160a01b0384166000908152600260205260408120919091556112e7848461160b565b6112f157816112fc565b6112fc848484611651565b6001600160a01b0384166000908152600260205260409020549091506113229082611545565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113769085815260200190565b60405180910390a350505050565b600081848411156113a85760405162461bcd60e51b81526004016106639190611a07565b505050900390565b60006106328284611d6b565b60006106328284611d82565b6009805460ff19166001908117909155600f54600e54600d54600093611402936002936106f39391926113fc928391611545565b90611545565b9050600061141f82610689600d54866113b090919063ffffffff16565b9050600061142d8483610e2b565b90504761143982611758565b60006114454783610e2b565b90506000611468611461600d5488610e2b90919063ffffffff16565b83906113bc565b90506000611481600d54836113b090919063ffffffff16565b905080156114935761149386826118b2565b600e546000906114a8906106f38560026113b0565b905080156114ec576016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114ea573d6000803e3d6000fd5b505b47801561152f576015546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561152d573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106328284611d58565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561158c5750600754600160a81b900460ff165b80156115a15750600754600160a01b900460ff165b80156115aa5750815b80156115cf57506001600160a01b03861660009081526004602052604090205460ff16155b80156115e857506007546001600160a01b038681169116145b80156115f85750600a5460085410155b80156116015750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106325750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061165e8585611966565b11156117515760006116816116738686611966565b6014546106f39086906113bc565b3060009081526002602052604090205490915061169e9082611545565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ef9085815260200190565b60405180910390a3600060105411801561171357506010546117118686611966565b115b1561173f5761173f3061dead61173a6010546106f3601454896113bc90919063ffffffff16565b610e37565b6117498382610e2b565b915050610632565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061178d5761178d611cca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180a9190611da4565b8160018151811061181d5761181d611cca565b6001600160a01b0392831660209182029290920101526006546118439130911684610d07565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061187c908590600090869030904290600401611dc1565b600060405180830381600087803b15801561189657600080fd5b505af11580156118aa573d6000803e3d6000fd5b505050505050565b6006546118ca9030906001600160a01b031684610d07565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561193a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061195f9190611e32565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff16806119a557506001600160a01b03821660009081526005602052604090205460ff165b156119bf576014546119b8906064610e2b565b9050610558565b6007546001600160a01b03908116908316036119de5750601254610558565b6007546001600160a01b03908116908416036119fd5750601154610558565b5060135492915050565b600060208083528351808285015260005b81811015611a3457858101830151858201604001528201611a18565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a6a57600080fd5b50565b60008060408385031215611a8057600080fd5b8235611a8b81611a55565b946020939093013593505050565b600080600060608486031215611aae57600080fd5b8335611ab981611a55565b92506020840135611ac981611a55565b929592945050506040919091013590565b600060208284031215611aec57600080fd5b813561063281611a55565b600080600060608486031215611b0c57600080fd5b505081359360208301359350604090920135919050565b8015158114611a6a57600080fd5b600080600060408486031215611b4657600080fd5b833567ffffffffffffffff80821115611b5e57600080fd5b818601915086601f830112611b7257600080fd5b813581811115611b8157600080fd5b8760208260051b8501011115611b9657600080fd5b60209283019550935050840135611bac81611b23565b809150509250925092565b60008060408385031215611bca57600080fd5b8235611bd581611a55565b91506020830135611be581611b23565b809150509250929050565b600080600060608486031215611c0557600080fd5b8335611c1081611a55565b92506020840135611c2081611a55565b91506040840135611bac81611a55565b60008060408385031215611c4357600080fd5b8235611c4e81611a55565b91506020830135611be581611a55565b600080600080600080600060e0888a031215611c7957600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d0857611d08611ce0565b5060010190565b600060208284031215611d2157600080fd5b5051919050565b600060208284031215611d3a57600080fd5b815161063281611b23565b8181038181111561055857610558611ce0565b8082018082111561055857610558611ce0565b808202811582820484141761055857610558611ce0565b600082611d9f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611db657600080fd5b815161063281611a55565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e115784516001600160a01b031683529383019391830191600101611dec565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611e4757600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122076b242dd3e085158edc24ba2cbedc0e9ab6adca2c4257abc9d387a8203dd5c5564736f6c63430008130033

Deployed Bytecode Sourcemap

4887:11348:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7320:67;;;;;;;;;;-1:-1:-1;7380:5:0;;;;;;;;;;;-1:-1:-1;;;7380:5:0;;;;7320:67;;;;7380:5;7320:67;:::i;:::-;;;;;;;;8200:133;;;;;;;;;;-1:-1:-1;8200:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8200:133:0;1023:187:1;8339:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8339:132:0;1215:177:1;15578:309:0;;;;;;;;;;-1:-1:-1;15578:309:0;;;;;:::i;:::-;;:::i;3679:87::-;;;;;;;;;;-1:-1:-1;3679:87:0;;;;;:::i;:::-;3734:4;3759:5;-1:-1:-1;;;;;3748:16:0;;;3759:5;;3748:16;;3679:87;7470:67;;;;;;;;;;-1:-1:-1;7470:67:0;;5087:1;2252:36:1;;2240:2;2225:18;7470:67:0;2110:184:1;9744:559:0;;;;;;;;;;-1:-1:-1;9744:559:0;;;;;:::i;:::-;;:::i;:::-;;10657:182;;;;;;;;;;-1:-1:-1;10657:182:0;;;;;:::i;:::-;;:::i;5287:44::-;;;;;;;;;;-1:-1:-1;5287:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8086:108;;;;;;;;;;-1:-1:-1;8086:108:0;;;;;:::i;:::-;;:::i;10847:89::-;;;;;;;;;;;;;:::i;7543:66::-;;;;;;;;;;;;;:::i;7699:103::-;;;;;;;;;;-1:-1:-1;7699:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7782:18:0;7765:7;7782:18;;;:9;:18;;;;;;;7699:103;3889:106;;;;;;;;;;;;;:::i;6603:63::-;;;;;;;;;;;;;;;;6534:62;;;;;;;;;;;;;;;;6467:60;;;;;;;;;;;;;;;;7615:78;;;;;;;;;;-1:-1:-1;7667:7:0;7685:5;-1:-1:-1;;;;;7685:5:0;7615:78;;;-1:-1:-1;;;;;4049:32:1;;;4031:51;;4019:2;4004:18;7615:78:0;3885:203:1;10944:242:0;;;;;;;;;;-1:-1:-1;10944:242:0;;;;;:::i;:::-;;:::i;10311:338::-;;;;;;;;;;-1:-1:-1;10311:338:0;;;;;:::i;:::-;;:::i;8890:315::-;;;;;;;;;;-1:-1:-1;8890:315:0;;;;;:::i;:::-;;:::i;5405:19::-;;;;;;;;;;-1:-1:-1;5405:19:0;;;;-1:-1:-1;;;;;5405:19:0;;;7808:139;;;;;;;;;;-1:-1:-1;7808:139:0;;;;;:::i;:::-;;:::i;7953:127::-;;;;;;;;;;-1:-1:-1;7953:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8051:18:0;;;8034:7;8051:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7953:127;9213:523;;;;;;;;;;-1:-1:-1;9213:523:0;;;;;:::i;:::-;;:::i;3772:111::-;;;;;;;;;;-1:-1:-1;3772:111:0;;;;;:::i;:::-;;:::i;8200:133::-;8275:4;8282:37;8291:10;8303:7;8312:6;8282:8;:37::i;:::-;-1:-1:-1;8327:4:0;8200:133;;;;;:::o;8339:132::-;7782:9;:18;;;;6154:42;8392:7;7782:18;;;;;8409:12;;8392:7;;8409:60;;7782:18;;8409:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8402:67;;8339:132;:::o;15578:309::-;15676:4;15693:36;15703:6;15711:9;15722:6;15693:9;:36::i;:::-;15740:117;15749:6;15757:10;15769:87;15805:6;15769:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15769:19:0;;;;;;:11;:19;;;;;;;;15789:10;15769:31;;;;;;;;;:87;:35;:87::i;:::-;15740:8;:117::i;:::-;-1:-1:-1;15875:4:0;15578:309;;;;;;:::o;9744:559::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;;;;;;;;;9853:13:::1;9869:33;9896:5;9869:22;9886:4;9869:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;9853:49;;9904:19;9926:34;9954:5;9926:23;9943:5;9926:12;;:16;;:23;;;;:::i;:34::-;9904:56;;9962:17;9982:36;10012:5;9982:25;9999:7;9982:12;;:16;;:25;;;;:::i;:36::-;10029:12;:20:::0;;;10051:14:::1;:28:::0;;;10081:15:::1;:27:::0;;;9962:56;-1:-1:-1;;10135:30:0::1;10160:4;10135:20;10153:1;10135:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;10119:46;;10193:5;10184;:14;;:38;;;;;10217:5;10202:11;:20;;10184:38;:60;;;;;10239:5;10226:9;:18;;10184:60;10176:119;;;::::0;-1:-1:-1;;;10176:119:0;;6413:2:1;10176:119:0::1;::::0;::::1;6395:21:1::0;6452:2;6432:18;;;6425:30;6491:34;6471:18;;;6464:62;-1:-1:-1;;;6542:18:1;;;6535:44;6596:19;;10176:119:0::1;6211:410:1::0;10176:119:0::1;9842:461;;;;9744:559:::0;;;:::o;10657:182::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;10752:6:::1;10748:84;10762:20:::0;;::::1;10748:84;;;10821:8;10799:5;:19;10805:9;;10815:1;10805:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10799:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10799:19:0;:30;;-1:-1:-1;;10799:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10784:3;::::1;::::0;::::1;:::i;:::-;;;;10748:84;;;;10657:182:::0;;;:::o;8086:108::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8160:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8160:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8086:108::o;10847:89::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;10899:29:::1;10914:13;;10899:14;:29::i;:::-;10847:89::o:0;7543:66::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;7586:14:::1;:21:::0;;-1:-1:-1;;;;7586:21:0::1;-1:-1:-1::0;;;7586:21:0::1;::::0;;7543:66::o;3889:106::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;3952:1:::1;3936:18:::0;;-1:-1:-1;;;;;;3936:18:0::1;::::0;;3961:32:::1;::::0;4031:51:1;;;3961:32:0::1;::::0;4019:2:1;4004:18;3961:32:0::1;;;;;;;3889:106::o:0;10944:242::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;11048:41:::1;::::0;-1:-1:-1;;;11048:41:0;;11083:4:::1;11048:41;::::0;::::1;4031:51:1::0;11030:15:0::1;::::0;11048:63:::1;::::0;11107:3:::1;::::0;11048:54:::1;::::0;11094:7;;-1:-1:-1;;;;;11048:26:0;::::1;::::0;::::1;::::0;4004:18:1;;11048:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:63::-;11148:20;::::0;11122:56:::1;::::0;-1:-1:-1;;;11122:56:0;;-1:-1:-1;;;;;11148:20:0;;::::1;11122:56;::::0;::::1;7393:51:1::0;7460:18;;;7453:34;;;11030:81:0;;-1:-1:-1;11122:25:0;::::1;::::0;::::1;::::0;7366:18:1;;11122:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10311:338::-:0;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;10433:18:::1;:31:::0;;-1:-1:-1;;;;;10433:31:0;;::::1;-1:-1:-1::0;;;;;;10433:31:0;;::::1;::::0;::::1;::::0;;;10466:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10499:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10433:18:::1;10545:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10545:30:0;;::::1;10433:31:::0;10545:30;;::::1;::::0;;;10577:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10609:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10311:338::o;8890:315::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;9019:10:::1;:24:::0;;;9061:12:::1;::::0;:53:::1;::::0;9106:6:::1;::::0;9061:32:::1;::::0;9078:14;9061:16:::1;:32::i;:53::-;9045:13;:69:::0;9143:12:::1;::::0;:54:::1;::::0;9189:6:::1;::::0;9143:33:::1;::::0;9160:15;9143:16:::1;:33::i;:54::-;9126:14;:71:::0;-1:-1:-1;;;8890:315:0:o;7808:139::-;7886:4;7893:40;7903:10;7915:9;7926:6;7893:9;:40::i;9213:523::-;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;9402:12:::1;:25:::0;;;9429:12:::1;:25:::0;;;9456:7:::1;:15:::0;;;9473:14:::1;:29:::0;;;9504:8:::1;:17:::0;;;9523:7:::1;:15:::0;;;9540:11:::1;:20:::0;;;9591:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9591:15:0::1;:18::i;:::-;9579:8;;:30;;:63;;;;-1:-1:-1::0;9624:11:0::1;::::0;:18:::1;::::0;9640:1:::1;9624:15;:18::i;:::-;9613:7;;:29;;9579:63;:100;;;;-1:-1:-1::0;9661:11:0::1;::::0;:18:::1;::::0;9677:1:::1;9661:15;:18::i;:::-;9646:11;;:33;;9579:100;9571:157;;;::::0;-1:-1:-1;;;9571:157:0;;7950:2:1;9571:157:0::1;::::0;::::1;7932:21:1::0;7989:2;7969:18;;;7962:30;8028:34;8008:18;;;8001:62;-1:-1:-1;;;8079:18:1;;;8072:42;8131:19;;9571:157:0::1;7748:408:1::0;3772:111:0;3734:4;3759:5;-1:-1:-1;;;;;3759:5:0;3646:10;3748:16;3630:38;;;;-1:-1:-1;;;3630:38:0;;;;;;;:::i;:::-;3838:5:::1;:11:::0;;-1:-1:-1;;;;;;3838:11:0::1;-1:-1:-1::0;;;;;3838:11:0;::::1;::::0;;::::1;::::0;;;3856:25:::1;::::0;4031:51:1;;;3856:25:0::1;::::0;4019:2:1;4004:18;3856:25:0::1;;;;;;;3772:111:::0;:::o;15895:335::-;-1:-1:-1;;;;;15988:19:0;;15980:68;;;;-1:-1:-1;;;15980:68:0;;8579:2:1;15980:68:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:34;8752:19;;15980:68:0;8377:400:1;15980:68:0;-1:-1:-1;;;;;16067:21:0;;16059:68;;;;-1:-1:-1;;;16059:68:0;;8984:2:1;16059:68:0;;;8966:21:1;9023:2;9003:18;;;8996:30;9062:34;9042:18;;;9035:62;-1:-1:-1;;;9113:18:1;;;9106:32;9155:19;;16059:68:0;8782:398:1;16059:68:0;-1:-1:-1;;;;;16138:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16190:32;;1361:25:1;;;16190:32:0;;1334:18:1;16190:32:0;;;;;;;15895:335;;;:::o;1418:98::-;1476:7;1503:5;1507:1;1503;:5;:::i;14137:1433::-;-1:-1:-1;;;;;14234:20:0;;14226:70;;;;-1:-1:-1;;;14226:70:0;;9520:2:1;14226:70:0;;;9502:21:1;9559:2;9539:18;;;9532:30;9598:34;9578:18;;;9571:62;-1:-1:-1;;;9649:18:1;;;9642:35;9694:19;;14226:70:0;9318:401:1;14226:70:0;-1:-1:-1;;;;;14315:23:0;;14307:71;;;;-1:-1:-1;;;14307:71:0;;9926:2:1;14307:71:0;;;9908:21:1;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;-1:-1:-1;;;10055:18:1;;;10048:33;10098:19;;14307:71:0;9724:399:1;14307:71:0;-1:-1:-1;;;;;7782:18:0;;7765:7;7782:18;;;:9;:18;;;;;;14397:6;:27;;14389:88;;;;-1:-1:-1;;;14389:88:0;;10330:2:1;14389:88:0;;;10312:21:1;10369:2;10349:18;;;10342:30;10408:34;10388:18;;;10381:62;-1:-1:-1;;;10459:18:1;;;10452:47;10516:19;;14389:88:0;10128:413:1;14389:88:0;-1:-1:-1;;;;;14492:19:0;;;;;;:11;:19;;;;;;;;14491:20;:47;;;;-1:-1:-1;;;;;;14516:22:0;;;;;;:11;:22;;;;;;;;14515:23;14491:47;14488:95;;;14548:14;;-1:-1:-1;;;14548:14:0;;;;14540:41;;;;-1:-1:-1;;;14540:41:0;;10748:2:1;14540:41:0;;;10730:21:1;10787:2;10767:18;;;10760:30;-1:-1:-1;;;10806:18:1;;;10799:44;10860:18;;14540:41:0;10546:338:1;14540:41:0;-1:-1:-1;;;;;14597:19:0;;;;;;:11;:19;;;;;;;;14596:20;:47;;;;-1:-1:-1;;;;;;14621:22:0;;;;;;:11;:22;;;;;;;;14620:23;14596:47;:77;;;;-1:-1:-1;14668:4:0;;-1:-1:-1;;;;;14647:26:0;;;14668:4;;14647:26;;14596:77;:107;;;;-1:-1:-1;;;;;;14677:26:0;;6154:42;14677:26;;14596:107;14593:220;;;14761:15;;-1:-1:-1;;;;;14724:20:0;;;;;;:9;:20;;;;;;:32;;14749:6;14724:24;:32::i;:::-;14723:53;;14715:96;;;;-1:-1:-1;;;14715:96:0;;11091:2:1;14715:96:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:32;11149:18;;;11142:60;11219:18;;14715:96:0;10889:354:1;14715:96:0;14836:4;;-1:-1:-1;;;;;14826:14:0;;;14836:4;;14826:14;14823:124;;14860:14;;14850:6;:24;;:47;;;-1:-1:-1;;;;;;14878:19:0;;;;;;:11;:19;;;;;;;;14850:47;:73;;;-1:-1:-1;;;;;;14901:22:0;;;;;;:11;:22;;;;;;;;14850:73;14842:103;;;;-1:-1:-1;;;14842:103:0;;11450:2:1;14842:103:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;14842:103:0;11248:341:1;14842:103:0;14975:12;;14965:6;:22;;:45;;;-1:-1:-1;;;;;;14991:19:0;;;;;;:11;:19;;;;;;;;14965:45;:71;;;-1:-1:-1;;;;;;15014:22:0;;;;;;:11;:22;;;;;;;;14965:71;14957:101;;;;-1:-1:-1;;;14957:101:0;;11450:2:1;14957:101:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;14957:101:0;11248:341:1;14957:101:0;15086:4;;-1:-1:-1;;;;;15073:17:0;;;15086:4;;15073:17;:41;;;;-1:-1:-1;;;;;;15095:19:0;;;;;;:11;:19;;;;;;;;15094:20;15073:41;15070:71;;;15137:1;15116:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15070:71:0;15154:45;15173:6;15181:9;15192:6;15154:18;:45::i;:::-;15151:105;;;15201:29;15216:13;;15201:14;:29::i;:::-;15252:1;15232:9;:22;15151:105;-1:-1:-1;;;;;15286:17:0;;;;;;:9;:17;;;;;;:29;;15308:6;15286:21;:29::i;:::-;-1:-1:-1;;;;;15266:17:0;;;;;;:9;:17;;;;;:49;;;;15351:32;15276:6;15373:9;15351:13;:32::i;:::-;:78;;15423:6;15351:78;;;15386:34;15394:6;15402:9;15413:6;15386:7;:34::i;:::-;-1:-1:-1;;;;;15463:20:0;;;;;;:9;:20;;;;;;15326:103;;-1:-1:-1;15463:40:0;;15326:103;15463:24;:40::i;:::-;-1:-1:-1;;;;;15440:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15519:43;;;;;;;;;;15547:14;1361:25:1;;1349:2;1334:18;;1215:177;15519:43:0;;;;;;;;14215:1355;14137:1433;;;:::o;1842:240::-;1962:7;2023:12;2015:6;;;;2007:29;;;;-1:-1:-1;;;2007:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2058:5:0;;;1842:240::o;1524:98::-;1582:7;1609:5;1613:1;1609;:5;:::i;1630:98::-;1688:7;1715:5;1719:1;1715;:5;:::i;11194:1063::-;5763:8;:15;;-1:-1:-1;;5763:15:0;5774:4;5763:15;;;;;;11331:14:::1;::::0;11313:12:::1;::::0;11289::::1;::::0;5763:8;;11288:66:::1;::::0;11352:1:::1;::::0;11289:57:::1;::::0;11331:14;;11289:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11288:66::-;11265:89;;11365:32;11400:42;11429:12;11400:24;11411:12;;11400:6;:10;;:24;;;;:::i;:42::-;11365:77:::0;-1:-1:-1;11453:14:0::1;11470:36;:6:::0;11365:77;11470:10:::1;:36::i;:::-;11453:53:::0;-1:-1:-1;11542:21:0::1;11574:24;11453:53:::0;11574:16:::1;:24::i;:::-;11609:20;11632:41;:21;11658:14:::0;11632:25:::1;:41::i;:::-;11609:64;;11684:19;11705:48;11722:30;11739:12;;11722;:16;;:30;;;;:::i;:::-;11705:12:::0;;:16:::1;:48::i;:::-;11684:69;;11764:29;11796;11812:12;;11796:11;:15;;:29;;;;:::i;:::-;11764:61:::0;-1:-1:-1;11839:34:0;;11836:103:::1;;11875:61;11888:24;11914:21;11875:12;:61::i;:::-;11995:12;::::0;11949:20:::1;::::0;11972:36:::1;::::0;:18:::1;:11:::0;11988:1:::1;11972:15;:18::i;:36::-;11949:59:::0;-1:-1:-1;12022:16:0;;12019:73:::1;;12048:18;::::0;12040:50:::1;::::0;-1:-1:-1;;;;;12048:18:0;;::::1;::::0;12040:50;::::1;;;::::0;12077:12;;12048:18:::1;12040:50:::0;12048:18;12040:50;12077:12;12048:18;12040:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12019:73;12128:21;12163:28:::0;;12160:90:::1;;12201:20;::::0;12193:55:::1;::::0;-1:-1:-1;;;;;12201:20:0;;::::1;::::0;12193:55;::::1;;;::::0;12232:15;;12201:20:::1;12193:55:::0;12201:20;12193:55;12232:15;12201:20;12193:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12160:90;-1:-1:-1::0;;5783:8:0;:16;;-1:-1:-1;;5783:16:0;;;-1:-1:-1;;;;;;;;11194:1063:0:o;1312:98::-;1370:7;1397:5;1401:1;1397;:5;:::i;8479:403::-;8624:14;;8699:13;;8689:4;8581;7782:18;;;:9;:18;;;;;;8731:8;;8581:4;;8614:24;;;;-1:-1:-1;8671:41:0;;8731:8;;8730:9;:24;;;;-1:-1:-1;8743:11:0;;-1:-1:-1;;;8743:11:0;;;;8730:24;:42;;;;-1:-1:-1;8758:14:0;;-1:-1:-1;;;8758:14:0;;;;8730:42;:54;;;;;8776:8;8730:54;:78;;;;-1:-1:-1;;;;;;8789:19:0;;;;;;:11;:19;;;;;;;;8788:20;8730:78;:99;;;;-1:-1:-1;8825:4:0;;-1:-1:-1;;;;;8812:17:0;;;8825:4;;8812:17;8730:99;:126;;;;;8846:10;;8833:9;;:23;;8730:126;:144;;;;;8860:14;8730:144;8723:151;8479:403;-1:-1:-1;;;;;;8479:403:0:o;13058:160::-;-1:-1:-1;;;;;13164:19:0;;13139:4;13164:19;;;:11;:19;;;;;;;;13163:20;:47;;;;-1:-1:-1;;;;;;;13188:22:0;;;;;:11;:22;;;;;;;;13187:23;;13058:160;-1:-1:-1;13058:160:0:o;13539:590::-;13625:7;13681:1;13648:30;13660:6;13668:9;13648:11;:30::i;:::-;:34;13645:462;;;13694:17;13714:59;13742:30;13754:6;13762:9;13742:11;:30::i;:::-;13725:11;;13714:23;;:6;;:10;:23::i;:59::-;13829:4;13811:24;;;;:9;:24;;;;;;13694:79;;-1:-1:-1;13811:39:0;;13694:79;13811:28;:39::i;:::-;13802:4;13784:24;;;;:9;:24;;;;;;;:66;;;;13866:42;;-1:-1:-1;;;;;13866:42:0;;;;;;;13898:9;1361:25:1;;1349:2;1334:18;;1215:177;13866:42:0;;;;;;;;13940:1;13922:7;;:20;:64;;;;;13979:7;;13946:30;13958:6;13966:9;13946:11;:30::i;:::-;:40;13922:64;13919:148;;;13988:77;14006:4;6154:42;14028:36;14056:7;;14028:23;14039:11;;14028:6;:10;;:23;;;;:::i;:36::-;13988:9;:77::i;:::-;14084:21;:6;14095:9;14084:10;:21::i;:::-;14077:28;;;;;13645:462;-1:-1:-1;14115:6:0;13539:590;-1:-1:-1;;13539:590:0:o;12616:434::-;12706:16;;;12720:1;12706:16;;;;;;;;12682:21;;12706:16;;;;;;;;;;-1:-1:-1;12706:16:0;12682:40;;12751:4;12733;12738:1;12733:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12733:23:0;;;:7;;;;;;;;;;:23;;;;12777:6;;:13;;;-1:-1:-1;;;12777:13:0;;;;:6;;;;;:11;;:13;;;;;12733:7;;12777:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12767:4;12772:1;12767:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12767:23:0;;;:7;;;;;;;;;:23;12833:6;;12801:53;;12818:4;;12833:6;12842:11;12801:8;:53::i;:::-;12865:6;;:177;;-1:-1:-1;;;12865:177:0;;-1:-1:-1;;;;;12865:6:0;;;;:57;;:177;;12937:11;;12865:6;;12979:4;;13006;;13026:15;;12865:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12671:379;12616:434;:::o;12265:343::-;12378:6;;12346:53;;12363:4;;-1:-1:-1;;;;;12378:6:0;12387:11;12346:8;:53::i;:::-;12410:6;;12551:18;;12410:190;;-1:-1:-1;;;12410:190:0;;12473:4;12410:190;;;13833:34:1;13883:18;;;13876:34;;;12410:6:0;13926:18:1;;;13919:34;;;13969:18;;;13962:34;-1:-1:-1;;;;;12551:18:0;;;14012:19:1;;;14005:44;12584:15:0;14065:19:1;;;14058:35;12410:6:0;;;:22;;12440:9;;13767:19:1;;12410:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12265:343;;:::o;13226:305::-;-1:-1:-1;;;;;13328:13:0;;13305:7;13328:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;13345:16:0;;;;;;:5;:16;;;;;;;;13328:33;13325:76;;;13370:11;;:29;;13394:3;13370:15;:29::i;:::-;13363:36;;;;13325:76;13427:4;;-1:-1:-1;;;;;13427:4:0;;;13414:17;;;;13411:38;;-1:-1:-1;13440:7:0;;13433:14;;13411:38;13472:4;;-1:-1:-1;;;;;13472:4:0;;;13462:14;;;;13459:36;;-1:-1:-1;13485:8:0;;13478:15;;13459:36;-1:-1:-1;13512:11:0;;13226:305;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:316::-;2376:6;2384;2392;2445:2;2433:9;2424:7;2420:23;2416:32;2413:52;;;2461:1;2458;2451:12;2413:52;-1:-1:-1;;2484:23:1;;;2554:2;2539:18;;2526:32;;-1:-1:-1;2605:2:1;2590:18;;;2577:32;;2299:316;-1:-1:-1;2299:316:1:o;2620:118::-;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2743:750;2835:6;2843;2851;2904:2;2892:9;2883:7;2879:23;2875:32;2872:52;;;2920:1;2917;2910:12;2872:52;2960:9;2947:23;2989:18;3030:2;3022:6;3019:14;3016:34;;;3046:1;3043;3036:12;3016:34;3084:6;3073:9;3069:22;3059:32;;3129:7;3122:4;3118:2;3114:13;3110:27;3100:55;;3151:1;3148;3141:12;3100:55;3191:2;3178:16;3217:2;3209:6;3206:14;3203:34;;;3233:1;3230;3223:12;3203:34;3288:7;3281:4;3271:6;3268:1;3264:14;3260:2;3256:23;3252:34;3249:47;3246:67;;;3309:1;3306;3299:12;3246:67;3340:4;3332:13;;;;-1:-1:-1;3364:6:1;-1:-1:-1;;3405:20:1;;3392:34;3435:28;3392:34;3435:28;:::i;:::-;3482:5;3472:15;;;2743:750;;;;;:::o;3498:382::-;3563:6;3571;3624:2;3612:9;3603:7;3599:23;3595:32;3592:52;;;3640:1;3637;3630:12;3592:52;3679:9;3666:23;3698:31;3723:5;3698:31;:::i;:::-;3748:5;-1:-1:-1;3805:2:1;3790:18;;3777:32;3818:30;3777:32;3818:30;:::i;:::-;3867:7;3857:17;;;3498:382;;;;;:::o;4093:529::-;4170:6;4178;4186;4239:2;4227:9;4218:7;4214:23;4210:32;4207:52;;;4255:1;4252;4245:12;4207:52;4294:9;4281:23;4313:31;4338:5;4313:31;:::i;:::-;4363:5;-1:-1:-1;4420:2:1;4405:18;;4392:32;4433:33;4392:32;4433:33;:::i;:::-;4485:7;-1:-1:-1;4544:2:1;4529:18;;4516:32;4557:33;4516:32;4557:33;:::i;4627:388::-;4695:6;4703;4756:2;4744:9;4735:7;4731:23;4727:32;4724:52;;;4772:1;4769;4762:12;4724:52;4811:9;4798:23;4830:31;4855:5;4830:31;:::i;:::-;4880:5;-1:-1:-1;4937:2:1;4922:18;;4909:32;4950:33;4909:32;4950:33;:::i;5020:592::-;5133:6;5141;5149;5157;5165;5173;5181;5234:3;5222:9;5213:7;5209:23;5205:33;5202:53;;;5251:1;5248;5241:12;5202:53;-1:-1:-1;;5274:23:1;;;5344:2;5329:18;;5316:32;;-1:-1:-1;5395:2:1;5380:18;;5367:32;;5446:2;5431:18;;5418:32;;-1:-1:-1;5497:3:1;5482:19;;5469:33;;-1:-1:-1;5549:3:1;5534:19;;5521:33;;-1:-1:-1;5601:3:1;5586:19;5573:33;;-1:-1:-1;5020:592:1;-1:-1:-1;5020:592:1:o;5877:329::-;6079:2;6061:21;;;6118:1;6098:18;;;6091:29;-1:-1:-1;;;6151:2:1;6136:18;;6129:36;6197:2;6182:18;;5877:329::o;6626:127::-;6687:10;6682:3;6678:20;6675:1;6668:31;6718:4;6715:1;6708:15;6742:4;6739:1;6732:15;6758:127;6819:10;6814:3;6810:20;6807:1;6800:31;6850:4;6847:1;6840:15;6874:4;6871:1;6864:15;6890:135;6929:3;6950:17;;;6947:43;;6970:18;;:::i;:::-;-1:-1:-1;7017:1:1;7006:13;;6890:135::o;7030:184::-;7100:6;7153:2;7141:9;7132:7;7128:23;7124:32;7121:52;;;7169:1;7166;7159:12;7121:52;-1:-1:-1;7192:16:1;;7030:184;-1:-1:-1;7030:184:1:o;7498:245::-;7565:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:52;;;7634:1;7631;7624:12;7586:52;7666:9;7660:16;7685:28;7707:5;7685:28;:::i;9185:128::-;9252:9;;;9273:11;;;9270:37;;;9287:18;;:::i;11594:125::-;11659:9;;;11680:10;;;11677:36;;;11693:18;;:::i;11724:168::-;11797:9;;;11828;;11845:15;;;11839:22;;11825:37;11815:71;;11866:18;;:::i;11897:217::-;11937:1;11963;11953:132;;12007:10;12002:3;11998:20;11995:1;11988:31;12042:4;12039:1;12032:15;12070:4;12067:1;12060:15;11953:132;-1:-1:-1;12099:9:1;;11897:217::o;12251:251::-;12321:6;12374:2;12362:9;12353:7;12349:23;12345:32;12342:52;;;12390:1;12387;12380:12;12342:52;12422:9;12416:16;12441:31;12466:5;12441:31;:::i;12507:980::-;12769:4;12817:3;12806:9;12802:19;12848:6;12837:9;12830:25;12874:2;12912:6;12907:2;12896:9;12892:18;12885:34;12955:3;12950:2;12939:9;12935:18;12928:31;12979:6;13014;13008:13;13045:6;13037;13030:22;13083:3;13072:9;13068:19;13061:26;;13122:2;13114:6;13110:15;13096:29;;13143:1;13153:195;13167:6;13164:1;13161:13;13153:195;;;13232:13;;-1:-1:-1;;;;;13228:39:1;13216:52;;13323:15;;;;13288:12;;;;13264:1;13182:9;13153:195;;;-1:-1:-1;;;;;;;13404:32:1;;;;13399:2;13384:18;;13377:60;-1:-1:-1;;;13468:3:1;13453:19;13446:35;13365:3;12507:980;-1:-1:-1;;;12507:980:1:o;14104:306::-;14192:6;14200;14208;14261:2;14249:9;14240:7;14236:23;14232:32;14229:52;;;14277:1;14274;14267:12;14229:52;14306:9;14300:16;14290:26;;14356:2;14345:9;14341:18;14335:25;14325:35;;14400:2;14389:9;14385:18;14379:25;14369:35;;14104:306;;;;;:::o

Swarm Source

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