ETH Price: $2,382.25 (-1.13%)

Token

PEPERUTO (PEPERUTO)
 

Overview

Max Total Supply

10,000,000 PEPERUTO

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
60,837.341447708 PEPERUTO

Value
$0.00
0xa147815633228f351217fab0169d19cda93e9839
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:
PEPERUTO

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-04-23
*/

/*
https://peperuto.com/
https://t.me/PeperutoEntry
https://twitter.com/PeperutoEth
*/


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

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

}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract PEPERUTO is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = unicode"PEPERUTO";
    string private constant _symbol = unicode"PEPERUTO";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 15;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 35;
  
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xEb36aef6CbA94730fE13031965e76399e7bcdd00);
    address payable private _marketingAddress = payable(0xEb36aef6CbA94730fE13031965e76399e7bcdd00);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _swapTokensAtAmount = 20 *(_tTotal/1000);

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _; 
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        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 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 _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 (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_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;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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),
            0x0000000000000000000000000000000000000000,
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
    //Camelot Dex Router 0xc873fEcbd354f5A56E00E710B90EF4201db2448d
    function setTrading(bool _tradingOpen) public onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        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);
        _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 _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        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);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setMaxAll() public onlyOwner {
        _maxWalletSize = _tTotal;
        _maxTxAmount = _tTotal;
    }
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":[],"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMaxAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126009600a6200039b565b620000219062989680620003b3565b6200002f90600019620003e3565b6200003d90600019620003fa565b60065560006008819055600f6009818155600a8381556023600b819055600c859055600d819055600e94909455929091556012805473eb36aef6cba94730fe13031965e76399e7bcdd006001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b179055606491620000ca91906200039b565b620000d99062989680620003b3565b620000e5919062000410565b620000f2906002620003b3565b6016556064620001056009600a6200039b565b620001149062989680620003b3565b62000120919062000410565b6200012d906002620003b3565b6017556103e8620001416009600a6200039b565b620001509062989680620003b3565b6200015c919062000410565b62000169906014620003b3565b6018553480156200017957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360008181526002602090815260408083209490945581546001600160a01b03908116835260059091528382208054600160ff199182168117909255308452858420805482168317905560125483168452858420805482168317905560135490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002606009600a6200039b565b6200026f9062989680620003b3565b60405190815260200160405180910390a362000427565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002dd578160001904821115620002c157620002c162000286565b80851615620002cf57918102915b93841c9390800290620002a1565b509250929050565b600082620002f65750600162000395565b81620003055750600062000395565b81600181146200031e5760028114620003295762000349565b600191505062000395565b60ff8411156200033d576200033d62000286565b50506001821b62000395565b5060208310610133831016604e8410600b84101617156200036e575081810a62000395565b6200037a83836200029c565b806000190482111562000391576200039162000286565b0290505b92915050565b6000620003ac60ff841683620002e5565b9392505050565b808202811582820484141762000395576200039562000286565b634e487b7160e01b600052601260045260246000fd5b600082620003f557620003f5620003cd565b500690565b8181038181111562000395576200039562000286565b600082620004225762000422620003cd565b500490565b611d8680620004376000396000f3fe6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063a2a957bb1161008a578063c3c8cd8011610064578063c3c8cd80146104cc578063dd62ed3e146104e1578063ea1644d514610527578063f2fde38b1461054757600080fd5b8063a2a957bb1461045c578063a9059cbb1461047c578063bfd792841461049c57600080fd5b80638f70ccf7116100c65780638f70ccf7146104065780638f9a55c01461042657806395d89b41146101c757806398a5c3151461043c57600080fd5b80637d1db4a5146103a55780637f2feddc146103bb5780638da5cb5b146103e857600080fd5b806341c2bd55116101595780636fc3eaec116101335780636fc3eaec1461033b57806370a0823114610350578063715018a61461037057806374010ece1461038557600080fd5b806341c2bd55146102e457806349bd5a5e146102fb5780636d8aa8f81461031b57600080fd5b806318160ddd1161019557806318160ddd1461026f57806323b872dd146102925780632fd689e3146102b2578063313ce567146102c857600080fd5b806306fdde03146101c7578063095ea7b3146102075780631694505e1461023757600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506040805180820182526008815267504550455255544f60c01b602082015290516101fe919061194c565b60405180910390f35b34801561021357600080fd5b506102276102223660046119af565b610567565b60405190151581526020016101fe565b34801561024357600080fd5b50601454610257906001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b34801561027b57600080fd5b5061028461057e565b6040519081526020016101fe565b34801561029e57600080fd5b506102276102ad3660046119db565b61059e565b3480156102be57600080fd5b5061028460185481565b3480156102d457600080fd5b50604051600981526020016101fe565b3480156102f057600080fd5b506102f9610607565b005b34801561030757600080fd5b50601554610257906001600160a01b031681565b34801561032757600080fd5b506102f9610336366004611a1c565b610674565b34801561034757600080fd5b506102f96106bc565b34801561035c57600080fd5b5061028461036b366004611a3e565b610707565b34801561037c57600080fd5b506102f9610729565b34801561039157600080fd5b506102f96103a0366004611a5b565b61079d565b3480156103b157600080fd5b5061028460165481565b3480156103c757600080fd5b506102846103d6366004611a3e565b60116020526000908152604090205481565b3480156103f457600080fd5b506000546001600160a01b0316610257565b34801561041257600080fd5b506102f9610421366004611a1c565b6107c7565b34801561043257600080fd5b5061028460175481565b34801561044857600080fd5b506102f9610457366004611a5b565b61098f565b34801561046857600080fd5b506102f9610477366004611a74565b6109be565b34801561048857600080fd5b506102276104973660046119af565b6109fc565b3480156104a857600080fd5b506102276104b7366004611a3e565b60106020526000908152604090205460ff1681565b3480156104d857600080fd5b506102f9610a09565b3480156104ed57600080fd5b506102846104fc366004611aa6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561053357600080fd5b506102f9610542366004611a5b565b610a5d565b34801561055357600080fd5b506102f9610562366004611a3e565b610a8c565b6000610574338484610b76565b5060015b92915050565b600061058c6009600a611bd9565b6105999062989680611be8565b905090565b60006105ab848484610c9a565b6105fd84336105f885604051806060016040528060288152602001611d29602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111dc565b610b76565b5060019392505050565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161063190611bff565b60405180910390fd5b6106466009600a611bd9565b6106539062989680611be8565b6017556106626009600a611bd9565b61066f9062989680611be8565b601655565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161063190611bff565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806106f157506013546001600160a01b0316336001600160a01b0316145b6106fa57600080fd5b4761070481611216565b50565b6001600160a01b03811660009081526002602052604081205461057890611254565b6000546001600160a01b031633146107535760405162461bcd60e51b815260040161063190611bff565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461066f5760405162461bcd60e51b815260040161063190611bff565b6000546001600160a01b031633146107f15760405162461bcd60e51b815260040161063190611bff565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190611c34565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611c34565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190611c34565b60158054931515600160a01b026001600160a81b03199094166001600160a01b0392909216919091179290921790915550565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260040161063190611bff565b601855565b6000546001600160a01b031633146109e85760405162461bcd60e51b815260040161063190611bff565b600893909355600a91909155600955600b55565b6000610574338484610c9a565b6012546001600160a01b0316336001600160a01b03161480610a3e57506013546001600160a01b0316336001600160a01b0316145b610a4757600080fd5b6000610a5230610707565b9050610704816112d8565b6000546001600160a01b03163314610a875760405162461bcd60e51b815260040161063190611bff565b601755565b6000546001600160a01b03163314610ab65760405162461bcd60e51b815260040161063190611bff565b6001600160a01b038116610b1b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610631565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610631565b6001600160a01b038216610c395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610631565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cfe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610631565b6001600160a01b038216610d605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610631565b60008111610dc25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610631565b6000546001600160a01b03848116911614801590610dee57506000546001600160a01b03838116911614155b156110cf57601554600160a01b900460ff16610e87576000546001600160a01b03848116911614610e875760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610631565b601654811115610ed95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610631565b6001600160a01b03831660009081526010602052604090205460ff16158015610f1b57506001600160a01b03821660009081526010602052604090205460ff16155b610f735760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610631565b6015546001600160a01b03838116911614610ff85760175481610f9584610707565b610f9f9190611c51565b10610ff85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610631565b600061100330610707565b60185460165491925082101590821061101c5760165491505b8080156110335750601554600160a81b900460ff16155b801561104d57506015546001600160a01b03868116911614155b80156110625750601554600160b01b900460ff165b801561108757506001600160a01b03851660009081526005602052604090205460ff16155b80156110ac57506001600160a01b03841660009081526005602052604090205460ff16155b156110cc576110ba826112d8565b4780156110ca576110ca47611216565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061111157506001600160a01b03831660009081526005602052604090205460ff165b8061114357506015546001600160a01b0385811691161480159061114357506015546001600160a01b03848116911614155b15611150575060006111ca565b6015546001600160a01b03858116911614801561117b57506014546001600160a01b03848116911614155b1561118d57600854600c55600954600d555b6015546001600160a01b0384811691161480156111b857506014546001600160a01b03858116911614155b156111ca57600a54600c55600b54600d555b6111d684848484611454565b50505050565b600081848411156112005760405162461bcd60e51b8152600401610631919061194c565b50600061120d8486611c64565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611250573d6000803e3d6000fd5b5050565b60006006548211156112bb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610631565b60006112c5611482565b90506112d183826114a5565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132057611320611c77565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d9190611c34565b816001815181106113b0576113b0611c77565b6001600160a01b0392831660209182029290920101526014546113d69130911684610b76565b601454604051632955261160e11b81526001600160a01b03909116906352aa4c22906114119085906000908690309083904290600401611c8d565b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611461576114616114e7565b61146c848484611515565b806111d6576111d6600e54600c55600f54600d55565b600080600061148f61160c565b909250905061149e82826114a5565b9250505090565b60006112d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061168b565b600c541580156114f75750600d54155b156114fe57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611527876116b9565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115599087611716565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115889086611758565b6001600160a01b0389166000908152600260205260409020556115aa816117b7565b6115b48483611801565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f991815260200190565b60405180910390a3505050505050505050565b6006546000908190816116216009600a611bd9565b61162e9062989680611be8565b905061165561163f6009600a611bd9565b61164c9062989680611be8565b600654906114a5565b8210156116825760065461166b6009600a611bd9565b6116789062989680611be8565b9350935050509091565b90939092509050565b600081836116ac5760405162461bcd60e51b8152600401610631919061194c565b50600061120d8486611d06565b60008060008060008060008060006116d68a600c54600d54611825565b92509250925060006116e6611482565b905060008060006116f98e87878761187a565b919e509c509a509598509396509194505050505091939550919395565b60006112d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111dc565b6000806117658385611c51565b9050838110156112d15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610631565b60006117c1611482565b905060006117cf83836118ca565b306000908152600260205260409020549091506117ec9082611758565b30600090815260026020526040902055505050565b60065461180e9083611716565b60065560075461181e9082611758565b6007555050565b600080808061183f606461183989896118ca565b906114a5565b9050600061185260646118398a896118ca565b9050600061186a826118648b86611716565b90611716565b9992985090965090945050505050565b600080808061188988866118ca565b9050600061189788876118ca565b905060006118a588886118ca565b905060006118b7826118648686611716565b939b939a50919850919650505050505050565b6000826000036118dc57506000610578565b60006118e88385611be8565b9050826118f58583611d06565b146112d15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610631565b600060208083528351808285015260005b818110156119795785810183015185820160400152820161195d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070457600080fd5b600080604083850312156119c257600080fd5b82356119cd8161199a565b946020939093013593505050565b6000806000606084860312156119f057600080fd5b83356119fb8161199a565b92506020840135611a0b8161199a565b929592945050506040919091013590565b600060208284031215611a2e57600080fd5b813580151581146112d157600080fd5b600060208284031215611a5057600080fd5b81356112d18161199a565b600060208284031215611a6d57600080fd5b5035919050565b60008060008060808587031215611a8a57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ab957600080fd5b8235611ac48161199a565b91506020830135611ad48161199a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b30578160001904821115611b1657611b16611adf565b80851615611b2357918102915b93841c9390800290611afa565b509250929050565b600082611b4757506001610578565b81611b5457506000610578565b8160018114611b6a5760028114611b7457611b90565b6001915050610578565b60ff841115611b8557611b85611adf565b50506001821b610578565b5060208310610133831016604e8410600b8410161715611bb3575081810a610578565b611bbd8383611af5565b8060001904821115611bd157611bd1611adf565b029392505050565b60006112d160ff841683611b38565b808202811582820484141761057857610578611adf565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611c4657600080fd5b81516112d18161199a565b8082018082111561057857610578611adf565b8181038181111561057857610578611adf565b634e487b7160e01b600052603260045260246000fd5b600060c082018883526020888185015260c0604085015281885180845260e086019150828a01935060005b81811015611cdd5784516001600160a01b031683529383019391830191600101611cb8565b50506001600160a01b039788166060860152959096166080840152505060a00152949350505050565b600082611d2357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ab38dacc2abaf1d660d96f7b1e43ce5ab8013da526a109383532eb4b039217a964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063a2a957bb1161008a578063c3c8cd8011610064578063c3c8cd80146104cc578063dd62ed3e146104e1578063ea1644d514610527578063f2fde38b1461054757600080fd5b8063a2a957bb1461045c578063a9059cbb1461047c578063bfd792841461049c57600080fd5b80638f70ccf7116100c65780638f70ccf7146104065780638f9a55c01461042657806395d89b41146101c757806398a5c3151461043c57600080fd5b80637d1db4a5146103a55780637f2feddc146103bb5780638da5cb5b146103e857600080fd5b806341c2bd55116101595780636fc3eaec116101335780636fc3eaec1461033b57806370a0823114610350578063715018a61461037057806374010ece1461038557600080fd5b806341c2bd55146102e457806349bd5a5e146102fb5780636d8aa8f81461031b57600080fd5b806318160ddd1161019557806318160ddd1461026f57806323b872dd146102925780632fd689e3146102b2578063313ce567146102c857600080fd5b806306fdde03146101c7578063095ea7b3146102075780631694505e1461023757600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506040805180820182526008815267504550455255544f60c01b602082015290516101fe919061194c565b60405180910390f35b34801561021357600080fd5b506102276102223660046119af565b610567565b60405190151581526020016101fe565b34801561024357600080fd5b50601454610257906001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b34801561027b57600080fd5b5061028461057e565b6040519081526020016101fe565b34801561029e57600080fd5b506102276102ad3660046119db565b61059e565b3480156102be57600080fd5b5061028460185481565b3480156102d457600080fd5b50604051600981526020016101fe565b3480156102f057600080fd5b506102f9610607565b005b34801561030757600080fd5b50601554610257906001600160a01b031681565b34801561032757600080fd5b506102f9610336366004611a1c565b610674565b34801561034757600080fd5b506102f96106bc565b34801561035c57600080fd5b5061028461036b366004611a3e565b610707565b34801561037c57600080fd5b506102f9610729565b34801561039157600080fd5b506102f96103a0366004611a5b565b61079d565b3480156103b157600080fd5b5061028460165481565b3480156103c757600080fd5b506102846103d6366004611a3e565b60116020526000908152604090205481565b3480156103f457600080fd5b506000546001600160a01b0316610257565b34801561041257600080fd5b506102f9610421366004611a1c565b6107c7565b34801561043257600080fd5b5061028460175481565b34801561044857600080fd5b506102f9610457366004611a5b565b61098f565b34801561046857600080fd5b506102f9610477366004611a74565b6109be565b34801561048857600080fd5b506102276104973660046119af565b6109fc565b3480156104a857600080fd5b506102276104b7366004611a3e565b60106020526000908152604090205460ff1681565b3480156104d857600080fd5b506102f9610a09565b3480156104ed57600080fd5b506102846104fc366004611aa6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561053357600080fd5b506102f9610542366004611a5b565b610a5d565b34801561055357600080fd5b506102f9610562366004611a3e565b610a8c565b6000610574338484610b76565b5060015b92915050565b600061058c6009600a611bd9565b6105999062989680611be8565b905090565b60006105ab848484610c9a565b6105fd84336105f885604051806060016040528060288152602001611d29602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111dc565b610b76565b5060019392505050565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161063190611bff565b60405180910390fd5b6106466009600a611bd9565b6106539062989680611be8565b6017556106626009600a611bd9565b61066f9062989680611be8565b601655565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161063190611bff565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806106f157506013546001600160a01b0316336001600160a01b0316145b6106fa57600080fd5b4761070481611216565b50565b6001600160a01b03811660009081526002602052604081205461057890611254565b6000546001600160a01b031633146107535760405162461bcd60e51b815260040161063190611bff565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461066f5760405162461bcd60e51b815260040161063190611bff565b6000546001600160a01b031633146107f15760405162461bcd60e51b815260040161063190611bff565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190611c34565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb9190611c34565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190611c34565b60158054931515600160a01b026001600160a81b03199094166001600160a01b0392909216919091179290921790915550565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260040161063190611bff565b601855565b6000546001600160a01b031633146109e85760405162461bcd60e51b815260040161063190611bff565b600893909355600a91909155600955600b55565b6000610574338484610c9a565b6012546001600160a01b0316336001600160a01b03161480610a3e57506013546001600160a01b0316336001600160a01b0316145b610a4757600080fd5b6000610a5230610707565b9050610704816112d8565b6000546001600160a01b03163314610a875760405162461bcd60e51b815260040161063190611bff565b601755565b6000546001600160a01b03163314610ab65760405162461bcd60e51b815260040161063190611bff565b6001600160a01b038116610b1b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610631565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610631565b6001600160a01b038216610c395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610631565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cfe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610631565b6001600160a01b038216610d605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610631565b60008111610dc25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610631565b6000546001600160a01b03848116911614801590610dee57506000546001600160a01b03838116911614155b156110cf57601554600160a01b900460ff16610e87576000546001600160a01b03848116911614610e875760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610631565b601654811115610ed95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610631565b6001600160a01b03831660009081526010602052604090205460ff16158015610f1b57506001600160a01b03821660009081526010602052604090205460ff16155b610f735760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610631565b6015546001600160a01b03838116911614610ff85760175481610f9584610707565b610f9f9190611c51565b10610ff85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610631565b600061100330610707565b60185460165491925082101590821061101c5760165491505b8080156110335750601554600160a81b900460ff16155b801561104d57506015546001600160a01b03868116911614155b80156110625750601554600160b01b900460ff165b801561108757506001600160a01b03851660009081526005602052604090205460ff16155b80156110ac57506001600160a01b03841660009081526005602052604090205460ff16155b156110cc576110ba826112d8565b4780156110ca576110ca47611216565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061111157506001600160a01b03831660009081526005602052604090205460ff165b8061114357506015546001600160a01b0385811691161480159061114357506015546001600160a01b03848116911614155b15611150575060006111ca565b6015546001600160a01b03858116911614801561117b57506014546001600160a01b03848116911614155b1561118d57600854600c55600954600d555b6015546001600160a01b0384811691161480156111b857506014546001600160a01b03858116911614155b156111ca57600a54600c55600b54600d555b6111d684848484611454565b50505050565b600081848411156112005760405162461bcd60e51b8152600401610631919061194c565b50600061120d8486611c64565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611250573d6000803e3d6000fd5b5050565b60006006548211156112bb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610631565b60006112c5611482565b90506112d183826114a5565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132057611320611c77565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d9190611c34565b816001815181106113b0576113b0611c77565b6001600160a01b0392831660209182029290920101526014546113d69130911684610b76565b601454604051632955261160e11b81526001600160a01b03909116906352aa4c22906114119085906000908690309083904290600401611c8d565b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611461576114616114e7565b61146c848484611515565b806111d6576111d6600e54600c55600f54600d55565b600080600061148f61160c565b909250905061149e82826114a5565b9250505090565b60006112d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061168b565b600c541580156114f75750600d54155b156114fe57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611527876116b9565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115599087611716565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115889086611758565b6001600160a01b0389166000908152600260205260409020556115aa816117b7565b6115b48483611801565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f991815260200190565b60405180910390a3505050505050505050565b6006546000908190816116216009600a611bd9565b61162e9062989680611be8565b905061165561163f6009600a611bd9565b61164c9062989680611be8565b600654906114a5565b8210156116825760065461166b6009600a611bd9565b6116789062989680611be8565b9350935050509091565b90939092509050565b600081836116ac5760405162461bcd60e51b8152600401610631919061194c565b50600061120d8486611d06565b60008060008060008060008060006116d68a600c54600d54611825565b92509250925060006116e6611482565b905060008060006116f98e87878761187a565b919e509c509a509598509396509194505050505091939550919395565b60006112d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111dc565b6000806117658385611c51565b9050838110156112d15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610631565b60006117c1611482565b905060006117cf83836118ca565b306000908152600260205260409020549091506117ec9082611758565b30600090815260026020526040902055505050565b60065461180e9083611716565b60065560075461181e9082611758565b6007555050565b600080808061183f606461183989896118ca565b906114a5565b9050600061185260646118398a896118ca565b9050600061186a826118648b86611716565b90611716565b9992985090965090945050505050565b600080808061188988866118ca565b9050600061189788876118ca565b905060006118a588886118ca565b905060006118b7826118648686611716565b939b939a50919850919650505050505050565b6000826000036118dc57506000610578565b60006118e88385611be8565b9050826118f58583611d06565b146112d15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610631565b600060208083528351808285015260005b818110156119795785810183015185820160400152820161195d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070457600080fd5b600080604083850312156119c257600080fd5b82356119cd8161199a565b946020939093013593505050565b6000806000606084860312156119f057600080fd5b83356119fb8161199a565b92506020840135611a0b8161199a565b929592945050506040919091013590565b600060208284031215611a2e57600080fd5b813580151581146112d157600080fd5b600060208284031215611a5057600080fd5b81356112d18161199a565b600060208284031215611a6d57600080fd5b5035919050565b60008060008060808587031215611a8a57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ab957600080fd5b8235611ac48161199a565b91506020830135611ad48161199a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b30578160001904821115611b1657611b16611adf565b80851615611b2357918102915b93841c9390800290611afa565b509250929050565b600082611b4757506001610578565b81611b5457506000610578565b8160018114611b6a5760028114611b7457611b90565b6001915050610578565b60ff841115611b8557611b85611adf565b50506001821b610578565b5060208310610133831016604e8410600b8410161715611bb3575081810a610578565b611bbd8383611af5565b8060001904821115611bd157611bd1611adf565b029392505050565b60006112d160ff841683611b38565b808202811582820484141761057857610578611adf565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611c4657600080fd5b81516112d18161199a565b8082018082111561057857610578611adf565b8181038181111561057857610578611adf565b634e487b7160e01b600052603260045260246000fd5b600060c082018883526020888185015260c0604085015281885180845260e086019150828a01935060005b81811015611cdd5784516001600160a01b031683529383019391830191600101611cb8565b50506001600160a01b039788166060860152959096166080840152505060a00152949350505050565b600082611d2357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ab38dacc2abaf1d660d96f7b1e43ce5ab8013da526a109383532eb4b039217a964736f6c63430008130033

