POL Price: $0.378661 (+0.61%)
 

Overview

Max Total Supply

77,324,880.990522462969 OPT2

Holders

603

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x8E632f60...14f356fF7
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Rebaser

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-08-31
*/

// SPDX-License-Identifier: MIT
// File: contracts/IBEP20.sol


pragma solidity >=0.4.22 <0.9.0;

interface IBEP20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

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

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

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

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: contracts/Context.sol


pragma solidity >=0.4.22 <0.9.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
// File: contracts/SafeMath.sol


pragma solidity >=0.4.22 <0.9.0;

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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;

        return c;
    }
}
// File: contracts/Token.sol


pragma solidity >=0.4.22 <0.9.0;

//imports




abstract contract Token is Context, IBEP20 {
	using SafeMath for uint256;

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

    uint256 private _totalSupply;
    uint256 private _indexSupply;
    uint256 private _divisor;

    uint256 private constant PERCENTS_DIVIDER = 1000;

    string private constant _name   = "Optimus V2";
    string private constant _symbol = "OPT2";
    
    constructor() {
        
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply.div(divisor());
    }

    function indexSupply() public view returns (uint256) {
        return _indexSupply;
    }

    function divisor() public view returns (uint256) {
        return _divisor;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account].div(divisor());
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender].div(divisor());
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount.mul(divisor()));
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount.mul(divisor()));
        _transfer(from, to, amount.mul(divisor()));
        return true;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount.mul(divisor()));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender).mul(divisor()) + addedValue.mul(divisor()));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender); //no conversion required
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance.mul(divisor()) - subtractedValue.mul(divisor()));
        }

        return true;
    }

    function _setIndexSupply(uint256 toSupply) internal virtual {
        _indexSupply = toSupply;
    }

    function _setDivisor(uint256 toDivisor) internal virtual {
        _divisor = toDivisor;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount.div(divisor()));

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount.div(divisor()));

        _afterTokenTransfer(from, to, amount.div(divisor()));
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount.div(divisor()));

        _totalSupply         += amount;
        _balances[account]   += amount;
        emit Transfer(address(0), account, amount.div(divisor()));

        _afterTokenTransfer(address(0), account, amount.div(divisor()));
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount.div(divisor()));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount.div(divisor()));

        _afterTokenTransfer(account, address(0), amount.div(divisor()));
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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.div(divisor()));
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender).mul(divisor());
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount); // no conversion required
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
// File: contracts/Rebaser.sol


pragma solidity >=0.4.22 <0.9.0;


interface IUniswapV2Pair {
    function skim(address to) external;
    function sync() external;
}

