ETH Price: $2,371.23 (-3.71%)
Gas: 1.5 Gwei

Token

PengWu (PENGWU)
 

Overview

Max Total Supply

1,000,000,000 PENGWU

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
24,410,281.348790715520598094 PENGWU

Value
$0.00
0xfb1bc1b8c791324abd2264bdf326f11c0fc4064d
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:
PENGWU

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-16
*/

/**
 *  _  (`-') (`-')  _<-. (`-')_                .->
 \-.(OO ) ( OO).-/   \( OO) )    .->    (`(`-')/`)     .->
 _.'    \(,------.,--./ ,--/  ,---(`-'),-`( OO).',,--.(,--.
(_...--'' |  .---'|   \ |  | '  .-(OO )|  |\  |  ||  | |(`-')
|  |_.' |(|  '--. |  . '|  |)|  | .-, \|  | '.|  ||  | |(OO )
|  .___.' |  .--' |  |\    | |  | '.(_/|  |.'.|  ||  | | |  \
|  |      |  `---.|  | \   | |  '-'  | |   ,'.   |\  '-'(_ .'
`--'      `------'`--'  `--'  `-----'  `--'   '--' `-----'

    https://pengwu.one
    https://t.me/PengWuEth
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

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

contract PENGWU is IERC20, Ownable {
    mapping(address => uint256) private _owned;

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

    uint256 private _totalSupply = 1e9 * 10 ** 18;

    string private _name = "PengWu";
    string private _symbol = "PENGWU";

    mapping(address => bool) public feeAllowed;
    mapping(address => bool) public limitAllowed;

    mapping(address => bool) public pairs;
    bool public tradeAllowed;

    uint256 public txAllowedAt = (_totalSupply * 20) / 1000;
    uint256 public walletAllowedAt = (_totalSupply * 20) / 1000;

    address public taxPort;

    uint256 public shortTax;

    uint256 public longTax;

    bool public limitChecked = true;
    uint256 public swapMinAt = (_totalSupply * 5) / 1000000;
    uint256 public swapMaxTo = _totalSupply / 100;

    bool public swapAllowed = false;
    bool private swapping;

    address public lp;
    IDexRouter public router;

    uint256 public constant FEE_DIVISOR = 10000;

    event NewLimits();
    event NewTaxes(uint256 _shortTax, uint256 _longTax);

    constructor() {
        router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        taxPort = 0x60473a08175F20E6999659Cf032825863FC435B7;

        shortTax = 3000;
        longTax = 3000;

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

        feeAllowed[taxPort] = true;

        _owned[msg.sender] = _totalSupply;

        _approve(address(this), address(router), type(uint256).max);
    }

    receive() external payable {}

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

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

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

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

    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 transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function _transfer(
        address flit,
        address trat,
        uint256 holes
    ) internal virtual {
        if (
            flit == owner() ||
            trat == owner() ||
            flit == address(this) ||
            trat == address(this)
        ) {
            _internalTransfer(flit, trat, holes);
            return;
        }

        limitCheck(flit, trat, holes);

        holes -= checkFee(flit, trat, holes);

        _internalTransfer(flit, trat, holes);
    }

    function _internalTransfer(
        address flit,
        address trat,
        uint256 holes
    ) internal {
        _owned[flit] = _owned[flit] - holes;
        _owned[trat] = _owned[trat] + holes;
        emit Transfer(flit, trat, holes);
    }

    function newLP() external onlyOwner {
        lp = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );

        pairs[lp] = true;

        limitAllowed[lp] = true;

        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        tradeAllowed = true;
        swapAllowed = true;
    }

    function newTaxes(uint256 _shortTax, uint256 _longTax) external onlyOwner {
        shortTax = _shortTax;
        longTax = _longTax;
        require(shortTax <= 9900 && longTax <= 9900, "Keep tax below 99%");
        emit NewTaxes(shortTax, longTax);
    }

    function newLimits() external onlyOwner {
        limitChecked = false;
        txAllowedAt = totalSupply();
        walletAllowedAt = totalSupply();
        emit NewLimits();
    }

    function limitCheck(
        address flit,
        address trat,
        uint256 holes
    ) internal view {
        require(tradeAllowed, "Trading is not allowed");

        if (limitChecked) {
            if (pairs[flit] && !limitAllowed[trat]) {
                require(holes <= txAllowedAt, "Exceeds tx limit");
                require(
                    holes + balanceOf(trat) <= walletAllowedAt,
                    "Exceeds bag size"
                );
            } else if (pairs[trat] && !limitAllowed[flit]) {
                require(holes <= txAllowedAt, "Exceeds tx limit");
            } else if (!limitAllowed[trat]) {
                require(
                    holes + balanceOf(trat) <= walletAllowedAt,
                    "Exceeds bag size"
                );
            }
        }
    }

    function checkFee(
        address flit,
        address trat,
        uint256 holes
    ) internal returns (uint256) {
        if (
            holes >= swapMinAt &&
            !swapping &&
            swapAllowed &&
            pairs[trat] &&
            !feeAllowed[flit]
        ) {
            swapping = true;
            swapBackAndSend();
            swapping = false;
        }

        uint256 tax = 0;

        if (!feeAllowed[flit] && !feeAllowed[trat]) {
            if (pairs[trat] && longTax > 0) {
                tax = (holes * longTax) / FEE_DIVISOR;
            } else if (pairs[flit] && shortTax > 0) {
                tax = (holes * shortTax) / FEE_DIVISOR;
            }
            if (tax > 0) {
                _owned[flit] = _owned[flit] - tax;
                _owned[address(this)] = _owned[address(this)] + tax;
                emit Transfer(flit, address(this), tax);
            }
        } else {
            _owned[flit] = _owned[flit] + (holes - tax);
        }

        return tax;
    }

    function swapTokensForETH(uint256 tokens) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = address(router.WETH());

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokens,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBackAndSend() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance > swapMaxTo) {
            contractBalance = swapMaxTo;
        }

        if (contractBalance > swapMinAt) swapTokensForETH(contractBalance);

        payable(taxPort).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"NewLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_shortTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_longTax","type":"uint256"}],"name":"NewTaxes","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":[],"name":"FEE_DIVISOR","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":[],"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":"","type":"address"}],"name":"feeAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitChecked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","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":"newLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"newLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shortTax","type":"uint256"},{"internalType":"uint256","name":"_longTax","type":"uint256"}],"name":"newTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shortTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMaxTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPort","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","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":[],"name":"txAllowedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletAllowedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6b033b2e3c9fd0803ce800000060035560c0604052600660809081526550656e67577560d01b60a0526004906200003790826200040c565b5060408051808201909152600681526550454e47575560d01b60208201526005906200006490826200040c565b506103e86003546014620000799190620004d8565b62000085919062000504565b600a556103e860035460146200009c9190620004d8565b620000a8919062000504565b600b55600f805460ff19166001179055600354620f424090620000cd906005620004d8565b620000d9919062000504565b6010556064600354620000ed919062000504565b6011556012805460ff191690553480156200010757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601380546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d178255600c80549091167360473a08175f20e6999659cf032825863fc435b7178155610bb8600d819055600e55600760209081527f25cc2733b8120dda7e28ff80ce48c9316f76899ac77c88484895c198d776816f805460ff1990811660019081179092553360008181526040808220805485168617905530808352818320805486168717905596546001600160a01b039081168352600687528183208054909516861790945560035492825293909452919092205591546200023592166000196200023b565b62000527565b6001600160a01b038316620002a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200029a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200039257607f821691505b602082108103620003b357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200040757600081815260208120601f850160051c81016020861015620003e25750805b601f850160051c820191505b818110156200040357828155600101620003ee565b5050505b505050565b81516001600160401b0381111562000428576200042862000367565b62000440816200043984546200037d565b84620003b9565b602080601f8311600181146200047857600084156200045f5750858301515b600019600386901b1c1916600185901b17855562000403565b600085815260208120601f198616915b82811015620004a95788860151825594840194600190910190840162000488565b5085821015620004c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620004fe57634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200052257634e487b7160e01b600052601260045260246000fd5b500490565b6119c280620005376000396000f3fe6080604052600436106101f25760003560e01c806389d1ad6d1161010d578063b3508b47116100a0578063e51a81e31161006f578063e51a81e314610579578063f2fde38b1461058e578063f887ea40146105ae578063fbc9091c146105ce578063fe33b302146105e457600080fd5b8063b3508b471461050e578063c39328d814610524578063dd62ed3e14610539578063e4a19aad1461055957600080fd5b80639e93ad8e116100dc5780639e93ad8e14610498578063a25f90a2146104ae578063a457c2d7146104ce578063a9059cbb146104ee57600080fd5b806389d1ad6d1461041f5780638da5cb5b1461044f57806395d89b411461046d5780639acee8491461048257600080fd5b806335b843e811610185578063684517bc11610154578063684517bc1461039e57806370a08231146103b8578063715018a6146103ee5780637a32bae41461040557600080fd5b806335b843e814610322578063395093511461035257806349e102c41461037257806363e33a3a1461038857600080fd5b80631ac686a5116101c15780631ac686a51461029257806323b872dd146102a8578063313c06a0146102c8578063313ce5671461030657600080fd5b806306fdde03146101fe578063095ea7b314610229578063172869c41461025957806318160ddd1461027357600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610614565b6040516102209190611684565b60405180910390f35b34801561023557600080fd5b506102496102443660046116ea565b6106a6565b6040519015158152602001610220565b34801561026557600080fd5b506012546102499060ff1681565b34801561027f57600080fd5b506003545b604051908152602001610220565b34801561029e57600080fd5b5061028460115481565b3480156102b457600080fd5b506102496102c3366004611716565b6106bd565b3480156102d457600080fd5b506012546102ee906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561031257600080fd5b5060405160128152602001610220565b34801561032e57600080fd5b5061024961033d366004611757565b60076020526000908152604090205460ff1681565b34801561035e57600080fd5b5061024961036d3660046116ea565b6106e1565b34801561037e57600080fd5b50610284600e5481565b34801561039457600080fd5b50610284600d5481565b3480156103aa57600080fd5b50600f546102499060ff1681565b3480156103c457600080fd5b506102846103d3366004611757565b6001600160a01b031660009081526001602052604090205490565b3480156103fa57600080fd5b5061040361070d565b005b34801561041157600080fd5b506009546102499060ff1681565b34801561042b57600080fd5b5061024961043a366004611757565b60066020526000908152604090205460ff1681565b34801561045b57600080fd5b506000546001600160a01b03166102ee565b34801561047957600080fd5b5061021361078a565b34801561048e57600080fd5b50610284600b5481565b3480156104a457600080fd5b5061028461271081565b3480156104ba57600080fd5b506104036104c936600461177b565b610799565b3480156104da57600080fd5b506102496104e93660046116ea565b61086e565b3480156104fa57600080fd5b506102496105093660046116ea565b6108e9565b34801561051a57600080fd5b5061028460105481565b34801561053057600080fd5b506104036108f6565b34801561054557600080fd5b5061028461055436600461179d565b610961565b34801561056557600080fd5b50600c546102ee906001600160a01b031681565b34801561058557600080fd5b5061040361098c565b34801561059a57600080fd5b506104036105a9366004611757565b610c7c565b3480156105ba57600080fd5b506013546102ee906001600160a01b031681565b3480156105da57600080fd5b50610284600a5481565b3480156105f057600080fd5b506102496105ff366004611757565b60086020526000908152604090205460ff1681565b606060048054610623906117d6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906117d6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106b3338484610d66565b5060015b92915050565b6000336106cb858285610e8b565b6106d6858585610f05565b506001949350505050565b6000336107038185856106f48383610961565b6106fe9190611826565b610d66565b5060019392505050565b6000546001600160a01b031633146107405760405162461bcd60e51b815260040161073790611839565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060058054610623906117d6565b6000546001600160a01b031633146107c35760405162461bcd60e51b815260040161073790611839565b600d829055600e8190556126ac82118015906107e357506126ac600e5411155b6108245760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772039392560701b6044820152606401610737565b7f709ed13cbc797dff12bd74fd59d19639413df04e4fdb96f2f1827a1ab182b1ad600d54600e54604051610862929190918252602082015260400190565b60405180910390a15050565b6000338161087c8286610961565b9050838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610737565b6106d68286868403610d66565b60006106b3338484610f05565b6000546001600160a01b031633146109205760405162461bcd60e51b815260040161073790611839565b600f805460ff19169055600354600a55600354600b556040517f68c198beef84e020e0cd6cad523ef1a810335fa54793ffa470ca80380cecff4c90600090a1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161073790611839565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d919061186e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab3919061186e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b24919061186e565b601280546001600160a01b039283166201000090810262010000600160b01b03199092169190911780835581900483166000908152600860209081526040808320805460ff199081166001908117909255955494909404861683526007909152902080549092161790556013541663f305d7194730610bb8816001600160a01b031660009081526001602052604090205490565b600080610bcd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c35573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c5a919061188b565b505060098054600160ff19918216811790925560128054909116909117905550565b6000546001600160a01b03163314610ca65760405162461bcd60e51b815260040161073790611839565b6001600160a01b038116610d0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610737565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610737565b6001600160a01b038216610e295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610737565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610e978484610961565b90506000198114610eff5781811015610ef25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610737565b610eff8484848403610d66565b50505050565b6000546001600160a01b0384811691161480610f2e57506000546001600160a01b038381169116145b80610f4157506001600160a01b03831630145b80610f5457506001600160a01b03821630145b15610f6957610f64838383610f92565b505050565b610f7483838361103a565b610f7f83838361124f565b610f8990826118b9565b9050610f648383835b6001600160a01b038316600090815260016020526040902054610fb69082906118b9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610fe6908290611826565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7e9085815260200190565b60095460ff166110855760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b6044820152606401610737565b600f5460ff1615610f64576001600160a01b03831660009081526008602052604090205460ff1680156110d157506001600160a01b03821660009081526007602052604090205460ff16155b1561118357600a5481111561111b5760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b6044820152606401610737565b600b546001600160a01b0383166000908152600160205260409020545b6111429083611826565b1115610f645760405162461bcd60e51b815260206004820152601060248201526f45786365656473206261672073697a6560801b6044820152606401610737565b6001600160a01b03821660009081526008602052604090205460ff1680156111c457506001600160a01b03831660009081526007602052604090205460ff16155b1561120e57600a54811115610f645760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b6044820152606401610737565b6001600160a01b03821660009081526007602052604090205460ff16610f6457600b546001600160a01b038316600090815260016020526040902054611138565b6000601054821015801561126b5750601254610100900460ff16155b8015611279575060125460ff165b801561129d57506001600160a01b03831660009081526008602052604090205460ff165b80156112c257506001600160a01b03841660009081526006602052604090205460ff16155b156112ea576012805461ff0019166101001790556112de6114d4565b6012805461ff00191690555b6001600160a01b03841660009081526006602052604081205460ff1615801561132c57506001600160a01b03841660009081526006602052604090205460ff16155b15611485576001600160a01b03841660009081526008602052604090205460ff16801561135b57506000600e54115b1561138257612710600e548461137191906118cc565b61137b91906118e3565b90506113cf565b6001600160a01b03851660009081526008602052604090205460ff1680156113ac57506000600d54115b156113cf57612710600d54846113c291906118cc565b6113cc91906118e3565b90505b8015611480576001600160a01b0385166000908152600160205260409020546113f99082906118b9565b6001600160a01b038616600090815260016020526040808220929092553081522054611426908290611826565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114779085815260200190565b60405180910390a35b6114cc565b61148f81846118b9565b6001600160a01b0386166000908152600160205260409020546114b29190611826565b6001600160a01b0386166000908152600160205260409020555b949350505050565b306000908152600160205260409020546011548111156114f357506011545b6010548111156115065761150681611543565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561153f573d6000803e3d6000fd5b5050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157857611578611905565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f5919061186e565b8160018151811061160857611608611905565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061164e90859060009086903090429060040161191b565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156116b157858101830151858201604001528201611695565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e757600080fd5b50565b600080604083850312156116fd57600080fd5b8235611708816116d2565b946020939093013593505050565b60008060006060848603121561172b57600080fd5b8335611736816116d2565b92506020840135611746816116d2565b929592945050506040919091013590565b60006020828403121561176957600080fd5b8135611774816116d2565b9392505050565b6000806040838503121561178e57600080fd5b50508035926020909101359150565b600080604083850312156117b057600080fd5b82356117bb816116d2565b915060208301356117cb816116d2565b809150509250929050565b600181811c908216806117ea57607f821691505b60208210810361180a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b7576106b7611810565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561188057600080fd5b8151611774816116d2565b6000806000606084860312156118a057600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106b7576106b7611810565b80820281158282048414176106b7576106b7611810565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196b5784516001600160a01b031683529383019391830191600101611946565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209ae5967d5e1051c852abe8932d28abc6e36edae3c358bb6fc8769f5faa75948764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806389d1ad6d1161010d578063b3508b47116100a0578063e51a81e31161006f578063e51a81e314610579578063f2fde38b1461058e578063f887ea40146105ae578063fbc9091c146105ce578063fe33b302146105e457600080fd5b8063b3508b471461050e578063c39328d814610524578063dd62ed3e14610539578063e4a19aad1461055957600080fd5b80639e93ad8e116100dc5780639e93ad8e14610498578063a25f90a2146104ae578063a457c2d7146104ce578063a9059cbb146104ee57600080fd5b806389d1ad6d1461041f5780638da5cb5b1461044f57806395d89b411461046d5780639acee8491461048257600080fd5b806335b843e811610185578063684517bc11610154578063684517bc1461039e57806370a08231146103b8578063715018a6146103ee5780637a32bae41461040557600080fd5b806335b843e814610322578063395093511461035257806349e102c41461037257806363e33a3a1461038857600080fd5b80631ac686a5116101c15780631ac686a51461029257806323b872dd146102a8578063313c06a0146102c8578063313ce5671461030657600080fd5b806306fdde03146101fe578063095ea7b314610229578063172869c41461025957806318160ddd1461027357600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610614565b6040516102209190611684565b60405180910390f35b34801561023557600080fd5b506102496102443660046116ea565b6106a6565b6040519015158152602001610220565b34801561026557600080fd5b506012546102499060ff1681565b34801561027f57600080fd5b506003545b604051908152602001610220565b34801561029e57600080fd5b5061028460115481565b3480156102b457600080fd5b506102496102c3366004611716565b6106bd565b3480156102d457600080fd5b506012546102ee906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561031257600080fd5b5060405160128152602001610220565b34801561032e57600080fd5b5061024961033d366004611757565b60076020526000908152604090205460ff1681565b34801561035e57600080fd5b5061024961036d3660046116ea565b6106e1565b34801561037e57600080fd5b50610284600e5481565b34801561039457600080fd5b50610284600d5481565b3480156103aa57600080fd5b50600f546102499060ff1681565b3480156103c457600080fd5b506102846103d3366004611757565b6001600160a01b031660009081526001602052604090205490565b3480156103fa57600080fd5b5061040361070d565b005b34801561041157600080fd5b506009546102499060ff1681565b34801561042b57600080fd5b5061024961043a366004611757565b60066020526000908152604090205460ff1681565b34801561045b57600080fd5b506000546001600160a01b03166102ee565b34801561047957600080fd5b5061021361078a565b34801561048e57600080fd5b50610284600b5481565b3480156104a457600080fd5b5061028461271081565b3480156104ba57600080fd5b506104036104c936600461177b565b610799565b3480156104da57600080fd5b506102496104e93660046116ea565b61086e565b3480156104fa57600080fd5b506102496105093660046116ea565b6108e9565b34801561051a57600080fd5b5061028460105481565b34801561053057600080fd5b506104036108f6565b34801561054557600080fd5b5061028461055436600461179d565b610961565b34801561056557600080fd5b50600c546102ee906001600160a01b031681565b34801561058557600080fd5b5061040361098c565b34801561059a57600080fd5b506104036105a9366004611757565b610c7c565b3480156105ba57600080fd5b506013546102ee906001600160a01b031681565b3480156105da57600080fd5b50610284600a5481565b3480156105f057600080fd5b506102496105ff366004611757565b60086020526000908152604090205460ff1681565b606060048054610623906117d6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906117d6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106b3338484610d66565b5060015b92915050565b6000336106cb858285610e8b565b6106d6858585610f05565b506001949350505050565b6000336107038185856106f48383610961565b6106fe9190611826565b610d66565b5060019392505050565b6000546001600160a01b031633146107405760405162461bcd60e51b815260040161073790611839565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060058054610623906117d6565b6000546001600160a01b031633146107c35760405162461bcd60e51b815260040161073790611839565b600d829055600e8190556126ac82118015906107e357506126ac600e5411155b6108245760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772039392560701b6044820152606401610737565b7f709ed13cbc797dff12bd74fd59d19639413df04e4fdb96f2f1827a1ab182b1ad600d54600e54604051610862929190918252602082015260400190565b60405180910390a15050565b6000338161087c8286610961565b9050838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610737565b6106d68286868403610d66565b60006106b3338484610f05565b6000546001600160a01b031633146109205760405162461bcd60e51b815260040161073790611839565b600f805460ff19169055600354600a55600354600b556040517f68c198beef84e020e0cd6cad523ef1a810335fa54793ffa470ca80380cecff4c90600090a1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109b65760405162461bcd60e51b815260040161073790611839565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d919061186e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab3919061186e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b24919061186e565b601280546001600160a01b039283166201000090810262010000600160b01b03199092169190911780835581900483166000908152600860209081526040808320805460ff199081166001908117909255955494909404861683526007909152902080549092161790556013541663f305d7194730610bb8816001600160a01b031660009081526001602052604090205490565b600080610bcd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c35573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c5a919061188b565b505060098054600160ff19918216811790925560128054909116909117905550565b6000546001600160a01b03163314610ca65760405162461bcd60e51b815260040161073790611839565b6001600160a01b038116610d0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610737565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610737565b6001600160a01b038216610e295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610737565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610e978484610961565b90506000198114610eff5781811015610ef25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610737565b610eff8484848403610d66565b50505050565b6000546001600160a01b0384811691161480610f2e57506000546001600160a01b038381169116145b80610f4157506001600160a01b03831630145b80610f5457506001600160a01b03821630145b15610f6957610f64838383610f92565b505050565b610f7483838361103a565b610f7f83838361124f565b610f8990826118b9565b9050610f648383835b6001600160a01b038316600090815260016020526040902054610fb69082906118b9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610fe6908290611826565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7e9085815260200190565b60095460ff166110855760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b6044820152606401610737565b600f5460ff1615610f64576001600160a01b03831660009081526008602052604090205460ff1680156110d157506001600160a01b03821660009081526007602052604090205460ff16155b1561118357600a5481111561111b5760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b6044820152606401610737565b600b546001600160a01b0383166000908152600160205260409020545b6111429083611826565b1115610f645760405162461bcd60e51b815260206004820152601060248201526f45786365656473206261672073697a6560801b6044820152606401610737565b6001600160a01b03821660009081526008602052604090205460ff1680156111c457506001600160a01b03831660009081526007602052604090205460ff16155b1561120e57600a54811115610f645760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b6044820152606401610737565b6001600160a01b03821660009081526007602052604090205460ff16610f6457600b546001600160a01b038316600090815260016020526040902054611138565b6000601054821015801561126b5750601254610100900460ff16155b8015611279575060125460ff165b801561129d57506001600160a01b03831660009081526008602052604090205460ff165b80156112c257506001600160a01b03841660009081526006602052604090205460ff16155b156112ea576012805461ff0019166101001790556112de6114d4565b6012805461ff00191690555b6001600160a01b03841660009081526006602052604081205460ff1615801561132c57506001600160a01b03841660009081526006602052604090205460ff16155b15611485576001600160a01b03841660009081526008602052604090205460ff16801561135b57506000600e54115b1561138257612710600e548461137191906118cc565b61137b91906118e3565b90506113cf565b6001600160a01b03851660009081526008602052604090205460ff1680156113ac57506000600d54115b156113cf57612710600d54846113c291906118cc565b6113cc91906118e3565b90505b8015611480576001600160a01b0385166000908152600160205260409020546113f99082906118b9565b6001600160a01b038616600090815260016020526040808220929092553081522054611426908290611826565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114779085815260200190565b60405180910390a35b6114cc565b61148f81846118b9565b6001600160a01b0386166000908152600160205260409020546114b29190611826565b6001600160a01b0386166000908152600160205260409020555b949350505050565b306000908152600160205260409020546011548111156114f357506011545b6010548111156115065761150681611543565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561153f573d6000803e3d6000fd5b5050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157857611578611905565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f5919061186e565b8160018151811061160857611608611905565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061164e90859060009086903090429060040161191b565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156116b157858101830151858201604001528201611695565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e757600080fd5b50565b600080604083850312156116fd57600080fd5b8235611708816116d2565b946020939093013593505050565b60008060006060848603121561172b57600080fd5b8335611736816116d2565b92506020840135611746816116d2565b929592945050506040919091013590565b60006020828403121561176957600080fd5b8135611774816116d2565b9392505050565b6000806040838503121561178e57600080fd5b50508035926020909101359150565b600080604083850312156117b057600080fd5b82356117bb816116d2565b915060208301356117cb816116d2565b809150509250929050565b600181811c908216806117ea57607f821691505b60208210810361180a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b7576106b7611810565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561188057600080fd5b8151611774816116d2565b6000806000606084860312156118a057600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106b7576106b7611810565b80820281158282048414176106b7576106b7611810565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196b5784516001600160a01b031683529383019391830191600101611946565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209ae5967d5e1051c852abe8932d28abc6e36edae3c358bb6fc8769f5faa75948764736f6c63430008130033

Deployed Bytecode Sourcemap

3525:9145:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5190:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5885:186;;;;;;;;;;-1:-1:-1;5885:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5885:186:0;1023:187:1;4385:31:0;;;;;;;;;;-1:-1:-1;4385:31:0;;;;;;;;5484:99;;;;;;;;;;-1:-1:-1;5563:12:0;;5484:99;;;1361:25:1;;;1349:2;1334:18;5484:99:0;1215:177:1;4331:45:0;;;;;;;;;;;;;;;;5591:286;;;;;;;;;;-1:-1:-1;5591:286:0;;;;;:::i;:::-;;:::i;4453:17::-;;;;;;;;;;-1:-1:-1;4453:17:0;;;;;;;-1:-1:-1;;;;;4453:17:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;4453:17:0;1858:203:1;5392:84:0;;;;;;;;;;-1:-1:-1;5392:84:0;;5466:2;2208:36:1;;2196:2;2181:18;5392:84:0;2066:184:1;3877:44:0;;;;;;;;;;-1:-1:-1;3877:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6079:263;;;;;;;;;;-1:-1:-1;6079:263:0;;;;;:::i;:::-;;:::i;4200:22::-;;;;;;;;;;;;;;;;4168:23;;;;;;;;;;;;;;;;4231:31;;;;;;;;;;-1:-1:-1;4231:31:0;;;;;;;;7032:116;;;;;;;;;;-1:-1:-1;7032:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;7125:15:0;7098:7;7125:15;;;:6;:15;;;;;;;7032:116;2243:150;;;;;;;;;;;;;:::i;:::-;;3974:24;;;;;;;;;;-1:-1:-1;3974:24:0;;;;;;;;3828:42;;;;;;;;;;-1:-1:-1;3828:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2029:79;;;;;;;;;;-1:-1:-1;2067:7:0;2094:6;-1:-1:-1;;;;;2094:6:0;2029:79;;5289:95;;;;;;;;;;;;;:::i;4069:59::-;;;;;;;;;;;;;;;;4510:43;;;;;;;;;;;;4548:5;4510:43;;9562:262;;;;;;;;;;-1:-1:-1;9562:262:0;;;;;:::i;:::-;;:::i;6526:498::-;;;;;;;;;;-1:-1:-1;6526:498:0;;;;;:::i;:::-;;:::i;8054:192::-;;;;;;;;;;-1:-1:-1;8054:192:0;;;;;:::i;:::-;;:::i;4269:55::-;;;;;;;;;;;;;;;;9832:186;;;;;;;;;;;;;:::i;6350:168::-;;;;;;;;;;-1:-1:-1;6350:168:0;;;;;:::i;:::-;;:::i;4137:22::-;;;;;;;;;;-1:-1:-1;4137:22:0;;;;-1:-1:-1;;;;;4137:22:0;;;9034:520;;;;;;;;;;;;;:::i;2401:281::-;;;;;;;;;;-1:-1:-1;2401:281:0;;;;;:::i;:::-;;:::i;4477:24::-;;;;;;;;;;-1:-1:-1;4477:24:0;;;;-1:-1:-1;;;;;4477:24:0;;;4007:55;;;;;;;;;;;;;;;;3930:37;;;;;;;;;;-1:-1:-1;3930:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5190:91;5235:13;5268:5;5261:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5190:91;:::o;5885:186::-;5985:4;6002:39;727:10;6025:7;6034:6;6002:8;:39::i;:::-;-1:-1:-1;6059:4:0;5885:186;;;;;:::o;5591:286::-;5713:4;727:10;5771:38;5787:4;727:10;5802:6;5771:15;:38::i;:::-;5820:27;5830:4;5836:2;5840:6;5820:9;:27::i;:::-;-1:-1:-1;5865:4:0;;5591:286;-1:-1:-1;;;;5591:286:0:o;6079:263::-;6192:4;727:10;6248:64;727:10;6264:7;6301:10;6273:25;727:10;6264:7;6273:9;:25::i;:::-;:38;;;;:::i;:::-;6248:8;:64::i;:::-;-1:-1:-1;6330:4:0;;6079:263;-1:-1:-1;;;6079:263:0:o;2243:150::-;2156:6;;-1:-1:-1;;;;;2156:6:0;727:10;2156:22;2148:67;;;;-1:-1:-1;;;2148:67:0;;;;;;;:::i;:::-;;;;;;;;;2352:1:::1;2336:6:::0;;2315:40:::1;::::0;-1:-1:-1;;;;;2336:6:0;;::::1;::::0;2315:40:::1;::::0;2352:1;;2315:40:::1;2383:1;2366:19:::0;;-1:-1:-1;;;;;;2366:19:0::1;::::0;;2243:150::o;5289:95::-;5336:13;5369:7;5362:14;;;;;:::i;9562:262::-;2156:6;;-1:-1:-1;;;;;2156:6:0;727:10;2156:22;2148:67;;;;-1:-1:-1;;;2148:67:0;;;;;;;:::i;:::-;9647:8:::1;:20:::0;;;9678:7:::1;:18:::0;;;9727:4:::1;9715:16:::0;::::1;::::0;::::1;::::0;:35:::1;;;9746:4;9735:7;;:15;;9715:35;9707:66;;;::::0;-1:-1:-1;;;9707:66:0;;4589:2:1;9707:66:0::1;::::0;::::1;4571:21:1::0;4628:2;4608:18;;;4601:30;-1:-1:-1;;;4647:18:1;;;4640:48;4705:18;;9707:66:0::1;4387:342:1::0;9707:66:0::1;9789:27;9798:8;;9808:7;;9789:27;;;;;;4908:25:1::0;;;4964:2;4949:18;;4942:34;4896:2;4881:18;;4734:248;9789:27:0::1;;;;;;;;9562:262:::0;;:::o;6526:498::-;6644:4;727:10;6644:4;6727:25;727:10;6744:7;6727:9;:25::i;:::-;6700:52;;6805:15;6785:16;:35;;6763:122;;;;-1:-1:-1;;;6763:122:0;;5189:2:1;6763:122:0;;;5171:21:1;5228:2;5208:18;;;5201:30;5267:34;5247:18;;;5240:62;-1:-1:-1;;;5318:18:1;;;5311:35;5363:19;;6763:122:0;4987:401:1;6763:122:0;6921:60;6930:5;6937:7;6965:15;6946:16;:34;6921:8;:60::i;8054:192::-;8157:4;8174:42;727:10;8198:9;8209:6;8174:9;:42::i;9832:186::-;2156:6;;-1:-1:-1;;;;;2156:6:0;727:10;2156:22;2148:67;;;;-1:-1:-1;;;2148:67:0;;;;;;;:::i;:::-;9883:12:::1;:20:::0;;-1:-1:-1;;9883:20:0::1;::::0;;5563:12;;9914:11:::1;:27:::0;5563:12;;9952:15:::1;:31:::0;9999:11:::1;::::0;::::1;::::0;;;::::1;9832:186::o:0;6350:168::-;-1:-1:-1;;;;;6483:18:0;;;6456:7;6483:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6350:168::o;9034:520::-;2156:6;;-1:-1:-1;;;;;2156:6:0;727:10;2156:22;2148:67;;;;-1:-1:-1;;;2148:67:0;;;;;;;:::i;:::-;9098:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9098:6:0::1;-1:-1:-1::0;;;;;9098:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9086:40:0::1;;9149:4;9169:6;;;;;;;;;-1:-1:-1::0;;;;;9169:6:0::1;-1:-1:-1::0;;;;;9169:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9086:107;::::0;-1:-1:-1;;;;;;9086:107:0::1;::::0;;;;;;-1:-1:-1;;;;;5879:15:1;;;9086:107:0::1;::::0;::::1;5861:34:1::0;5931:15;;5911:18;;;5904:43;5796:18;;9086:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9081:2;:112:::0;;-1:-1:-1;;;;;9081:112:0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;;;9081:112:0;;::::1;::::0;;;::::1;::::0;;;9212:2;;::::1;::::0;::::1;-1:-1:-1::0;9206:9:0;;;:5:::1;:9;::::0;;;;;;;:16;;-1:-1:-1;;9206:16:0;;::::1;-1:-1:-1::0;9206:16:0;;::::1;::::0;;;9248:2;;;;;::::1;::::0;::::1;9235:16:::0;;:12:::1;:16:::0;;;;;:23;;;;::::1;;::::0;;9271:6:::1;::::0;::::1;:22;9301:21;9346:4;9366:24;9346:4:::0;-1:-1:-1;;;;;7125:15:0;7098:7;7125:15;;;:6;:15;;;;;;;7032:116;9366:24:::1;9405:1;9421::::0;9437:7:::1;2067::::0;2094:6;-1:-1:-1;;;;;2094:6:0;;2029:79;9437:7:::1;9271:214;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9271:214:0;;;-1:-1:-1;;;;;6317:15:1;;;9271:214:0::1;::::0;::::1;6299:34:1::0;6349:18;;;6342:34;;;;6392:18;;;6385:34;;;;6435:18;;;6428:34;6499:15;;;6478:19;;;6471:44;9459:15:0::1;6531:19:1::0;;;6524:35;6233:19;;9271:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9498:12:0::1;:19:::0;;9513:4:::1;-1:-1:-1::0;;9498:19:0;;::::1;::::0;::::1;::::0;;;9528:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;9034:520:0:o;2401:281::-;2156:6;;-1:-1:-1;;;;;2156:6:0;727:10;2156:22;2148:67;;;;-1:-1:-1;;;2148:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2504:22:0;::::1;2482:110;;;::::0;-1:-1:-1;;;2482:110:0;;7083:2:1;2482:110:0::1;::::0;::::1;7065:21:1::0;7122:2;7102:18;;;7095:30;7161:34;7141:18;;;7134:62;-1:-1:-1;;;7212:18:1;;;7205:36;7258:19;;2482:110:0::1;6881:402:1::0;2482:110:0::1;2629:6;::::0;;2608:38:::1;::::0;-1:-1:-1;;;;;2608:38:0;;::::1;::::0;2629:6;::::1;::::0;2608:38:::1;::::0;::::1;2657:6;:17:::0;;-1:-1:-1;;;;;;2657:17:0::1;-1:-1:-1::0;;;;;2657:17:0;;;::::1;::::0;;;::::1;::::0;;2401:281::o;7156:380::-;-1:-1:-1;;;;;7292:19:0;;7284:68;;;;-1:-1:-1;;;7284:68:0;;7490:2:1;7284:68:0;;;7472:21:1;7529:2;7509:18;;;7502:30;7568:34;7548:18;;;7541:62;-1:-1:-1;;;7619:18:1;;;7612:34;7663:19;;7284:68:0;7288:400:1;7284:68:0;-1:-1:-1;;;;;7371:21:0;;7363:68;;;;-1:-1:-1;;;7363:68:0;;7895:2:1;7363:68:0;;;7877:21:1;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:32;8066:19;;7363:68:0;7693:398:1;7363:68:0;-1:-1:-1;;;;;7444:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7496:32;;1361:25:1;;;7496:32:0;;1334:18:1;7496:32:0;;;;;;;;7156:380;;;:::o;7544:502::-;7679:24;7706:25;7716:5;7723:7;7706:9;:25::i;:::-;7679:52;;-1:-1:-1;;7746:16:0;:37;7742:297;;7846:6;7826:16;:26;;7800:117;;;;-1:-1:-1;;;7800:117:0;;8298:2:1;7800:117:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:31;8356:18;;;8349:59;8425:18;;7800:117:0;8096:353:1;7800:117:0;7961:51;7970:5;7977:7;8005:6;7986:16;:25;7961:8;:51::i;:::-;7668:378;7544:502;;;:::o;8254:508::-;2067:7;2094:6;-1:-1:-1;;;;;8396:15:0;;;2094:6;;8396:15;;:47;;-1:-1:-1;2067:7:0;2094:6;-1:-1:-1;;;;;8428:15:0;;;2094:6;;8428:15;8396:47;:85;;;-1:-1:-1;;;;;;8460:21:0;;8476:4;8460:21;8396:85;:123;;;-1:-1:-1;;;;;;8498:21:0;;8514:4;8498:21;8396:123;8378:237;;;8546:36;8564:4;8570;8576:5;8546:17;:36::i;:::-;8254:508;;;:::o;8378:237::-;8627:29;8638:4;8644;8650:5;8627:10;:29::i;:::-;8678:27;8687:4;8693;8699:5;8678:8;:27::i;:::-;8669:36;;;;:::i;:::-;;;8718;8736:4;8742;8748:5;8770:256;-1:-1:-1;;;;;8909:12:0;;;;;;:6;:12;;;;;;:20;;8924:5;;8909:20;:::i;:::-;-1:-1:-1;;;;;8894:12:0;;;;;;;:6;:12;;;;;;:35;;;;8955:12;;;;;;;:20;;8970:5;;8955:20;:::i;:::-;-1:-1:-1;;;;;8940:12:0;;;;;;;:6;:12;;;;;;;:35;;;;8991:27;;;;;;;;;;9012:5;1361:25:1;;1349:2;1334:18;;1215:177;10026:836:0;10156:12;;;;10148:47;;;;-1:-1:-1;;;10148:47:0;;8789:2:1;10148:47:0;;;8771:21:1;8828:2;8808:18;;;8801:30;-1:-1:-1;;;8847:18:1;;;8840:52;8909:18;;10148:47:0;8587:346:1;10148:47:0;10212:12;;;;10208:647;;;-1:-1:-1;;;;;10245:11:0;;;;;;:5;:11;;;;;;;;:34;;;;-1:-1:-1;;;;;;10261:18:0;;;;;;:12;:18;;;;;;;;10260:19;10245:34;10241:603;;;10317:11;;10308:5;:20;;10300:49;;;;-1:-1:-1;;;10300:49:0;;9140:2:1;10300:49:0;;;9122:21:1;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:46;9254:18;;10300:49:0;8938:340:1;10300:49:0;10425:15;;-1:-1:-1;;;;;7125:15:0;;7098:7;7125:15;;;:6;:15;;;;;;10406;10398:23;;:5;:23;:::i;:::-;:42;;10368:132;;;;-1:-1:-1;;;10368:132:0;;9485:2:1;10368:132:0;;;9467:21:1;9524:2;9504:18;;;9497:30;-1:-1:-1;;;9543:18:1;;;9536:46;9599:18;;10368:132:0;9283:340:1;10241:603:0;-1:-1:-1;;;;;10526:11:0;;;;;;:5;:11;;;;;;;;:34;;;;-1:-1:-1;;;;;;10542:18:0;;;;;;:12;:18;;;;;;;;10541:19;10526:34;10522:322;;;10598:11;;10589:5;:20;;10581:49;;;;-1:-1:-1;;;10581:49:0;;9140:2:1;10581:49:0;;;9122:21:1;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:46;9254:18;;10581:49:0;8938:340:1;10522:322:0;-1:-1:-1;;;;;10657:18:0;;;;;;:12;:18;;;;;;;;10652:192;;10753:15;;-1:-1:-1;;;;;7125:15:0;;7098:7;7125:15;;;:6;:15;;;;;;10734;7032:116;10870:1057;10983:7;11030:9;;11021:5;:18;;:44;;;;-1:-1:-1;11057:8:0;;;;;;;11056:9;11021:44;:72;;;;-1:-1:-1;11082:11:0;;;;11021:72;:100;;;;-1:-1:-1;;;;;;11110:11:0;;;;;;:5;:11;;;;;;;;11021:100;:134;;;;-1:-1:-1;;;;;;11139:16:0;;;;;;:10;:16;;;;;;;;11138:17;11021:134;11003:269;;;11182:8;:15;;-1:-1:-1;;11182:15:0;;;;;11212:17;:15;:17::i;:::-;11244:8;:16;;-1:-1:-1;;11244:16:0;;;11003:269;-1:-1:-1;;;;;11317:16:0;;11284:11;11317:16;;;:10;:16;;;;;;;;11316:17;:38;;;;-1:-1:-1;;;;;;11338:16:0;;;;;;:10;:16;;;;;;;;11337:17;11316:38;11312:585;;;-1:-1:-1;;;;;11375:11:0;;;;;;:5;:11;;;;;;;;:26;;;;;11400:1;11390:7;;:11;11375:26;11371:216;;;4548:5;11437:7;;11429:5;:15;;;;:::i;:::-;11428:31;;;;:::i;:::-;11422:37;;11371:216;;;-1:-1:-1;;;;;11485:11:0;;;;;;:5;:11;;;;;;;;:27;;;;;11511:1;11500:8;;:12;11485:27;11481:106;;;4548:5;11548:8;;11540:5;:16;;;;:::i;:::-;11539:32;;;;:::i;:::-;11533:38;;11481:106;11605:7;;11601:209;;-1:-1:-1;;;;;11648:12:0;;;;;;:6;:12;;;;;;:18;;11663:3;;11648:18;:::i;:::-;-1:-1:-1;;;;;11633:12:0;;;;;;:6;:12;;;;;;:33;;;;11724:4;11709:21;;;;:27;;11733:3;;11709:27;:::i;:::-;11700:4;11685:21;;;;:6;:21;;;;;;;:51;;;;11760:34;;-1:-1:-1;;;;;11760:34:0;;;;;;;11790:3;1361:25:1;;1349:2;1334:18;;1215:177;11760:34:0;;;;;;;;11601:209;11312:585;;;11873:11;11881:3;11873:5;:11;:::i;:::-;-1:-1:-1;;;;;11857:12:0;;;;;;:6;:12;;;;;;:28;;;;:::i;:::-;-1:-1:-1;;;;;11842:12:0;;;;;;:6;:12;;;;;:43;11312:585;11916:3;10870:1057;-1:-1:-1;;;;10870:1057:0:o;12324:343::-;12414:4;12370:23;7125:15;;;:6;:15;;;;;;12455:9;;12437:27;;12433:87;;;-1:-1:-1;12499:9:0;;12433:87;12554:9;;12536:15;:27;12532:66;;;12565:33;12582:15;12565:16;:33::i;:::-;12619:7;;12611:48;;-1:-1:-1;;;;;12619:7:0;;;;12637:21;12611:48;;;;;12619:7;12611:48;12619:7;12611:48;12637:21;12619:7;12611:48;;;;;;;;;;;;;;;;;;;;;12359:308;12324:343::o;11935:381::-;12020:16;;;12034:1;12020:16;;;;;;;;11996:21;;12020:16;;;;;;;;;;-1:-1:-1;12020:16:0;11996:40;;12065:4;12047;12052:1;12047:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12047:23:0;;;:7;;;;;;;;;;:23;;;;12099:6;;:13;;;-1:-1:-1;;;12099:13:0;;;;:6;;;;;:11;;:13;;;;;12047:7;;12099:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12081:4;12086:1;12081:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12081:32:0;;;:7;;;;;;;;;:32;12126:6;;:182;;-1:-1:-1;;;12126:182:0;;:6;;;:57;;:182;;12198:6;;12126;;12235:4;;12262;;12282:15;;12126:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11985:331;11935:381;:::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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;:::-;2491:5;2255:247;-1:-1:-1;;;2255:247:1:o;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3379:380::-;3458:1;3454:12;;;;3501;;;3522:61;;3576:4;3568:6;3564:17;3554:27;;3522:61;3629:2;3621:6;3618:14;3598:18;3595:38;3592:161;;3675:10;3670:3;3666:20;3663:1;3656:31;3710:4;3707:1;3700:15;3738:4;3735:1;3728:15;3592:161;;3379:380;;;:::o;3764:127::-;3825:10;3820:3;3816:20;3813:1;3806:31;3856:4;3853:1;3846:15;3880:4;3877:1;3870:15;3896:125;3961:9;;;3982:10;;;3979:36;;;3995:18;;:::i;4026:356::-;4228:2;4210:21;;;4247:18;;;4240:30;4306:34;4301:2;4286:18;;4279:62;4373:2;4358:18;;4026:356::o;5393:251::-;5463:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:52;;;5532:1;5529;5522:12;5484:52;5564:9;5558:16;5583:31;5608:5;5583:31;:::i;6570:306::-;6658:6;6666;6674;6727:2;6715:9;6706:7;6702:23;6698:32;6695:52;;;6743:1;6740;6733:12;6695:52;6772:9;6766:16;6756:26;;6822:2;6811:9;6807:18;6801:25;6791:35;;6866:2;6855:9;6851:18;6845:25;6835:35;;6570:306;;;;;:::o;8454:128::-;8521:9;;;8542:11;;;8539:37;;;8556:18;;:::i;9628:168::-;9701:9;;;9732;;9749:15;;;9743:22;;9729:37;9719:71;;9770:18;;:::i;9801:217::-;9841:1;9867;9857:132;;9911:10;9906:3;9902:20;9899:1;9892:31;9946:4;9943:1;9936:15;9974:4;9971:1;9964:15;9857:132;-1:-1:-1;10003:9:1;;9801:217::o;10155:127::-;10216:10;10211:3;10207:20;10204:1;10197:31;10247:4;10244:1;10237:15;10271:4;10268:1;10261:15;10287:980;10549:4;10597:3;10586:9;10582:19;10628:6;10617:9;10610:25;10654:2;10692:6;10687:2;10676:9;10672:18;10665:34;10735:3;10730:2;10719:9;10715:18;10708:31;10759:6;10794;10788:13;10825:6;10817;10810:22;10863:3;10852:9;10848:19;10841:26;;10902:2;10894:6;10890:15;10876:29;;10923:1;10933:195;10947:6;10944:1;10941:13;10933:195;;;11012:13;;-1:-1:-1;;;;;11008:39:1;10996:52;;11103:15;;;;11068:12;;;;11044:1;10962:9;10933:195;;;-1:-1:-1;;;;;;;11184:32:1;;;;11179:2;11164:18;;11157:60;-1:-1:-1;;;11248:3:1;11233:19;11226:35;11145:3;10287:980;-1:-1:-1;;;10287:980:1:o

Swarm Source

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