ETH Price: $2,967.24 (-1.76%)
Gas: 2 Gwei

Token

OGAMA ($OGAMA)
 

Overview

Max Total Supply

1,000,000 $OGAMA

Holders

220

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.663404574193691054 $OGAMA

Value
$0.00
0x9bc731b8b32c8a25b33ba4474deb19edf3de7107
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:
OGAMAToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-16
*/

// SPDX-License-Identifier: UNLICENSED

/*

Web: https://ogama.vip
TG: https://t.me/OGAMAtoken
X: https://x.com/OGAMAtoken

*/

pragma solidity 0.8.17;

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

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

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

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

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

interface ERC20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address public 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 renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

contract OGAMAToken is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "OGAMA";
    string public constant symbol = "$OGAMA";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 1_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 100;

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

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

    uint256 public marketingFee = 85;
    uint256 public developmentFee = 15;
    uint256 public totalFee = marketingFee + developmentFee;
    uint256 public constant feeDenominator = 1000;
    
    uint256 buyMultiplier = 250;
    uint256 sellMultiplier = 500;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public developmentFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 100;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

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

        marketingFeeReceiver = 0xc9a3E1dcaA4EeeB871D71BD5417530294424ba7b;
        developmentFeeReceiver = 0x51e0537bD37Ae2021fCeC27e6E0D0698276759d2;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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 setMaxWalletPercent(uint256 _newmaxwallet) external onlyOwner {
        require(_newmaxwallet >= 1,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * _newmaxwallet ) / 100;
    }

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

        if(!isFeeExempt[sender]){
            require(tradingOpen,"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

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

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

    function manualSwap() external {
        payable(developmentFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }

    function swapBack() internal swapping {

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

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

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHDevelopment = (amountETH * developmentFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(developmentFeeReceiver).transfer(amountETHDevelopment);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":"_maxWalletToken","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxwallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146012600a620004d6565b6200002390620f4240620004ee565b6200002f919062000508565b60015560556006819055600f60078190556200004b916200052b565b60085560fa6009556101f4600a9081556064600b819055600e805461ffff60a01b1916600160a81b179055906200008590601290620004d6565b6200009490620f4240620004ee565b620000a0919062000508565b600f55348015620000b057600080fd5b5060008054336001600160a01b031991821617909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000147919062000541565b6001600160a01b03908116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000198573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001be919062000541565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000236919062000541565b6001600160a01b0390811660a052306000818152600360209081526040808320600e548616845282528083206000199055600c80546001600160a01b031990811673c9a3e1dcaa4eeeb871d71bd5417530294424ba7b178255600d80549091167351e0537bd37ae2021fcec27e6e0d0698276759d21790553380855260048452828520805460ff199081166001908117909255835489168752848720805482168317905591865260059094528285208054821685179055905490951683528083208054861683179055928252918120805484168317905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909216179055620003496012600a620004d6565b6200035890620f4240620004ee565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200039b6012600a620004d6565b620003aa90620f4240620004ee565b60405190815260200160405180910390a36200056c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000418578160001904821115620003fc57620003fc620003c1565b808516156200040a57918102915b93841c9390800290620003dc565b509250929050565b6000826200043157506001620004d0565b816200044057506000620004d0565b8160018114620004595760028114620004645762000484565b6001915050620004d0565b60ff841115620004785762000478620003c1565b50506001821b620004d0565b5060208310610133831016604e8410600b8410161715620004a9575081810a620004d0565b620004b58383620003d7565b8060001904821115620004cc57620004cc620003c1565b0290505b92915050565b6000620004e760ff84168362000420565b9392505050565b8082028115828204841417620004d057620004d0620003c1565b6000826200052657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004d057620004d0620003c1565b6000602082840312156200055457600080fd5b81516001600160a01b0381168114620004e757600080fd5b60805160a05161180a620005ae6000396000818161057201528181610c1701528181610f100152818161117501526111a901526000610fda015261180a6000f3fe6080604052600436106101fd5760003560e01c806370a082311161010d578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146105f9578063df20fd491461063f578063e96fada21461065f578063f887ea401461067f578063ffb54a991461069f57600080fd5b8063a8aa1b3114610560578063a9059cbb14610594578063c867d60b146105b4578063c9567bf9146105e457600080fd5b8063893d20e8116100dc578063893d20e8146104da5780638da5cb5b146104f857806395d89b4114610518578063a5f3d0031461054a57600080fd5b806370a0823114610462578063715018a61461048f57806378109e54146104a457806382bf293c146104ba57600080fd5b80632f54bf6e11610190578063571ac8b01161015f578063571ac8b0146103b35780636b67c4df146103d35780636ce46bc3146103e95780636ddd1713146104095780636ec518b81461042a57600080fd5b80632f54bf6e14610316578063313ce567146103455780633f4218e01461036c57806351bc3c851461039c57600080fd5b806318160ddd116101cc57806318160ddd146102b65780631df4ccfc146102cb57806323b872dd146102e15780632b112e491461030157600080fd5b80630445b6671461020957806306fdde0314610232578063095ea7b314610270578063180b0d7e146102a057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600f5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b50610263604051806040016040528060058152602001644f47414d4160d81b81525081565b604051610229919061143f565b34801561027c57600080fd5b5061029061028b3660046114a9565b6106c0565b6040519015158152602001610229565b3480156102ac57600080fd5b5061021f6103e881565b3480156102c257600080fd5b5061021f61072d565b3480156102d757600080fd5b5061021f60085481565b3480156102ed57600080fd5b506102906102fc3660046114d3565b610749565b34801561030d57600080fd5b5061021f61080b565b34801561032257600080fd5b5061029061033136600461150f565b6000546001600160a01b0391821691161490565b34801561035157600080fd5b5061035a601281565b60405160ff9091168152602001610229565b34801561037857600080fd5b5061029061038736600461150f565b60046020526000908152604090205460ff1681565b3480156103a857600080fd5b506103b1610891565b005b3480156103bf57600080fd5b506102906103ce36600461150f565b6108cd565b3480156103df57600080fd5b5061021f60065481565b3480156103f557600080fd5b506103b161040436600461152a565b6108db565b34801561041557600080fd5b50600e5461029090600160a81b900460ff1681565b34801561043657600080fd5b50600d5461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561046e57600080fd5b5061021f61047d36600461150f565b60026020526000908152604090205481565b34801561049b57600080fd5b506103b161091f565b3480156104b057600080fd5b5061021f60015481565b3480156104c657600080fd5b506103b16104d5366004611556565b61098e565b3480156104e657600080fd5b506000546001600160a01b031661044a565b34801561050457600080fd5b5060005461044a906001600160a01b031681565b34801561052457600080fd5b5061026360405180604001604052806006815260200165244f47414d4160d01b81525081565b34801561055657600080fd5b5061021f60075481565b34801561056c57600080fd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a057600080fd5b506102906105af3660046114a9565b610a4a565b3480156105c057600080fd5b506102906105cf36600461150f565b60056020526000908152604090205460ff1681565b3480156105f057600080fd5b506103b1610a57565b34801561060557600080fd5b5061021f61061436600461156f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064b57600080fd5b506103b161065a3660046115a2565b610a96565b34801561066b57600080fd5b50600c5461044a906001600160a01b031681565b34801561068b57600080fd5b50600e5461044a906001600160a01b031681565b3480156106ab57600080fd5b50600e5461029090600160a01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061071b9086815260200190565b60405180910390a35060015b92915050565b6107396012600a6116bf565b61074690620f42406116ce565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107f6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107d1918490610b02565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610801848484610b3c565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061086b6012600a6116bf565b61087890620f42406116ce565b61088291906116e5565b61088c91906116e5565b905090565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108ca573d6000803e3d6000fd5b50565b6000610727826000196106c0565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610905906116f8565b60405180910390fd5b600a91909155600991909155600b55565b6000546001600160a01b031633146109495760405162461bcd60e51b8152600401610905906116f8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109b85760405162461bcd60e51b8152600401610905906116f8565b6001811015610a145760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610905565b606481610a236012600a6116bf565b610a3090620f42406116ce565b610a3a91906116ce565b610a449190611718565b60015550565b6000610804338484610b3c565b6000546001600160a01b03163314610a815760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a81b1916600160a81b8415150217905580610ae46012600a6116bf565b610af190620f42406116ce565b610afb9190611718565b600f555050565b60008184841115610b265760405162461bcd60e51b8152600401610905919061143f565b506000610b3384866116e5565b95945050505050565b60105460009060ff1615610b5c57610b55848484610e1d565b9050610804565b6001600160a01b03841660009081526004602052604090205460ff16610bcc57600e54600160a01b900460ff16610bcc5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610905565b6001600160a01b03841660009081526005602052604090205460ff16158015610c0e57506001600160a01b03831660009081526005602052604090205460ff16155b8015610c4c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610cc6576001546001600160a01b038416600090815260026020526040902054610c7890849061173a565b1115610cc65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610905565b610cce610f03565b15610cdb57610cdb610f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610d2d918490610b02565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610d7a57506001600160a01b03841660009081526004602052604090205460ff165b610d8e57610d8985848661114d565b610d90565b825b6001600160a01b038516600090815260026020526040902054909150610db690826112ac565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610e6e918490610b02565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610e9d90836112ac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610f41575060105460ff16155b8015610f565750600e54600160a81b900460ff165b801561088c575050600f5430600090815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb857610fb861174d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061100c5761100c61174d565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916110569190600090869030904290600401611763565b600060405180830381600087803b15801561107057600080fd5b505af1158015611084573d6000803e3d6000fd5b50506008546006544793506000925061109d90846116ce565b6110a79190611718565b90506000600854600754846110bc91906116ce565b6110c69190611718565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611101573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50506010805460ff19169055505050565b600082158061115c5750600854155b15611168575081610804565b600b546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036111a75750600a546111e5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036111e557506009545b600061121c6111f76103e860646116ce565b611216846112106008548a61130b90919063ffffffff16565b9061130b565b9061138d565b90508015611298573060009081526002602052604090205461123e90826112ac565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128f9085815260200190565b60405180910390a35b6112a285826113cf565b9695505050505050565b6000806112b9838561173a565b9050838110156108045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008260000361131d57506000610727565b600061132983856116ce565b9050826113368583611718565b146108045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061080483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611411565b600061080483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b02565b600081836114325760405162461bcd60e51b8152600401610905919061143f565b506000610b338486611718565b600060208083528351808285015260005b8181101561146c57858101830151858201604001528201611450565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146114a457600080fd5b919050565b600080604083850312156114bc57600080fd5b6114c58361148d565b946020939093013593505050565b6000806000606084860312156114e857600080fd5b6114f18461148d565b92506114ff6020850161148d565b9150604084013590509250925092565b60006020828403121561152157600080fd5b6108048261148d565b60008060006060848603121561153f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156857600080fd5b5035919050565b6000806040838503121561158257600080fd5b61158b8361148d565b91506115996020840161148d565b90509250929050565b600080604083850312156115b557600080fd5b823580151581146114c557600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610727565b8161163a57506000610727565b8160018114611650576002811461165a57611676565b6001915050610727565b60ff84111561166b5761166b6115c5565b50506001821b610727565b5060208310610133831016604e8410600b8410161715611699575081810a610727565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061080460ff84168361161e565b8082028115828204841417610727576107276115c5565b81810381811115610727576107276115c5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008261173557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610727576107276115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117b35784516001600160a01b03168352938301939183019160010161178e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016fc2010bd2cff0c1bfc9876982edadca150d3618a2a8ad36f806e136af2a8d664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806370a082311161010d578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146105f9578063df20fd491461063f578063e96fada21461065f578063f887ea401461067f578063ffb54a991461069f57600080fd5b8063a8aa1b3114610560578063a9059cbb14610594578063c867d60b146105b4578063c9567bf9146105e457600080fd5b8063893d20e8116100dc578063893d20e8146104da5780638da5cb5b146104f857806395d89b4114610518578063a5f3d0031461054a57600080fd5b806370a0823114610462578063715018a61461048f57806378109e54146104a457806382bf293c146104ba57600080fd5b80632f54bf6e11610190578063571ac8b01161015f578063571ac8b0146103b35780636b67c4df146103d35780636ce46bc3146103e95780636ddd1713146104095780636ec518b81461042a57600080fd5b80632f54bf6e14610316578063313ce567146103455780633f4218e01461036c57806351bc3c851461039c57600080fd5b806318160ddd116101cc57806318160ddd146102b65780631df4ccfc146102cb57806323b872dd146102e15780632b112e491461030157600080fd5b80630445b6671461020957806306fdde0314610232578063095ea7b314610270578063180b0d7e146102a057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600f5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b50610263604051806040016040528060058152602001644f47414d4160d81b81525081565b604051610229919061143f565b34801561027c57600080fd5b5061029061028b3660046114a9565b6106c0565b6040519015158152602001610229565b3480156102ac57600080fd5b5061021f6103e881565b3480156102c257600080fd5b5061021f61072d565b3480156102d757600080fd5b5061021f60085481565b3480156102ed57600080fd5b506102906102fc3660046114d3565b610749565b34801561030d57600080fd5b5061021f61080b565b34801561032257600080fd5b5061029061033136600461150f565b6000546001600160a01b0391821691161490565b34801561035157600080fd5b5061035a601281565b60405160ff9091168152602001610229565b34801561037857600080fd5b5061029061038736600461150f565b60046020526000908152604090205460ff1681565b3480156103a857600080fd5b506103b1610891565b005b3480156103bf57600080fd5b506102906103ce36600461150f565b6108cd565b3480156103df57600080fd5b5061021f60065481565b3480156103f557600080fd5b506103b161040436600461152a565b6108db565b34801561041557600080fd5b50600e5461029090600160a81b900460ff1681565b34801561043657600080fd5b50600d5461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561046e57600080fd5b5061021f61047d36600461150f565b60026020526000908152604090205481565b34801561049b57600080fd5b506103b161091f565b3480156104b057600080fd5b5061021f60015481565b3480156104c657600080fd5b506103b16104d5366004611556565b61098e565b3480156104e657600080fd5b506000546001600160a01b031661044a565b34801561050457600080fd5b5060005461044a906001600160a01b031681565b34801561052457600080fd5b5061026360405180604001604052806006815260200165244f47414d4160d01b81525081565b34801561055657600080fd5b5061021f60075481565b34801561056c57600080fd5b5061044a7f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba281565b3480156105a057600080fd5b506102906105af3660046114a9565b610a4a565b3480156105c057600080fd5b506102906105cf36600461150f565b60056020526000908152604090205460ff1681565b3480156105f057600080fd5b506103b1610a57565b34801561060557600080fd5b5061021f61061436600461156f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064b57600080fd5b506103b161065a3660046115a2565b610a96565b34801561066b57600080fd5b50600c5461044a906001600160a01b031681565b34801561068b57600080fd5b50600e5461044a906001600160a01b031681565b3480156106ab57600080fd5b50600e5461029090600160a01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061071b9086815260200190565b60405180910390a35060015b92915050565b6107396012600a6116bf565b61074690620f42406116ce565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107f6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107d1918490610b02565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610801848484610b3c565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061086b6012600a6116bf565b61087890620f42406116ce565b61088291906116e5565b61088c91906116e5565b905090565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108ca573d6000803e3d6000fd5b50565b6000610727826000196106c0565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610905906116f8565b60405180910390fd5b600a91909155600991909155600b55565b6000546001600160a01b031633146109495760405162461bcd60e51b8152600401610905906116f8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109b85760405162461bcd60e51b8152600401610905906116f8565b6001811015610a145760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610905565b606481610a236012600a6116bf565b610a3090620f42406116ce565b610a3a91906116ce565b610a449190611718565b60015550565b6000610804338484610b3c565b6000546001600160a01b03163314610a815760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a81b1916600160a81b8415150217905580610ae46012600a6116bf565b610af190620f42406116ce565b610afb9190611718565b600f555050565b60008184841115610b265760405162461bcd60e51b8152600401610905919061143f565b506000610b3384866116e5565b95945050505050565b60105460009060ff1615610b5c57610b55848484610e1d565b9050610804565b6001600160a01b03841660009081526004602052604090205460ff16610bcc57600e54600160a01b900460ff16610bcc5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610905565b6001600160a01b03841660009081526005602052604090205460ff16158015610c0e57506001600160a01b03831660009081526005602052604090205460ff16155b8015610c4c57507f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba26001600160a01b0316836001600160a01b031614155b15610cc6576001546001600160a01b038416600090815260026020526040902054610c7890849061173a565b1115610cc65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610905565b610cce610f03565b15610cdb57610cdb610f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610d2d918490610b02565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610d7a57506001600160a01b03841660009081526004602052604090205460ff165b610d8e57610d8985848661114d565b610d90565b825b6001600160a01b038516600090815260026020526040902054909150610db690826112ac565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610e6e918490610b02565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610e9d90836112ac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba21614801590610f41575060105460ff16155b8015610f565750600e54600160a81b900460ff165b801561088c575050600f5430600090815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb857610fb861174d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061100c5761100c61174d565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916110569190600090869030904290600401611763565b600060405180830381600087803b15801561107057600080fd5b505af1158015611084573d6000803e3d6000fd5b50506008546006544793506000925061109d90846116ce565b6110a79190611718565b90506000600854600754846110bc91906116ce565b6110c69190611718565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611101573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50506010805460ff19169055505050565b600082158061115c5750600854155b15611168575081610804565b600b546001600160a01b037f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba28116908416036111a75750600a546111e5565b7f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba26001600160a01b0316856001600160a01b0316036111e557506009545b600061121c6111f76103e860646116ce565b611216846112106008548a61130b90919063ffffffff16565b9061130b565b9061138d565b90508015611298573060009081526002602052604090205461123e90826112ac565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128f9085815260200190565b60405180910390a35b6112a285826113cf565b9695505050505050565b6000806112b9838561173a565b9050838110156108045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008260000361131d57506000610727565b600061132983856116ce565b9050826113368583611718565b146108045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061080483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611411565b600061080483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b02565b600081836114325760405162461bcd60e51b8152600401610905919061143f565b506000610b338486611718565b600060208083528351808285015260005b8181101561146c57858101830151858201604001528201611450565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146114a457600080fd5b919050565b600080604083850312156114bc57600080fd5b6114c58361148d565b946020939093013593505050565b6000806000606084860312156114e857600080fd5b6114f18461148d565b92506114ff6020850161148d565b9150604084013590509250925092565b60006020828403121561152157600080fd5b6108048261148d565b60008060006060848603121561153f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156857600080fd5b5035919050565b6000806040838503121561158257600080fd5b61158b8361148d565b91506115996020840161148d565b90509250929050565b600080604083850312156115b557600080fd5b823580151581146114c557600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610727565b8161163a57506000610727565b8160018114611650576002811461165a57611676565b6001915050610727565b60ff84111561166b5761166b6115c5565b50506001821b610727565b5060208310610133831016604e8410600b8410161715611699575081810a610727565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061080460ff84168361161e565b8082028115828204841417610727576107276115c5565b81810381811115610727576107276115c5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008261173557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610727576107276115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117b35784516001600160a01b03168352938301939183019160010161178e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016fc2010bd2cff0c1bfc9876982edadca150d3618a2a8ad36f806e136af2a8d664736f6c63430008110033

Deployed Bytecode Sourcemap

2966:7375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4263:48:0;;;;;;;;3220:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3220:37:0;;;;;;;;;;;;:::i;5542:216::-;;;;;;;;;;-1:-1:-1;5542:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;5542:216:0;1186:187:1;3861:45:0;;;;;;;;;;;;3902:4;3861:45;;3355:62;;;;;;;;;;;;;:::i;3799:55::-;;;;;;;;;;;;;;;;6060:370;;;;;;;;;;-1:-1:-1;6060:370:0;;;;;:::i;:::-;;:::i;10201:137::-;;;;;;;;;;;;;:::i;2197:103::-;;;;;;;;;;-1:-1:-1;2197:103:0;;;;;:::i;:::-;2252:4;2287:5;-1:-1:-1;;;;;2276:16:0;;;2287:5;;2276:16;;2197:103;3311:35;;;;;;;;;;;;3344:2;3311:35;;;;;2074:4:1;2062:17;;;2044:36;;2032:2;2017:18;3311:35:0;1902:184:1;3607:44:0;;;;;;;;;;-1:-1:-1;3607:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8874:113;;;;;;;;;;;;;:::i;:::-;;5766:122;;;;;;;;;;-1:-1:-1;5766:122:0;;;;;:::i;:::-;;:::i;3719:32::-;;;;;;;;;;;;;;;;9808:198;;;;;;;;;;-1:-1:-1;9808:198:0;;;;;:::i;:::-;;:::i;4226:30::-;;;;;;;;;;-1:-1:-1;4226:30:0;;;;-1:-1:-1;;;4226:30:0;;;;;;4071:37;;;;;;;;;;-1:-1:-1;4071:37:0;;;;-1:-1:-1;;;;;4071:37:0;;;;;;-1:-1:-1;;;;;2576:32:1;;;2558:51;;2546:2;2531:18;4071:37:0;2412:203:1;3485:45:0;;;;;;;;;;-1:-1:-1;3485:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2308:128;;;;;;;;;;;;;:::i;3426:50::-;;;;;;;;;;;;;;;;6438:219;;;;;;;;;;-1:-1:-1;6438:219:0;;;;;:::i;:::-;;:::i;5317:78::-;;;;;;;;;;-1:-1:-1;5369:7:0;5387:5;-1:-1:-1;;;;;5387:5:0;5317:78;;2010:20;;;;;;;;;;-1:-1:-1;2010:20:0;;;;-1:-1:-1;;;;;2010:20:0;;;3264:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3264:40:0;;;;;3758:34;;;;;;;;;;;;;;;;4148:29;;;;;;;;;;;;;;;5896:156;;;;;;;;;;-1:-1:-1;5896:156:0;;;;;:::i;:::-;;:::i;3658:52::-;;;;;;;;;;-1:-1:-1;3658:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8995:79;;;;;;;;;;;;;:::i;5401:133::-;;;;;;;;;;-1:-1:-1;5401:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5503:19:0;;;5485:7;5503:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5401:133;10014:179;;;;;;;;;;-1:-1:-1;10014:179:0;;;;;:::i;:::-;;:::i;4029:35::-;;;;;;;;;;-1:-1:-1;4029:35:0;;;;-1:-1:-1;;;;;4029:35:0;;;4117:24;;;;;;;;;;-1:-1:-1;4117:24:0;;;;-1:-1:-1;;;;;4117:24:0;;;4186:31;;;;;;;;;;-1:-1:-1;4186:31:0;;;;-1:-1:-1;;;4186:31:0;;;;;;5542:216;5646:10;5617:4;5634:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5634:32:0;;;;;;;;;;:41;;;5691:37;5617:4;;5634:32;;5691:37;;;;5669:6;160:25:1;;148:2;133:18;;14:177;5691:37:0;;;;;;;;-1:-1:-1;5746:4:0;5542:216;;;;;:::o;3355:62::-;3405:12;3344:2;3405;:12;:::i;:::-;3393:24;;:9;:24;:::i;:::-;3355:62;:::o;6060:370::-;-1:-1:-1;;;;;6180:19:0;;6160:4;6180:19;;;:11;:19;;;;;;;;6200:10;6180:31;;;;;;;;-1:-1:-1;;6180:52:0;6177:186;;6282:69;;;;;;;;;;;-1:-1:-1;;;6282:69:0;;;;;;;;-1:-1:-1;;;;;6282:19:0;;-1:-1:-1;6282:19:0;;;:11;:19;;;;;6302:10;6282:31;;;;;;;;;;:69;;6318:6;;6282:35;:69::i;:::-;-1:-1:-1;;;;;6248:19:0;;;;;;:11;:19;;;;;;;;6268:10;6248:31;;;;;;;:103;6177:186;6382:40;6396:6;6404:9;6415:6;6382:13;:40::i;:::-;6375:47;;6060:370;;;;;;:::o;10201:137::-;10314:9;:15;;;;3096:42;10254:7;10296:15;;;;;10254:7;;10314:15;3405:12;3344:2;3405;:12;:::i;:::-;3393:24;;:9;:24;:::i;:::-;10282:29;;;;:::i;:::-;:47;;;;:::i;:::-;10274:56;;10201:137;:::o;8874:113::-;8924:22;;8916:63;;-1:-1:-1;;;;;8924:22:0;;;;8957:21;8916:63;;;;;8924:22;8916:63;8924:22;8916:63;8957:21;8924:22;8916:63;;;;;;;;;;;;;;;;;;;;;8874:113::o;5766:122::-;5821:4;5845:35;5853:7;-1:-1:-1;;5845:7:0;:35::i;9808:198::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;;;;;;;;;9907:14:::1;:22:::0;;;;9940:13:::1;:20:::0;;;;9971:18:::1;:27:::0;9808:198::o;2308:128::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;2383:1:::1;2367:18:::0;;-1:-1:-1;;;;;;2367:18:0::1;::::0;;2401:27:::1;::::0;2558:51:1;;;2401:27:0::1;::::0;2546:2:1;2531:18;2401:27:0::1;;;;;;;2308:128::o:0;6438:219::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;6545:1:::1;6528:13;:18;;6520:64;;;::::0;-1:-1:-1;;;6520:64:0;;5999:2:1;6520:64:0::1;::::0;::::1;5981:21:1::0;6038:2;6018:18;;;6011:30;6077:34;6057:18;;;6050:62;-1:-1:-1;;;6128:18:1;;;6121:32;6170:19;;6520:64:0::1;5797:398:1::0;6520:64:0::1;6646:3;6628:13:::0;3405:12:::1;3344:2;3405;:12;:::i;:::-;3393:24;::::0;:9:::1;:24;:::i;:::-;6614:27;;;;:::i;:::-;6613:36;;;;:::i;:::-;6595:15;:54:::0;-1:-1:-1;6438:219:0:o;5896:156::-;5976:4;6000:44;6014:10;6026:9;6037:6;6000:13;:44::i;8995:79::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;9048:11:::1;:18:::0;;-1:-1:-1;;;;9048:18:0::1;-1:-1:-1::0;;;9048:18:0::1;::::0;;8995:79::o;10014:179::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;10110:11:::1;:22:::0;;-1:-1:-1;;;;10110:22:0::1;-1:-1:-1::0;;;10110:22:0;::::1;;;;::::0;;10173:12;3405::::1;3344:2;3405;:12;:::i;:::-;3393:24;::::0;:9:::1;:24;:::i;:::-;10159:26;;;;:::i;:::-;10143:13;:42:::0;-1:-1:-1;;10014:179:0:o;518:192::-;604:7;640:12;632:6;;;;624:29;;;;-1:-1:-1;;;624:29:0;;;;;;;;:::i;:::-;-1:-1:-1;664:9:0;676:5;680:1;676;:5;:::i;:::-;664:17;518:192;-1:-1:-1;;;;;518:192:0:o;6665:923::-;6777:6;;6757:4;;6777:6;;6774:63;;;6793:41;6808:6;6816:9;6827:6;6793:14;:41::i;:::-;6786:48;;;;6774:63;-1:-1:-1;;;;;6853:19:0;;;;;;:11;:19;;;;;;;;6849:94;;6896:11;;-1:-1:-1;;;6896:11:0;;;;6888:43;;;;-1:-1:-1;;;6888:43:0;;6624:2:1;6888:43:0;;;6606:21:1;6663:2;6643:18;;;6636:30;-1:-1:-1;;;6682:18:1;;;6675:50;6742:18;;6888:43:0;6422:344:1;6888:43:0;-1:-1:-1;;;;;6960:27:0;;;;;;:19;:27;;;;;;;;6959:28;:63;;;;-1:-1:-1;;;;;;6992:30:0;;;;;;:19;:30;;;;;;;;6991:31;6959:63;:84;;;;;7039:4;-1:-1:-1;;;;;7026:17:0;:9;-1:-1:-1;;;;;7026:17:0;;;6959:84;6955:203;;;7103:15;;-1:-1:-1;;;;;7069:20:0;;;;;;:9;:20;;;;;;:29;;7092:6;;7069:29;:::i;:::-;7068:50;;7060:86;;;;-1:-1:-1;;;7060:86:0;;7103:2:1;7060:86:0;;;7085:21:1;7142:2;7122:18;;;7115:30;7181:26;7161:18;;;7154:54;7225:18;;7060:86:0;6901:348:1;7060:86:0;7173:16;:14;:16::i;:::-;7170:35;;;7192:10;:8;:10::i;:::-;7237:53;;;;;;;;;;;-1:-1:-1;;;7237:53:0;;;;;;;;-1:-1:-1;;;;;7237:17:0;;-1:-1:-1;7237:17:0;;;:9;:17;;;;;;;;:53;;7259:6;;7237:21;:53::i;:::-;-1:-1:-1;;;;;7217:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7329:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7352:22:0;;;;;;:11;:22;;;;;;;;7329:45;7328:93;;7387:34;7395:6;7403;7411:9;7387:7;:34::i;:::-;7328:93;;;7378:6;7328:93;-1:-1:-1;;;;;7457:20:0;;;;;;:9;:20;;;;;;7303:118;;-1:-1:-1;7457:40:0;;7303:118;7457:24;:40::i;:::-;-1:-1:-1;;;;;7434:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7515:43;;;;;;;;;;7543:14;160:25:1;;148:2;133:18;;14:177;7515:43:0;;;;;;;;-1:-1:-1;7576:4:0;;6665:923;-1:-1:-1;;;;6665:923:0:o;7600:330::-;7730:53;;;;;;;;;;;-1:-1:-1;;;7730:53:0;;;;;;;;-1:-1:-1;;;;;7730:17:0;;7693:4;7730:17;;;:9;:17;;;;;;;:53;;7752:6;;7730:21;:53::i;:::-;-1:-1:-1;;;;;7710:17:0;;;;;;;:9;:17;;;;;;:73;;;;7817:20;;;;;;;:32;;7842:6;7817:24;:32::i;:::-;-1:-1:-1;;;;;7794:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7865:35;;;;;;;;;;7893:6;160:25:1;;148:2;133:18;;14:177;7865:35:0;;;;;;;;-1:-1:-1;7918:4:0;7600:330;;;;;:::o;8669:197::-;8718:4;8742:10;-1:-1:-1;;;;;8756:4:0;8742:18;;;;;:38;;-1:-1:-1;8774:6:0;;;;8773:7;8742:38;:62;;;;-1:-1:-1;8793:11:0;;-1:-1:-1;;;8793:11:0;;;;8742:62;:116;;;;-1:-1:-1;;8845:13:0;;8835:4;8817:24;;;;:9;:24;;;;;;:41;;;8669:197::o;9082:718::-;4364:6;:13;;-1:-1:-1;;4364:13:0;4373:4;4364:13;;;9157:16:::1;::::0;;9171:1:::1;9157:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9157:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9157:16:0::1;9133:40;;9202:4;9184;9189:1;9184:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9184:23:0::1;;;-1:-1:-1::0;;;;;9184:23:0::1;;;::::0;::::1;9228:4;9218;9223:1;9218:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9218:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9245:6:::1;::::0;9317:13:::1;::::0;9245:189:::1;::::0;-1:-1:-1;;;9245:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9317:13;9245:6:::1;::::0;9361:4;;9388::::1;::::0;9408:15:::1;::::0;9245:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9559:8:0::1;::::0;9543:12:::1;::::0;9467:21:::1;::::0;-1:-1:-1;9447:17:0::1;::::0;-1:-1:-1;9531:24:0::1;::::0;9467:21;9531:24:::1;:::i;:::-;9530:37;;;;:::i;:::-;9501:66;;9578:28;9640:8;;9622:14;;9610:9;:26;;;;:::i;:::-;9609:39;;;;:::i;:::-;9669:20;::::0;9661:58:::1;::::0;9578:70;;-1:-1:-1;;;;;;9669:20:0::1;::::0;9661:58;::::1;;;::::0;9700:18;;9669:20:::1;9661:58:::0;9669:20;9661:58;9700:18;9669:20;9661:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9738:22:0::1;::::0;9730:62:::1;::::0;-1:-1:-1;;;;;9738:22:0;;::::1;::::0;9730:62;::::1;;;::::0;9771:20;;9738:22:::1;9730:62:::0;9738:22;9730:62;9771:20;9738:22;9730:62;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4382:6:0;:14;;-1:-1:-1;;4382:14:0;;;-1:-1:-1;;;9082:718:0:o;7938:723::-;8024:7;8047:11;;;:28;;-1:-1:-1;8062:8:0;;:13;8047:28;8044:72;;;-1:-1:-1;8098:6:0;8091:13;;8044:72;8149:18;;-1:-1:-1;;;;;8196:4:0;8183:17;;;;;;8180:154;;-1:-1:-1;8230:14:0;;8180:154;;;8275:4;-1:-1:-1;;;;;8265:14:0;:6;-1:-1:-1;;;;;8265:14:0;;8262:72;;-1:-1:-1;8309:13:0;;8262:72;8346:17;8366:62;8407:20;3902:4;8424:3;8407:20;:::i;:::-;8366:36;8391:10;8366:20;8377:8;;8366:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8346:82;-1:-1:-1;8444:13:0;;8441:172;;8518:4;8500:24;;;;:9;:24;;;;;;:39;;8529:9;8500:28;:39::i;:::-;8491:4;8473:24;;;;:9;:24;;;;;;;:66;;;;8559:42;;-1:-1:-1;;;;;8559:42:0;;;;;;;8591:9;160:25:1;;148:2;133:18;;14:177;8559:42:0;;;;;;;;8441:172;8632:21;:6;8643:9;8632:10;:21::i;:::-;8625:28;7938:723;-1:-1:-1;;;;;;7938:723:0:o;189:181::-;247:7;;279:5;283:1;279;:5;:::i;:::-;267:17;;308:1;303;:6;;295:46;;;;-1:-1:-1;;;295:46:0;;8705:2:1;295:46:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:29;8763:18;;;8756:57;8830:18;;295:46:0;8503:351:1;716:250:0;774:7;798:1;803;798:6;794:47;;-1:-1:-1;828:1:0;821:8;;794:47;853:9;865:5;869:1;865;:5;:::i;:::-;853:17;-1:-1:-1;898:1:0;889:5;893:1;853:17;889:5;:::i;:::-;:10;881:56;;;;-1:-1:-1;;;881:56:0;;9061:2:1;881:56:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:31;9231:19;;881:56:0;8859:397:1;972:132:0;1030:7;1057:39;1061:1;1064;1057:39;;;;;;;;;;;;;;;;;:3;:39::i;376:136::-;434:7;461:43;465:1;468;461:43;;;;;;;;;;;;;;;;;:3;:43::i;1110:189::-;1196:7;1231:12;1224:5;1216:28;;;;-1:-1:-1;;;1216:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1255:9:0;1267:5;1271:1;1267;: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:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:186::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;1862:29;1881:9;1862:29;:::i;2091:316::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;-1:-1:-1;;2276:23:1;;;2346:2;2331:18;;2318:32;;-1:-1:-1;2397:2:1;2382:18;;;2369:32;;2091:316;-1:-1:-1;2091:316:1:o;2620:180::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;-1:-1:-1;2771:23:1;;2620:180;-1:-1:-1;2620:180:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:341::-;3135:6;3143;3196:2;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3251:9;3238:23;3304:5;3297:13;3290:21;3283:5;3280:32;3270:60;;3326:1;3323;3316:12;3642:127;3703:10;3698:3;3694:20;3691:1;3684:31;3734:4;3731:1;3724:15;3758:4;3755:1;3748:15;3774:422;3863:1;3906:5;3863:1;3920:270;3941:7;3931:8;3928:21;3920:270;;;4000:4;3996:1;3992:6;3988:17;3982:4;3979:27;3976:53;;;4009:18;;:::i;:::-;4059:7;4049:8;4045:22;4042:55;;;4079:16;;;;4042:55;4158:22;;;;4118:15;;;;3920:270;;;3924:3;3774:422;;;;;:::o;4201:806::-;4250:5;4280:8;4270:80;;-1:-1:-1;4321:1:1;4335:5;;4270:80;4369:4;4359:76;;-1:-1:-1;4406:1:1;4420:5;;4359:76;4451:4;4469:1;4464:59;;;;4537:1;4532:130;;;;4444:218;;4464:59;4494:1;4485:10;;4508:5;;;4532:130;4569:3;4559:8;4556:17;4553:43;;;4576:18;;:::i;:::-;-1:-1:-1;;4632:1:1;4618:16;;4647:5;;4444:218;;4746:2;4736:8;4733:16;4727:3;4721:4;4718:13;4714:36;4708:2;4698:8;4695:16;4690:2;4684:4;4681:12;4677:35;4674:77;4671:159;;;-1:-1:-1;4783:19:1;;;4815:5;;4671:159;4862:34;4887:8;4881:4;4862:34;:::i;:::-;4932:6;4928:1;4924:6;4920:19;4911:7;4908:32;4905:58;;;4943:18;;:::i;:::-;4981:20;;4201:806;-1:-1:-1;;;4201:806:1:o;5012:140::-;5070:5;5099:47;5140:4;5130:8;5126:19;5120:4;5099:47;:::i;5157:168::-;5230:9;;;5261;;5278:15;;;5272:22;;5258:37;5248:71;;5299:18;;:::i;5330:128::-;5397:9;;;5418:11;;;5415:37;;;5432:18;;:::i;5463:329::-;5665:2;5647:21;;;5704:1;5684:18;;;5677:29;-1:-1:-1;;;5737:2:1;5722:18;;5715:36;5783:2;5768:18;;5463:329::o;6200:217::-;6240:1;6266;6256:132;;6310:10;6305:3;6301:20;6298:1;6291:31;6345:4;6342:1;6335:15;6373:4;6370:1;6363:15;6256:132;-1:-1:-1;6402:9:1;;6200:217::o;6771:125::-;6836:9;;;6857:10;;;6854:36;;;6870:18;;:::i;7386:127::-;7447:10;7442:3;7438:20;7435:1;7428:31;7478:4;7475:1;7468:15;7502:4;7499:1;7492:15;7518:980;7780:4;7828:3;7817:9;7813:19;7859:6;7848:9;7841:25;7885:2;7923:6;7918:2;7907:9;7903:18;7896:34;7966:3;7961:2;7950:9;7946:18;7939:31;7990:6;8025;8019:13;8056:6;8048;8041:22;8094:3;8083:9;8079:19;8072:26;;8133:2;8125:6;8121:15;8107:29;;8154:1;8164:195;8178:6;8175:1;8172:13;8164:195;;;8243:13;;-1:-1:-1;;;;;8239:39:1;8227:52;;8334:15;;;;8299:12;;;;8275:1;8193:9;8164:195;;;-1:-1:-1;;;;;;;8415:32:1;;;;8410:2;8395:18;;8388:60;-1:-1:-1;;;8479:3:1;8464:19;8457:35;8376:3;7518:980;-1:-1:-1;;;7518:980:1:o

Swarm Source

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