contract Rebaser is Token {
	using SafeMath for uint256;
    
    //config
    uint256 public constant BIG_INT    = ~uint128(0);
    uint256 public constant MAX_SUPPLY = BIG_INT * 10 ** 18;
    uint256 public constant PRE_SUPPLY = 21000000 ether;
    address public constant burnAddress= 0x000000000000000000000000000000000000dEaD;

    //rebases
    uint256 public rewardYield           = 10; //<-------------------- 1 percent
    uint256 public rewardYieldDenominator= 1000;
    uint256 public rebaseFrequency       = 1 days; //<---------------- rebase will be due every 1 days
    uint256 public nextRebase;
    uint256 public currentEpoch;

    //state
    bool public autosync;
    bool public locked;

    //addresses
    address public admin;
    address public pairAddress;

    modifier onlyAdmin() {
        require(isAdmin(msg.sender), "Not authorized.");
        _;
    }

    constructor() {
        admin      = msg.sender; //<---------------------------------- set admin
        nextRebase = block.timestamp + rebaseFrequency; //<----------- set first rebase
        autosync   = true; //<---------------------------------------- will autosync pool

        _setIndexSupply(1 ether); //<--------------------------------- initialize index supply
        _setDivisor(BIG_INT); //<------------------------------------- initialize divisor
        _mint(msg.sender, PRE_SUPPLY.mul(divisor())); //<------------- mint initial supply
    }

    function rebase() private {
        //stop reentry
        locked = true;

        //calc supply delta
        uint256 supply      = indexSupply();
        uint256 supplyDelta = supply.mul(rewardYield).div(rewardYieldDenominator);

        //exec rebase
        coreRebase(supplyDelta);

        //unlock
        locked = false;
    }

    function coreRebase(uint256 supplyDelta) private {
        uint256 old_supply = indexSupply();
        uint256 new_supply;

        if(old_supply < MAX_SUPPLY) {
            new_supply = old_supply.add(supplyDelta);
        } else {
            new_supply = MAX_SUPPLY;
        }

        _setIndexSupply(new_supply);
        _setDivisor(MAX_SUPPLY.div(new_supply));

        nextRebase = block.timestamp + rebaseFrequency;
        currentEpoch++;
    }

    function manualRebase() external {
        if(rebaseDue() && !isLocked()) {
            rebase();
        }

        if(autosync) {
            sync();
        }
    }

    function sync() private {
        IUniswapV2Pair(pairAddress).skim(burnAddress);
        IUniswapV2Pair(pairAddress).sync();
    }

    function rebaseDue() public view returns (bool) {
        return nextRebase <= block.timestamp;
    }

    function isLocked() public view returns (bool) {
        return locked;
    }

    function isAdmin(address atAddress) private view returns (bool) {
        return atAddress == admin;
    }

    function setPairAddress(address toAddress) external onlyAdmin {
        pairAddress = toAddress;
    }

    function setAutosync(bool toState) external onlyAdmin {
        autosync = toState;
    }

    function adminRebase() external onlyAdmin {
        rebase();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"BIG_INT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRE_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"adminRebase","outputs":[],"stateMutability":"nonpayable","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":[],"name":"autosync","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"divisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"indexSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseDue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardYieldDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"toState","type":"bool"}],"name":"setAutosync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052600a6005556103e8600655620151806007553480156200002357600080fd5b50600a805462010000600160b01b0319163362010000021790556007546200004c9042620002ef565b600855600a805460ff191660011790556200006e670de0b6b3a7640000600355565b6200007f6001600160801b03600455565b620000b833620000b26200009260045490565b6a115eec47f6cf7e35000000620000be60201b620007421790919060201c565b62000152565b62000365565b600082620000cf575060006200014c565b6000620000dd83856200032d565b905082620000ec85836200030a565b14620001495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6001600160a01b038216620001aa5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000140565b620001d9600083620001d4620001bf60045490565b856200028660201b620007c11790919060201c565b505050565b8060026000828254620001ed9190620002ef565b90915550506001600160a01b038216600090815260208190526040812080548392906200021c908490620002ef565b90915550506001600160a01b03821660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200025c620001bf60045490565b60405190815260200160405180910390a362000282600083620001d4620001bf60045490565b5050565b6000808211620002d95760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640162000140565b6000620002e783856200030a565b949350505050565b600082198211156200030557620003056200034f565b500190565b6000826200032857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200034a576200034a6200034f565b500290565b634e487b7160e01b600052601160045260246000fd5b61103780620003756000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806389375abf1161010f578063c7b171ae116100a2578063dd62ed3e11610071578063dd62ed3e146103ec578063f3181362146103ff578063f64f524114610407578063f851a4401461041257600080fd5b8063c7b171ae146103bb578063cf309012146103c3578063cff17f4c146103d5578063d7832b11146103e357600080fd5b8063a4e2d634116100de578063a4e2d6341461037c578063a8b089821461038c578063a9059cbb1461039f578063bc7e68a3146103b257600080fd5b806389375abf1461032d57806395d89b4114610336578063a22d483214610356578063a457c2d71461036957600080fd5b8063395093511161018757806370d5ae051161015657806370d5ae05146102de57806376671808146102ff57806376867799146103085780637b7918221461031b57600080fd5b806339509351146102a15780635094c803146102b457806361a9d1b1146102c157806370a08231146102cb57600080fd5b80631f2dc5ef116101c35780631f2dc5ef1461026f57806323b872dd14610277578063313ce5671461028a57806332cb6b0c1461029957600080fd5b806306fdde03146101f5578063095ea7b31461022d5780630af083141461025057806318160ddd14610267575b600080fd5b60408051808201909152600a81526927b83a34b6bab9902b1960b11b60208201525b6040516102249190610ef9565b60405180910390f35b61024061023b366004610ead565b61042b565b6040519015158152602001610224565b61025960055481565b604051908152602001610224565b61025961045a565b600454610259565b610240610285366004610e71565b610476565b60405160128152602001610224565b6102596104b3565b6102406102af366004610ead565b6104cf565b600a546102409060ff1681565b6102c961050c565b005b6102596102d9366004610e23565b610548565b6102e761dead81565b6040516001600160a01b039091168152602001610224565b61025960095481565b6102c9610316366004610ed7565b610575565b6102596a115eec47f6cf7e3500000081565b61025960075481565b60408051808201909152600481526327a82a1960e11b6020820152610217565b6102c9610364366004610e23565b6105c1565b610240610377366004610ead565b610613565b600a54610100900460ff16610240565b600b546102e7906001600160a01b031681565b6102406103ad366004610ead565b6106b2565b61025960085481565b6102c96106c9565b600a5461024090610100900460ff1681565b6102596001600160801b0381565b61025960065481565b6102596103fa366004610e3e565b610701565b600354610259565b600854421015610240565b600a546102e7906201000090046001600160a01b031681565b60008033905061044e818561044961044260045490565b8790610742565b610826565b60019150505b92915050565b600061047161046860045490565b600254906107c1565b905090565b600080339050610492858261048d61044260045490565b61095e565b6104a885856104a361044260045490565b6109e4565b506001949350505050565b6104cc6001600160801b03670de0b6b3a7640000610fb1565b81565b60008033905061044e81856104e661044260045490565b6105026104f260045490565b6104fc878b610701565b90610742565b6104499190610f77565b60085442101580156105265750600a54610100900460ff16155b1561053357610533610bd8565b600a5460ff161561054657610546610c31565b565b600061045461055660045490565b6001600160a01b038416600090815260208190526040902054906107c1565b600a546201000090046001600160a01b031633146105ae5760405162461bcd60e51b81526004016105a590610f4e565b60405180910390fd5b600a805460ff1916911515919091179055565b600a546201000090046001600160a01b031633146105f15760405162461bcd60e51b81526004016105a590610f4e565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600033816106218286610701565b9050838110156106815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105a5565b6104a8828661069961069260045490565b8890610742565b6106ac6106a560045490565b8690610742565b03610826565b60008033905061044e81856104a361044260045490565b600a546201000090046001600160a01b031633146106f95760405162461bcd60e51b81526004016105a590610f4e565b610546610bd8565b600061073b61070f60045490565b6001600160a01b03808616600090815260016020908152604080832093881683529290522054906107c1565b9392505050565b60008261075157506000610454565b600061075d8385610fb1565b90508261076a8583610f8f565b1461073b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a5565b60008082116108125760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016105a5565b600061081e8385610f8f565b949350505050565b6001600160a01b0383166108885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a5565b6001600160a01b0382166108e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a5565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290208390557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561094861094160045490565b85906107c1565b60405190815260200160405180910390a3505050565b600061097661096c60045490565b6104fc8686610701565b905060001981146109de57818110156109d15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a5565b6109de8484848403610826565b50505050565b6001600160a01b038316610a485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a5565b6001600160a01b038216610aaa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a5565b610ac08383610abb61094160045490565b505050565b6001600160a01b03831660009081526020819052604090205481811015610b385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610b6f908490610f77565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bb6610baf60045490565b86906107c1565b60405190815260200160405180910390a36109de8484610abb610baf60045490565b600a805461ff0019166101001790556000610bf260035490565b90506000610c17600654610c116005548561074290919063ffffffff16565b906107c1565b9050610c2281610cf4565b5050600a805461ff0019169055565b600b5460405163bc25cf7760e01b815261dead60048201526001600160a01b039091169063bc25cf7790602401600060405180830381600087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b50505050600b60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ce057600080fd5b505af11580156109de573d6000803e3d6000fd5b6000610cff60035490565b90506000610d1c6001600160801b03670de0b6b3a7640000610fb1565b821015610d3457610d2d8284610da8565b9050610d50565b610d4d6001600160801b03670de0b6b3a7640000610fb1565b90505b610d5981600355565b610d7e610d7982610c116001600160801b03670de0b6b3a7640000610fb1565b600455565b600754610d8b9042610f77565b60085560098054906000610d9e83610fd0565b9190505550505050565b600080610db58385610f77565b90508381101561073b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a5565b80356001600160a01b0381168114610e1e57600080fd5b919050565b600060208284031215610e3557600080fd5b61073b82610e07565b60008060408385031215610e5157600080fd5b610e5a83610e07565b9150610e6860208401610e07565b90509250929050565b600080600060608486031215610e8657600080fd5b610e8f84610e07565b9250610e9d60208501610e07565b9150604084013590509250925092565b60008060408385031215610ec057600080fd5b610ec983610e07565b946020939093013593505050565b600060208284031215610ee957600080fd5b8135801515811461073b57600080fd5b600060208083528351808285015260005b81811015610f2657858101830151858201604001528201610f0a565b81811115610f38576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e2737ba1030baba3437b934bd32b21760891b604082015260600190565b60008219821115610f8a57610f8a610feb565b500190565b600082610fac57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610fcb57610fcb610feb565b500290565b6000600019821415610fe457610fe4610feb565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b2522d9489e55488c9e2363235e989e4943fd0fdaf88530be2b886dc22b34e3964736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806389375abf1161010f578063c7b171ae116100a2578063dd62ed3e11610071578063dd62ed3e146103ec578063f3181362146103ff578063f64f524114610407578063f851a4401461041257600080fd5b8063c7b171ae146103bb578063cf309012146103c3578063cff17f4c146103d5578063d7832b11146103e357600080fd5b8063a4e2d634116100de578063a4e2d6341461037c578063a8b089821461038c578063a9059cbb1461039f578063bc7e68a3146103b257600080fd5b806389375abf1461032d57806395d89b4114610336578063a22d483214610356578063a457c2d71461036957600080fd5b8063395093511161018757806370d5ae051161015657806370d5ae05146102de57806376671808146102ff57806376867799146103085780637b7918221461031b57600080fd5b806339509351146102a15780635094c803146102b457806361a9d1b1146102c157806370a08231146102cb57600080fd5b80631f2dc5ef116101c35780631f2dc5ef1461026f57806323b872dd14610277578063313ce5671461028a57806332cb6b0c1461029957600080fd5b806306fdde03146101f5578063095ea7b31461022d5780630af083141461025057806318160ddd14610267575b600080fd5b60408051808201909152600a81526927b83a34b6bab9902b1960b11b60208201525b6040516102249190610ef9565b60405180910390f35b61024061023b366004610ead565b61042b565b6040519015158152602001610224565b61025960055481565b604051908152602001610224565b61025961045a565b600454610259565b610240610285366004610e71565b610476565b60405160128152602001610224565b6102596104b3565b6102406102af366004610ead565b6104cf565b600a546102409060ff1681565b6102c961050c565b005b6102596102d9366004610e23565b610548565b6102e761dead81565b6040516001600160a01b039091168152602001610224565b61025960095481565b6102c9610316366004610ed7565b610575565b6102596a115eec47f6cf7e3500000081565b61025960075481565b60408051808201909152600481526327a82a1960e11b6020820152610217565b6102c9610364366004610e23565b6105c1565b610240610377366004610ead565b610613565b600a54610100900460ff16610240565b600b546102e7906001600160a01b031681565b6102406103ad366004610ead565b6106b2565b61025960085481565b6102c96106c9565b600a5461024090610100900460ff1681565b6102596001600160801b0381565b61025960065481565b6102596103fa366004610e3e565b610701565b600354610259565b600854421015610240565b600a546102e7906201000090046001600160a01b031681565b60008033905061044e818561044961044260045490565b8790610742565b610826565b60019150505b92915050565b600061047161046860045490565b600254906107c1565b905090565b600080339050610492858261048d61044260045490565b61095e565b6104a885856104a361044260045490565b6109e4565b506001949350505050565b6104cc6001600160801b03670de0b6b3a7640000610fb1565b81565b60008033905061044e81856104e661044260045490565b6105026104f260045490565b6104fc878b610701565b90610742565b6104499190610f77565b60085442101580156105265750600a54610100900460ff16155b1561053357610533610bd8565b600a5460ff161561054657610546610c31565b565b600061045461055660045490565b6001600160a01b038416600090815260208190526040902054906107c1565b600a546201000090046001600160a01b031633146105ae5760405162461bcd60e51b81526004016105a590610f4e565b60405180910390fd5b600a805460ff1916911515919091179055565b600a546201000090046001600160a01b031633146105f15760405162461bcd60e51b81526004016105a590610f4e565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600033816106218286610701565b9050838110156106815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105a5565b6104a8828661069961069260045490565b8890610742565b6106ac6106a560045490565b8690610742565b03610826565b60008033905061044e81856104a361044260045490565b600a546201000090046001600160a01b031633146106f95760405162461bcd60e51b81526004016105a590610f4e565b610546610bd8565b600061073b61070f60045490565b6001600160a01b03808616600090815260016020908152604080832093881683529290522054906107c1565b9392505050565b60008261075157506000610454565b600061075d8385610fb1565b90508261076a8583610f8f565b1461073b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a5565b60008082116108125760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016105a5565b600061081e8385610f8f565b949350505050565b6001600160a01b0383166108885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a5565b6001600160a01b0382166108e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a5565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290208390557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561094861094160045490565b85906107c1565b60405190815260200160405180910390a3505050565b600061097661096c60045490565b6104fc8686610701565b905060001981146109de57818110156109d15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a5565b6109de8484848403610826565b50505050565b6001600160a01b038316610a485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a5565b6001600160a01b038216610aaa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a5565b610ac08383610abb61094160045490565b505050565b6001600160a01b03831660009081526020819052604090205481811015610b385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610b6f908490610f77565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bb6610baf60045490565b86906107c1565b60405190815260200160405180910390a36109de8484610abb610baf60045490565b600a805461ff0019166101001790556000610bf260035490565b90506000610c17600654610c116005548561074290919063ffffffff16565b906107c1565b9050610c2281610cf4565b5050600a805461ff0019169055565b600b5460405163bc25cf7760e01b815261dead60048201526001600160a01b039091169063bc25cf7790602401600060405180830381600087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b50505050600b60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ce057600080fd5b505af11580156109de573d6000803e3d6000fd5b6000610cff60035490565b90506000610d1c6001600160801b03670de0b6b3a7640000610fb1565b821015610d3457610d2d8284610da8565b9050610d50565b610d4d6001600160801b03670de0b6b3a7640000610fb1565b90505b610d5981600355565b610d7e610d7982610c116001600160801b03670de0b6b3a7640000610fb1565b600455565b600754610d8b9042610f77565b60085560098054906000610d9e83610fd0565b9190505550505050565b600080610db58385610f77565b90508381101561073b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a5565b80356001600160a01b0381168114610e1e57600080fd5b919050565b600060208284031215610e3557600080fd5b61073b82610e07565b60008060408385031215610e5157600080fd5b610e5a83610e07565b9150610e6860208401610e07565b90509250929050565b600080600060608486031215610e8657600080fd5b610e8f84610e07565b9250610e9d60208501610e07565b9150604084013590509250925092565b60008060408385031215610ec057600080fd5b610ec983610e07565b946020939093013593505050565b600060208284031215610ee957600080fd5b8135801515811461073b57600080fd5b600060208083528351808285015260005b81811015610f2657858101830151858201604001528201610f0a565b81811115610f38576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600f908201526e2737ba1030baba3437b934bd32b21760891b604082015260600190565b60008219821115610f8a57610f8a610feb565b500190565b600082610fac57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610fcb57610fcb610feb565b500290565b6000600019821415610fe457610fe4610feb565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b2522d9489e55488c9e2363235e989e4943fd0fdaf88530be2b886dc22b34e3964736f6c63430008070033

