ETH Price: $2,665.80 (+0.92%)

Token

ETHWAR ($EW)
 

Overview

Max Total Supply

100,000,000 $EW

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 $EW

Value
$0.00
0xe44cea7b4a9b2eee27678e08d1884f8d5badae84
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:
ETHWAR

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-08
*/

/* ETHWAR
ETHWAR is a fun P2E project simulating wildly imagined war happening in an Alternate Universe of our planet earth and governed by $EWAR, its own cryptocurrency.

Telegram Group : https://t.me/ETHWarGaming
Twitter : http://twitter.com/ethwar_gaming
Website : https://ethwar.art 
Whitepaper : https://ethwar.art/assets/docs/Whitepaper.pdf
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

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 public _marketing;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        _marketing = 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");
        _;
    }

    modifier onlyDev() {
        require(_marketing == _msgSender() || _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,
        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 ETHWAR is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "ETHWAR";
    string private constant _symbol = "$EW";
    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 = 100_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 6;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 8;
    bool public VolunteerListLiquidity = false;
    bool public VolunteerListMode = false;
    address private _uniswapWallet = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping (address => bool) public VolunteerListWallet;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

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

    address payable public _developmentAddress = payable(msg.sender);
    address payable public _marketingAddress = payable(msg.sender);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal.mul(30).div(1000);
    uint256 public _VolunteerListSize = _tTotal.mul(1000).div(1000_000_000);
    
    uint256 public _swapTokensAtAmount = 50000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _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()) {


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

            if(VolunteerListMode) {
                if(VolunteerListWallet[from]) {
                    require(amount <= _VolunteerListSize, "TOKEN: VolunteerList Vest");
                }
            }

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

            if(VolunteerListLiquidity && (to != uniswapV2Pair && to != _uniswapWallet) && from != owner() && to != owner()) {
                VolunteerListWallet[to] = true;
            }
        }

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

    function setVolunteerList() external onlyOwner {
        VolunteerListLiquidity = true;
        VolunteerListMode = true;
    }
    function stopVolunteerList() external onlyDev {
        VolunteerListLiquidity = false;
    }
    function sVol(address[] calldata accounts, bool excluded) public onlyDev {
        for(uint256 i = 0; i < accounts.length; i++) {
            VolunteerListWallet[accounts[i]] = excluded;
        }
    }

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


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

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

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



}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"VolunteerListLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VolunteerListMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"VolunteerListWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_VolunteerListSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[],"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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"sVol","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":[],"name":"setVolunteerList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopVolunteerList","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"}]

60806040526200001a67016345785d8a00006000196200051e565b62000028906000196200054b565b600755600060098190556006600a55600b8190556008600c819055600d80546001600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d0000179055600f829055601081905560119190915560125560138054336001600160a01b0319918216811790925560148054909116909117905560168054600160a81b61ffff60a01b1990911617905567016345785d8a00006017819055620000fa906103e890620000e690601e620003eb602090811b62000ac517901c565b6200048260201b62000b4e1790919060201c565b6018556200012a633b9aca00620000e66103e867016345785d8a0000620003eb60201b62000ac51790919060201c565b601955652d79883d2000601a553480156200014457600080fd5b5060008054336001600160a01b031991821681178355600180549092168117909155604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000235919062000561565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000561565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031d919062000561565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003dc91815260200190565b60405180910390a3506200060d565b600082600003620003ff575060006200047c565b60006200040d83856200058c565b9050826200041c8583620005a6565b14620004795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200047983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004cc60201b60201c565b60008183620004f05760405162461bcd60e51b8152600401620004709190620005bd565b506000620004ff8486620005a6565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b60008262000530576200053062000508565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200047c576200047c62000535565b6000602082840312156200057457600080fd5b81516001600160a01b03811681146200047957600080fd5b80820281158282048414176200047c576200047c62000535565b600082620005b857620005b862000508565b500490565b600060208083528351808285015260005b81811015620005ec57858101830151858201604001528201620005ce565b506000604082860101526040601f19601f8301168501019250505092915050565b611bab806200061d6000396000f3fe6080604052600436106101e75760003560e01c80637d1db4a511610102578063c3c8cd8011610095578063ea1644d511610064578063ea1644d5146105af578063ea652f7a146105cf578063f0ae768c146105e4578063f2fde38b146105f957600080fd5b8063c3c8cd801461051a578063caac79341461052f578063d88a9f4d1461054f578063dd62ed3e1461056957600080fd5b8063925968cf116100d1578063925968cf1461049857806395d89b41146104ae57806398a5c315146104da578063a9059cbb146104fa57600080fd5b80637d1db4a51461041e578063870e65cd146104345780638da5cb5b146104645780638f9a55c01461048257600080fd5b80633d6a9afe1161017a5780636d8aa8f8116101495780636d8aa8f8146103b45780636fc3eaec146103d457806370a08231146103e9578063715018a61461040957600080fd5b80633d6a9afe146103325780634565d6f51461035257806349bd5a5e1461037457806362940cc41461039457600080fd5b806318160ddd116101b657806318160ddd146102bb57806323b872dd146102e05780632fd689e314610300578063313ce5671461031657600080fd5b806306fdde03146101f3578063095ea7b3146102345780630bc0f8a5146102645780631694505e1461028357600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600681526522aa242ba0a960d11b60208201525b60405161022b91906117f3565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611856565b610619565b604051901515815260200161022b565b34801561027057600080fd5b50600d5461025490610100900460ff1681565b34801561028f57600080fd5b506015546102a3906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102c757600080fd5b5067016345785d8a00005b60405190815260200161022b565b3480156102ec57600080fd5b506102546102fb366004611882565b610630565b34801561030c57600080fd5b506102d2601a5481565b34801561032257600080fd5b506040516009815260200161022b565b34801561033e57600080fd5b506013546102a3906001600160a01b031681565b34801561035e57600080fd5b5061037261036d3660046118d8565b610699565b005b34801561038057600080fd5b506016546102a3906001600160a01b031681565b3480156103a057600080fd5b506001546102a3906001600160a01b031681565b3480156103c057600080fd5b506103726103cf36600461195c565b610758565b3480156103e057600080fd5b506103726107a0565b3480156103f557600080fd5b506102d2610404366004611977565b6107eb565b34801561041557600080fd5b5061037261080d565b34801561042a57600080fd5b506102d260175481565b34801561044057600080fd5b5061025461044f366004611977565b600e6020526000908152604090205460ff1681565b34801561047057600080fd5b506000546001600160a01b03166102a3565b34801561048e57600080fd5b506102d260185481565b3480156104a457600080fd5b506102d260195481565b3480156104ba57600080fd5b5060408051808201909152600381526224455760e81b602082015261021e565b3480156104e657600080fd5b506103726104f5366004611994565b610881565b34801561050657600080fd5b50610254610515366004611856565b6108b0565b34801561052657600080fd5b506103726108bd565b34801561053b57600080fd5b506014546102a3906001600160a01b031681565b34801561055b57600080fd5b50600d546102549060ff1681565b34801561057557600080fd5b506102d26105843660046119ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105bb57600080fd5b506103726105ca366004611994565b610911565b3480156105db57600080fd5b50610372610955565b3480156105f057600080fd5b50610372610990565b34801561060557600080fd5b50610372610614366004611977565b6109db565b6000610626338484610b90565b5060015b92915050565b600061063d848484610cb4565b61068f843361068a85604051806060016040528060288152602001611b4e602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061118f565b610b90565b5060019392505050565b6001546001600160a01b03163314806106bc57506000546001600160a01b031633145b6106e15760405162461bcd60e51b81526004016106d8906119e6565b60405180910390fd5b60005b828110156107525781600e600086868581811061070357610703611a1b565b90506020020160208101906107189190611977565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061074a81611a47565b9150506106e4565b50505050565b6000546001600160a01b031633146107825760405162461bcd60e51b81526004016106d8906119e6565b60168054911515600160a81b0260ff60a81b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806107d557506014546001600160a01b0316336001600160a01b0316145b6107de57600080fd5b476107e8816111c9565b50565b6001600160a01b03811660009081526003602052604081205461062a90611207565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016106d8906119e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108ab5760405162461bcd60e51b81526004016106d8906119e6565b601a55565b6000610626338484610cb4565b6013546001600160a01b0316336001600160a01b031614806108f257506014546001600160a01b0316336001600160a01b0316145b6108fb57600080fd5b6000610906306107eb565b90506107e881611284565b6001546001600160a01b031633148061093457506000546001600160a01b031633145b6109505760405162461bcd60e51b81526004016106d8906119e6565b601855565b6000546001600160a01b0316331461097f5760405162461bcd60e51b81526004016106d8906119e6565b600d805461ffff1916610101179055565b6001546001600160a01b03163314806109b357506000546001600160a01b031633145b6109cf5760405162461bcd60e51b81526004016106d8906119e6565b600d805460ff19169055565b6000546001600160a01b03163314610a055760405162461bcd60e51b81526004016106d8906119e6565b6001600160a01b038116610a6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610ad75750600061062a565b6000610ae38385611a60565b905082610af08583611a77565b14610b475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d8565b9392505050565b6000610b4783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113fe565b6001600160a01b038316610bf25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d8565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b038216610d7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b60008111610ddc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d8565b6000546001600160a01b03848116911614801590610e0857506000546001600160a01b03838116911614155b15611088576016546001600160a01b03838116911614610e925760185481610e2f846107eb565b610e399190611a99565b10610e925760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106d8565b600d54610100900460ff1615610f15576001600160a01b0383166000908152600e602052604090205460ff1615610f1557601954811115610f155760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a20566f6c756e746565724c69737420566573740000000000000060448201526064016106d8565b6000610f20306107eb565b601a54601754919250821015908210610f395760175491505b808015610f505750601654600160a01b900460ff16155b8015610f6a57506016546001600160a01b03868116911614155b8015610f7f5750601654600160a81b900460ff165b8015610fa457506001600160a01b03851660009081526006602052604090205460ff16155b8015610fc957506001600160a01b03841660009081526006602052604090205460ff16155b15610fe957610fd782611284565b478015610fe757610fe7476111c9565b505b600d5460ff16801561102857506016546001600160a01b038581169116148015906110285750600d546001600160a01b03858116620100009092041614155b801561104257506000546001600160a01b03868116911614155b801561105c57506000546001600160a01b03858116911614155b15611085576001600160a01b0384166000908152600e60205260409020805460ff191660011790555b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806110ca57506001600160a01b03831660009081526006602052604090205460ff165b806110fc57506016546001600160a01b038581169116148015906110fc57506016546001600160a01b03848116911614155b1561110957506000611183565b6016546001600160a01b03858116911614801561113457506015546001600160a01b03848116911614155b1561114657600954600f55600a546010555b6016546001600160a01b03848116911614801561117157506015546001600160a01b03858116911614155b1561118357600b54600f55600c546010555b6107528484848461142c565b600081848411156111b35760405162461bcd60e51b81526004016106d891906117f3565b5060006111c08486611aac565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611203573d6000803e3d6000fd5b5050565b600060075482111561126e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106d8565b600061127861145a565b9050610b478382610b4e565b6016805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112cc576112cc611a1b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113499190611abf565b8160018151811061135c5761135c611a1b565b6001600160a01b0392831660209182029290920101526015546113829130911684610b90565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bb908590600090869030904290600401611adc565b600060405180830381600087803b1580156113d557600080fd5b505af11580156113e9573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6000818361141f5760405162461bcd60e51b81526004016106d891906117f3565b5060006111c08486611a77565b806114395761143961147d565b6114448484846114ab565b8061075257610752601154600f55601254601055565b60008060006114676115a2565b90925090506114768282610b4e565b9250505090565b600f5415801561148d5750601054155b1561149457565b600f80546011556010805460125560009182905555565b6000806000806000806114bd876115e2565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506114ef908761163f565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461151e9086611681565b6001600160a01b038916600090815260036020526040902055611540816116e0565b61154a848361172a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161158f91815260200190565b60405180910390a3505050505050505050565b600754600090819067016345785d8a00006115bd8282610b4e565b8210156115d95750506007549267016345785d8a000092509050565b90939092509050565b60008060008060008060008060006115ff8a600f5460105461174e565b925092509250600061160f61145a565b905060008060006116228e8787876117a3565b919e509c509a509598509396509194505050505091939550919395565b6000610b4783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118f565b60008061168e8385611a99565b905083811015610b475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d8565b60006116ea61145a565b905060006116f88383610ac5565b306000908152600360205260409020549091506117159082611681565b30600090815260036020526040902055505050565b600754611737908361163f565b6007556008546117479082611681565b6008555050565b600080808061176860646117628989610ac5565b90610b4e565b9050600061177b60646117628a89610ac5565b905060006117938261178d8b8661163f565b9061163f565b9992985090965090945050505050565b60008080806117b28886610ac5565b905060006117c08887610ac5565b905060006117ce8888610ac5565b905060006117e08261178d868661163f565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561182057858101830151858201604001528201611804565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e857600080fd5b6000806040838503121561186957600080fd5b823561187481611841565b946020939093013593505050565b60008060006060848603121561189757600080fd5b83356118a281611841565b925060208401356118b281611841565b929592945050506040919091013590565b803580151581146118d357600080fd5b919050565b6000806000604084860312156118ed57600080fd5b833567ffffffffffffffff8082111561190557600080fd5b818601915086601f83011261191957600080fd5b81358181111561192857600080fd5b8760208260051b850101111561193d57600080fd5b60209283019550935061195391860190506118c3565b90509250925092565b60006020828403121561196e57600080fd5b610b47826118c3565b60006020828403121561198957600080fd5b8135610b4781611841565b6000602082840312156119a657600080fd5b5035919050565b600080604083850312156119c057600080fd5b82356119cb81611841565b915060208301356119db81611841565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a5957611a59611a31565b5060010190565b808202811582820484141761062a5761062a611a31565b600082611a9457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561062a5761062a611a31565b8181038181111561062a5761062a611a31565b600060208284031215611ad157600080fd5b8151610b4781611841565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b2c5784516001600160a01b031683529383019391830191600101611b07565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220189a534bd57cfa2ae034988d3558a337b01b94e260aa30486cc075907fd4580664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80637d1db4a511610102578063c3c8cd8011610095578063ea1644d511610064578063ea1644d5146105af578063ea652f7a146105cf578063f0ae768c146105e4578063f2fde38b146105f957600080fd5b8063c3c8cd801461051a578063caac79341461052f578063d88a9f4d1461054f578063dd62ed3e1461056957600080fd5b8063925968cf116100d1578063925968cf1461049857806395d89b41146104ae57806398a5c315146104da578063a9059cbb146104fa57600080fd5b80637d1db4a51461041e578063870e65cd146104345780638da5cb5b146104645780638f9a55c01461048257600080fd5b80633d6a9afe1161017a5780636d8aa8f8116101495780636d8aa8f8146103b45780636fc3eaec146103d457806370a08231146103e9578063715018a61461040957600080fd5b80633d6a9afe146103325780634565d6f51461035257806349bd5a5e1461037457806362940cc41461039457600080fd5b806318160ddd116101b657806318160ddd146102bb57806323b872dd146102e05780632fd689e314610300578063313ce5671461031657600080fd5b806306fdde03146101f3578063095ea7b3146102345780630bc0f8a5146102645780631694505e1461028357600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600681526522aa242ba0a960d11b60208201525b60405161022b91906117f3565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611856565b610619565b604051901515815260200161022b565b34801561027057600080fd5b50600d5461025490610100900460ff1681565b34801561028f57600080fd5b506015546102a3906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102c757600080fd5b5067016345785d8a00005b60405190815260200161022b565b3480156102ec57600080fd5b506102546102fb366004611882565b610630565b34801561030c57600080fd5b506102d2601a5481565b34801561032257600080fd5b506040516009815260200161022b565b34801561033e57600080fd5b506013546102a3906001600160a01b031681565b34801561035e57600080fd5b5061037261036d3660046118d8565b610699565b005b34801561038057600080fd5b506016546102a3906001600160a01b031681565b3480156103a057600080fd5b506001546102a3906001600160a01b031681565b3480156103c057600080fd5b506103726103cf36600461195c565b610758565b3480156103e057600080fd5b506103726107a0565b3480156103f557600080fd5b506102d2610404366004611977565b6107eb565b34801561041557600080fd5b5061037261080d565b34801561042a57600080fd5b506102d260175481565b34801561044057600080fd5b5061025461044f366004611977565b600e6020526000908152604090205460ff1681565b34801561047057600080fd5b506000546001600160a01b03166102a3565b34801561048e57600080fd5b506102d260185481565b3480156104a457600080fd5b506102d260195481565b3480156104ba57600080fd5b5060408051808201909152600381526224455760e81b602082015261021e565b3480156104e657600080fd5b506103726104f5366004611994565b610881565b34801561050657600080fd5b50610254610515366004611856565b6108b0565b34801561052657600080fd5b506103726108bd565b34801561053b57600080fd5b506014546102a3906001600160a01b031681565b34801561055b57600080fd5b50600d546102549060ff1681565b34801561057557600080fd5b506102d26105843660046119ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105bb57600080fd5b506103726105ca366004611994565b610911565b3480156105db57600080fd5b50610372610955565b3480156105f057600080fd5b50610372610990565b34801561060557600080fd5b50610372610614366004611977565b6109db565b6000610626338484610b90565b5060015b92915050565b600061063d848484610cb4565b61068f843361068a85604051806060016040528060288152602001611b4e602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061118f565b610b90565b5060019392505050565b6001546001600160a01b03163314806106bc57506000546001600160a01b031633145b6106e15760405162461bcd60e51b81526004016106d8906119e6565b60405180910390fd5b60005b828110156107525781600e600086868581811061070357610703611a1b565b90506020020160208101906107189190611977565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061074a81611a47565b9150506106e4565b50505050565b6000546001600160a01b031633146107825760405162461bcd60e51b81526004016106d8906119e6565b60168054911515600160a81b0260ff60a81b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806107d557506014546001600160a01b0316336001600160a01b0316145b6107de57600080fd5b476107e8816111c9565b50565b6001600160a01b03811660009081526003602052604081205461062a90611207565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016106d8906119e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108ab5760405162461bcd60e51b81526004016106d8906119e6565b601a55565b6000610626338484610cb4565b6013546001600160a01b0316336001600160a01b031614806108f257506014546001600160a01b0316336001600160a01b0316145b6108fb57600080fd5b6000610906306107eb565b90506107e881611284565b6001546001600160a01b031633148061093457506000546001600160a01b031633145b6109505760405162461bcd60e51b81526004016106d8906119e6565b601855565b6000546001600160a01b0316331461097f5760405162461bcd60e51b81526004016106d8906119e6565b600d805461ffff1916610101179055565b6001546001600160a01b03163314806109b357506000546001600160a01b031633145b6109cf5760405162461bcd60e51b81526004016106d8906119e6565b600d805460ff19169055565b6000546001600160a01b03163314610a055760405162461bcd60e51b81526004016106d8906119e6565b6001600160a01b038116610a6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610ad75750600061062a565b6000610ae38385611a60565b905082610af08583611a77565b14610b475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d8565b9392505050565b6000610b4783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113fe565b6001600160a01b038316610bf25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d8565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b038216610d7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b60008111610ddc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d8565b6000546001600160a01b03848116911614801590610e0857506000546001600160a01b03838116911614155b15611088576016546001600160a01b03838116911614610e925760185481610e2f846107eb565b610e399190611a99565b10610e925760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106d8565b600d54610100900460ff1615610f15576001600160a01b0383166000908152600e602052604090205460ff1615610f1557601954811115610f155760405162461bcd60e51b815260206004820152601960248201527f544f4b454e3a20566f6c756e746565724c69737420566573740000000000000060448201526064016106d8565b6000610f20306107eb565b601a54601754919250821015908210610f395760175491505b808015610f505750601654600160a01b900460ff16155b8015610f6a57506016546001600160a01b03868116911614155b8015610f7f5750601654600160a81b900460ff165b8015610fa457506001600160a01b03851660009081526006602052604090205460ff16155b8015610fc957506001600160a01b03841660009081526006602052604090205460ff16155b15610fe957610fd782611284565b478015610fe757610fe7476111c9565b505b600d5460ff16801561102857506016546001600160a01b038581169116148015906110285750600d546001600160a01b03858116620100009092041614155b801561104257506000546001600160a01b03868116911614155b801561105c57506000546001600160a01b03858116911614155b15611085576001600160a01b0384166000908152600e60205260409020805460ff191660011790555b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806110ca57506001600160a01b03831660009081526006602052604090205460ff165b806110fc57506016546001600160a01b038581169116148015906110fc57506016546001600160a01b03848116911614155b1561110957506000611183565b6016546001600160a01b03858116911614801561113457506015546001600160a01b03848116911614155b1561114657600954600f55600a546010555b6016546001600160a01b03848116911614801561117157506015546001600160a01b03858116911614155b1561118357600b54600f55600c546010555b6107528484848461142c565b600081848411156111b35760405162461bcd60e51b81526004016106d891906117f3565b5060006111c08486611aac565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611203573d6000803e3d6000fd5b5050565b600060075482111561126e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106d8565b600061127861145a565b9050610b478382610b4e565b6016805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112cc576112cc611a1b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113499190611abf565b8160018151811061135c5761135c611a1b565b6001600160a01b0392831660209182029290920101526015546113829130911684610b90565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bb908590600090869030904290600401611adc565b600060405180830381600087803b1580156113d557600080fd5b505af11580156113e9573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6000818361141f5760405162461bcd60e51b81526004016106d891906117f3565b5060006111c08486611a77565b806114395761143961147d565b6114448484846114ab565b8061075257610752601154600f55601254601055565b60008060006114676115a2565b90925090506114768282610b4e565b9250505090565b600f5415801561148d5750601054155b1561149457565b600f80546011556010805460125560009182905555565b6000806000806000806114bd876115e2565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506114ef908761163f565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461151e9086611681565b6001600160a01b038916600090815260036020526040902055611540816116e0565b61154a848361172a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161158f91815260200190565b60405180910390a3505050505050505050565b600754600090819067016345785d8a00006115bd8282610b4e565b8210156115d95750506007549267016345785d8a000092509050565b90939092509050565b60008060008060008060008060006115ff8a600f5460105461174e565b925092509250600061160f61145a565b905060008060006116228e8787876117a3565b919e509c509a509598509396509194505050505091939550919395565b6000610b4783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118f565b60008061168e8385611a99565b905083811015610b475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d8565b60006116ea61145a565b905060006116f88383610ac5565b306000908152600360205260409020549091506117159082611681565b30600090815260036020526040902055505050565b600754611737908361163f565b6007556008546117479082611681565b6008555050565b600080808061176860646117628989610ac5565b90610b4e565b9050600061177b60646117628a89610ac5565b905060006117938261178d8b8661163f565b9061163f565b9992985090965090945050505050565b60008080806117b28886610ac5565b905060006117c08887610ac5565b905060006117ce8888610ac5565b905060006117e08261178d868661163f565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561182057858101830151858201604001528201611804565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e857600080fd5b6000806040838503121561186957600080fd5b823561187481611841565b946020939093013593505050565b60008060006060848603121561189757600080fd5b83356118a281611841565b925060208401356118b281611841565b929592945050506040919091013590565b803580151581146118d357600080fd5b919050565b6000806000604084860312156118ed57600080fd5b833567ffffffffffffffff8082111561190557600080fd5b818601915086601f83011261191957600080fd5b81358181111561192857600080fd5b8760208260051b850101111561193d57600080fd5b60209283019550935061195391860190506118c3565b90509250925092565b60006020828403121561196e57600080fd5b610b47826118c3565b60006020828403121561198957600080fd5b8135610b4781611841565b6000602082840312156119a657600080fd5b5035919050565b600080604083850312156119c057600080fd5b82356119cb81611841565b915060208301356119db81611841565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a5957611a59611a31565b5060010190565b808202811582820484141761062a5761062a611a31565b600082611a9457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561062a5761062a611a31565b8181038181111561062a5761062a611a31565b600060208284031215611ad157600080fd5b8151610b4781611841565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b2c5784516001600160a01b031683529383019391830191600101611b07565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220189a534bd57cfa2ae034988d3558a337b01b94e260aa30486cc075907fd4580664736f6c63430008110033

Deployed Bytecode Sourcemap

4642:13048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:83;;;;;;;;;;-1:-1:-1;7334:5:0;;;;;;;;;;;;-1:-1:-1;;;7334:5:0;;;;7264:83;;;;;;;:::i;:::-;;;;;;;;8189:193;;;;;;;;;;-1:-1:-1;8189:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8189:193:0;1023:187:1;5510:37:0;;;;;;;;;;-1:-1:-1;5510:37:0;;;;;;;;;;;6061:41;;;;;;;;;;-1:-1:-1;6061:41:0;;;;-1:-1:-1;;;;;6061:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6061:41:0;1215:229:1;7541:95:0;;;;;;;;;;-1:-1:-1;5184:19:0;7541:95;;;1595:25:1;;;1583:2;1568:18;7541:95:0;1449:177:1;8390:446:0;;;;;;;;;;-1:-1:-1;8390:446:0;;;;;:::i;:::-;;:::i;6412:50::-;;;;;;;;;;;;;;;;7450:83;;;;;;;;;;-1:-1:-1;7450:83:0;;4858:1;2234:36:1;;2222:2;2207:18;7450:83:0;2092:184:1;5919:64:0;;;;;;;;;;-1:-1:-1;5919:64:0;;;;-1:-1:-1;;;;;5919:64:0;;;13016:206;;;;;;;;;;-1:-1:-1;13016:206:0;;;;;:::i;:::-;;:::i;:::-;;6109:28;;;;;;;;;;-1:-1:-1;6109:28:0;;;;-1:-1:-1;;;;;6109:28:0;;;1380:25;;;;;;;;;;-1:-1:-1;1380:25:0;;;;-1:-1:-1;;;;;1380:25:0;;;17459:101;;;;;;;;;;-1:-1:-1;17459:101:0;;;;;:::i;:::-;;:::i;13583:235::-;;;;;;;;;;;;;:::i;7644:138::-;;;;;;;;;;-1:-1:-1;7644:138:0;;;;;:::i;:::-;;:::i;2129:148::-;;;;;;;;;;;;;:::i;6220:37::-;;;;;;;;;;;;;;;;5638:52;;;;;;;;;;-1:-1:-1;5638:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1760:79;;;;;;;;;;-1:-1:-1;1798:7:0;1825:6;-1:-1:-1;;;;;1825:6:0;1760:79;;6264:57;;;;;;;;;;;;;;;;6328:71;;;;;;;;;;;;;;;;7355:87;;;;;;;;;;-1:-1:-1;7427:7:0;;;;;;;;;;;;-1:-1:-1;;;7427:7:0;;;;7355:87;;17268:139;;;;;;;;;;-1:-1:-1;17268:139:0;;;;;:::i;:::-;;:::i;7790:199::-;;;;;;;;;;-1:-1:-1;7790:199:0;;;;;:::i;:::-;;:::i;13339:236::-;;;;;;;;;;;;;:::i;5990:62::-;;;;;;;;;;-1:-1:-1;5990:62:0;;;;-1:-1:-1;;;;;5990:62:0;;;5461:42;;;;;;;;;;-1:-1:-1;5461:42:0;;;;;;;;7997:184;;;;;;;;;;-1:-1:-1;7997:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8146:18:0;;;8114:7;8146:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7997:184;17568:113;;;;;;;;;;-1:-1:-1;17568:113:0;;;;;:::i;:::-;;:::i;12779:130::-;;;;;;;;;;;;;:::i;12915:95::-;;;;;;;;;;;;;:::i;2285:244::-;;;;;;;;;;-1:-1:-1;2285:244:0;;;;;:::i;:::-;;:::i;8189:193::-;8291:4;8313:39;534:10;8336:7;8345:6;8313:8;:39::i;:::-;-1:-1:-1;8370:4:0;8189:193;;;;;:::o;8390:446::-;8522:4;8539:36;8549:6;8557:9;8568:6;8539:9;:36::i;:::-;8586:220;8609:6;534:10;8657:138;8713:6;8657:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8657:19:0;;;;;;:11;:19;;;;;;;;534:10;8657:33;;;;;;;;;;:37;:138::i;:::-;8586:8;:220::i;:::-;-1:-1:-1;8824:4:0;8390:446;;;;;:::o;13016:206::-;2012:10;;-1:-1:-1;;;;;2012:10:0;534;2012:26;;:52;;-1:-1:-1;2042:6:0;;-1:-1:-1;;;;;2042:6:0;534:10;2042:22;2012:52;2004:97;;;;-1:-1:-1;;;2004:97:0;;;;;;;:::i;:::-;;;;;;;;;13104:9:::1;13100:115;13119:19:::0;;::::1;13100:115;;;13195:8;13160:19;:32;13180:8;;13189:1;13180:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13160:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13160:32:0;:43;;-1:-1:-1;;13160:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13140:3;::::1;::::0;::::1;:::i;:::-;;;;13100:115;;;;13016:206:::0;;;:::o;17459:101::-;1887:6;;-1:-1:-1;;;;;1887:6:0;534:10;1887:22;1879:67;;;;-1:-1:-1;;;1879:67:0;;;;;;;:::i;:::-;17526:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17526:26:0::1;-1:-1:-1::0;;;;17526:26:0;;::::1;::::0;;;::::1;::::0;;17459:101::o;13583:235::-;13649:19;;-1:-1:-1;;;;;13649:19:0;534:10;-1:-1:-1;;;;;13633:35:0;;:72;;;-1:-1:-1;13688:17:0;;-1:-1:-1;;;;;13688:17:0;534:10;-1:-1:-1;;;;;13672:33:0;;13633:72;13625:81;;;;;;13746:21;13778:32;13746:21;13778:12;:32::i;:::-;13614:204;13583:235::o;7644:138::-;-1:-1:-1;;;;;7757:16:0;;7710:7;7757:16;;;:7;:16;;;;;;7737:37;;:19;:37::i;2129:148::-;1887:6;;-1:-1:-1;;;;;1887:6:0;534:10;1887:22;1879:67;;;;-1:-1:-1;;;1879:67:0;;;;;;;:::i;:::-;2236:1:::1;2220:6:::0;;2199:40:::1;::::0;-1:-1:-1;;;;;2220:6:0;;::::1;::::0;2199:40:::1;::::0;2236:1;;2199:40:::1;2267:1;2250:19:::0;;-1:-1:-1;;;;;;2250:19:0::1;::::0;;2129:148::o;17268:139::-;1887:6;;-1:-1:-1;;;;;1887:6:0;534:10;1887:22;1879:67;;;;-1:-1:-1;;;1879:67:0;;;;;;;:::i;:::-;17359:19:::1;:40:::0;17268:139::o;7790:199::-;7895:4;7917:42;534:10;7941:9;7952:6;7917:9;:42::i;13339:236::-;13405:19;;-1:-1:-1;;;;;13405:19:0;534:10;-1:-1:-1;;;;;13389:35:0;;:72;;;-1:-1:-1;13444:17:0;;-1:-1:-1;;;;;13444:17:0;534:10;-1:-1:-1;;;;;13428:33:0;;13389:72;13381:81;;;;;;13473:23;13499:24;13517:4;13499:9;:24::i;:::-;13473:50;;13534:33;13551:15;13534:16;:33::i;17568:113::-;2012:10;;-1:-1:-1;;;;;2012:10:0;534;2012:26;;:52;;-1:-1:-1;2042:6:0;;-1:-1:-1;;;;;2042:6:0;534:10;2042:22;2012:52;2004:97;;;;-1:-1:-1;;;2004:97:0;;;;;;;:::i;:::-;17643:14:::1;:30:::0;17568:113::o;12779:130::-;1887:6;;-1:-1:-1;;;;;1887:6:0;534:10;1887:22;1879:67;;;;-1:-1:-1;;;1879:67:0;;;;;;;:::i;:::-;12837:22:::1;:29:::0;;-1:-1:-1;;12877:24:0;;;;;12779:130::o;12915:95::-;2012:10;;-1:-1:-1;;;;;2012:10:0;534;2012:26;;:52;;-1:-1:-1;2042:6:0;;-1:-1:-1;;;;;2042:6:0;534:10;2042:22;2012:52;2004:97;;;;-1:-1:-1;;;2004:97:0;;;;;;;:::i;:::-;12972:22:::1;:30:::0;;-1:-1:-1;;12972:30:0::1;::::0;;12915:95::o;2285:244::-;1887:6;;-1:-1:-1;;;;;1887:6:0;534:10;1887:22;1879:67;;;;-1:-1:-1;;;1879:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2374:22:0;::::1;2366:73;;;::::0;-1:-1:-1;;;2366:73:0;;5554:2:1;2366:73:0::1;::::0;::::1;5536:21:1::0;5593:2;5573:18;;;5566:30;5632:34;5612:18;;;5605:62;-1:-1:-1;;;5683:18:1;;;5676:36;5729:19;;2366:73:0::1;5352:402:1::0;2366:73:0::1;2476:6;::::0;;2455:38:::1;::::0;-1:-1:-1;;;;;2455:38:0;;::::1;::::0;2476:6;::::1;::::0;2455:38:::1;::::0;::::1;2504:6;:17:::0;;-1:-1:-1;;;;;;2504:17:0::1;-1:-1:-1::0;;;;;2504:17:0;;;::::1;::::0;;;::::1;::::0;;2285:244::o;3125:246::-;3183:7;3207:1;3212;3207:6;3203:47;;-1:-1:-1;3237:1:0;3230:8;;3203:47;3260:9;3272:5;3276:1;3272;:5;:::i;:::-;3260:17;-1:-1:-1;3305:1:0;3296:5;3300:1;3260:17;3296:5;:::i;:::-;:10;3288:56;;;;-1:-1:-1;;;3288:56:0;;6356:2:1;3288:56:0;;;6338:21:1;6395:2;6375:18;;;6368:30;6434:34;6414:18;;;6407:62;-1:-1:-1;;;6485:18:1;;;6478:31;6526:19;;3288:56:0;6154:397:1;3288:56:0;3362:1;3125:246;-1:-1:-1;;;3125:246:0:o;3379:132::-;3437:7;3464:39;3468:1;3471;3464:39;;;;;;;;;;;;;;;;;:3;:39::i;9527:369::-;-1:-1:-1;;;;;9654:19:0;;9646:68;;;;-1:-1:-1;;;9646:68:0;;6758:2:1;9646:68:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:34;6931:19;;9646:68:0;6556:400:1;9646:68:0;-1:-1:-1;;;;;9733:21:0;;9725:68;;;;-1:-1:-1;;;9725:68:0;;7163:2:1;9725:68:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:34;7221:18;;;7214:62;-1:-1:-1;;;7292:18:1;;;7285:32;7334:19;;9725:68:0;6961:398:1;9725:68:0;-1:-1:-1;;;;;9804:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9856:32;;1595:25:1;;;9856:32:0;;1568:18:1;9856:32:0;;;;;;;9527:369;;;:::o;9904:2376::-;-1:-1:-1;;;;;10026:18:0;;10018:68;;;;-1:-1:-1;;;10018:68:0;;7566:2:1;10018:68:0;;;7548:21:1;7605:2;7585:18;;;7578:30;7644:34;7624:18;;;7617:62;-1:-1:-1;;;7695:18:1;;;7688:35;7740:19;;10018:68:0;7364:401:1;10018:68:0;-1:-1:-1;;;;;10105:16:0;;10097:64;;;;-1:-1:-1;;;10097:64:0;;7972:2:1;10097:64:0;;;7954:21:1;8011:2;7991:18;;;7984:30;8050:34;8030:18;;;8023:62;-1:-1:-1;;;8101:18:1;;;8094:33;8144:19;;10097:64:0;7770:399:1;10097:64:0;10189:1;10180:6;:10;10172:64;;;;-1:-1:-1;;;10172:64:0;;8376:2:1;10172:64:0;;;8358:21:1;8415:2;8395:18;;;8388:30;8454:34;8434:18;;;8427:62;-1:-1:-1;;;8505:18:1;;;8498:39;8554:19;;10172:64:0;8174:405:1;10172:64:0;1798:7;1825:6;-1:-1:-1;;;;;10253:15:0;;;1825:6;;10253:15;;;;:32;;-1:-1:-1;1798:7:0;1825:6;-1:-1:-1;;;;;10272:13:0;;;1825:6;;10272:13;;10253:32;10249:1305;;;10315:13;;-1:-1:-1;;;;;10309:19:0;;;10315:13;;10309:19;10306:146;;10382:14;;10373:6;10357:13;10367:2;10357:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10349:87;;;;-1:-1:-1;;;10349:87:0;;8916:2:1;10349:87:0;;;8898:21:1;8955:2;8935:18;;;8928:30;8994:34;8974:18;;;8967:62;-1:-1:-1;;;9045:18:1;;;9038:33;9088:19;;10349:87:0;8714:399:1;10349:87:0;10471:17;;;;;;;10468:195;;;-1:-1:-1;;;;;10512:25:0;;;;;;:19;:25;;;;;;;;10509:139;;;10580:18;;10570:6;:28;;10562:66;;;;-1:-1:-1;;;10562:66:0;;9320:2:1;10562:66:0;;;9302:21:1;9359:2;9339:18;;;9332:30;9398:27;9378:18;;;9371:55;9443:18;;10562:66:0;9118:349:1;10562:66:0;10679:28;10710:24;10728:4;10710:9;:24::i;:::-;10788:19;;10851:12;;10679:55;;-1:-1:-1;10764:43:0;;;;10827:36;;10824:124;;10920:12;;10897:35;;10824:124;10968:7;:18;;;;-1:-1:-1;10980:6:0;;-1:-1:-1;;;10980:6:0;;;;10979:7;10968:18;:43;;;;-1:-1:-1;10998:13:0;;-1:-1:-1;;;;;10990:21:0;;;10998:13;;10990:21;;10968:43;:58;;;;-1:-1:-1;11015:11:0;;-1:-1:-1;;;11015:11:0;;;;10968:58;:87;;;;-1:-1:-1;;;;;;11031:24:0;;;;;;:18;:24;;;;;;;;11030:25;10968:87;:114;;;;-1:-1:-1;;;;;;11060:22:0;;;;;;:18;:22;;;;;;;;11059:23;10968:114;10964:386;;;11103:38;11120:20;11103:16;:38::i;:::-;11189:21;11233:22;;11229:106;;11280:35;11293:21;11280:12;:35::i;:::-;11084:266;10964:386;11369:22;;;;:71;;;;-1:-1:-1;11402:13:0;;-1:-1:-1;;;;;11396:19:0;;;11402:13;;11396:19;;;;:43;;-1:-1:-1;11425:14:0;;-1:-1:-1;;;;;11419:20:0;;;11425:14;;;;;11419:20;;11396:43;11369:90;;;;-1:-1:-1;1798:7:0;1825:6;-1:-1:-1;;;;;11444:15:0;;;1825:6;;11444:15;;11369:90;:107;;;;-1:-1:-1;1798:7:0;1825:6;-1:-1:-1;;;;;11463:13:0;;;1825:6;;11463:13;;11369:107;11366:177;;;-1:-1:-1;;;;;11497:23:0;;;;;;:19;:23;;;;;:30;;-1:-1:-1;;11497:30:0;11523:4;11497:30;;;11366:177;10287:1267;;10249:1305;-1:-1:-1;;;;;11630:24:0;;11566:12;11630:24;;;:18;:24;;;;;;11581:4;;11630:24;;;:50;;-1:-1:-1;;;;;;11658:22:0;;;;;;:18;:22;;;;;;;;11630:50;11629:102;;;-1:-1:-1;11694:13:0;;-1:-1:-1;;;;;11686:21:0;;;11694:13;;11686:21;;;;:44;;-1:-1:-1;11717:13:0;;-1:-1:-1;;;;;11711:19:0;;;11717:13;;11711:19;;11686:44;11625:594;;;-1:-1:-1;11758:5:0;11625:594;;;11841:13;;-1:-1:-1;;;;;11833:21:0;;;11841:13;;11833:21;:55;;;;-1:-1:-1;11872:15:0;;-1:-1:-1;;;;;11858:30:0;;;11872:15;;11858:30;;11833:55;11830:162;;;11921:14;;11909:9;:26;11964:12;;11954:7;:22;11830:162;12051:13;;-1:-1:-1;;;;;12045:19:0;;;12051:13;;12045:19;:55;;;;-1:-1:-1;12084:15:0;;-1:-1:-1;;;;;12068:32:0;;;12084:15;;12068:32;;12045:55;12041:165;;;12133:15;;12121:9;:27;12177:13;;12167:7;:23;12041:165;12231:41;12246:4;12252:2;12256:6;12264:7;12231:14;:41::i;2893:224::-;3013:7;3049:12;3041:6;;;;3033:29;;;;-1:-1:-1;;;3033:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3073:9:0;3085:5;3089:1;3085;:5;:::i;:::-;3073:17;2893:224;-1:-1:-1;;;;;2893:224:0:o;13230:99::-;13287:17;;:34;;-1:-1:-1;;;;;13287:17:0;;;;:34;;;;;13314:6;;13287:17;:34;:17;:34;13314:6;13287:17;:34;;;;;;;;;;;;;;;;;;;;;13230:99;:::o;8844:323::-;8939:7;8997;;8986;:18;;8964:110;;;;-1:-1:-1;;;8964:110:0;;9807:2:1;8964:110:0;;;9789:21:1;9846:2;9826:18;;;9819:30;9885:34;9865:18;;;9858:62;-1:-1:-1;;;9936:18:1;;;9929:40;9986:19;;8964:110:0;9605:406:1;8964:110:0;9085:19;9107:10;:8;:10::i;:::-;9085:32;-1:-1:-1;9135:24:0;:7;9085:32;9135:11;:24::i;12288:483::-;6556:6;:13;;-1:-1:-1;;;;6556:13:0;-1:-1:-1;;;6556:13:0;;;12390:16:::1;::::0;;12404:1:::1;12390:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12390:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12390:16:0::1;12366:40;;12435:4;12417;12422:1;12417:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12417:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12461:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12461:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12417:7;;12461:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12451:4;12456:1;12451:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12451:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12526:15:::1;::::0;12494:62:::1;::::0;12511:4:::1;::::0;12526:15:::1;12544:11:::0;12494:8:::1;:62::i;:::-;12567:15;::::0;:196:::1;::::0;-1:-1:-1;;;12567:196:0;;-1:-1:-1;;;;;12567:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12648:11;;12567:15:::1;::::0;12690:4;;12717::::1;::::0;12737:15:::1;::::0;12567:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6592:6:0;:14;;-1:-1:-1;;;;6592:14:0;;;-1:-1:-1;;;;12288:483:0:o;3519:223::-;3639:7;3674:12;3667:5;3659:28;;;;-1:-1:-1;;;3659:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3698:9:0;3710:5;3714:1;3710;:5;:::i;13826:282::-;13982:7;13977:28;;13991:14;:12;:14::i;:::-;14016:44;14034:6;14042:9;14053:6;14016:17;:44::i;:::-;14076:7;14071:29;;14085:15;9458:17;;9446:9;:29;9496:15;;9486:7;:25;9402:117;16787:164;16829:7;16850:15;16867;16886:19;:17;:19::i;:::-;16849:56;;-1:-1:-1;16849:56:0;-1:-1:-1;16923:20:0;16849:56;;16923:11;:20::i;:::-;16916:27;;;;16787:164;:::o;9175:219::-;9222:9;;:14;:30;;;;-1:-1:-1;9240:7:0;;:12;9222:30;9218:43;;;9175:219::o;9218:43::-;9293:9;;;9273:17;:29;9331:7;;;9313:15;:25;-1:-1:-1;9351:13:0;;;;9375:11;9175:219::o;14116:610::-;14263:15;14293:23;14331:12;14358:23;14396:12;14423:13;14450:19;14461:7;14450:10;:19::i;:::-;-1:-1:-1;;;;;14498:15:0;;;;;;:7;:15;;;;;;14248:221;;-1:-1:-1;14248:221:0;;-1:-1:-1;14248:221:0;;-1:-1:-1;14248:221:0;-1:-1:-1;14248:221:0;-1:-1:-1;14248:221:0;-1:-1:-1;14498:28:0;;14248:221;14498:19;:28::i;:::-;-1:-1:-1;;;;;14480:15:0;;;;;;;:7;:15;;;;;;:46;;;;14558:18;;;;;;;:39;;14581:15;14558:22;:39::i;:::-;-1:-1:-1;;;;;14537:18:0;;;;;;:7;:18;;;;;:60;14608:16;14618:5;14608:9;:16::i;:::-;14635:23;14647:4;14653;14635:11;:23::i;:::-;14691:9;-1:-1:-1;;;;;14674:44:0;14683:6;-1:-1:-1;;;;;14674:44:0;;14702:15;14674:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14674:44:0;;;;;;;;14237:489;;;;;;14116:610;;;:::o;16959:257::-;17057:7;;17010;;;;5184:19;17125:20;17057:7;5184:19;17125:11;:20::i;:::-;17115:7;:30;17111:61;;;-1:-1:-1;;17155:7:0;;;5184:19;;-1:-1:-1;16959:257:0;-1:-1:-1;16959:257:0:o;17111:61::-;17191:7;;17200;;-1:-1:-1;16959:257:0;-1:-1:-1;16959:257:0:o;15145:615::-;15245:7;15267;15289;15311;15333;15355;15391:23;15416:12;15430:13;15460:40;15472:7;15481:9;;15492:7;;15460:11;:40::i;:::-;15390:110;;;;;;15511:19;15533:10;:8;:10::i;:::-;15511:32;;15555:15;15572:23;15597:12;15626:46;15638:7;15647:4;15653:5;15660:11;15626;:46::i;:::-;15554:118;;-1:-1:-1;15554:118:0;-1:-1:-1;15554:118:0;-1:-1:-1;15723:15:0;;-1:-1:-1;15740:4:0;;-1:-1:-1;15746:5:0;;-1:-1:-1;;;;;15145:615:0;;;;;;;:::o;2749:136::-;2807:7;2834:43;2838:1;2841;2834:43;;;;;;;;;;;;;;;;;:3;:43::i;2562:179::-;2620:7;;2652:5;2656:1;2652;:5;:::i;:::-;2640:17;;2681:1;2676;:6;;2668:46;;;;-1:-1:-1;;;2668:46:0;;11591:2:1;2668:46:0;;;11573:21:1;11630:2;11610:18;;;11603:30;11669:29;11649:18;;;11642:57;11716:18;;2668:46:0;11389:351:1;14734:211:0;14787:19;14809:10;:8;:10::i;:::-;14787:32;-1:-1:-1;14830:13:0;14846:22;:5;14787:32;14846:9;:22::i;:::-;14920:4;14904:22;;;;:7;:22;;;;;;14830:38;;-1:-1:-1;14904:33:0;;14830:38;14904:26;:33::i;:::-;14895:4;14879:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14734:211:0:o;14953:147::-;15031:7;;:17;;15043:4;15031:11;:17::i;:::-;15021:7;:27;15072:10;;:20;;15087:4;15072:14;:20::i;:::-;15059:10;:33;-1:-1:-1;;14953:147:0:o;15768:469::-;15937:7;;;;16031:30;16057:3;16031:21;:7;16043:8;16031:11;:21::i;:::-;:25;;:30::i;:::-;16016:45;-1:-1:-1;16072:13:0;16088:28;16112:3;16088:19;:7;16100:6;16088:11;:19::i;:28::-;16072:44;-1:-1:-1;16127:23:0;16153:28;16072:44;16153:17;:7;16165:4;16153:11;:17::i;:::-;:21;;:28::i;:::-;16127:54;16217:4;;-1:-1:-1;16223:5:0;;-1:-1:-1;15768:469:0;;-1:-1:-1;;;;;15768:469:0:o;16245:534::-;16439:7;;;;16536:24;:7;16548:11;16536;:24::i;:::-;16518:42;-1:-1:-1;16571:12:0;16586:21;:4;16595:11;16586:8;:21::i;:::-;16571:36;-1:-1:-1;16618:13:0;16634:22;:5;16644:11;16634:9;:22::i;:::-;16618:38;-1:-1:-1;16667:23:0;16693:28;16618:38;16693:17;:7;16705:4;16693:11;:17::i;:28::-;16740:7;;;;-1:-1:-1;16766:4:0;;-1:-1:-1;16245:534:0;;-1:-1:-1;;;;;;;16245:534:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;2505:160::-;2570:20;;2626:13;;2619:21;2609:32;;2599:60;;2655:1;2652;2645:12;2599:60;2505:160;;;:::o;2670:689::-;2762:6;2770;2778;2831:2;2819:9;2810:7;2806:23;2802:32;2799:52;;;2847:1;2844;2837:12;2799:52;2887:9;2874:23;2916:18;2957:2;2949:6;2946:14;2943:34;;;2973:1;2970;2963:12;2943:34;3011:6;3000:9;2996:22;2986:32;;3056:7;3049:4;3045:2;3041:13;3037:27;3027:55;;3078:1;3075;3068:12;3027:55;3118:2;3105:16;3144:2;3136:6;3133:14;3130:34;;;3160:1;3157;3150:12;3130:34;3215:7;3208:4;3198:6;3195:1;3191:14;3187:2;3183:23;3179:34;3176:47;3173:67;;;3236:1;3233;3226:12;3173:67;3267:4;3259:13;;;;-1:-1:-1;3291:6:1;-1:-1:-1;3316:37:1;;3332:20;;;-1:-1:-1;3316:37:1;:::i;:::-;3306:47;;2670:689;;;;;:::o;3572:180::-;3628:6;3681:2;3669:9;3660:7;3656:23;3652:32;3649:52;;;3697:1;3694;3687:12;3649:52;3720:26;3736:9;3720:26;:::i;3757:247::-;3816:6;3869:2;3857:9;3848:7;3844:23;3840:32;3837:52;;;3885:1;3882;3875:12;3837:52;3924:9;3911:23;3943:31;3968:5;3943:31;:::i;4009:180::-;4068:6;4121:2;4109:9;4100:7;4096:23;4092:32;4089:52;;;4137:1;4134;4127:12;4089:52;-1:-1:-1;4160:23:1;;4009:180;-1:-1:-1;4009:180:1:o;4194:388::-;4262:6;4270;4323:2;4311:9;4302:7;4298:23;4294:32;4291:52;;;4339:1;4336;4329:12;4291:52;4378:9;4365:23;4397:31;4422:5;4397:31;:::i;:::-;4447:5;-1:-1:-1;4504:2:1;4489:18;;4476:32;4517:33;4476:32;4517:33;:::i;:::-;4569:7;4559:17;;;4194:388;;;;;:::o;4587:356::-;4789:2;4771:21;;;4808:18;;;4801:30;4867:34;4862:2;4847:18;;4840:62;4934:2;4919:18;;4587:356::o;4948:127::-;5009:10;5004:3;5000:20;4997:1;4990:31;5040:4;5037:1;5030:15;5064:4;5061:1;5054:15;5080:127;5141:10;5136:3;5132:20;5129:1;5122:31;5172:4;5169:1;5162:15;5196:4;5193:1;5186:15;5212:135;5251:3;5272:17;;;5269:43;;5292:18;;:::i;:::-;-1:-1:-1;5339:1:1;5328:13;;5212:135::o;5759:168::-;5832:9;;;5863;;5880:15;;;5874:22;;5860:37;5850:71;;5901:18;;:::i;5932:217::-;5972:1;5998;5988:132;;6042:10;6037:3;6033:20;6030:1;6023:31;6077:4;6074:1;6067:15;6105:4;6102:1;6095:15;5988:132;-1:-1:-1;6134:9:1;;5932:217::o;8584:125::-;8649:9;;;8670:10;;;8667:36;;;8683:18;;:::i;9472:128::-;9539:9;;;9560:11;;;9557:37;;;9574:18;;:::i;10148:251::-;10218:6;10271:2;10259:9;10250:7;10246:23;10242:32;10239:52;;;10287:1;10284;10277:12;10239:52;10319:9;10313:16;10338:31;10363:5;10338:31;:::i;10404:980::-;10666:4;10714:3;10703:9;10699:19;10745:6;10734:9;10727:25;10771:2;10809:6;10804:2;10793:9;10789:18;10782:34;10852:3;10847:2;10836:9;10832:18;10825:31;10876:6;10911;10905:13;10942:6;10934;10927:22;10980:3;10969:9;10965:19;10958:26;;11019:2;11011:6;11007:15;10993:29;;11040:1;11050:195;11064:6;11061:1;11058:13;11050:195;;;11129:13;;-1:-1:-1;;;;;11125:39:1;11113:52;;11220:15;;;;11185:12;;;;11161:1;11079:9;11050:195;;;-1:-1:-1;;;;;;;11301:32:1;;;;11296:2;11281:18;;11274:60;-1:-1:-1;;;11365:3:1;11350:19;11343:35;11262:3;10404:980;-1:-1:-1;;;10404:980:1:o

Swarm Source

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