Deployed Bytecode Sourcemap

3819:13236:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6038:83;;;;;;;;;;-1:-1:-1;6108:5:0;;;;;;;;;;;-1:-1:-1;;;6108:5:0;;;;6038:83;;;;6108:5;6038:83;:::i;:::-;;;;;;;;6963:193;;;;;;;;;;-1:-1:-1;6963:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6963:193:0;1023:187:1;5171:41:0;;;;;;;;;;-1:-1:-1;5171:41:0;;;;-1:-1:-1;;;;;5171:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5171:41:0;1215:229:1;6315:95:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;6315:95:0;1449:177:1;7164:446:0;;;;;;;;;;-1:-1:-1;7164:446:0;;;;;:::i;:::-;;:::i;5479:55::-;;;;;;;;;;;;;;;;6224:83;;;;;;;;;;-1:-1:-1;6224:83:0;;4058:1;2234:36:1;;2222:2;2207:18;6224:83:0;2092:184:1;16938:114:0;;;;;;;;;;;;;:::i;:::-;;5219:28;;;;;;;;;;-1:-1:-1;5219:28:0;;;;-1:-1:-1;;;;;5219:28:0;;;16559:101;;;;;;;;;;-1:-1:-1;16559:101:0;;;;;:::i;:::-;;:::i;12384:235::-;;;;;;;;;;;;;:::i;6418:138::-;;;;;;;;;;-1:-1:-1;6418:138:0;;;;;:::i;:::-;;:::i;1654:148::-;;;;;;;;;;;;;:::i;16699:108::-;;;;;;;;;;-1:-1:-1;16699:108:0;;;;;:::i;:::-;;:::i;5368:48::-;;;;;;;;;;;;;;;;4913:43;;;;;;;;;;-1:-1:-1;4913:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1440:79;;;;;;;;;;-1:-1:-1;1478:7:0;1505:6;-1:-1:-1;;;;;1505:6:0;1440:79;;11738:394;;;;;;;;;;-1:-1:-1;11738:394:0;;;;;:::i;:::-;;:::i;5423:49::-;;;;;;;;;;;;;;;;16368:139;;;;;;;;;;-1:-1:-1;16368:139:0;;;;;:::i;:::-;;:::i;16025:291::-;;;;;;;;;;-1:-1:-1;16025:291:0;;;;;:::i;:::-;;:::i;6564:199::-;;;;;;;;;;-1:-1:-1;6564:199:0;;;;;:::i;:::-;;:::i;4875:36::-;;;;;;;;;;-1:-1:-1;4875:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12140:236;;;;;;;;;;;;;:::i;6771:184::-;;;;;;;;;;-1:-1:-1;6771:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6920:18:0;;;6888:7;6920:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6771:184;16815:115;;;;;;;;;;-1:-1:-1;16815:115:0;;;;;:::i;:::-;;:::i;1810:244::-;;;;;;;;;;-1:-1:-1;1810:244:0;;;;;:::i;:::-;;:::i;6963:193::-;7065:4;7087:39;276:10;7110:7;7119:6;7087:8;:39::i;:::-;-1:-1:-1;7144:4:0;6963:193;;;;;:::o;6315:95::-;6368:7;4398:13;4058:1;4398:2;:13;:::i;:::-;4385:26;;:10;:26;:::i;:::-;6388:14;;6315:95;:::o;7164:446::-;7296:4;7313:36;7323:6;7331:9;7342:6;7313:9;:36::i;:::-;7360:220;7383:6;276:10;7431:138;7487:6;7431:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7431:19:0;;;;;;:11;:19;;;;;;;;276:10;7431:33;;;;;;;;;;:37;:138::i;:::-;7360:8;:220::i;:::-;-1:-1:-1;7598:4:0;7164:446;;;;;:::o;16938:114::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;;;;;;;;;4398:13:::1;4058:1;4398:2;:13;:::i;:::-;4385:26;::::0;:10:::1;:26;:::i;:::-;16987:14;:24:::0;4398:13:::1;4058:1;4398:2;:13;:::i;:::-;4385:26;::::0;:10:::1;:26;:::i;:::-;17022:12;:22:::0;16938:114::o;16559:101::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;16626:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16626:26:0::1;-1:-1:-1::0;;;;16626:26:0;;::::1;::::0;;;::::1;::::0;;16559:101::o;12384:235::-;12450:19;;-1:-1:-1;;;;;12450:19:0;276:10;-1:-1:-1;;;;;12434:35:0;;:72;;;-1:-1:-1;12489:17:0;;-1:-1:-1;;;;;12489:17:0;276:10;-1:-1:-1;;;;;12473:33:0;;12434:72;12426:81;;;;;;12547:21;12579:32;12547:21;12579:12;:32::i;:::-;12415:204;12384:235::o;6418:138::-;-1:-1:-1;;;;;6531:16:0;;6484:7;6531:16;;;:7;:16;;;;;;6511:37;;:19;:37::i;1654:148::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;1761:1:::1;1745:6:::0;;1724:40:::1;::::0;-1:-1:-1;;;;;1745:6:0;;::::1;::::0;1724:40:::1;::::0;1761:1;;1724:40:::1;1792:1;1775:19:::0;;-1:-1:-1;;;;;;1775:19:0::1;::::0;;1654:148::o;16699:108::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;11738:394::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;11916:15:::1;:34:::0;;-1:-1:-1;;;;;;11916:34:0::1;11862:42;11916:34:::0;;::::1;::::0;;;11995:26:::1;::::0;;-1:-1:-1;;;11995:26:0;;;;11862:42;;11995:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;11862:42;11995:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11977:70:0::1;;12056:4;12063:16;-1:-1:-1::0;;;;;12063:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11977:110;::::0;-1:-1:-1;;;;;;11977:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6522:15:1;;;11977:110:0::1;::::0;::::1;6504:34:1::0;6574:15;;6554:18;;;6547:43;6439:18;;11977:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11961:13;:126:::0;;12098:26;::::1;;-1:-1:-1::0;;;12098:26:0::1;-1:-1:-1::0;;;;;;12098:26:0;;;-1:-1:-1;;;;;11961:126:0;;;::::1;12098:26:::0;;;;;;;::::1;::::0;;;-1:-1:-1;11738:394:0:o;16368:139::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;16459:19:::1;:40:::0;16368:139::o;16025:291::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;16159:14:::1;:30:::0;;;;16200:15:::1;:32:::0;;;;16243:12:::1;:26:::0;16280:13:::1;:28:::0;16025:291::o;6564:199::-;6669:4;6691:42;276:10;6715:9;6726:6;6691:9;:42::i;12140:236::-;12206:19;;-1:-1:-1;;;;;12206:19:0;276:10;-1:-1:-1;;;;;12190:35:0;;:72;;;-1:-1:-1;12245:17:0;;-1:-1:-1;;;;;12245:17:0;276:10;-1:-1:-1;;;;;12229:33:0;;12190:72;12182:81;;;;;;12274:23;12300:24;12318:4;12300:9;:24::i;:::-;12274:50;;12335:33;12352:15;12335:16;:33::i;16815:115::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;16892:14:::1;:30:::0;16815:115::o;1810:244::-;1567:6;;-1:-1:-1;;;;;1567:6:0;276:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1899:22:0;::::1;1891:73;;;::::0;-1:-1:-1;;;1891:73:0;;6803:2:1;1891:73:0::1;::::0;::::1;6785:21:1::0;6842:2;6822:18;;;6815:30;6881:34;6861:18;;;6854:62;-1:-1:-1;;;6932:18:1;;;6925:36;6978:19;;1891:73:0::1;6601:402:1::0;1891:73:0::1;2001:6;::::0;;1980:38:::1;::::0;-1:-1:-1;;;;;1980:38:0;;::::1;::::0;2001:6;::::1;::::0;1980:38:::1;::::0;::::1;2029:6;:17:::0;;-1:-1:-1;;;;;;2029:17:0::1;-1:-1:-1::0;;;;;2029:17:0;;;::::1;::::0;;;::::1;::::0;;1810:244::o;8301:369::-;-1:-1:-1;;;;;8428:19:0;;8420:68;;;;-1:-1:-1;;;8420:68:0;;7210:2:1;8420:68:0;;;7192:21:1;7249:2;7229:18;;;7222:30;7288:34;7268:18;;;7261:62;-1:-1:-1;;;7339:18:1;;;7332:34;7383:19;;8420:68:0;7008:400:1;8420:68:0;-1:-1:-1;;;;;8507:21:0;;8499:68;;;;-1:-1:-1;;;8499:68:0;;7615:2:1;8499:68:0;;;7597:21:1;7654:2;7634:18;;;7627:30;7693:34;7673:18;;;7666:62;-1:-1:-1;;;7744:18:1;;;7737:32;7786:19;;8499:68:0;7413:398:1;8499:68:0;-1:-1:-1;;;;;8578:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8630:32;;1595:25:1;;;8630:32:0;;1568:18:1;8630:32:0;;;;;;;8301:369;;;:::o;8678:2330::-;-1:-1:-1;;;;;8800:18:0;;8792:68;;;;-1:-1:-1;;;8792:68:0;;8018:2:1;8792:68:0;;;8000:21:1;8057:2;8037:18;;;8030:30;8096:34;8076:18;;;8069:62;-1:-1:-1;;;8147:18:1;;;8140:35;8192:19;;8792:68:0;7816:401:1;8792:68:0;-1:-1:-1;;;;;8879:16:0;;8871:64;;;;-1:-1:-1;;;8871:64:0;;8424:2:1;8871:64:0;;;8406:21:1;8463:2;8443:18;;;8436:30;8502:34;8482:18;;;8475:62;-1:-1:-1;;;8553:18:1;;;8546:33;8596:19;;8871:64:0;8222:399:1;8871:64:0;8963:1;8954:6;:10;8946:64;;;;-1:-1:-1;;;8946:64:0;;8828:2:1;8946:64:0;;;8810:21:1;8867:2;8847:18;;;8840:30;8906:34;8886:18;;;8879:62;-1:-1:-1;;;8957:18:1;;;8950:39;9006:19;;8946:64:0;8626:405:1;8946:64:0;1478:7;1505:6;-1:-1:-1;;;;;9027:15:0;;;1505:6;;9027:15;;;;:32;;-1:-1:-1;1478:7:0;1505:6;-1:-1:-1;;;;;9046:13:0;;;1505:6;;9046:13;;9027:32;9023:1259;;;9116:11;;-1:-1:-1;;;9116:11:0;;;;9111:144;;1478:7;1505:6;-1:-1:-1;;;;;9156:15:0;;;1505:6;;9156:15;9148:91;;;;-1:-1:-1;;;9148:91:0;;9238:2:1;9148:91:0;;;9220:21:1;9277:2;9257:18;;;9250:30;9316:34;9296:18;;;9289:62;9387:33;9367:18;;;9360:61;9438:19;;9148:91:0;9036:427:1;9148:91:0;9289:12;;9279:6;:22;;9271:63;;;;-1:-1:-1;;;9271:63:0;;9670:2:1;9271:63:0;;;9652:21:1;9709:2;9689:18;;;9682:30;9748;9728:18;;;9721:58;9796:18;;9271:63:0;9468:352:1;9271:63:0;-1:-1:-1;;;;;9358:10:0;;;;;;:4;:10;;;;;;;;9357:11;:24;;;;-1:-1:-1;;;;;;9373:8:0;;;;;;:4;:8;;;;;;;;9372:9;9357:24;9349:72;;;;-1:-1:-1;;;9349:72:0;;10027:2:1;9349:72:0;;;10009:21:1;10066:2;10046:18;;;10039:30;10105:34;10085:18;;;10078:62;-1:-1:-1;;;10156:18:1;;;10149:33;10199:19;;9349:72:0;9825:399:1;9349:72:0;9447:13;;-1:-1:-1;;;;;9441:19:0;;;9447:13;;9441:19;9438:146;;9514:14;;9505:6;9489:13;9499:2;9489:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9481:87;;;;-1:-1:-1;;;9481:87:0;;10561:2:1;9481:87:0;;;10543:21:1;10600:2;10580:18;;;10573:30;10639:34;10619:18;;;10612:62;-1:-1:-1;;;10690:18:1;;;10683:33;10733:19;;9481:87:0;10359:399:1;9481:87:0;9600:28;9631:24;9649:4;9631:9;:24::i;:::-;9709:19;;9772:12;;9600:55;;-1:-1:-1;9685:43:0;;;;9748:36;;9745:124;;9841:12;;9818:35;;9745:124;9889:7;:18;;;;-1:-1:-1;9901:6:0;;-1:-1:-1;;;9901:6:0;;;;9900:7;9889:18;:43;;;;-1:-1:-1;9919:13:0;;-1:-1:-1;;;;;9911:21:0;;;9919:13;;9911:21;;9889:43;:58;;;;-1:-1:-1;9936:11:0;;-1:-1:-1;;;9936:11:0;;;;9889:58;:87;;;;-1:-1:-1;;;;;;9952:24:0;;;;;;:18;:24;;;;;;;;9951:25;9889:87;:114;;;;-1:-1:-1;;;;;;9981:22:0;;;;;;:18;:22;;;;;;;;9980:23;9889:114;9885:386;;;10024:38;10041:20;10024:16;:38::i;:::-;10110:21;10154:22;;10150:106;;10201:35;10214:21;10201:12;:35::i;:::-;10005:266;9885:386;9061:1221;;9023:1259;-1:-1:-1;;;;;10358:24:0;;10294:12;10358:24;;;:18;:24;;;;;;10309:4;;10358:24;;;:50;;-1:-1:-1;;;;;;10386:22:0;;;;;;:18;:22;;;;;;;;10358:50;10357:102;;;-1:-1:-1;10422:13:0;;-1:-1:-1;;;;;10414:21:0;;;10422:13;;10414:21;;;;:44;;-1:-1:-1;10445:13:0;;-1:-1:-1;;;;;10439:19:0;;;10445:13;;10439:19;;10414:44;10353:594;;;-1:-1:-1;10486:5:0;10353:594;;;10569:13;;-1:-1:-1;;;;;10561:21:0;;;10569:13;;10561:21;:55;;;;-1:-1:-1;10600:15:0;;-1:-1:-1;;;;;10586:30:0;;;10600:15;;10586:30;;10561:55;10558:162;;;10649:14;;10637:9;:26;10692:12;;10682:7;:22;10558:162;10779:13;;-1:-1:-1;;;;;10773:19:0;;;10779:13;;10773:19;:55;;;;-1:-1:-1;10812:15:0;;-1:-1:-1;;;;;10796:32:0;;;10812:15;;10796:32;;10773:55;10769:165;;;10861:15;;10849:9;:27;10905:13;;10895:7;:23;10769:165;10959:41;10974:4;10980:2;10984:6;10992:7;10959:14;:41::i;:::-;8781:2227;8678:2330;;;:::o;2418:224::-;2538:7;2574:12;2566:6;;;;2558:29;;;;-1:-1:-1;;;2558:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2598:9:0;2610:5;2614:1;2610;:5;:::i;:::-;2598:17;2418:224;-1:-1:-1;;;;;2418:224:0:o;11564:99::-;11621:17;;:34;;-1:-1:-1;;;;;11621:17:0;;;;:34;;;;;11648:6;;11621:17;:34;:17;:34;11648:6;11621:17;:34;;;;;;;;;;;;;;;;;;;;;11564:99;:::o;7618:323::-;7713:7;7771;;7760;:18;;7738:110;;;;-1:-1:-1;;;7738:110:0;;11098:2:1;7738:110:0;;;11080:21:1;11137:2;11117:18;;;11110:30;11176:34;11156:18;;;11149:62;-1:-1:-1;;;11227:18:1;;;11220:40;11277:19;;7738:110:0;10896:406:1;7738:110:0;7859:19;7881:10;:8;:10::i;:::-;7859:32;-1:-1:-1;7909:24:0;:7;7859:32;7909:11;:24::i;:::-;7902:31;7618:323;-1:-1:-1;;;7618:323:0:o;11016:540::-;5628:6;:13;;-1:-1:-1;;;;5628:13:0;-1:-1:-1;;;5628:13:0;;;11118:16:::1;::::0;;11132:1:::1;11118:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11118:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11118:16:0::1;11094:40;;11163:4;11145;11150:1;11145:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11145:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11189:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11189:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11145:7;;11189:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11179:4;11184:1;11179:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11179:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11254:15:::1;::::0;11222:62:::1;::::0;11239:4:::1;::::0;11254:15:::1;11272:11:::0;11222:8:::1;:62::i;:::-;11295:15;::::0;:253:::1;::::0;-1:-1:-1;;;11295:253:0;;-1:-1:-1;;;;;11295:15:0;;::::1;::::0;:66:::1;::::0;:253:::1;::::0;11376:11;;11295:15:::1;::::0;11418:4;;11445::::1;::::0;11295:15;;11522::::1;::::0;11295:253:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5665:6:0;:14;;-1:-1:-1;;;;5665:14:0;;;-1:-1:-1;;;;11016:540:0:o;12627:282::-;12783:7;12778:28;;12792:14;:12;:14::i;:::-;12817:44;12835:6;12843:9;12854:6;12817:17;:44::i;:::-;12877:7;12872:29;;12886:15;8232:17;;8220:9;:29;8270:15;;8260:7;:25;8176:117;15588:164;15630:7;15651:15;15668;15687:19;:17;:19::i;:::-;15650:56;;-1:-1:-1;15650:56:0;-1:-1:-1;15724:20:0;15650:56;;15724:11;:20::i;:::-;15717:27;;;;15588:164;:::o;2904:132::-;2962:7;2989:39;2993:1;2996;2989:39;;;;;;;;;;;;;;;;;:3;:39::i;7949:219::-;7996:9;;:14;:30;;;;-1:-1:-1;8014:7:0;;:12;7996:30;7992:43;;;7949:219::o;7992:43::-;8067:9;;;8047:17;:29;8105:7;;;8087:15;:25;-1:-1:-1;8125:13:0;;;;8149:11;7949:219::o;12917:610::-;13064:15;13094:23;13132:12;13159:23;13197:12;13224:13;13251:19;13262:7;13251:10;:19::i;:::-;-1:-1:-1;;;;;13299:15:0;;;;;;:7;:15;;;;;;13049:221;;-1:-1:-1;13049:221:0;;-1:-1:-1;13049:221:0;;-1:-1:-1;13049:221:0;-1:-1:-1;13049:221:0;-1:-1:-1;13049:221:0;-1:-1:-1;13299:28:0;;13049:221;13299:19;:28::i;:::-;-1:-1:-1;;;;;13281:15:0;;;;;;;:7;:15;;;;;;:46;;;;13359:18;;;;;;;:39;;13382:15;13359:22;:39::i;:::-;-1:-1:-1;;;;;13338:18:0;;;;;;:7;:18;;;;;:60;13409:16;13419:5;13409:9;:16::i;:::-;13436:23;13448:4;13454;13436:11;:23::i;:::-;13492:9;-1:-1:-1;;;;;13475:44:0;13484:6;-1:-1:-1;;;;;13475:44:0;;13503:15;13475:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13475:44:0;;;;;;;;13038:489;;;;;;12917:610;;;:::o;15760:257::-;15858:7;;15811;;;;;4398:13;4058:1;4398:2;:13;:::i;:::-;4385:26;;:10;:26;:::i;:::-;15876:25;-1:-1:-1;15926:20:0;4398:13;4058:1;4398:2;:13;:::i;:::-;4385:26;;:10;:26;:::i;:::-;15926:7;;;:11;:20::i;:::-;15916:7;:30;15912:61;;;15956:7;;4398:13;4058:1;4398:2;:13;:::i;:::-;4385:26;;:10;:26;:::i;:::-;15948:25;;;;;;15760:257;;:::o;15912:61::-;15992:7;;16001;;-1:-1:-1;15760:257:0;-1:-1:-1;15760:257:0:o;3044:223::-;3164:7;3199:12;3192:5;3184:28;;;;-1:-1:-1;;;3184:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3223:9:0;3235:5;3239:1;3235;:5;:::i;13946:615::-;14046:7;14068;14090;14112;14134;14156;14192:23;14217:12;14231:13;14261:40;14273:7;14282:9;;14293:7;;14261:11;:40::i;:::-;14191:110;;;;;;14312:19;14334:10;:8;:10::i;:::-;14312:32;;14356:15;14373:23;14398:12;14427:46;14439:7;14448:4;14454:5;14461:11;14427;:46::i;:::-;14355:118;;-1:-1:-1;14355:118:0;-1:-1:-1;14355:118:0;-1:-1:-1;14524:15:0;;-1:-1:-1;14541:4:0;;-1:-1:-1;14547:5:0;;-1:-1:-1;;;;;13946:615:0;;;;;;;:::o;2274:136::-;2332:7;2359:43;2363:1;2366;2359:43;;;;;;;;;;;;;;;;;:3;:43::i;2087:179::-;2145:7;;2177:5;2181:1;2177;:5;:::i;:::-;2165:17;;2206:1;2201;:6;;2193:46;;;;-1:-1:-1;;;2193:46:0;;13082:2:1;2193:46:0;;;13064:21:1;13121:2;13101:18;;;13094:30;13160:29;13140:18;;;13133:57;13207:18;;2193:46:0;12880:351:1;13535:211:0;13588:19;13610:10;:8;:10::i;:::-;13588:32;-1:-1:-1;13631:13:0;13647:22;:5;13588:32;13647:9;:22::i;:::-;13721:4;13705:22;;;;:7;:22;;;;;;13631:38;;-1:-1:-1;13705:33:0;;13631:38;13705:26;:33::i;:::-;13696:4;13680:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13535:211:0:o;13754:147::-;13832:7;;:17;;13844:4;13832:11;:17::i;:::-;13822:7;:27;13873:10;;:20;;13888:4;13873:14;:20::i;:::-;13860:10;:33;-1:-1:-1;;13754:147:0:o;14569:469::-;14738:7;;;;14832:30;14858:3;14832:21;:7;14844:8;14832:11;:21::i;:::-;:25;;:30::i;:::-;14817:45;-1:-1:-1;14873:13:0;14889:28;14913:3;14889:19;:7;14901:6;14889:11;:19::i;:28::-;14873:44;-1:-1:-1;14928:23:0;14954:28;14873:44;14954:17;:7;14966:4;14954:11;:17::i;:::-;:21;;:28::i;:::-;14928:54;15018:4;;-1:-1:-1;15024:5:0;;-1:-1:-1;14569:469:0;;-1:-1:-1;;;;;14569:469:0:o;15046:534::-;15240:7;;;;15337:24;:7;15349:11;15337;:24::i;:::-;15319:42;-1:-1:-1;15372:12:0;15387:21;:4;15396:11;15387:8;:21::i;:::-;15372:36;-1:-1:-1;15419:13:0;15435:22;:5;15445:11;15435:9;:22::i;:::-;15419:38;-1:-1:-1;15468:23:0;15494:28;15419:38;15494:17;:7;15506:4;15494:11;:17::i;:28::-;15541:7;;;;-1:-1:-1;15567:4:0;;-1:-1:-1;15046:534:0;;-1:-1:-1;;;;;;;15046:534:0:o;2650:246::-;2708:7;2732:1;2737;2732:6;2728:47;;-1:-1:-1;2762:1:0;2755:8;;2728:47;2785:9;2797:5;2801:1;2797;:5;:::i;:::-;2785:17;-1:-1:-1;2830:1:0;2821:5;2825:1;2785:17;2821:5;:::i;:::-;:10;2813:56;;;;-1:-1:-1;;;2813:56:0;;13438:2:1;2813:56:0;;;13420:21:1;13477:2;13457:18;;;13450:30;13516:34;13496:18;;;13489:62;-1:-1:-1;;;13567:18:1;;;13560:31;13608:19;;2813:56:0;13236: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:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:180::-;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;-1:-1:-1;3170:23:1;;3019:180;-1:-1:-1;3019:180:1:o;3204:385::-;3290:6;3298;3306;3314;3367:3;3355:9;3346:7;3342:23;3338:33;3335:53;;;3384:1;3381;3374:12;3335:53;-1:-1:-1;;3407:23:1;;;3477:2;3462:18;;3449:32;;-1:-1:-1;3528:2:1;3513:18;;3500:32;;3579:2;3564:18;3551:32;;-1:-1:-1;3204:385:1;-1:-1:-1;3204:385:1:o;3594:388::-;3662:6;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3778:9;3765:23;3797:31;3822:5;3797:31;:::i;:::-;3847:5;-1:-1:-1;3904:2:1;3889:18;;3876:32;3917:33;3876:32;3917:33;:::i;:::-;3969:7;3959:17;;;3594:388;;;;;:::o;3987:127::-;4048:10;4043:3;4039:20;4036:1;4029:31;4079:4;4076:1;4069:15;4103:4;4100:1;4093:15;4119:422;4208:1;4251:5;4208:1;4265:270;4286:7;4276:8;4273:21;4265:270;;;4345:4;4341:1;4337:6;4333:17;4327:4;4324:27;4321:53;;;4354:18;;:::i;:::-;4404:7;4394:8;4390:22;4387:55;;;4424:16;;;;4387:55;4503:22;;;;4463:15;;;;4265:270;;;4269:3;4119:422;;;;;:::o;4546:806::-;4595:5;4625:8;4615:80;;-1:-1:-1;4666:1:1;4680:5;;4615:80;4714:4;4704:76;;-1:-1:-1;4751:1:1;4765:5;;4704:76;4796:4;4814:1;4809:59;;;;4882:1;4877:130;;;;4789:218;;4809:59;4839:1;4830:10;;4853:5;;;4877:130;4914:3;4904:8;4901:17;4898:43;;;4921:18;;:::i;:::-;-1:-1:-1;;4977:1:1;4963:16;;4992:5;;4789:218;;5091:2;5081:8;5078:16;5072:3;5066:4;5063:13;5059:36;5053:2;5043:8;5040:16;5035:2;5029:4;5026:12;5022:35;5019:77;5016:159;;;-1:-1:-1;5128:19:1;;;5160:5;;5016:159;5207:34;5232:8;5226:4;5207:34;:::i;:::-;5277:6;5273:1;5269:6;5265:19;5256:7;5253:32;5250:58;;;5288:18;;:::i;:::-;5326:20;;4546:806;-1:-1:-1;;;4546:806:1:o;5357:140::-;5415:5;5444:47;5485:4;5475:8;5471:19;5465:4;5444:47;:::i;5502:168::-;5575:9;;;5606;;5623:15;;;5617:22;;5603:37;5593:71;;5644:18;;:::i;5675:356::-;5877:2;5859:21;;;5896:18;;;5889:30;5955:34;5950:2;5935:18;;5928:62;6022:2;6007:18;;5675:356::o;6036:251::-;6106:6;6159:2;6147:9;6138:7;6134:23;6130:32;6127:52;;;6175:1;6172;6165:12;6127:52;6207:9;6201:16;6226:31;6251:5;6226:31;:::i;10229:125::-;10294:9;;;10315:10;;;10312:36;;;10328:18;;:::i;10763:128::-;10830:9;;;10851:11;;;10848:37;;;10865:18;;:::i;11439:127::-;11500:10;11495:3;11491:20;11488:1;11481:31;11531:4;11528:1;11521:15;11555:4;11552:1;11545:15;11571:1082;11861:4;11909:3;11898:9;11894:19;11940:6;11929:9;11922:25;11966:2;12004:6;11999:2;11988:9;11984:18;11977:34;12047:3;12042:2;12031:9;12027:18;12020:31;12071:6;12106;12100:13;12137:6;12129;12122:22;12175:3;12164:9;12160:19;12153:26;;12214:2;12206:6;12202:15;12188:29;;12235:1;12245:195;12259:6;12256:1;12253:13;12245:195;;;12324:13;;-1:-1:-1;;;;;12320:39:1;12308:52;;12415:15;;;;12380:12;;;;12356:1;12274:9;12245:195;;;-1:-1:-1;;;;;;;12534:15:1;;;12529:2;12514:18;;12507:43;12587:15;;;;12581:3;12566:19;;12559:44;-1:-1:-1;;12487:3:1;12619:19;12612:35;12457:3;11571:1082;-1:-1:-1;;;;11571:1082:1:o;12658:217::-;12698:1;12724;12714:132;;12768:10;12763:3;12759:20;12756:1;12749:31;12803:4;12800:1;12793:15;12831:4;12828:1;12821:15;12714:132;-1:-1:-1;12860:9:1;;12658:217::o

Swarm Source

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