Deployed Bytecode Sourcemap

10729:3243:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:100;4946:5;;;;;;;;;;;;-1:-1:-1;;;4946:5:0;;;;4859:100;;;;;;;:::i;:::-;;;;;;;;6340:216;;;;;;:::i;:::-;;:::i;:::-;;;1891:14:1;;1884:22;1866:41;;1854:2;1839:18;6340:216:0;1726:187:1;11090:41:0;;;;;;;;;6912:25:1;;;6900:2;6885:18;11090:41:0;6766:177:1;5180:123:0;;;:::i;5410:83::-;5477:8;;5410:83;;6041:291;;;;;;:::i;:::-;;:::i;5079:93::-;;;5162:2;7090:36:1;;7078:2;7063:18;5079:93:0;6948:184:1;10867:55:0;;;:::i;6564:268::-;;;;;;:::i;:::-;;:::i;11407:20::-;;;;;;;;;13051:175;;;:::i;:::-;;5501:142;;;;;;:::i;:::-;;:::i;10987:79::-;;11024:42;10987:79;;;;;-1:-1:-1;;;;;1682:32:1;;;1664:51;;1652:2;1637:18;10987:79:0;1518:203:1;11358:27:0;;;;;;13801:91;;;;;;:::i;:::-;;:::i;10929:51::-;;10966:14;10929:51;;11222:45;;;;;;4967:104;5056:7;;;;;;;;;;;;-1:-1:-1;;;5056:7:0;;;;4967:104;;13689;;;;;;:::i;:::-;;:::i;6840:491::-;;;;;;:::i;:::-;;:::i;13486:79::-;13551:6;;;;;;;13486:79;;11505:26;;;;;-1:-1:-1;;;;;11505:26:0;;;5825:208;;;;;;:::i;:::-;;:::i;11326:25::-;;;;;;13900:69;;;:::i;11434:18::-;;;;;;;;;;;;10812:48;;-1:-1:-1;;;;;10812:48:0;;11172:43;;;;;;5651:166;;;;;;:::i;:::-;;:::i;5311:91::-;5382:12;;5311:91;;13375:103;13441:10;;13455:15;-1:-1:-1;13441:29:0;13375:103;;11478:20;;;;;;;;-1:-1:-1;;;;;11478:20:0;;;6340:216;6423:4;;3311:10;6440:28;;6479:47;6488:5;6495:7;6504:21;6515:9;5477:8;;;5410:83;6515:9;6504:6;;:10;:21::i;:::-;6479:8;:47::i;:::-;6544:4;6537:11;;;6340:216;;;;;:::o;5180:123::-;5241:7;5268:27;5285:9;5477:8;;;5410:83;5285:9;5268:12;;;:16;:27::i;:::-;5261:34;;5180:123;:::o;6041:291::-;6138:4;;3311:10;6155:30;;6196:53;6212:4;6218:7;6227:21;6238:9;5477:8;;;5410:83;6227:21;6196:15;:53::i;:::-;6260:42;6270:4;6276:2;6280:21;6291:9;5477:8;;;5410:83;6280:21;6260:9;:42::i;:::-;-1:-1:-1;6320:4:0;;6041:291;-1:-1:-1;;;;6041:291:0:o;10867:55::-;10904:18;-1:-1:-1;;;;;10914:8:0;10904:18;:::i;:::-;10867:55;:::o;6564:268::-;6652:4;;3311:10;6669:28;;6708:94;6717:5;6724:7;6776:25;6791:9;5477:8;;;5410:83;6776:25;6733:40;6763:9;5477:8;;;5410:83;6763:9;6733:25;6743:5;6750:7;6733:9;:25::i;:::-;:29;;:40::i;:::-;:68;;;;:::i;13051:175::-;13441:10;;13455:15;-1:-1:-1;13441:29:0;13098:26;;;;-1:-1:-1;13551:6:0;;;;;;;13113:11;13098:26;13095:66;;;13141:8;:6;:8::i;:::-;13176;;;;13173:46;;;13201:6;:4;:6::i;:::-;13051:175::o;5501:142::-;5575:7;5602:33;5625:9;5477:8;;;5410:83;5625:9;-1:-1:-1;;;;;5602:18:0;;:9;:18;;;;;;;;;;;;:22;:33::i;13801:91::-;13668:5;;;;;-1:-1:-1;;;;;13668:5:0;11588:10;13655:18;11572:47;;;;-1:-1:-1;;;11572:47:0;;;;;;;:::i;:::-;;;;;;;;;13866:8:::1;:18:::0;;-1:-1:-1;;13866:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13801:91::o;13689:104::-;13668:5;;;;;-1:-1:-1;;;;;13668:5:0;11588:10;13655:18;11572:47;;;;-1:-1:-1;;;11572:47:0;;;;;;;:::i;:::-;13762:11:::1;:23:::0;;-1:-1:-1;;;;;;13762:23:0::1;-1:-1:-1::0;;;;;13762:23:0;;;::::1;::::0;;;::::1;::::0;;13689:104::o;6840:491::-;6933:4;3311:10;6933:4;7016:25;3311:10;7033:7;7016:9;:25::i;:::-;6989:52;;7105:15;7085:16;:35;;7077:85;;;;-1:-1:-1;;;7077:85:0;;6562:2:1;7077:85:0;;;6544:21:1;6601:2;6581:18;;;6574:30;6640:34;6620:18;;;6613:62;-1:-1:-1;;;6691:18:1;;;6684:35;6736:19;;7077:85:0;6360:401:1;7077:85:0;7198:90;7207:5;7214:7;7257:30;7277:9;5477:8;;;5410:83;7277:9;7257:15;;:19;:30::i;:::-;7223:31;7244:9;5477:8;;;5410:83;7244:9;7223:16;;:20;:31::i;:::-;:64;7198:8;:90::i;5825:208::-;5904:4;;3311:10;5921:28;;5960:43;5970:5;5977:2;5981:21;5992:9;5477:8;;;5410:83;13900:69;13668:5;;;;;-1:-1:-1;;;;;13668:5:0;11588:10;13655:18;11572:47;;;;-1:-1:-1;;;11572:47:0;;;;;;;:::i;:::-;13953:8:::1;:6;:8::i;5651:166::-:0;5740:7;5767:42;5799:9;5477:8;;;5410:83;5799:9;-1:-1:-1;;;;;5767:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;:31;:42::i;:::-;5760:49;5651:166;-1:-1:-1;;;5651:166:0:o;3812:250::-;3870:7;3894:6;3890:47;;-1:-1:-1;3924:1:0;3917:8;;3890:47;3949:9;3961:5;3965:1;3961;:5;:::i;:::-;3949:17;-1:-1:-1;3994:1:0;3985:5;3989:1;3949:17;3985:5;:::i;:::-;:10;3977:56;;;;-1:-1:-1;;;3977:56:0;;5349:2:1;3977:56:0;;;5331:21:1;5388:2;5368:18;;;5361:30;5427:34;5407:18;;;5400:62;-1:-1:-1;;;5478:18:1;;;5471:31;5519:19;;3977:56:0;5147:397:1;4070:179:0;4128:7;4160:1;4156;:5;4148:44;;;;-1:-1:-1;;;4148:44:0;;4650:2:1;4148:44:0;;;4632:21:1;4689:2;4669:18;;;4662:30;4728:28;4708:18;;;4701:56;4774:18;;4148:44:0;4448:350:1;4148:44:0;4203:9;4215:5;4219:1;4215;:5;:::i;:::-;4203:17;4070:179;-1:-1:-1;;;;4070:179:0:o;9383:395::-;-1:-1:-1;;;;;9519:19:0;;9511:68;;;;-1:-1:-1;;;9511:68:0;;6157:2:1;9511:68:0;;;6139:21:1;6196:2;6176:18;;;6169:30;6235:34;6215:18;;;6208:62;-1:-1:-1;;;6286:18:1;;;6279:34;6330:19;;9511:68:0;5955:400:1;9511:68:0;-1:-1:-1;;;;;9598:21:0;;9590:68;;;;-1:-1:-1;;;9590:68:0;;3126:2:1;9590:68:0;;;3108:21:1;3165:2;3145:18;;;3138:30;3204:34;3184:18;;;3177:62;-1:-1:-1;;;3255:18:1;;;3248:32;3297:19;;9590:68:0;2924:398:1;9590:68:0;-1:-1:-1;;;;;9671:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;;;9723:47;9748:21;9759:9;5477:8;;;5410:83;9759:9;9748:6;;:10;:21::i;:::-;9723:47;;6912:25:1;;;6900:2;6885:18;9723:47:0;;;;;;;9383:395;;;:::o;9786:494::-;9921:24;9948:40;9978:9;5477:8;;;5410:83;9978:9;9948:25;9958:5;9965:7;9948:9;:25::i;:40::-;9921:67;;-1:-1:-1;;10003:16:0;:37;9999:274;;10085:6;10065:16;:26;;10057:68;;;;-1:-1:-1;;;10057:68:0;;3885:2:1;10057:68:0;;;3867:21:1;3924:2;3904:18;;;3897:30;3963:31;3943:18;;;3936:59;4012:18;;10057:68:0;3683:353:1;10057:68:0;10169:51;10178:5;10185:7;10213:6;10194:16;:25;10169:8;:51::i;:::-;9910:370;9786:494;;;:::o;7553:716::-;-1:-1:-1;;;;;7684:18:0;;7676:68;;;;-1:-1:-1;;;7676:68:0;;5751:2:1;7676:68:0;;;5733:21:1;5790:2;5770:18;;;5763:30;5829:34;5809:18;;;5802:62;-1:-1:-1;;;5880:18:1;;;5873:35;5925:19;;7676:68:0;5549:401:1;7676:68:0;-1:-1:-1;;;;;7763:16:0;;7755:64;;;;-1:-1:-1;;;7755:64:0;;2722:2:1;7755:64:0;;;2704:21:1;2761:2;2741:18;;;2734:30;2800:34;2780:18;;;2773:62;-1:-1:-1;;;2851:18:1;;;2844:33;2894:19;;7755:64:0;2520:399:1;7755:64:0;7832:53;7853:4;7859:2;7863:21;7874:9;5477:8;;;5410:83;7863:21;10288:125;;;;7832:53;-1:-1:-1;;;;;7920:15:0;;7898:19;7920:15;;;;;;;;;;;7954:21;;;;7946:72;;;;-1:-1:-1;;;7946:72:0;;4243:2:1;7946:72:0;;;4225:21:1;4282:2;4262:18;;;4255:30;4321:34;4301:18;;;4294:62;-1:-1:-1;;;4372:18:1;;;4365:36;4418:19;;7946:72:0;4041:402:1;7946:72:0;-1:-1:-1;;;;;8054:15:0;;;:9;:15;;;;;;;;;;;8072:20;;;8054:38;;8114:13;;;;;;;;:23;;8086:6;;8054:9;8114:23;;8086:6;;8114:23;:::i;:::-;;;;-1:-1:-1;;;;;;;8155:41:0;;;;;;;8174:21;8185:9;5477:8;;;5410:83;8185:9;8174:6;;:10;:21::i;:::-;8155:41;;6912:25:1;;;6900:2;6885:18;8155:41:0;;;;;;;8209:52;8229:4;8235:2;8239:21;8250:9;5477:8;;;5410:83;12220:347;12281:6;:13;;-1:-1:-1;;12281:13:0;;;;;;12358;5382:12;;;5311:91;12358:13;12336:35;;12382:19;12404:51;12432:22;;12404:23;12415:11;;12404:6;:10;;:23;;;;:::i;:::-;:27;;:51::i;:::-;12382:73;;12491:23;12502:11;12491:10;:23::i;:::-;-1:-1:-1;;12545:6:0;:14;;-1:-1:-1;;12545:14:0;;;12220:347::o;13234:133::-;13284:11;;13269:45;;-1:-1:-1;;;13269:45:0;;11024:42;13269:45;;;1664:51:1;-1:-1:-1;;;;;13284:11:0;;;;13269:32;;1637:18:1;;13269:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13340:11;;;;;;;;;-1:-1:-1;;;;;13340:11:0;-1:-1:-1;;;;;13325:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12575:468;12635:18;12656:13;5382:12;;;5311:91;12656:13;12635:34;-1:-1:-1;12680:18:0;10904;-1:-1:-1;;;;;10914:8:0;10904:18;:::i;:::-;12714:10;:23;12711:151;;;12767:27;:10;12782:11;12767:14;:27::i;:::-;12754:40;;12711:151;;;10904:18;-1:-1:-1;;;;;10914:8:0;10904:18;:::i;:::-;12827:23;;12711:151;12874:27;12890:10;7410:12;:23;7339:102;12874:27;12912:39;12924:26;12939:10;10904:18;-1:-1:-1;;;;;10914:8:0;10904:18;:::i;12924:26::-;7517:8;:20;7449:96;12912:39;12995:15;;12977:33;;:15;:33;:::i;:::-;12964:10;:46;13021:12;:14;;;:12;:14;;;:::i;:::-;;;;;;12624:419;;12575:468;:::o;3431:181::-;3489:7;;3521:5;3525:1;3521;:5;:::i;:::-;3509:17;;3550:1;3545;:6;;3537:46;;;;-1:-1:-1;;;3537:46:0;;3529:2:1;3537:46:0;;;3511:21:1;3568:2;3548:18;;;3541:30;3607:29;3587:18;;;3580:57;3654:18;;3537:46:0;3327:351:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:52;;;1126:1;1123;1116:12;1078:52;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;981:254:1:o;1240:273::-;1296:6;1349:2;1337:9;1328:7;1324:23;1320:32;1317:52;;;1365:1;1362;1355:12;1317:52;1404:9;1391:23;1457:5;1450:13;1443:21;1436:5;1433:32;1423:60;;1479:1;1476;1469:12;1918:597;2030:4;2059:2;2088;2077:9;2070:21;2120:6;2114:13;2163:6;2158:2;2147:9;2143:18;2136:34;2188:1;2198:140;2212:6;2209:1;2206:13;2198:140;;;2307:14;;;2303:23;;2297:30;2273:17;;;2292:2;2269:26;2262:66;2227:10;;2198:140;;;2356:6;2353:1;2350:13;2347:91;;;2426:1;2421:2;2412:6;2401:9;2397:22;2393:31;2386:42;2347:91;-1:-1:-1;2499:2:1;2478:15;-1:-1:-1;;2474:29:1;2459:45;;;;2506:2;2455:54;;1918:597;-1:-1:-1;;;1918:597:1:o;4803:339::-;5005:2;4987:21;;;5044:2;5024:18;;;5017:30;-1:-1:-1;;;5078:2:1;5063:18;;5056:45;5133:2;5118:18;;4803:339::o;7137:128::-;7177:3;7208:1;7204:6;7201:1;7198:13;7195:39;;;7214:18;;:::i;:::-;-1:-1:-1;7250:9:1;;7137:128::o;7270:217::-;7310:1;7336;7326:132;;7380:10;7375:3;7371:20;7368:1;7361:31;7415:4;7412:1;7405:15;7443:4;7440:1;7433:15;7326:132;-1:-1:-1;7472:9:1;;7270:217::o;7492:168::-;7532:7;7598:1;7594;7590:6;7586:14;7583:1;7580:21;7575:1;7568:9;7561:17;7557:45;7554:71;;;7605:18;;:::i;:::-;-1:-1:-1;7645:9:1;;7492:168::o;7665:135::-;7704:3;-1:-1:-1;;7725:17:1;;7722:43;;;7745:18;;:::i;:::-;-1:-1:-1;7792:1:1;7781:13;;7665:135::o;7805:127::-;7866:10;7861:3;7857:20;7854:1;7847:31;7897:4;7894:1;7887:15;7921:4;7918:1;7911:15

Swarm Source

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