ETH Price: $3,927.74 (-0.91%)

Token

beefy.finance (BIFI)

Overview

Max Total Supply

12,778.020632966884383576 BIFI

Holders

1,627 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000288253587469574 BIFI

Value
$0.00
0xd935a63d629cac4cfc8f632a2f4aab3ca8d99e38
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
AnyswapV6ERC20

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at optimistic.etherscan.io on 2022-10-08
*/

/**
 *Submitted for verification at Optimistic.Etherscan.io on 2022-05-20
*/

/**
 *Submitted for verification at FtmScan.com on 2022-05-20
*/

/**
 *Submitted for verification at BscScan.com on 2022-05-20
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity ^0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    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);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV6ERC20 is IERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;
    bool public constant underlyingIsMinted = false;

    /// @dev Records amount of AnyswapV6ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    // init flag for setting immediate vault, needed for CREATE2 support
    bool private _init;

    // flag to enable/disable swapout vs vault.burn so multiple events are triggered
    bool private _vaultOnly;

    // delay for timelock functions
    uint public constant DELAY = 2 days;

    // set of minters, can be this bridge or other bridges
    mapping(address => bool) public isMinter;
    address[] public minters;

    // primary controller of the token contract
    address public vault;

    address public pendingMinter;
    uint public delayMinter;

    address public pendingVault;
    uint public delayVault;

    modifier onlyAuth() {
        require(isMinter[msg.sender], "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    modifier onlyVault() {
        require(msg.sender == vault, "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    function owner() external view returns (address) {
        return vault;
    }

    function mpc() external view returns (address) {
        return vault;
    }

    function setVaultOnly(bool enabled) external onlyVault {
        _vaultOnly = enabled;
    }

    function initVault(address _vault) external onlyVault {
        require(_init);
        _init = false;
        vault = _vault;
        isMinter[_vault] = true;
        minters.push(_vault);
    }

    function setVault(address _vault) external onlyVault {
        require(_vault != address(0), "AnyswapV6ERC20: address(0)");
        pendingVault = _vault;
        delayVault = block.timestamp + DELAY;
    }

    function applyVault() external onlyVault {
        require(pendingVault != address(0) && block.timestamp >= delayVault);
        vault = pendingVault;

        pendingVault = address(0);
        delayVault = 0;
    }

    function setMinter(address _auth) external onlyVault {
        require(_auth != address(0), "AnyswapV6ERC20: address(0)");
        pendingMinter = _auth;
        delayMinter = block.timestamp + DELAY;
    }

    function applyMinter() external onlyVault {
        require(pendingMinter != address(0) && block.timestamp >= delayMinter);
        isMinter[pendingMinter] = true;
        minters.push(pendingMinter);

        pendingMinter = address(0);
        delayMinter = 0;
    }

    // No time delay revoke minter emergency function
    function revokeMinter(address _auth) external onlyVault {
        isMinter[_auth] = false;
    }

    function getAllMinters() external view returns (address[] memory) {
        return minters;
    }

    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV6ERC20: address(0)");
        emit LogChangeVault(vault, newVault, block.timestamp);
        vault = newVault;
        pendingVault = address(0);
        delayVault = 0;
        return true;
    }

    function mint(address to, uint256 amount) external onlyAuth returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyAuth returns (bool) {
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) external onlyAuth returns (bool) {
        if (underlying != address(0) && IERC20(underlying).balanceOf(address(this)) >= amount) {
            IERC20(underlying).safeTransfer(account, amount);
        } else {
            _mint(account, amount);
        }
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) external returns (bool) {
        require(!_vaultOnly, "AnyswapV6ERC20: vaultOnly");
        require(bindaddr != address(0), "AnyswapV6ERC20: address(0)");
        if (underlying != address(0) && balanceOf[msg.sender] < amount) {
            IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        } else {
            _burn(msg.sender, amount);
        }
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records number of AnyswapV6ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        // Use init to allow for CREATE2 accross all chains
        _init = true;

        // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens
        _vaultOnly = false;

        vault = _vault;
    }

    /// @dev Returns the total supply of AnyswapV6ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return amount;
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 balance = balanceOf[account];
        require(balance >= amount, "ERC20: burn amount exceeds balance");

        balanceOf[account] = balance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV6ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from caller's account to account (`to`).
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV6ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV6ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV6ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV6ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"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":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","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":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"underlyingIsMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b50604051620021e0380380620021e08339810160408190526200003491620002cf565b8451620000499060009060208801906200012d565b5083516200005f9060019060208701906200012d565b5060ff83166080526001600160a01b03821660a081905215620000f357816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e1919062000371565b60ff168360ff1614620000f357600080fd5b6004805461ffff19166001179055600780546001600160a01b039092166001600160a01b031990921691909117905550620003d292505050565b8280546200013b9062000396565b90600052602060002090601f0160209004810192826200015f5760008555620001aa565b82601f106200017a57805160ff1916838001178555620001aa565b82800160010185558215620001aa579182015b82811115620001aa5782518255916020019190600101906200018d565b50620001b8929150620001bc565b5090565b5b80821115620001b85760008155600101620001bd565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001fb57600080fd5b81516001600160401b0380821115620002185762000218620001d3565b604051601f8301601f19908116603f01168101908282118183101715620002435762000243620001d3565b816040528381526020925086838588010111156200026057600080fd5b600091505b8382101562000284578582018301518183018401529082019062000265565b83821115620002965760008385830101525b9695505050505050565b805160ff81168114620002b257600080fd5b919050565b80516001600160a01b0381168114620002b257600080fd5b600080600080600060a08688031215620002e857600080fd5b85516001600160401b03808211156200030057600080fd5b6200030e89838a01620001e9565b965060208801519150808211156200032557600080fd5b506200033488828901620001e9565b9450506200034560408701620002a0565b92506200035560608701620002b7565b91506200036560808701620002b7565b90509295509295909350565b6000602082840312156200038457600080fd5b6200038f82620002a0565b9392505050565b600181811c90821680620003ab57607f821691505b602082108103620003cc57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051611d866200045a600039600081816103f701528181610c4c01528181610ca201528181610da301528181610f8d0152818161109d01528181611117015281816111fb01528181611243015281816112cb015281816113bf015281816113f20152818161143e015281816116f40152611727015260006103220152611d866000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610455578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a045442c1161010a578063a045442c14610494578063a9059cbb146104a9578063aa271e1a146104bc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b806387689e281461044c5780638da5cb5b1461045557806391c5df491461046657806395d89b41146104795780639dc29fac1461048157600080fd5b80633ccfd60b116101df5780636817031b116101a35780636817031b146103c257806369b41170146103d55780636e553f65146103df5780636f307dc3146103f257806370a08231146104195780638623ec7b1461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c578063628d6cba146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611977565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119b3565b6105f9565b6102a261060d565b60405161027e9190611a0b565b6102c26102bd366004611a3e565b61069b565b604051901515815260200161027e565b6102da610707565b005b600354610274565b6102c26102f2366004611a68565b6107d6565b610274610305366004611aa4565b6109d4565b6102da610318366004611abd565b6109e7565b6103447f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027e565b610274610aa1565b6102c261036c366004611a3e565b610ac2565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611abd565b610b04565b6102c26103bd3660046119b3565b610bc9565b6102da6103d0366004611abd565b610d16565b6102746202a30081565b6102746103ed3660046119b3565b610d94565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610427366004611abd565b60026020526000908152604090205481565b610384610447366004611aa4565b610dd5565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610dff565b6102c261048f366004611a3e565b610e0c565b61049c610e45565b60405161027e9190611ad8565b6102c26104b7366004611a3e565b610ea7565b6102c26104ca366004611abd565b60056020526000908152604090205460ff1681565b6102746104ed366004611aa4565b610f7e565b6102746105003660046119b3565b610fbf565b61027460095481565b6102da61051c366004611b36565b610fec565b6102da61052f366004611abd565b611030565b61027461107b565b6102c2600081565b6102da61114f565b61027461055a366004611b53565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611b7d565b6111ca565b600754610384906001600160a01b031681565b6102da6105ab366004611abd565b61133d565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611ba2565b60405180910390fd5b6105f18484846113bb565b949350505050565b60006106063384846113bb565b9392505050565b6000805461061a90611bd9565b80601f016020809104026020016040519081016040528092919081815260200182805461064690611bd9565b80156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f69086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107315760405162461bcd60e51b81526004016105dd90611ba2565b6008546001600160a01b03161580159061074d57506009544210155b61075657600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107f957506001600160a01b0383163014155b61080257600080fd5b6001600160a01b038416331461090e576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090c57828110156108a15760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108ad8483611c29565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109475760405162461bcd60e51b81526004016105dd90611c40565b6109518382611c29565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610987908490611c8f565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611d31833981519152856040516109c191815260200190565b60405180910390a3506001949350505050565b60006109e13383336113bb565b92915050565b6007546001600160a01b03163314610a115760405162461bcd60e51b81526004016105dd90611ba2565b60045460ff16610a2057600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610abd91816113bb565b905090565b3360009081526005602052604081205460ff16610af15760405162461bcd60e51b81526004016105dd90611ba2565b610afb838361146d565b50600192915050565b6007546000906001600160a01b03163314610b315760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b038216610b575760405162461bcd60e51b81526004016105dd90611ca7565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b600454600090610100900460ff1615610c245760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b6001600160a01b038216610c4a5760405162461bcd60e51b81526004016105dd90611ca7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610c9057503360009081526002602052604090205483115b15610ccf57610cca6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661153a565b610cd9565b610cd933846115ab565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016106f6565b6007546001600160a01b03163314610d405760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b038116610d665760405162461bcd60e51b81526004016105dd90611ca7565b600a80546001600160a01b0319166001600160a01b038316179055610d8e6202a30042611c8f565b600b5550565b6000610dcb6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661153a565b61060683836116f0565b60068181548110610de557600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061a90611bd9565b3360009081526005602052604081205460ff16610e3b5760405162461bcd60e51b81526004016105dd90611ba2565b610afb83836115ab565b60606006805480602002602001604051908101604052809291908181526020018280548015610e9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e7f575b5050505050905090565b60006001600160a01b03831615801590610eca57506001600160a01b0383163014155b610ed357600080fd5b3360009081526002602052604090205482811015610f035760405162461bcd60e51b81526004016105dd90611c40565b610f0d8382611c29565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610f40908490611c8f565b90915550506040518381526001600160a01b038516903390600080516020611d31833981519152906020015b60405180910390a35060019392505050565b6000610fb56001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561153a565b6109e182336116f0565b6007546000906001600160a01b03163314610dcb5760405162461bcd60e51b81526004016105dd90611ba2565b6007546001600160a01b031633146110165760405162461bcd60e51b81526004016105dd90611ba2565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b0316331461105a5760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611cde565b905061113f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308461153a565b61114981336116f0565b91505090565b6007546001600160a01b031633146111795760405162461bcd60e51b81526004016105dd90611ba2565b600a546001600160a01b0316158015906111955750600b544210155b61119e57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111f95760405162461bcd60e51b81526004016105dd90611ba2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112b957506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b69190611cde565b10155b156112f7576112f26001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848461176d565b611301565b611301838361146d565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610f6c91815260200190565b6007546001600160a01b031633146113675760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b03811661138d5760405162461bcd60e51b81526004016105dd90611ca7565b600880546001600160a01b0319166001600160a01b0383161790556113b56202a30042611c8f565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061141e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61142757600080fd5b61143184846115ab565b6114656001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561176d565b509092915050565b6001600160a01b0382166114c35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114d59190611c8f565b90915550506001600160a01b03821660009081526002602052604081208054839290611502908490611c8f565b90915550506040518181526001600160a01b03831690600090600080516020611d318339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115a59085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117a2565b50505050565b6001600160a01b03821661160b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b0382166000908152600260205260409020548181101561167f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116898282611c29565b6001600160a01b038416600090815260026020526040812091909155600380548492906116b7908490611c29565b90915550506040518281526000906001600160a01b03851690600080516020611d318339815191529060200160405180910390a3505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061175357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61175c57600080fd5b611766828461146d565b5090919050565b6040516001600160a01b03831660248201526044810182905261179d90849063a9059cbb60e01b9060640161156e565b505050565b6117b4826001600160a01b0316611929565b6118005760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b03168360405161181b9190611cf7565b6000604051808303816000865af19150503d8060008114611858576040519150601f19603f3d011682016040523d82523d6000602084013e61185d565b606091505b5091509150816118af5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b8051156115a557808060200190518101906118ca9190611d13565b6115a55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc457600080fd5b60008060006060848603121561198c57600080fd5b61199584611960565b9250602084013591506119aa60408501611960565b90509250925092565b600080604083850312156119c657600080fd5b823591506119d660208401611960565b90509250929050565b60005b838110156119fa5781810151838201526020016119e2565b838111156115a55750506000910152565b6020815260008251806020840152611a2a8160408501602087016119df565b601f01601f19169190910160400192915050565b60008060408385031215611a5157600080fd5b611a5a83611960565b946020939093013593505050565b600080600060608486031215611a7d57600080fd5b611a8684611960565b9250611a9460208501611960565b9150604084013590509250925092565b600060208284031215611ab657600080fd5b5035919050565b600060208284031215611acf57600080fd5b61060682611960565b6020808252825182820181905260009190848201906040850190845b81811015611b195783516001600160a01b031683529284019291840191600101611af4565b50909695505050505050565b8015158114611b3357600080fd5b50565b600060208284031215611b4857600080fd5b813561060681611b25565b60008060408385031215611b6657600080fd5b611b6f83611960565b91506119d660208401611960565b600080600060608486031215611b9257600080fd5b83359250611a9460208501611960565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611bed57607f821691505b602082108103611c0d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611c3b57611c3b611c13565b500390565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60008219821115611ca257611ca2611c13565b500190565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b600060208284031215611cf057600080fd5b5051919050565b60008251611d098184602087016119df565b9190910192915050565b600060208284031215611d2557600080fd5b815161060681611b2556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201c49dbeb9d894f8c455ac820ce5781647d0eeb515f3c243bb3e39e4954821e0564736f6c634300080e003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000d62656566792e66696e616e63650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044249464900000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610455578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a045442c1161010a578063a045442c14610494578063a9059cbb146104a9578063aa271e1a146104bc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b806387689e281461044c5780638da5cb5b1461045557806391c5df491461046657806395d89b41146104795780639dc29fac1461048157600080fd5b80633ccfd60b116101df5780636817031b116101a35780636817031b146103c257806369b41170146103d55780636e553f65146103df5780636f307dc3146103f257806370a08231146104195780638623ec7b1461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c578063628d6cba146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611977565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119b3565b6105f9565b6102a261060d565b60405161027e9190611a0b565b6102c26102bd366004611a3e565b61069b565b604051901515815260200161027e565b6102da610707565b005b600354610274565b6102c26102f2366004611a68565b6107d6565b610274610305366004611aa4565b6109d4565b6102da610318366004611abd565b6109e7565b6103447f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161027e565b610274610aa1565b6102c261036c366004611a3e565b610ac2565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611abd565b610b04565b6102c26103bd3660046119b3565b610bc9565b6102da6103d0366004611abd565b610d16565b6102746202a30081565b6102746103ed3660046119b3565b610d94565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610427366004611abd565b60026020526000908152604090205481565b610384610447366004611aa4565b610dd5565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610dff565b6102c261048f366004611a3e565b610e0c565b61049c610e45565b60405161027e9190611ad8565b6102c26104b7366004611a3e565b610ea7565b6102c26104ca366004611abd565b60056020526000908152604090205460ff1681565b6102746104ed366004611aa4565b610f7e565b6102746105003660046119b3565b610fbf565b61027460095481565b6102da61051c366004611b36565b610fec565b6102da61052f366004611abd565b611030565b61027461107b565b6102c2600081565b6102da61114f565b61027461055a366004611b53565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611b7d565b6111ca565b600754610384906001600160a01b031681565b6102da6105ab366004611abd565b61133d565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611ba2565b60405180910390fd5b6105f18484846113bb565b949350505050565b60006106063384846113bb565b9392505050565b6000805461061a90611bd9565b80601f016020809104026020016040519081016040528092919081815260200182805461064690611bd9565b80156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f69086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107315760405162461bcd60e51b81526004016105dd90611ba2565b6008546001600160a01b03161580159061074d57506009544210155b61075657600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107f957506001600160a01b0383163014155b61080257600080fd5b6001600160a01b038416331461090e576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090c57828110156108a15760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108ad8483611c29565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109475760405162461bcd60e51b81526004016105dd90611c40565b6109518382611c29565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610987908490611c8f565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611d31833981519152856040516109c191815260200190565b60405180910390a3506001949350505050565b60006109e13383336113bb565b92915050565b6007546001600160a01b03163314610a115760405162461bcd60e51b81526004016105dd90611ba2565b60045460ff16610a2057600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610abd91816113bb565b905090565b3360009081526005602052604081205460ff16610af15760405162461bcd60e51b81526004016105dd90611ba2565b610afb838361146d565b50600192915050565b6007546000906001600160a01b03163314610b315760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b038216610b575760405162461bcd60e51b81526004016105dd90611ca7565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b600454600090610100900460ff1615610c245760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b6001600160a01b038216610c4a5760405162461bcd60e51b81526004016105dd90611ca7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610c9057503360009081526002602052604090205483115b15610ccf57610cca6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661153a565b610cd9565b610cd933846115ab565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016106f6565b6007546001600160a01b03163314610d405760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b038116610d665760405162461bcd60e51b81526004016105dd90611ca7565b600a80546001600160a01b0319166001600160a01b038316179055610d8e6202a30042611c8f565b600b5550565b6000610dcb6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661153a565b61060683836116f0565b60068181548110610de557600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061a90611bd9565b3360009081526005602052604081205460ff16610e3b5760405162461bcd60e51b81526004016105dd90611ba2565b610afb83836115ab565b60606006805480602002602001604051908101604052809291908181526020018280548015610e9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e7f575b5050505050905090565b60006001600160a01b03831615801590610eca57506001600160a01b0383163014155b610ed357600080fd5b3360009081526002602052604090205482811015610f035760405162461bcd60e51b81526004016105dd90611c40565b610f0d8382611c29565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610f40908490611c8f565b90915550506040518381526001600160a01b038516903390600080516020611d31833981519152906020015b60405180910390a35060019392505050565b6000610fb56001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561153a565b6109e182336116f0565b6007546000906001600160a01b03163314610dcb5760405162461bcd60e51b81526004016105dd90611ba2565b6007546001600160a01b031633146110165760405162461bcd60e51b81526004016105dd90611ba2565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b0316331461105a5760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611cde565b905061113f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308461153a565b61114981336116f0565b91505090565b6007546001600160a01b031633146111795760405162461bcd60e51b81526004016105dd90611ba2565b600a546001600160a01b0316158015906111955750600b544210155b61119e57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111f95760405162461bcd60e51b81526004016105dd90611ba2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112b957506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b69190611cde565b10155b156112f7576112f26001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848461176d565b611301565b611301838361146d565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610f6c91815260200190565b6007546001600160a01b031633146113675760405162461bcd60e51b81526004016105dd90611ba2565b6001600160a01b03811661138d5760405162461bcd60e51b81526004016105dd90611ca7565b600880546001600160a01b0319166001600160a01b0383161790556113b56202a30042611c8f565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061141e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61142757600080fd5b61143184846115ab565b6114656001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561176d565b509092915050565b6001600160a01b0382166114c35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114d59190611c8f565b90915550506001600160a01b03821660009081526002602052604081208054839290611502908490611c8f565b90915550506040518181526001600160a01b03831690600090600080516020611d318339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115a59085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117a2565b50505050565b6001600160a01b03821661160b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b0382166000908152600260205260409020548181101561167f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116898282611c29565b6001600160a01b038416600090815260026020526040812091909155600380548492906116b7908490611c29565b90915550506040518281526000906001600160a01b03851690600080516020611d318339815191529060200160405180910390a3505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061175357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61175c57600080fd5b611766828461146d565b5090919050565b6040516001600160a01b03831660248201526044810182905261179d90849063a9059cbb60e01b9060640161156e565b505050565b6117b4826001600160a01b0316611929565b6118005760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b03168360405161181b9190611cf7565b6000604051808303816000865af19150503d8060008114611858576040519150601f19603f3d011682016040523d82523d6000602084013e61185d565b606091505b5091509150816118af5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b8051156115a557808060200190518101906118ca9190611d13565b6115a55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc457600080fd5b60008060006060848603121561198c57600080fd5b61199584611960565b9250602084013591506119aa60408501611960565b90509250925092565b600080604083850312156119c657600080fd5b823591506119d660208401611960565b90509250929050565b60005b838110156119fa5781810151838201526020016119e2565b838111156115a55750506000910152565b6020815260008251806020840152611a2a8160408501602087016119df565b601f01601f19169190910160400192915050565b60008060408385031215611a5157600080fd5b611a5a83611960565b946020939093013593505050565b600080600060608486031215611a7d57600080fd5b611a8684611960565b9250611a9460208501611960565b9150604084013590509250925092565b600060208284031215611ab657600080fd5b5035919050565b600060208284031215611acf57600080fd5b61060682611960565b6020808252825182820181905260009190848201906040850190845b81811015611b195783516001600160a01b031683529284019291840191600101611af4565b50909695505050505050565b8015158114611b3357600080fd5b50565b600060208284031215611b4857600080fd5b813561060681611b25565b60008060408385031215611b6657600080fd5b611b6f83611960565b91506119d660208401611960565b600080600060608486031215611b9257600080fd5b83359250611a9460208501611960565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611bed57607f821691505b602082108103611c0d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611c3b57611c3b611c13565b500390565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60008219821115611ca257611ca2611c13565b500190565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b600060208284031215611cf057600080fd5b5051919050565b60008251611d098184602087016119df565b9190910192915050565b600060208284031215611d2557600080fd5b815161060681611b2556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201c49dbeb9d894f8c455ac820ce5781647d0eeb515f3c243bb3e39e4954821e0564736f6c634300080e0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000d62656566792e66696e616e63650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044249464900000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): beefy.finance
Arg [1] : _symbol (string): BIFI
Arg [2] : _decimals (uint8): 18
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfA9dA51631268A30Ec3DDd1CcBf46c65FAD99251

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [6] : 62656566792e66696e616e636500000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 4249464900000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2912:11904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10253:149;;;;;;:::i;:::-;;:::i;:::-;;;671:25:1;;;659:2;644:18;10253:149:0;;;;;;;;10119:126;;;;;;:::i;:::-;;:::i;2986:18::-;;;:::i;:::-;;;;;;;:::i;12223:215::-;;;;;;:::i;:::-;;:::i;:::-;;;2041:14:1;;2034:22;2016:41;;2004:2;1989:18;12223:215:0;1876:187:1;5390:275:0;;;:::i;:::-;;8709:102;8791:12;;8709:102;;13947:866;;;;;;:::i;:::-;;:::i;9989:122::-;;;;;;:::i;:::-;;:::i;4515:201::-;;;;;;:::i;:::-;;:::i;3038:41::-;;;;;;;;2949:4:1;2937:17;;;2919:36;;2907:2;2892:18;3038:41:0;2777:184:1;9855:126:0;;;:::i;6276:133::-;;;;;;:::i;:::-;;:::i;3940:27::-;;;;;-1:-1:-1;;;;;3940:27:0;;;;;;-1:-1:-1;;;;;3130:32:1;;;3112:51;;3100:2;3085:18;3940:27:0;2966:203:1;5941:327:0;;;;;;:::i;:::-;;:::i;6975:522::-;;;;;;:::i;:::-;;:::i;4724:210::-;;;;;;:::i;:::-;;:::i;3611:35::-;;3640:6;3611:35;;9270:193;;;;;;:::i;:::-;;:::i;3088:35::-;;;;;3257:54;;;;;;:::i;:::-;;;;;;;;;;;;;;3762:24;;;;;;:::i;:::-;;:::i;3974:22::-;;;;;;4239:80;4306:5;;-1:-1:-1;;;;;4306:5:0;4239:80;;3873:28;;;;;-1:-1:-1;;;;;3873:28:0;;;3011:20;;;:::i;6417:137::-;;;;;;:::i;:::-;;:::i;5834:99::-;;;:::i;:::-;;;;;;;:::i;12740:438::-;;;;;;:::i;:::-;;:::i;3715:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9073:189;;;;;;:::i;:::-;;:::i;9471:127::-;;;;;;:::i;:::-;;:::i;3908:23::-;;;;;;4413:94;;;;;;:::i;:::-;;:::i;5728:98::-;;;;;;:::i;:::-;;:::i;8819:246::-;;;:::i;3130:47::-;;3172:5;3130:47;;4942:222;;;:::i;7666:75::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6562:405;;;;;;:::i;:::-;;:::i;3844:20::-;;;;;-1:-1:-1;;;;;3844:20:0;;;5172:210;;;;;;:::i;:::-;;:::i;10253:149::-;4176:5;;10343:4;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;;;;;;;;;10367:27:::1;10377:4;10383:6;10391:2;10367:9;:27::i;:::-;10360:34:::0;10253:149;-1:-1:-1;;;;10253:149:0:o;10119:126::-;10180:4;10204:33;10214:10;10226:6;10234:2;10204:9;:33::i;:::-;10197:40;10119:126;-1:-1:-1;;;10119:126:0:o;2986:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12223:215::-;12326:10;12299:4;12316:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12316:30:0;;;;;;;;;;:38;;;12370:36;12299:4;;12316:30;;12370:36;;;;12349:5;671:25:1;;659:2;644:18;;525:177;12370:36:0;;;;;;;;-1:-1:-1;12426:4:0;12223:215;;;;:::o;5390:275::-;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;5451:13:::1;::::0;-1:-1:-1;;;;;5451:13:0::1;:27:::0;;::::1;::::0;:61:::1;;;5501:11;;5482:15;:30;;5451:61;5443:70;;;::::0;::::1;;5533:13;::::0;;-1:-1:-1;;;;;5533:13:0;;::::1;5524:23;::::0;;;:8:::1;:23;::::0;;;;:30;;5550:4:::1;-1:-1:-1::0;;5524:30:0;;::::1;::::0;::::1;::::0;;;5578:13;;5565:7:::1;:27:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;5578:13;;;::::1;-1:-1:-1::0;;;;;;5565:27:0;;::::1;;::::0;;;5605:26;;;;::::1;::::0;;;5642:11:::1;:15:::0;5390:275::o;13947:866::-;14037:4;-1:-1:-1;;;;;14062:16:0;;;;;;:39;;-1:-1:-1;;;;;;14082:19:0;;14096:4;14082:19;;14062:39;14054:48;;;;;;-1:-1:-1;;;;;14117:18:0;;14125:10;14117:18;14113:416;;-1:-1:-1;;;;;14170:15:0;;14152;14170;;;:9;:15;;;;;;;;14186:10;14170:27;;;;;;;;-1:-1:-1;;14216:28:0;;14212:306;;14284:5;14273:7;:16;;14265:70;;;;-1:-1:-1;;;14265:70:0;;5739:2:1;14265:70:0;;;5721:21:1;5778:2;5758:18;;;5751:30;5817:34;5797:18;;;5790:62;-1:-1:-1;;;5868:18:1;;;5861:39;5917:19;;14265:70:0;5537:405:1;14265:70:0;14354:15;14372;14382:5;14372:7;:15;:::i;:::-;-1:-1:-1;;;;;14406:15:0;;;;;;:9;:15;;;;;;;;14422:10;14406:27;;;;;;;;;;:37;;;14467:35;671:25:1;;;14406:37:0;;-1:-1:-1;14422:10:0;;14467:35;;644:18:1;14467:35:0;;;;;;;14246:272;14212:306;14137:392;14113:416;-1:-1:-1;;;;;14559:15:0;;14541;14559;;;:9;:15;;;;;;14593:16;;;;14585:76;;;;-1:-1:-1;;;14585:76:0;;;;;;;:::i;:::-;14692:15;14702:5;14692:7;:15;:::i;:::-;-1:-1:-1;;;;;14674:15:0;;;;;;;:9;:15;;;;;;:33;;;;14718:13;;;;;;;;:22;;14735:5;;14674:15;14718:22;;14735:5;;14718:22;:::i;:::-;;;;;;;;14771:2;-1:-1:-1;;;;;14756:25:0;14765:4;-1:-1:-1;;;;;14756:25:0;-1:-1:-1;;;;;;;;;;;14775:5:0;14756:25;;;;671::1;;659:2;644:18;;525:177;14756:25:0;;;;;;;;-1:-1:-1;14801:4:0;;13947:866;-1:-1:-1;;;;13947:866:0:o;9989:122::-;10038:4;10062:41;10072:10;10084:6;10092:10;10062:9;:41::i;:::-;10055:48;9989:122;-1:-1:-1;;9989:122:0:o;4515:201::-;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;4588:5:::1;::::0;::::1;;4580:14;;;::::0;::::1;;4605:5;:13:::0;;-1:-1:-1;;4605:13:0;;::::1;::::0;;;4629:5:::1;:14:::0;;-1:-1:-1;;;;;4629:14:0;;::::1;-1:-1:-1::0;;;;;;4629:14:0;;::::1;::::0;::::1;::::0;;;4613:5:::1;4654:16:::0;;;:8:::1;:16;::::0;;;;:23;;;;::::1;4605:13:::0;4654:23;;::::1;::::0;;;4688:7:::1;:20:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;;::::0;;4515:201::o;9855:126::-;9927:10;9893:4;9939:21;;;:9;:21;;;;;;9893:4;;9917:56;;9927:10;9917:9;:56::i;:::-;9910:63;;9855:126;:::o;6276:133::-;4053:10;6345:4;4044:20;;;:8;:20;;;;;;;;4036:58;;;;-1:-1:-1;;;4036:58:0;;;;;;;:::i;:::-;6362:17:::1;6368:2;6372:6;6362:5;:17::i;:::-;-1:-1:-1::0;6397:4:0::1;6276:133:::0;;;;:::o;5941:327::-;4176:5;;6008:4;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6033:22:0;::::1;6025:61;;;;-1:-1:-1::0;;;6025:61:0::1;;;;;;;:::i;:::-;6117:5;::::0;6102:48:::1;::::0;6134:15:::1;::::0;-1:-1:-1;;;;;6102:48:0;;::::1;::::0;6117:5;::::1;::::0;6102:48:::1;::::0;6117:5:::1;::::0;6102:48:::1;-1:-1:-1::0;6161:5:0::1;:16:::0;;-1:-1:-1;;;;;6161:16:0;::::1;-1:-1:-1::0;;;;;;6161:16:0;;::::1;;::::0;;;6188:12:::1;:25:::0;;;;::::1;::::0;;6161:5:::1;6224:10;:14:::0;6161:16;4222:1:::1;5941:327:::0;;;:::o;6975:522::-;7070:10;;7044:4;;7070:10;;;;;7069:11;7061:49;;;;-1:-1:-1;;;7061:49:0;;7315:2:1;7061:49:0;;;7297:21:1;7354:2;7334:18;;;7327:30;7393:27;7373:18;;;7366:55;7438:18;;7061:49:0;7113:349:1;7061:49:0;-1:-1:-1;;;;;7129:22:0;;7121:61;;;;-1:-1:-1;;;7121:61:0;;;;;;;:::i;:::-;7197:10;-1:-1:-1;;;;;7197:24:0;;;;;:58;;-1:-1:-1;7235:10:0;7225:21;;;;:9;:21;;;;;;:30;-1:-1:-1;7197:58:0;7193:219;;;7272:70;-1:-1:-1;;;;;7279:10:0;7272:35;7308:10;7328:4;7335:6;7272:35;:70::i;:::-;7193:219;;;7375:25;7381:10;7393:6;7375:5;:25::i;:::-;7427:40;;671:25:1;;;-1:-1:-1;;;;;7427:40:0;;;7438:10;;7427:40;;659:2:1;644:18;7427:40:0;525:177:1;4724:210:0;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4796:20:0;::::1;4788:59;;;;-1:-1:-1::0;;;4788:59:0::1;;;;;;;:::i;:::-;4858:12;:21:::0;;-1:-1:-1;;;;;;4858:21:0::1;-1:-1:-1::0;;;;;4858:21:0;::::1;;::::0;;4903:23:::1;3640:6;4903:15;:23;:::i;:::-;4890:10;:36:::0;-1:-1:-1;4724:210:0:o;9270:193::-;9330:4;9347:70;-1:-1:-1;;;;;9354:10:0;9347:35;9383:10;9403:4;9410:6;9347:35;:70::i;:::-;9435:20;9444:6;9452:2;9435:8;:20::i;3762:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3762:24:0;;-1:-1:-1;3762:24:0;:::o;3011:20::-;;;;;;;:::i;6417:137::-;4053:10;6488:4;4044:20;;;:8;:20;;;;;;;;4036:58;;;;-1:-1:-1;;;4036:58:0;;;;;;;:::i;:::-;6505:19:::1;6511:4;6517:6;6505:5;:19::i;5834:99::-:0;5882:16;5918:7;5911:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5911:14:0;;;;;;;;;;;;;;;;;;;;;;;5834:99;:::o;12740:438::-;12812:4;-1:-1:-1;;;;;12837:16:0;;;;;;:39;;-1:-1:-1;;;;;;12857:19:0;;12871:4;12857:19;;12837:39;12829:48;;;;;;12916:10;12888:15;12906:21;;;:9;:21;;;;;;12946:16;;;;12938:76;;;;-1:-1:-1;;;12938:76:0;;;;;;;:::i;:::-;13051:15;13061:5;13051:7;:15;:::i;:::-;13037:10;13027:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;13077:13:0;;;;;;;:22;;13094:5;;13027:21;13077:22;;13094:5;;13077:22;:::i;:::-;;;;-1:-1:-1;;13115:31:0;;671:25:1;;;-1:-1:-1;;;;;13115:31:0;;;13124:10;;-1:-1:-1;;;;;;;;;;;13115:31:0;659:2:1;644:18;13115:31:0;;;;;;;;-1:-1:-1;13166:4:0;;12740:438;-1:-1:-1;;;12740:438:0:o;9073:189::-;9121:4;9138:70;-1:-1:-1;;;;;9145:10:0;9138:35;9174:10;9194:4;9201:6;9138:35;:70::i;:::-;9226:28;9235:6;9243:10;9226:8;:28::i;9471:127::-;4176:5;;9546:4;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;4413:94::-;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;4479:10:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;4479:20:0;;::::1;::::0;;;::::1;::::0;;4413:94::o;5728:98::-;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5795:15:0::1;5813:5;5795:15:::0;;;:8:::1;:15;::::0;;;;:23;;-1:-1:-1;;5795:23:0::1;::::0;;5728:98::o;8819:246::-;8888:40;;-1:-1:-1;;;8888:40:0;;8917:10;8888:40;;;3112:51:1;8856:4:0;;;;-1:-1:-1;;;;;8895:10:0;8888:28;;;;3085:18:1;;8888:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8873:55;-1:-1:-1;8939:71:0;-1:-1:-1;;;;;8946:10:0;8939:35;8975:10;8995:4;8873:55;8939:35;:71::i;:::-;9028:29;9037:7;9046:10;9028:8;:29::i;:::-;9021:36;;;8819:246;:::o;4942:222::-;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;5002:12:::1;::::0;-1:-1:-1;;;;;5002:12:0::1;:26:::0;;::::1;::::0;:59:::1;;;5051:10;;5032:15;:29;;5002:59;4994:68;;;::::0;::::1;;5081:12;::::0;;5073:5:::1;:20:::0;;-1:-1:-1;;;;;;5073:20:0;;::::1;-1:-1:-1::0;;;;;5081:12:0;::::1;5073:20;::::0;;;5106:25:::1;::::0;;5081:12:::1;5142:10;:14:::0;4942:222::o;6562:405::-;4053:10;6654:4;4044:20;;;:8;:20;;;;;;;;4036:58;;;;-1:-1:-1;;;4036:58:0;;;;;;;:::i;:::-;6675:10:::1;-1:-1:-1::0;;;;;6675:24:0::1;::::0;;::::1;::::0;:81:::1;;-1:-1:-1::0;6703:43:0::1;::::0;-1:-1:-1;;;6703:43:0;;6740:4:::1;6703:43;::::0;::::1;3112:51:1::0;6750:6:0;;6710:10:::1;-1:-1:-1::0;;;;;6703:28:0::1;::::0;::::1;::::0;3085:18:1;;6703:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;6675:81;6671:217;;;6773:48;-1:-1:-1::0;;;;;6780:10:0::1;6773:31;6805:7:::0;6814:6;6773:31:::1;:48::i;:::-;6671:217;;;6854:22;6860:7;6869:6;6854:5;:22::i;:::-;6921:7;-1:-1:-1::0;;;;;6903:34:0::1;6913:6;6903:34;6930:6;6903:34;;;;671:25:1::0;;659:2;644:18;;525:177;5172:210:0;4176:5;;-1:-1:-1;;;;;4176:5:0;4162:10;:19;4154:57;;;;-1:-1:-1;;;4154:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5244:19:0;::::1;5236:58;;;;-1:-1:-1::0;;;5236:58:0::1;;;;;;;:::i;:::-;5305:13;:21:::0;;-1:-1:-1;;;;;;5305:21:0::1;-1:-1:-1::0;;;;;5305:21:0;::::1;;::::0;;5351:23:::1;3640:6;5351:15;:23;:::i;:::-;5337:11;:37:::0;-1:-1:-1;5172:210:0:o;10410:312::-;10486:4;10550:10;-1:-1:-1;;;;;10550:24:0;;;;;:55;;-1:-1:-1;10578:10:0;-1:-1:-1;;;;;10578:27:0;10600:4;10578:27;;10550:55;10542:64;;;;;;10617:19;10623:4;10629:6;10617:5;:19::i;:::-;10647:43;-1:-1:-1;;;;;10654:10:0;10647:31;10679:2;10683:6;10647:31;:43::i;:::-;-1:-1:-1;10708:6:0;;10410:312;-1:-1:-1;;10410:312:0:o;11003:268::-;-1:-1:-1;;;;;11079:21:0;;11071:65;;;;-1:-1:-1;;;11071:65:0;;7858:2:1;11071:65:0;;;7840:21:1;7897:2;7877:18;;;7870:30;7936:33;7916:18;;;7909:61;7987:18;;11071:65:0;7656:355:1;11071:65:0;11165:6;11149:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11182:18:0;;;;;;:9;:18;;;;;:28;;11204:6;;11182:18;:28;;11204:6;;11182:28;:::i;:::-;;;;-1:-1:-1;;11226:37:0;;671:25:1;;;-1:-1:-1;;;;;11226:37:0;;;11243:1;;-1:-1:-1;;;;;;;;;;;11226:37:0;659:2:1;644:18;11226:37:0;;;;;;;11003:268;;:::o;1748:201::-;1872:68;;-1:-1:-1;;;;;8274:15:1;;;1872:68:0;;;8256:34:1;8326:15;;8306:18;;;8299:43;8358:18;;;8351:34;;;1846:95:0;;1865:5;;-1:-1:-1;;;1895:27:0;8191:18:1;;1872:68:0;;;;-1:-1:-1;;1872:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;1872:68:0;-1:-1:-1;;;;;;1872:68:0;;;;;;;;;;1846:18;:95::i;:::-;1748:201;;;;:::o;11603:403::-;-1:-1:-1;;;;;11679:21:0;;11671:67;;;;-1:-1:-1;;;11671:67:0;;8598:2:1;11671:67:0;;;8580:21:1;8637:2;8617:18;;;8610:30;8676:34;8656:18;;;8649:62;-1:-1:-1;;;8727:18:1;;;8720:31;8768:19;;11671:67:0;8396:397:1;11671:67:0;-1:-1:-1;;;;;11769:18:0;;11751:15;11769:18;;;:9;:18;;;;;;11806:17;;;;11798:64;;;;-1:-1:-1;;;11798:64:0;;9000:2:1;11798:64:0;;;8982:21:1;9039:2;9019:18;;;9012:30;9078:34;9058:18;;;9051:62;-1:-1:-1;;;9129:18:1;;;9122:32;9171:19;;11798:64:0;8798:398:1;11798:64:0;11896:16;11906:6;11896:7;:16;:::i;:::-;-1:-1:-1;;;;;11875:18:0;;;;;;:9;:18;;;;;:37;;;;11923:12;:22;;11939:6;;11875:18;11923:22;;11939:6;;11923:22;:::i;:::-;;;;-1:-1:-1;;11961:37:0;;671:25:1;;;11987:1:0;;-1:-1:-1;;;;;11961:37:0;;;-1:-1:-1;;;;;;;;;;;11961:37:0;659:2:1;644:18;11961:37:0;;;;;;;11660:346;11603:403;;:::o;9606:241::-;9667:4;9731:10;-1:-1:-1;;;;;9731:24:0;;;;;:55;;-1:-1:-1;9759:10:0;-1:-1:-1;;;;;9759:27:0;9781:4;9759:27;;9731:55;9723:64;;;;;;9798:17;9804:2;9808:6;9798:5;:17::i;:::-;-1:-1:-1;9833:6:0;;9606:241;-1:-1:-1;9606:241:0:o;1567:173::-;1673:58;;-1:-1:-1;;;;;9393:32:1;;1673:58:0;;;9375:51:1;9442:18;;;9435:34;;;1647:85:0;;1666:5;;-1:-1:-1;;;1696:23:0;9348:18:1;;1673:58:0;9201:274:1;1647:85:0;1567:173;;;:::o;2307:598::-;2395:27;2403:5;-1:-1:-1;;;;;2395:25:0;;:27::i;:::-;2387:71;;;;-1:-1:-1;;;2387:71:0;;9682:2:1;2387:71:0;;;9664:21:1;9721:2;9701:18;;;9694:30;9760:33;9740:18;;;9733:61;9811:18;;2387:71:0;9480:355:1;2387:71:0;2532:12;2546:23;2581:5;-1:-1:-1;;;;;2573:19:0;2593:4;2573:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2531:67;;;;2617:7;2609:52;;;;-1:-1:-1;;;2609:52:0;;10321:2:1;2609:52:0;;;10303:21:1;;;10340:18;;;10333:30;10399:34;10379:18;;;10372:62;10451:18;;2609:52:0;10119:356:1;2609:52:0;2678:17;;:21;2674:224;;2820:10;2809:30;;;;;;;;;;;;:::i;:::-;2801:85;;;;-1:-1:-1;;;2801:85:0;;10932:2:1;2801:85:0;;;10914:21:1;10971:2;10951:18;;;10944:30;11010:34;10990:18;;;10983:62;-1:-1:-1;;;11061:18:1;;;11054:40;11111:19;;2801:85:0;10730:406:1;1127:374:0;1187:4;1410:20;;1253:66;1450:15;;;;;:42;;-1:-1:-1;1469:23:0;;;1442:51;-1:-1:-1;;1127:374:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:328;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;453:2;442:9;438:18;425:32;415:42;;476:38;510:2;499:9;495:18;476:38;:::i;:::-;466:48;;192:328;;;;;:::o;707:254::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;888:9;875:23;865:33;;917:38;951:2;940:9;936:18;917:38;:::i;:::-;907:48;;707:254;;;;;:::o;966:258::-;1038:1;1048:113;1062:6;1059:1;1056:13;1048:113;;;1138:11;;;1132:18;1119:11;;;1112:39;1084:2;1077:10;1048:113;;;1179:6;1176:1;1173:13;1170:48;;;-1:-1:-1;;1214:1:1;1196:16;;1189:27;966:258::o;1229:383::-;1378:2;1367:9;1360:21;1341:4;1410:6;1404:13;1453:6;1448:2;1437:9;1433:18;1426:34;1469:66;1528:6;1523:2;1512:9;1508:18;1503:2;1495:6;1491:15;1469:66;:::i;:::-;1596:2;1575:15;-1:-1:-1;;1571:29:1;1556:45;;;;1603:2;1552:54;;1229:383;-1:-1:-1;;1229:383:1:o;1617:254::-;1685:6;1693;1746:2;1734:9;1725:7;1721:23;1717:32;1714:52;;;1762:1;1759;1752:12;1714:52;1785:29;1804:9;1785:29;:::i;:::-;1775:39;1861:2;1846:18;;;;1833:32;;-1:-1:-1;;;1617:254:1:o;2068:328::-;2145:6;2153;2161;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;2253:29;2272:9;2253:29;:::i;:::-;2243:39;;2301:38;2335:2;2324:9;2320:18;2301:38;:::i;:::-;2291:48;;2386:2;2375:9;2371:18;2358:32;2348:42;;2068:328;;;;;:::o;2401:180::-;2460:6;2513:2;2501:9;2492:7;2488:23;2484:32;2481:52;;;2529:1;2526;2519:12;2481:52;-1:-1:-1;2552:23:1;;2401:180;-1:-1:-1;2401:180:1:o;2586:186::-;2645:6;2698:2;2686:9;2677:7;2673:23;2669:32;2666:52;;;2714:1;2711;2704:12;2666:52;2737:29;2756:9;2737:29;:::i;3174:658::-;3345:2;3397:21;;;3467:13;;3370:18;;;3489:22;;;3316:4;;3345:2;3568:15;;;;3542:2;3527:18;;;3316:4;3611:195;3625:6;3622:1;3619:13;3611:195;;;3690:13;;-1:-1:-1;;;;;3686:39:1;3674:52;;3781:15;;;;3746:12;;;;3722:1;3640:9;3611:195;;;-1:-1:-1;3823:3:1;;3174:658;-1:-1:-1;;;;;;3174:658:1:o;3837:118::-;3923:5;3916:13;3909:21;3902:5;3899:32;3889:60;;3945:1;3942;3935:12;3889:60;3837:118;:::o;3960:241::-;4016:6;4069:2;4057:9;4048:7;4044:23;4040:32;4037:52;;;4085:1;4082;4075:12;4037:52;4124:9;4111:23;4143:28;4165:5;4143:28;:::i;4206:260::-;4274:6;4282;4335:2;4323:9;4314:7;4310:23;4306:32;4303:52;;;4351:1;4348;4341:12;4303:52;4374:29;4393:9;4374:29;:::i;:::-;4364:39;;4422:38;4456:2;4445:9;4441:18;4422:38;:::i;4471:322::-;4548:6;4556;4564;4617:2;4605:9;4596:7;4592:23;4588:32;4585:52;;;4633:1;4630;4623:12;4585:52;4669:9;4656:23;4646:33;;4698:38;4732:2;4721:9;4717:18;4698:38;:::i;4798:349::-;5000:2;4982:21;;;5039:2;5019:18;;;5012:30;5078:27;5073:2;5058:18;;5051:55;5138:2;5123:18;;4798:349::o;5152:380::-;5231:1;5227:12;;;;5274;;;5295:61;;5349:4;5341:6;5337:17;5327:27;;5295:61;5402:2;5394:6;5391:14;5371:18;5368:38;5365:161;;5448:10;5443:3;5439:20;5436:1;5429:31;5483:4;5480:1;5473:15;5511:4;5508:1;5501:15;5365:161;;5152:380;;;:::o;5947:127::-;6008:10;6003:3;5999:20;5996:1;5989:31;6039:4;6036:1;6029:15;6063:4;6060:1;6053:15;6079:125;6119:4;6147:1;6144;6141:8;6138:34;;;6152:18;;:::i;:::-;-1:-1:-1;6189:9:1;;6079:125::o;6209:411::-;6411:2;6393:21;;;6450:2;6430:18;;;6423:30;6489:34;6484:2;6469:18;;6462:62;-1:-1:-1;;;6555:2:1;6540:18;;6533:45;6610:3;6595:19;;6209:411::o;6625:128::-;6665:3;6696:1;6692:6;6689:1;6686:13;6683:39;;;6702:18;;:::i;:::-;-1:-1:-1;6738:9:1;;6625:128::o;6758:350::-;6960:2;6942:21;;;6999:2;6979:18;;;6972:30;7038:28;7033:2;7018:18;;7011:56;7099:2;7084:18;;6758:350::o;7467:184::-;7537:6;7590:2;7578:9;7569:7;7565:23;7561:32;7558:52;;;7606:1;7603;7596:12;7558:52;-1:-1:-1;7629:16:1;;7467:184;-1:-1:-1;7467:184:1:o;9840:274::-;9969:3;10007:6;10001:13;10023:53;10069:6;10064:3;10057:4;10049:6;10045:17;10023:53;:::i;:::-;10092:16;;;;;9840:274;-1:-1:-1;;9840:274:1:o;10480:245::-;10547:6;10600:2;10588:9;10579:7;10575:23;10571:32;10568:52;;;10616:1;10613;10606:12;10568:52;10648:9;10642:16;10667:28;10689:5;10667:28;:::i

Swarm Source

ipfs://1c49dbeb9d894f8c455ac820ce5781647d0eeb515f3c243bb3e39e4954821e05
[ 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.