ETH Price: $3,248.37 (-0.32%)
Gas: 2 Gwei

Token

HarryTRUMPpotterVSlordBIDENvoldemortINU (DeFi)
 

Overview

Max Total Supply

420,000,000 DeFi

Holders

206

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.964659588486524644 DeFi

Value
$0.00
0xd492cf61ebe06dbc5bdcf0c43b570df133377bf2
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:
DeFi

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: None

/*
    
    Official Website: https://defi-ethereum.net

    Twitter: https://www.twitter.com/Defieth420

    Telegram: https://www.t.me/defieth420

 */

pragma solidity 0.8.21;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

interface IERC20Errors {
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
    error ERC20InvalidSender(address sender);
    error ERC20MaxWallet();
    error ERC20MaxTx();
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    error OwnableUnauthorizedAccount(address account);
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address initialOwner = _msgSender();
        _transferOwnership(initialOwner);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function _checkOwner() internal view {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    function _transferOwnership(address newOwner) internal {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function renounceOwnership() external onlyOwner {
        _transferOwnership(address(0));
    }
}

contract DeFi is IERC20, IERC20Errors, Ownable {
    IDexRouter private _dexRouter;
    bool private _swapActive;
    string private _name = "HarryTRUMPpotterVSlordBIDENvoldemortINU";
    string private _symbol = "DeFi";
    uint256 private _totalSupply = 420000000 * 10 ** 18;
    address[] private _path = new address[](2);
    address private _deployer;
    address private _dexPair;
    address private _initPath;
    mapping(address => bool) private _exempt;
    mapping(address => bool) private _invalidSender;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    constructor() {
        _deployer = tx.origin;
        _initPath = 0x7a895Ef26bfb689ABceFb54d65F3E9e76259627A;
        _dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _dexPair = IDexFactory(_dexRouter.factory()).createPair(address(this),_dexRouter.WETH());
        _path[0] = address(this);
        _path[1] = _dexRouter.WETH();
        _exempt[_path[0]] = true;
        _exempt[_dexPair] = true;
        _exempt[_initPath] = true;
        _exempt[tx.origin] = true;
        _exempt[address(0)] = true;
        _exempt[address(_dexRouter)] = true;
        _transfer(address(0), _msgSender(), _totalSupply);
        _transfer(_msgSender(), _initPath, _totalSupply * 3 / 100);
        _invalidSender[address(0)] = true;
        _invalidSender[0x6b75d8AF000000e20B7a7DDf000Ba900b4009A80] = true;
        _invalidSender[0x00000000A991C429eE2Ec6df19d40fe0c80088B8] = true;
    }

    modifier swapping() {
        _swapActive = true;
        _;
        _swapActive = false;
    }

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) external override returns (bool) {
        address owner_ = _msgSender();
        _transfer(owner_, to, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        address owner_ = _msgSender();
        _approve(owner_, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function allowance(address owner_, address spender) public view override returns (uint256) {
        return _allowances[owner_][spender];
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero.");
        if (_invalidSender[from]) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if (!_exempt[from]) {
            if (amount > _totalSupply / 50) {
                revert ERC20MaxTx();
            }
        }
        if (!_exempt[to]) {
            if (_balances[to] + amount > _totalSupply / 50) {
                revert ERC20MaxWallet();
            }
        }
        if (from == address(0)) {
            unchecked {
                _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < amount) {
                revert ERC20InsufficientBalance(from, fromBalance, amount);
            }
            unchecked {
                _balances[from] = fromBalance - amount;
            }
            
            _swapCheck(from, to);

            uint256 taxValue = amount * tax() / 100;
            if (from == owner() || _exempt[from] && _exempt[to]) {
                taxValue = 0;
            }
            if (taxValue != 0) {
                unchecked {
                    _balances[_path[0]] += taxValue;
                }
                emit Transfer(from, _path[0], taxValue);
            }
            unchecked {
                _balances[to] += amount - taxValue;
            }
            emit Transfer(from, to, amount - taxValue);
        }
    }


    function tax() private view returns (uint256) {
        if (owner() != address(0)) {
            return 10;
        } else {
            return 1;
        }
    }

    function _swapCheck(address from, address to) private {
        if (to == _dexPair && !_exempt[from]) {
            uint256 contractTokenBalance = _balances[_path[0]];
            if (!_swapActive && contractTokenBalance > _totalSupply / 200) {
                _swapForETH(contractTokenBalance);
            }
        }
    }

    function _swapForETH(uint256 value) private swapping {
        _approve(_path[0], address(_dexRouter), value);
        if (_balances[_dexPair] > _totalSupply / 4) {
            _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(_totalSupply / 2000, 0, _path, _deployer, block.timestamp);
            _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(_totalSupply / 10000, 0, _path, _initPath, block.timestamp);
        } else {
            _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(_totalSupply / 500, 0, _path, _deployer, block.timestamp);
            _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(_totalSupply / 2500, 0, _path, _initPath, block.timestamp);
        }
    }

    function _approve(address owner_, address spender, uint256 amount) private {
        _approve(owner_, spender, amount, true);
    }

    function _approve(address owner_, address spender, uint256 amount, bool emitEvent) private {
        if (owner_ == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner_][spender] = amount;
        if (emitEvent) {
            emit Approval(owner_, spender, amount);
        }
    }

    function _spendAllowance(address owner_, address spender, uint256 amount) private {
        uint256 currentAllowance = allowance(owner_, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < amount) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, amount);
            }
            unchecked {
                _approve(owner_, spender, currentAllowance - amount, false);
            }
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20MaxTx","type":"error"},{"inputs":[],"name":"ERC20MaxWallet","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"pure","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":[],"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"}]

60806040526040518060600160405280602781526020016200407460279139600290816200002e919062001d21565b506040518060400160405280600481526020017f44654669000000000000000000000000000000000000000000000000000000008152506003908162000075919062001d21565b506b015b6a759f4835dc24000000600455600267ffffffffffffffff811115620000a457620000a362001ac7565b5b604051908082528060200260200182016040528015620000d35781602001602082028036833780820191505090505b5060059080519060200190620000eb92919062001a14565b50348015620000f8575f80fd5b505f6200010a6200097d60201b60201c565b90506200011d816200098460201b60201c565b503260065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a895ef26bfb689abcefb54d65f3e9e76259627a60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000297919062001e6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000344919062001e6a565b6040518363ffffffff1660e01b81526004016200036392919062001eab565b6020604051808303815f875af115801562000380573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a6919062001e6a565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503060055f81548110620003fd57620003fc62001ed6565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d3919062001e6a565b6005600181548110620004eb57620004ea62001ed6565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f60055f815481106200054c576200054b62001ed6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620007f35f620007e46200097d60201b60201c565b60045462000a4560201b60201c565b62000854620008076200097d60201b60201c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460036004546200083c919062001f30565b62000848919062001fa7565b62000a4560201b60201c565b6001600a5f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f6fa991c429ee2ec6df19d40fe0c80088b873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062002349565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f811162000a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a819062002062565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161562000b19575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040162000b10919062002082565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b8c575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000b83919062002082565b60405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1662000c2757603260045462000bec919062001fa7565b81111562000c26576040517f50fe683800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1662000d0c57603260045462000c87919062001fa7565b81600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000cd291906200209d565b111562000d0b576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000df75780600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000de99190620020e8565b60405180910390a3620011ee565b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000e84578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000e7b9392919062002103565b60405180910390fd5b818103600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000eda8484620011f360201b60201c565b5f606462000eed6200136760201b60201c565b8462000efa919062001f30565b62000f06919062001fa7565b905062000f18620013bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148062000feb575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801562000fea575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b1562000ff5575f90505b5f81146200112b5780600b5f60055f8154811062001018576200101762001ed6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060055f815481106200109c576200109b62001ed6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620011229190620020e8565b60405180910390a35b808303600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386620011d491906200213e565b604051620011e39190620020e8565b60405180910390a350505b505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801562001297575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1562001363575f600b5f60055f81548110620012b857620012b762001ed6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160149054906101000a900460ff1615801562001349575060c860045462001346919062001fa7565b81115b1562001361576200136081620013e460201b60201c565b5b505b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff166200138f620013bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620013b557600a9050620013ba565b600190505b90565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018060146101000a81548160ff0219169083151502179055506200147060055f8154811062001419576200141862001ed6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200182260201b60201c565b6004805462001480919062001fa7565b600b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115620016785760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476107d060045462001535919062001fa7565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016200157d959493929190620022e7565b5f604051808303815f87803b15801562001595575f80fd5b505af1158015620015a8573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947612710600454620015fb919062001fa7565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040162001643959493929190620022e7565b5f604051808303815f87803b1580156200165b575f80fd5b505af11580156200166e573d5f803e3d5ffd5b5050505062001805565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476101f4600454620016c7919062001fa7565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016200170f959493929190620022e7565b5f604051808303815f87803b15801562001727575f80fd5b505af11580156200173a573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476109c46004546200178d919062001fa7565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401620017d5959493929190620022e7565b5f604051808303815f87803b158015620017ed575f80fd5b505af115801562001800573d5f803e3d5ffd5b505050505b5f600160146101000a81548160ff02191690831515021790555050565b6200183783838360016200183c60201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620018af575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401620018a6919062002082565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362001922575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040162001919919062002082565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801562001a0e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162001a059190620020e8565b60405180910390a35b50505050565b828054828255905f5260205f2090810192821562001a8d579160200282015b8281111562001a8c578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062001a33565b5b50905062001a9c919062001aa0565b5090565b5b8082111562001ab9575f815f90555060010162001aa1565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062001b3957607f821691505b60208210810362001b4f5762001b4e62001af4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262001bb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001b76565b62001bbf868362001b76565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62001c0962001c0362001bfd8462001bd7565b62001be0565b62001bd7565b9050919050565b5f819050919050565b62001c248362001be9565b62001c3c62001c338262001c10565b84845462001b82565b825550505050565b5f90565b62001c5262001c44565b62001c5f81848462001c19565b505050565b5b8181101562001c865762001c7a5f8262001c48565b60018101905062001c65565b5050565b601f82111562001cd55762001c9f8162001b55565b62001caa8462001b67565b8101602085101562001cba578190505b62001cd262001cc98562001b67565b83018262001c64565b50505b505050565b5f82821c905092915050565b5f62001cf75f198460080262001cda565b1980831691505092915050565b5f62001d11838362001ce6565b9150826002028217905092915050565b62001d2c8262001abd565b67ffffffffffffffff81111562001d485762001d4762001ac7565b5b62001d54825462001b21565b62001d6182828562001c8a565b5f60209050601f83116001811462001d97575f841562001d82578287015190505b62001d8e858262001d04565b86555062001dfd565b601f19841662001da78662001b55565b5f5b8281101562001dd05784890151825560018201915060208501945060208101905062001da9565b8683101562001df0578489015162001dec601f89168262001ce6565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62001e348262001e09565b9050919050565b62001e468162001e28565b811462001e51575f80fd5b50565b5f8151905062001e648162001e3b565b92915050565b5f6020828403121562001e825762001e8162001e05565b5b5f62001e918482850162001e54565b91505092915050565b62001ea58162001e28565b82525050565b5f60408201905062001ec05f83018562001e9a565b62001ecf602083018462001e9a565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62001f3c8262001bd7565b915062001f498362001bd7565b925082820262001f598162001bd7565b9150828204841483151762001f735762001f7262001f03565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62001fb38262001bd7565b915062001fc08362001bd7565b92508262001fd35762001fd262001f7a565b5b828204905092915050565b5f82825260208201905092915050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f6200204a602a8362001fde565b9150620020578262001fee565b604082019050919050565b5f6020820190508181035f8301526200207b816200203c565b9050919050565b5f602082019050620020975f83018462001e9a565b92915050565b5f620020a98262001bd7565b9150620020b68362001bd7565b9250828201905080821115620020d157620020d062001f03565b5b92915050565b620020e28162001bd7565b82525050565b5f602082019050620020fd5f830184620020d7565b92915050565b5f606082019050620021185f83018662001e9a565b620021276020830185620020d7565b620021366040830184620020d7565b949350505050565b5f6200214a8262001bd7565b9150620021578362001bd7565b925082820390508181111562002172576200217162001f03565b5b92915050565b5f819050919050565b5f620021a16200219b620021958462002178565b62001be0565b62001bd7565b9050919050565b620021b38162002181565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b620021f08162001e28565b82525050565b5f620022038383620021e5565b60208301905092915050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200224f62002249836200220f565b6200221a565b9050919050565b5f62002263825462002239565b9050919050565b5f600182019050919050565b5f6200228282620021b9565b6200228e8185620021c3565b93506200229b83620021d3565b805f5b83811015620022da57620022b28262002256565b620022be8882620021f6565b9750620022cb836200226a565b9250506001810190506200229e565b5085935050505092915050565b5f60a082019050620022fc5f830188620020d7565b6200230b6020830187620021a8565b81810360408301526200231f818662002276565b905062002330606083018562001e9a565b6200233f6080830184620020d7565b9695505050505050565b611d1d80620023575f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806370a082311161006f57806370a0823114610165578063715018a6146101955780638da5cb5b1461019f57806395d89b41146101bd578063a9059cbb146101db578063dd62ed3e1461020b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b361023b565b6040516100c0919061165a565b60405180910390f35b6100e360048036038101906100de919061170b565b6102cb565b6040516100f09190611763565b60405180910390f35b6101016102ed565b60405161010e919061178b565b60405180910390f35b610131600480360381019061012c91906117a4565b6102f6565b60405161013e9190611763565b60405180910390f35b61014f610324565b60405161015c919061180f565b60405180910390f35b61017f600480360381019061017a9190611828565b61032c565b60405161018c919061178b565b60405180910390f35b61019d610372565b005b6101a7610385565b6040516101b49190611862565b60405180910390f35b6101c56103ac565b6040516101d2919061165a565b60405180910390f35b6101f560048036038101906101f0919061170b565b61043c565b6040516102029190611763565b60405180910390f35b6102256004803603810190610220919061187b565b61045e565b604051610232919061178b565b60405180910390f35b60606002805461024a906118e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610276906118e6565b80156102c15780601f10610298576101008083540402835291602001916102c1565b820191905f5260205f20905b8154815290600101906020018083116102a457829003601f168201915b5050505050905090565b5f806102d56104e0565b90506102e28185856104e7565b600191505092915050565b5f600454905090565b5f806103006104e0565b905061030d8582856104f9565b61031885858561058b565b60019150509392505050565b5f6012905090565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61037a610cf3565b6103835f610d7a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546103bb906118e6565b80601f01602080910402602001604051908101604052809291908181526020018280546103e7906118e6565b80156104325780601f1061040957610100808354040283529160200191610432565b820191905f5260205f20905b81548152906001019060200180831161041557829003601f168201915b5050505050905090565b5f806104466104e0565b905061045381858561058b565b600191505092915050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104f48383836001610e3b565b505050565b5f610504848461045e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105855781811015610576578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161056d93929190611916565b60405180910390fd5b61058484848484035f610e3b565b5b50505050565b5f81116105cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c4906119bb565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610659575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106509190611862565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106c09190611862565b60405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107605760326004546107269190611a33565b81111561075f576040517f50fe683800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661083f5760326004546107bd9190611a33565b81600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108069190611a63565b111561083e576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109265780600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610919919061178b565b60405180910390a3610cee565b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109b0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109a793929190611916565b60405180910390fd5b818103600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506109fe848461100a565b5f6064610a0961116d565b84610a149190611a96565b610a1e9190611a33565b9050610a28610385565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610af9575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610af8575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15610b02575f90505b5f8114610c2f5780600b5f60055f81548110610b2157610b20611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060055f81548110610ba257610ba1611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c26919061178b565b60405180910390a35b808303600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386610cd69190611b04565b604051610ce3919061178b565b60405180910390a350505b505050565b610cfb6104e0565b73ffffffffffffffffffffffffffffffffffffffff16610d19610385565b73ffffffffffffffffffffffffffffffffffffffff1614610d7857610d3c6104e0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d6f9190611862565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610eab575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610ea29190611862565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610f129190611862565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611004578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ffb919061178b565b60405180910390a35b50505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156110ad575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611169575f600b5f60055f815481106110ca576110c9611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160149054906101000a900460ff16158015611158575060c86004546111559190611a33565b81115b1561116757611166816111b9565b5b505b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff1661118d610385565b73ffffffffffffffffffffffffffffffffffffffff16146111b157600a90506111b6565b600190505b90565b60018060146101000a81548160ff02191690831515021790555061123a60055f815481106111ea576111e9611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836104e7565b600480546112489190611a33565b600b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156114325760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476107d06004546112fa9190611a33565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611340959493929190611c8f565b5f604051808303815f87803b158015611357575f80fd5b505af1158015611369573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476127106004546113ba9190611a33565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611400959493929190611c8f565b5f604051808303815f87803b158015611417575f80fd5b505af1158015611429573d5f803e3d5ffd5b505050506115b3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476101f460045461147f9190611a33565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016114c5959493929190611c8f565b5f604051808303815f87803b1580156114dc575f80fd5b505af11580156114ee573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476109c460045461153f9190611a33565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611585959493929190611c8f565b5f604051808303815f87803b15801561159c575f80fd5b505af11580156115ae573d5f803e3d5ffd5b505050505b5f600160146101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156116075780820151818401526020810190506115ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61162c826115d0565b61163681856115da565b93506116468185602086016115ea565b61164f81611612565b840191505092915050565b5f6020820190508181035f8301526116728184611622565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116a78261167e565b9050919050565b6116b78161169d565b81146116c1575f80fd5b50565b5f813590506116d2816116ae565b92915050565b5f819050919050565b6116ea816116d8565b81146116f4575f80fd5b50565b5f81359050611705816116e1565b92915050565b5f80604083850312156117215761172061167a565b5b5f61172e858286016116c4565b925050602061173f858286016116f7565b9150509250929050565b5f8115159050919050565b61175d81611749565b82525050565b5f6020820190506117765f830184611754565b92915050565b611785816116d8565b82525050565b5f60208201905061179e5f83018461177c565b92915050565b5f805f606084860312156117bb576117ba61167a565b5b5f6117c8868287016116c4565b93505060206117d9868287016116c4565b92505060406117ea868287016116f7565b9150509250925092565b5f60ff82169050919050565b611809816117f4565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f6020828403121561183d5761183c61167a565b5b5f61184a848285016116c4565b91505092915050565b61185c8161169d565b82525050565b5f6020820190506118755f830184611853565b92915050565b5f80604083850312156118915761189061167a565b5b5f61189e858286016116c4565b92505060206118af858286016116c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118fd57607f821691505b6020821081036119105761190f6118b9565b5b50919050565b5f6060820190506119295f830186611853565b611936602083018561177c565b611943604083018461177c565b949350505050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f6119a5602a836115da565b91506119b08261194b565b604082019050919050565b5f6020820190508181035f8301526119d281611999565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a3d826116d8565b9150611a48836116d8565b925082611a5857611a576119d9565b5b828204905092915050565b5f611a6d826116d8565b9150611a78836116d8565b9250828201905080821115611a9057611a8f611a06565b5b92915050565b5f611aa0826116d8565b9150611aab836116d8565b9250828202611ab9816116d8565b91508282048414831517611ad057611acf611a06565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b0e826116d8565b9150611b19836116d8565b9250828203905081811115611b3157611b30611a06565b5b92915050565b5f819050919050565b5f819050919050565b5f611b63611b5e611b5984611b37565b611b40565b6116d8565b9050919050565b611b7381611b49565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b611bae8161169d565b82525050565b5f611bbf8383611ba5565b60208301905092915050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c07611c0283611bcb565b611bd6565b9050919050565b5f611c198254611bf5565b9050919050565b5f600182019050919050565b5f611c3682611b79565b611c408185611b83565b9350611c4b83611b93565b805f5b83811015611c8257611c5f82611c0e565b611c698882611bb4565b9750611c7483611c20565b925050600181019050611c4e565b5085935050505092915050565b5f60a082019050611ca25f83018861177c565b611caf6020830187611b6a565b8181036040830152611cc18186611c2c565b9050611cd06060830185611853565b611cdd608083018461177c565b969550505050505056fea26469706673582212209e3346a12a902dd3491fe236b716addf1b24c82b3800a5cc88bc18cba39b0f2e64736f6c6343000815003348617272795452554d50706f7474657256536c6f7264424944454e766f6c64656d6f7274494e55

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806370a082311161006f57806370a0823114610165578063715018a6146101955780638da5cb5b1461019f57806395d89b41146101bd578063a9059cbb146101db578063dd62ed3e1461020b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b361023b565b6040516100c0919061165a565b60405180910390f35b6100e360048036038101906100de919061170b565b6102cb565b6040516100f09190611763565b60405180910390f35b6101016102ed565b60405161010e919061178b565b60405180910390f35b610131600480360381019061012c91906117a4565b6102f6565b60405161013e9190611763565b60405180910390f35b61014f610324565b60405161015c919061180f565b60405180910390f35b61017f600480360381019061017a9190611828565b61032c565b60405161018c919061178b565b60405180910390f35b61019d610372565b005b6101a7610385565b6040516101b49190611862565b60405180910390f35b6101c56103ac565b6040516101d2919061165a565b60405180910390f35b6101f560048036038101906101f0919061170b565b61043c565b6040516102029190611763565b60405180910390f35b6102256004803603810190610220919061187b565b61045e565b604051610232919061178b565b60405180910390f35b60606002805461024a906118e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610276906118e6565b80156102c15780601f10610298576101008083540402835291602001916102c1565b820191905f5260205f20905b8154815290600101906020018083116102a457829003601f168201915b5050505050905090565b5f806102d56104e0565b90506102e28185856104e7565b600191505092915050565b5f600454905090565b5f806103006104e0565b905061030d8582856104f9565b61031885858561058b565b60019150509392505050565b5f6012905090565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61037a610cf3565b6103835f610d7a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546103bb906118e6565b80601f01602080910402602001604051908101604052809291908181526020018280546103e7906118e6565b80156104325780601f1061040957610100808354040283529160200191610432565b820191905f5260205f20905b81548152906001019060200180831161041557829003601f168201915b5050505050905090565b5f806104466104e0565b905061045381858561058b565b600191505092915050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104f48383836001610e3b565b505050565b5f610504848461045e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105855781811015610576578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161056d93929190611916565b60405180910390fd5b61058484848484035f610e3b565b5b50505050565b5f81116105cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c4906119bb565b60405180910390fd5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610659575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106509190611862565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106c09190611862565b60405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166107605760326004546107269190611a33565b81111561075f576040517f50fe683800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661083f5760326004546107bd9190611a33565b81600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108069190611a63565b111561083e576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109265780600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610919919061178b565b60405180910390a3610cee565b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109b0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109a793929190611916565b60405180910390fd5b818103600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506109fe848461100a565b5f6064610a0961116d565b84610a149190611a96565b610a1e9190611a33565b9050610a28610385565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610af9575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610af8575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15610b02575f90505b5f8114610c2f5780600b5f60055f81548110610b2157610b20611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060055f81548110610ba257610ba1611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c26919061178b565b60405180910390a35b808303600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386610cd69190611b04565b604051610ce3919061178b565b60405180910390a350505b505050565b610cfb6104e0565b73ffffffffffffffffffffffffffffffffffffffff16610d19610385565b73ffffffffffffffffffffffffffffffffffffffff1614610d7857610d3c6104e0565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d6f9190611862565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610eab575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610ea29190611862565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610f129190611862565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611004578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ffb919061178b565b60405180910390a35b50505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156110ad575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611169575f600b5f60055f815481106110ca576110c9611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160149054906101000a900460ff16158015611158575060c86004546111559190611a33565b81115b1561116757611166816111b9565b5b505b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff1661118d610385565b73ffffffffffffffffffffffffffffffffffffffff16146111b157600a90506111b6565b600190505b90565b60018060146101000a81548160ff02191690831515021790555061123a60055f815481106111ea576111e9611ad7565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836104e7565b600480546112489190611a33565b600b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411156114325760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476107d06004546112fa9190611a33565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611340959493929190611c8f565b5f604051808303815f87803b158015611357575f80fd5b505af1158015611369573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476127106004546113ba9190611a33565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611400959493929190611c8f565b5f604051808303815f87803b158015611417575f80fd5b505af1158015611429573d5f803e3d5ffd5b505050506115b3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476101f460045461147f9190611a33565b5f600560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016114c5959493929190611c8f565b5f604051808303815f87803b1580156114dc575f80fd5b505af11580156114ee573d5f803e3d5ffd5b5050505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476109c460045461153f9190611a33565b5f600560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611585959493929190611c8f565b5f604051808303815f87803b15801561159c575f80fd5b505af11580156115ae573d5f803e3d5ffd5b505050505b5f600160146101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156116075780820151818401526020810190506115ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61162c826115d0565b61163681856115da565b93506116468185602086016115ea565b61164f81611612565b840191505092915050565b5f6020820190508181035f8301526116728184611622565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116a78261167e565b9050919050565b6116b78161169d565b81146116c1575f80fd5b50565b5f813590506116d2816116ae565b92915050565b5f819050919050565b6116ea816116d8565b81146116f4575f80fd5b50565b5f81359050611705816116e1565b92915050565b5f80604083850312156117215761172061167a565b5b5f61172e858286016116c4565b925050602061173f858286016116f7565b9150509250929050565b5f8115159050919050565b61175d81611749565b82525050565b5f6020820190506117765f830184611754565b92915050565b611785816116d8565b82525050565b5f60208201905061179e5f83018461177c565b92915050565b5f805f606084860312156117bb576117ba61167a565b5b5f6117c8868287016116c4565b93505060206117d9868287016116c4565b92505060406117ea868287016116f7565b9150509250925092565b5f60ff82169050919050565b611809816117f4565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f6020828403121561183d5761183c61167a565b5b5f61184a848285016116c4565b91505092915050565b61185c8161169d565b82525050565b5f6020820190506118755f830184611853565b92915050565b5f80604083850312156118915761189061167a565b5b5f61189e858286016116c4565b92505060206118af858286016116c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118fd57607f821691505b6020821081036119105761190f6118b9565b5b50919050565b5f6060820190506119295f830186611853565b611936602083018561177c565b611943604083018461177c565b949350505050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f6119a5602a836115da565b91506119b08261194b565b604082019050919050565b5f6020820190508181035f8301526119d281611999565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a3d826116d8565b9150611a48836116d8565b925082611a5857611a576119d9565b5b828204905092915050565b5f611a6d826116d8565b9150611a78836116d8565b9250828201905080821115611a9057611a8f611a06565b5b92915050565b5f611aa0826116d8565b9150611aab836116d8565b9250828202611ab9816116d8565b91508282048414831517611ad057611acf611a06565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b0e826116d8565b9150611b19836116d8565b9250828203905081811115611b3157611b30611a06565b5b92915050565b5f819050919050565b5f819050919050565b5f611b63611b5e611b5984611b37565b611b40565b6116d8565b9050919050565b611b7381611b49565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b611bae8161169d565b82525050565b5f611bbf8383611ba5565b60208301905092915050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c07611c0283611bcb565b611bd6565b9050919050565b5f611c198254611bf5565b9050919050565b5f600182019050919050565b5f611c3682611b79565b611c408185611b83565b9350611c4b83611b93565b805f5b83811015611c8257611c5f82611c0e565b611c698882611bb4565b9750611c7483611c20565b925050600181019050611c4e565b5085935050505092915050565b5f60a082019050611ca25f83018861177c565b611caf6020830187611b6a565b8181036040830152611cc18186611c2c565b9050611cd06060830185611853565b611cdd608083018461177c565b969550505050505056fea26469706673582212209e3346a12a902dd3491fe236b716addf1b24c82b3800a5cc88bc18cba39b0f2e64736f6c63430008150033

Deployed Bytecode Sourcemap

3149:7121:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4845:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5586:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5146:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5053:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5260:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:97;;;:::i;:::-;;2601:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4947:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5389:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6054:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4845:94;4893:13;4926:5;4919:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4845:94;:::o;5586:197::-;5663:4;5680:14;5697:12;:10;:12::i;:::-;5680:29;;5720:33;5729:6;5737:7;5746:6;5720:8;:33::i;:::-;5771:4;5764:11;;;5586:197;;;;:::o;5146:102::-;5201:7;5228:12;;5221:19;;5146:102;:::o;5791:255::-;5882:4;5899:15;5917:12;:10;:12::i;:::-;5899:30;;5940:38;5956:4;5962:7;5971:6;5940:15;:38::i;:::-;5989:27;5999:4;6005:2;6009:6;5989:9;:27::i;:::-;6034:4;6027:11;;;5791:255;;;;;:::o;5053:85::-;5103:5;5128:2;5121:9;;5053:85;:::o;5260:121::-;5328:7;5355:9;:18;5365:7;5355:18;;;;;;;;;;;;;;;;5348:25;;5260:121;;;:::o;3045:97::-;2560:13;:11;:13::i;:::-;3104:30:::1;3131:1;3104:18;:30::i;:::-;3045:97::o:0;2601:79::-;2639:7;2666:6;;;;;;;;;;;2659:13;;2601:79;:::o;4947:98::-;4997:13;5030:7;5023:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4947:98;:::o;5389:189::-;5462:4;5479:14;5496:12;:10;:12::i;:::-;5479:29;;5519;5529:6;5537:2;5541:6;5519:9;:29::i;:::-;5566:4;5559:11;;;5389:189;;;;:::o;6054:145::-;6136:7;6163:11;:19;6175:6;6163:19;;;;;;;;;;;;;;;:28;6183:7;6163:28;;;;;;;;;;;;;;;;6156:35;;6054:145;;;;:::o;2032:98::-;2085:7;2112:10;2105:17;;2032:98;:::o;9192:133::-;9278:39;9287:6;9295:7;9304:6;9312:4;9278:8;:39::i;:::-;9192:133;;;:::o;9782:485::-;9875:24;9902:26;9912:6;9920:7;9902:9;:26::i;:::-;9875:53;;9963:17;9943:16;:37;9939:321;;10020:6;10001:16;:25;9997:134;;;10081:7;10090:16;10108:6;10054:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;9997:134;10174:59;10183:6;10191:7;10219:6;10200:16;:25;10227:5;10174:8;:59::i;:::-;9939:321;9864:403;9782:485;;;:::o;6211:1705::-;6308:1;6299:6;:10;6291:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6371:14;:20;6386:4;6371:20;;;;;;;;;;;;;;;;;;;;;;;;;6367:90;;;6442:1;6415:30;;;;;;;;;;;:::i;:::-;;;;;;;;6367:90;6485:1;6471:16;;:2;:16;;;6467:88;;6540:1;6511:32;;;;;;;;;;;:::i;:::-;;;;;;;;6467:88;6570:7;:13;6578:4;6570:13;;;;;;;;;;;;;;;;;;;;;;;;;6565:132;;6628:2;6613:12;;:17;;;;:::i;:::-;6604:6;:26;6600:86;;;6658:12;;;;;;;;;;;;;;6600:86;6565:132;6712:7;:11;6720:2;6712:11;;;;;;;;;;;;;;;;;;;;;;;;;6707:150;;6784:2;6769:12;;:17;;;;:::i;:::-;6760:6;6744:9;:13;6754:2;6744:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:42;6740:106;;;6814:16;;;;;;;;;;;;;;6740:106;6707:150;6887:1;6871:18;;:4;:18;;;6867:1042;;6952:6;6935:9;:13;6945:2;6935:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;7008:2;6993:26;;7002:4;6993:26;;;7012:6;6993:26;;;;;;:::i;:::-;;;;;;;;6867:1042;;;7052:19;7074:9;:15;7084:4;7074:15;;;;;;;;;;;;;;;;7052:37;;7122:6;7108:11;:20;7104:119;;;7181:4;7187:11;7200:6;7156:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;7104:119;7298:6;7284:11;:20;7266:9;:15;7276:4;7266:15;;;;;;;;;;;;;;;:38;;;;7348:20;7359:4;7365:2;7348:10;:20::i;:::-;7385:16;7421:3;7413:5;:3;:5::i;:::-;7404:6;:14;;;;:::i;:::-;:20;;;;:::i;:::-;7385:39;;7451:7;:5;:7::i;:::-;7443:15;;:4;:15;;;:47;;;;7462:7;:13;7470:4;7462:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;7479:7;:11;7487:2;7479:11;;;;;;;;;;;;;;;;;;;;;;;;;7462:28;7443:47;7439:100;;;7522:1;7511:12;;7439:100;7569:1;7557:8;:13;7553:195;;7647:8;7624:9;:19;7634:5;7640:1;7634:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7624:19;;;;;;;;;;;;;;;;:31;;;;;;;;;;;7713:5;7719:1;7713:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7698:34;;7707:4;7698:34;;;7723:8;7698:34;;;;;;:::i;:::-;;;;;;;;7553:195;7817:8;7808:6;:17;7791:9;:13;7801:2;7791:13;;;;;;;;;;;;;;;;:34;;;;;;;;;;;7875:2;7860:37;;7869:4;7860:37;;;7888:8;7879:6;:17;;;;:::i;:::-;7860:37;;;;;;:::i;:::-;;;;;;;;7037:872;;6867:1042;6211:1705;;;:::o;2688:158::-;2751:12;:10;:12::i;:::-;2740:23;;:7;:5;:7::i;:::-;:23;;;2736:103;;2814:12;:10;:12::i;:::-;2787:40;;;;;;;;;;;:::i;:::-;;;;;;;;2736:103;2688:158::o;2854:183::-;2920:16;2939:6;;;;;;;;;;;2920:25;;2965:8;2956:6;;:17;;;;;;;;;;;;;;;;;;3020:8;2989:40;;3010:8;2989:40;;;;;;;;;;;;2909:128;2854:183;:::o;9333:441::-;9457:1;9439:20;;:6;:20;;;9435:92;;9512:1;9483:32;;;;;;;;;;;:::i;:::-;;;;;;;;9435:92;9560:1;9541:21;;:7;:21;;;9537:92;;9614:1;9586:31;;;;;;;;;;;:::i;:::-;;;;;;;;9537:92;9670:6;9639:11;:19;9651:6;9639:19;;;;;;;;;;;;;;;:28;9659:7;9639:28;;;;;;;;;;;;;;;:37;;;;9691:9;9687:80;;;9739:7;9722:33;;9731:6;9722:33;;;9748:6;9722:33;;;;;;:::i;:::-;;;;;;;;9687:80;9333:441;;;;:::o;8102:332::-;8177:8;;;;;;;;;;;8171:14;;:2;:14;;;:32;;;;;8190:7;:13;8198:4;8190:13;;;;;;;;;;;;;;;;;;;;;;;;;8189:14;8171:32;8167:260;;;8220:28;8251:9;:19;8261:5;8267:1;8261:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8251:19;;;;;;;;;;;;;;;;8220:50;;8290:11;;;;;;;;;;;8289:12;:57;;;;;8343:3;8328:12;;:18;;;;:::i;:::-;8305:20;:41;8289:57;8285:131;;;8367:33;8379:20;8367:11;:33::i;:::-;8285:131;8205:222;8167:260;8102:332;;:::o;7926:168::-;7963:7;8006:1;7987:21;;:7;:5;:7::i;:::-;:21;;;7983:104;;8032:2;8025:9;;;;7983:104;8074:1;8067:8;;7926:168;;:::o;8442:742::-;4783:4;4769:11;;:18;;;;;;;;;;;;;;;;;;8506:46:::1;8515:5;8521:1;8515:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8533:10;;;;;;;;;;;8546:5;8506:8;:46::i;:::-;8604:1;8589:12:::0;::::1;:16;;;;:::i;:::-;8567:9;:19;8577:8;;;;;;;;;;;8567:19;;;;;;;;;;;;;;;;:38;8563:614;;;8622:10;;;;;;;;;;;:61;;;8699:4;8684:12;;:19;;;;:::i;:::-;8705:1;8708:5;8715:9;;;;;;;;;;;8726:15;8622:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8757:10;;;;;;;;;;;:61;;;8834:5;8819:12;;:20;;;;:::i;:::-;8841:1;8844:5;8851:9;;;;;;;;;;;8862:15;8757:121;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8563:614;;;8911:10;;;;;;;;;;;:61;;;8988:3;8973:12;;:18;;;;:::i;:::-;8993:1;8996:5;9003:9;;;;;;;;;;;9014:15;8911:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9045:10;;;;;;;;;;;:61;;;9122:4;9107:12;;:19;;;;:::i;:::-;9128:1;9131:5;9138:9;;;;;;;;;;;9149:15;9045:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8563:614;4824:5:::0;4810:11;;:19;;;;;;;;;;;;;;;;;;8442:742;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:442::-;6681:4;6719:2;6708:9;6704:18;6696:26;;6732:71;6800:1;6789:9;6785:17;6776:6;6732:71;:::i;:::-;6813:72;6881:2;6870:9;6866:18;6857:6;6813:72;:::i;:::-;6895;6963:2;6952:9;6948:18;6939:6;6895:72;:::i;:::-;6532:442;;;;;;:::o;6980:229::-;7120:34;7116:1;7108:6;7104:14;7097:58;7189:12;7184:2;7176:6;7172:15;7165:37;6980:229;:::o;7215:366::-;7357:3;7378:67;7442:2;7437:3;7378:67;:::i;:::-;7371:74;;7454:93;7543:3;7454:93;:::i;:::-;7572:2;7567:3;7563:12;7556:19;;7215:366;;;:::o;7587:419::-;7753:4;7791:2;7780:9;7776:18;7768:26;;7840:9;7834:4;7830:20;7826:1;7815:9;7811:17;7804:47;7868:131;7994:4;7868:131;:::i;:::-;7860:139;;7587:419;;;:::o;8012:180::-;8060:77;8057:1;8050:88;8157:4;8154:1;8147:15;8181:4;8178:1;8171:15;8198:180;8246:77;8243:1;8236:88;8343:4;8340:1;8333:15;8367:4;8364:1;8357:15;8384:185;8424:1;8441:20;8459:1;8441:20;:::i;:::-;8436:25;;8475:20;8493:1;8475:20;:::i;:::-;8470:25;;8514:1;8504:35;;8519:18;;:::i;:::-;8504:35;8561:1;8558;8554:9;8549:14;;8384:185;;;;:::o;8575:191::-;8615:3;8634:20;8652:1;8634:20;:::i;:::-;8629:25;;8668:20;8686:1;8668:20;:::i;:::-;8663:25;;8711:1;8708;8704:9;8697:16;;8732:3;8729:1;8726:10;8723:36;;;8739:18;;:::i;:::-;8723:36;8575:191;;;;:::o;8772:410::-;8812:7;8835:20;8853:1;8835:20;:::i;:::-;8830:25;;8869:20;8887:1;8869:20;:::i;:::-;8864:25;;8924:1;8921;8917:9;8946:30;8964:11;8946:30;:::i;:::-;8935:41;;9125:1;9116:7;9112:15;9109:1;9106:22;9086:1;9079:9;9059:83;9036:139;;9155:18;;:::i;:::-;9036:139;8820:362;8772:410;;;;:::o;9188:180::-;9236:77;9233:1;9226:88;9333:4;9330:1;9323:15;9357:4;9354:1;9347:15;9374:194;9414:4;9434:20;9452:1;9434:20;:::i;:::-;9429:25;;9468:20;9486:1;9468:20;:::i;:::-;9463:25;;9512:1;9509;9505:9;9497:17;;9536:1;9530:4;9527:11;9524:37;;;9541:18;;:::i;:::-;9524:37;9374:194;;;;:::o;9574:85::-;9619:7;9648:5;9637:16;;9574:85;;;:::o;9665:60::-;9693:3;9714:5;9707:12;;9665:60;;;:::o;9731:158::-;9789:9;9822:61;9840:42;9849:32;9875:5;9849:32;:::i;:::-;9840:42;:::i;:::-;9822:61;:::i;:::-;9809:74;;9731:158;;;:::o;9895:147::-;9990:45;10029:5;9990:45;:::i;:::-;9985:3;9978:58;9895:147;;:::o;10048:111::-;10112:6;10146:5;10140:12;10130:22;;10048:111;;;:::o;10165:184::-;10264:11;10298:6;10293:3;10286:19;10338:4;10333:3;10329:14;10314:29;;10165:184;;;;:::o;10355:156::-;10419:4;10442:3;10434:11;;10465:3;10462:1;10455:14;10499:4;10496:1;10486:18;10478:26;;10355:156;;;:::o;10517:108::-;10594:24;10612:5;10594:24;:::i;:::-;10589:3;10582:37;10517:108;;:::o;10631:179::-;10700:10;10721:46;10763:3;10755:6;10721:46;:::i;:::-;10799:4;10794:3;10790:14;10776:28;;10631:179;;;;:::o;10816:102::-;10858:8;10905:5;10902:1;10898:13;10877:34;;10816:102;;;:::o;10924:139::-;10974:7;11014:42;11007:5;11003:54;10992:65;;10924:139;;;:::o;11069:166::-;11138:5;11163:66;11194:34;11217:10;11194:34;:::i;:::-;11163:66;:::i;:::-;11154:75;;11069:166;;;:::o;11241:144::-;11296:5;11321:57;11372:4;11366:11;11321:57;:::i;:::-;11312:66;;11241:144;;;:::o;11391:110::-;11458:4;11490;11485:3;11481:14;11473:22;;11391:110;;;:::o;11537:751::-;11653:3;11682:51;11727:5;11682:51;:::i;:::-;11749:86;11828:6;11823:3;11749:86;:::i;:::-;11742:93;;11859:53;11906:5;11859:53;:::i;:::-;11935:7;11966:1;11951:312;11976:6;11973:1;11970:13;11951:312;;;12046:44;12083:6;12046:44;:::i;:::-;12110:63;12169:3;12154:13;12110:63;:::i;:::-;12103:70;;12196:57;12246:6;12196:57;:::i;:::-;12186:67;;12011:252;11998:1;11995;11991:9;11986:14;;11951:312;;;11955:14;12279:3;12272:10;;11658:630;;;11537:751;;;;:::o;12294:825::-;12554:4;12592:3;12581:9;12577:19;12569:27;;12606:71;12674:1;12663:9;12659:17;12650:6;12606:71;:::i;:::-;12687:80;12763:2;12752:9;12748:18;12739:6;12687:80;:::i;:::-;12814:9;12808:4;12804:20;12799:2;12788:9;12784:18;12777:48;12842:105;12942:4;12933:6;12842:105;:::i;:::-;12834:113;;12957:72;13025:2;13014:9;13010:18;13001:6;12957:72;:::i;:::-;13039:73;13107:3;13096:9;13092:19;13083:6;13039:73;:::i;:::-;12294:825;;;;;;;;:::o

Swarm Source

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