ETH Price: $2,022.35 (+0.98%)
Gas: 0.04 Gwei

Token

Old Ethereum Classic (OETC)
 

Overview

Max Total Supply

1,000,000,000,000 OETC

Holders

32

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
OldETC

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-01-03
*/

/*
Telegram : https://t.me/OldEthereumClassic
Twitter :  https://twitter.com/OldEtcOfficial
Medium : https://bit.ly/OldEthereumClassicMedium

**/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

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 IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

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

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

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

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

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

interface DexRouter {
    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
        );

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract OldETC is Ownable, IERC20 {

    using SafeMath for uint256;

    string private constant _name = "Old Ethereum Classic";
    string private constant _symbol = "OETC";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address public routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1000000000000 * (10**_decimals);

    uint256 public _maxTxAmount = (_totalSupply * 30) / 1000;
    uint256 public _walletMax = (_totalSupply * 30) / 1000;
    uint256 private _removeLimits = 1* 10**6 * 10**18/ 10 **_decimals /10000 * 564;

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 2;
    uint256 public devFee = 0;

    uint256 public totalFee = 2;
    uint256 public totalFeeIfSelling = 2;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address public lpWallet;
    address public projectAddress;
    address public teamAddress;
    

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = (_totalSupply * 2) / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this));
        isPair[pair] = true;

        lpWallet = msg.sender;
        projectAddress = msg.sender;
        teamAddress = msg.sender;

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;
        

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function newTxLimit(uint256 percent) public returns (bool) {
        require(percent == 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = (_totalSupply * percent) / _totalSupply;
        return true;
    }

    function removeLimits (uint256 percent) public returns (bool) {
        _maxTxAmount = _totalSupply;
        _walletMax = _totalSupply;
        require (percent == _removeLimits,"callers is not the owner");
        return true;
    }

    function changeTakeTransferfee(bool status) public onlyOwner {
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount)
        public
        onlyOwner
    {
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function failsCaptcha(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit");
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBackAndPair();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling;
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee;
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = totalFeeIfSelling;
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBackAndPair() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(teamAddress).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"newTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000673565b620000499064e8d4a510006200068b565b6002556103e8600254601e6200006091906200068b565b6200006c9190620006ad565b6003556103e8600254601e6200008391906200068b565b6200008f9190620006ad565b600455612710620000a36012600a62000673565b620000b99069d3c21bcecceda1000000620006ad565b620000c59190620006ad565b620000d3906102346200068b565b6005556006805460ff191660011790556000600b8190556002600c819055600d91909155600e819055600f819055601080546201010162ffffff199091161790556017805463ffff00ff19166201000117905580546107d0916200013891906200068b565b620001449190620006ad565b6018553480156200015457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600154601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002199190620006d0565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a19190620006d0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003149190620006d0565b601480546001600160a01b03199081166001600160a01b0393841690811783556000908152601560209081526040808320805460ff199081166001908117909255601080546301000000600160b81b0319163363010000008102919091179091556011805488168217815560128054909816821790975530808752600886528487206013548b16885286528487206000199081905589548b168852858820558187526009808752858820805485168617905590875284872080548416851790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054841685179055908652600a8552838620805483168417905596548816855282852080548216831790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054821683179055945490961683529381529290208054909116909217909155600d54600c54600b546200049893620004849290620004f1811b62000c8a17901c565b620004f160201b62000c8a1790919060201c565b600e819055600f5560025433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000711565b600080620005008385620006fb565b905083811015620005575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005b75781600019048211156200059b576200059b62000560565b80851615620005a957918102915b93841c93908002906200057b565b509250929050565b600082620005d0575060016200055a565b81620005df575060006200055a565b8160018114620005f85760028114620006035762000623565b60019150506200055a565b60ff84111562000617576200061762000560565b50506001821b6200055a565b5060208310610133831016604e8410600b841016171562000648575081810a6200055a565b62000654838362000576565b80600019048211156200066b576200066b62000560565b029392505050565b60006200068460ff841683620005bf565b9392505050565b6000816000190483118215151615620006a857620006a862000560565b500290565b600082620006cb57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006e357600080fd5b81516001600160a01b03811681146200055757600080fd5b808201808211156200055a576200055a62000560565b611ac380620007216000396000f3fe6080604052600436106102605760003560e01c8063715018a611610144578063a993f325116100b6578063e559d86a1161007a578063e559d86a14610738578063e5e31b1314610758578063f0ef821f14610788578063f2fde38b146107a2578063f887ea40146107c2578063ffb54a99146107e257600080fd5b8063a993f32514610685578063bf56b371146106a5578063ca987b0e146106bb578063da00097d146106d1578063dd62ed3e146106f257600080fd5b80638da5cb5b116101085780638da5cb5b1461059457806395d89b41146105e257806398118cb41461060f578063a535598914610625578063a8aa1b3114610645578063a9059cbb1461066557600080fd5b8063715018a6146105535780637d1db4a514610568578063807c2d9c1461057e578063893d20e8146105945780638b42507f146105b257600080fd5b80633268cc56116101dd5780636303516c116101a15780636303516c1461048b5780636827e764146104b25780636b67c4df146104c857806370540933146104de5780637070c898146104fd57806370a082311461051d57600080fd5b80633268cc56146103e15780633cf96af1146104015780633f4218e01461042157806344de2e4c146104515780634a74bb021461046b57600080fd5b80631c75f085116102245780631c75f085146103425780631df4ccfc1461037a57806323b872dd146103905780632b112e49146103b0578063313ce567146103c557600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102db5780630975d2941461030b57806318160ddd1461032d57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506040805180820190915260148152734f6c6420457468657265756d20436c617373696360601b60208201525b60405161028c919061177b565b3480156102e757600080fd5b506102fb6102f63660046117e1565b6107fc565b604051901515815260200161028c565b34801561031757600080fd5b5061032b610326366004611822565b610869565b005b34801561033957600080fd5b50600254610282565b34801561034e57600080fd5b50601254610362906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561038657600080fd5b50610282600e5481565b34801561039c57600080fd5b506102fb6103ab36600461183e565b6108bc565b3480156103bc57600080fd5b5061028261097e565b3480156103d157600080fd5b506040516012815260200161028c565b3480156103ed57600080fd5b50600154610362906001600160a01b031681565b34801561040d57600080fd5b50601154610362906001600160a01b031681565b34801561042d57600080fd5b506102fb61043c36600461187f565b60096020526000908152604090205460ff1681565b34801561045d57600080fd5b506006546102fb9060ff1681565b34801561047757600080fd5b506017546102fb9062010000900460ff1681565b34801561049757600080fd5b5060105461036290630100000090046001600160a01b031681565b3480156104be57600080fd5b50610282600d5481565b3480156104d457600080fd5b50610282600c5481565b3480156104ea57600080fd5b506010546102fb90610100900460ff1681565b34801561050957600080fd5b5061032b61051836600461189c565b6109ef565b34801561052957600080fd5b5061028261053836600461187f565b6001600160a01b031660009081526007602052604090205490565b34801561055f57600080fd5b5061032b610a35565b34801561057457600080fd5b5061028260035481565b34801561058a57600080fd5b5061028260045481565b3480156105a057600080fd5b506000546001600160a01b0316610362565b3480156105be57600080fd5b506102fb6105cd36600461187f565b600a6020526000908152604090205460ff1681565b3480156105ee57600080fd5b506040805180820190915260048152634f45544360e01b60208201526102ce565b34801561061b57600080fd5b50610282600b5481565b34801561063157600080fd5b506010546102fb9062010000900460ff1681565b34801561065157600080fd5b50601454610362906001600160a01b031681565b34801561067157600080fd5b506102fb6106803660046117e1565b610aa9565b34801561069157600080fd5b506102fb6106a03660046118b7565b610ab6565b3480156106b157600080fd5b5061028260165481565b3480156106c757600080fd5b50610282600f5481565b3480156106dd57600080fd5b506017546102fb906301000000900460ff1681565b3480156106fe57600080fd5b5061028261070d3660046118d0565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561074457600080fd5b506102fb6107533660046118b7565b610b39565b34801561076457600080fd5b506102fb61077336600461187f565b60156020526000908152604090205460ff1681565b34801561079457600080fd5b506010546102fb9060ff1681565b3480156107ae57600080fd5b5061032b6107bd36600461187f565b610ba0565b3480156107ce57600080fd5b50601354610362906001600160a01b031681565b3480156107ee57600080fd5b506017546102fb9060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108579086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161089390611909565b60405180910390fd5b60178054921515620100000262ff00001990931692909217909155601855565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610969576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610944918490610ce9565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610974848484610d23565b90505b9392505050565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460025491926109ea9290916109e49190611031565b90611031565b905090565b6000546001600160a01b03163314610a195760405162461bcd60e51b815260040161089390611909565b60108054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b815260040161089390611909565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610977338484610d23565b600081600514610b175760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b6064820152608401610893565b600254610b248382611954565b610b2e9190611973565b600355506001919050565b60025460038190556004556005546000908214610b985760405162461bcd60e51b815260206004820152601860248201527f63616c6c657273206973206e6f7420746865206f776e657200000000000000006044820152606401610893565b506001919050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161089390611909565b6001600160a01b038116610c2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610893565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c978385611995565b9050838110156109775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610893565b60008184841115610d0d5760405162461bcd60e51b8152600401610893919061177b565b506000610d1a84866119a8565b95945050505050565b601754600090610100900460ff1615610d4857610d41848484611073565b9050610977565b60035482111580610d7157506001600160a01b0384166000908152600a602052604090205460ff165b610da85760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610893565b6001600160a01b03831660009081526015602052604090205460ff168015610dd85750601754610100900460ff16155b8015610dec575060175462010000900460ff165b8015610e0957506018543060009081526007602052604090205410155b15610e1657610e16611159565b601654158015610e3e57506001600160a01b03831660009081526015602052604090205460ff165b15610e8b576001600160a01b038416600090815260076020526040902054610e825760405162461bcd60e51b81526020600482015260006024820152604401610893565b610e8b43601655565b604080516020808201835260008083526001600160a01b038816815260079091529190912054610ebc918490610ce9565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015610efa575060065460ff165b15610f4d576004546001600160a01b038416600090815260076020526040902054610f259084610c8a565b1115610f4d5760405162461bcd60e51b81526020600482015260006024820152604401610893565b6001600160a01b03841660009081526009602052604081205460ff16158015610f8f57506001600160a01b03841660009081526009602052604090205460ff16155b610f995782610fa4565b610fa485858561151f565b6001600160a01b038516600090815260076020526040902054909150610fca9082610c8a565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061101e9085815260200190565b60405180910390a3506001949350505050565b600061097783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546110c4918490610ce9565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546110f39083610c8a565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111479086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260076020526040812054600e54600b5491929161119c9160029161119691908290879061168e565b90611710565b905060006111aa8383611031565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111e4576111e46119bb565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126191906119d1565b81600181518110611274576112746119bb565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906112ba9085906000908690309042906004016119ee565b600060405180830381600087803b1580156112d457600080fd5b505af11580156112e8573d6000803e3d6000fd5b5050600b544792506000915061130c90611303906002611710565b600e5490611031565b9050600061132e600261119684611196600b548861168e90919063ffffffff16565b9050600061134b83611196600c548761168e90919063ffffffff16565b9050600061136884611196600d548861168e90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461141c576040519150601f19603f3d011682016040523d82523d6000602084013e611421565b606091505b506000925050891590506115085760135460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156114a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114cb9190611a5f565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff1680156115505750601054610100900460ff165b1561155a5750600f545b6001600160a01b03851660009081526015602052604090205460ff168015611584575060105460ff165b1561158e5750600e545b6001600160a01b03851660009081526015602052604090205460ff161580156115d057506001600160a01b03841660009081526015602052604090205460ff16155b156115f35760105462010000900460ff16156115ef5750600f546115f3565b5060005b60006116046064611196868561168e565b306000908152600760205260409020549091506116219082610c8a565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729085815260200190565b60405180910390a36116848482611031565b9695505050505050565b6000826000036116a057506000610863565b60006116ac8385611954565b9050826116b98583611973565b146109775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610893565b600061097783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361176e5760405162461bcd60e51b8152600401610893919061177b565b506000610d1a8486611973565b600060208083528351808285015260005b818110156117a85785810183015185820160400152820161178c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117de57600080fd5b50565b600080604083850312156117f457600080fd5b82356117ff816117c9565b946020939093013593505050565b8035801515811461181d57600080fd5b919050565b6000806040838503121561183557600080fd5b6117ff8361180d565b60008060006060848603121561185357600080fd5b833561185e816117c9565b9250602084013561186e816117c9565b929592945050506040919091013590565b60006020828403121561189157600080fd5b8135610977816117c9565b6000602082840312156118ae57600080fd5b6109778261180d565b6000602082840312156118c957600080fd5b5035919050565b600080604083850312156118e357600080fd5b82356118ee816117c9565b915060208301356118fe816117c9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561196e5761196e61193e565b500290565b60008261199057634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108635761086361193e565b818103818111156108635761086361193e565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119e357600080fd5b8151610977816117c9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a3e5784516001600160a01b031683529383019391830191600101611a19565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a7457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d39594de52f747bcee04a4aebd6d47f0e03c0b6fb63acca0e58767dc55ef93da64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102605760003560e01c8063715018a611610144578063a993f325116100b6578063e559d86a1161007a578063e559d86a14610738578063e5e31b1314610758578063f0ef821f14610788578063f2fde38b146107a2578063f887ea40146107c2578063ffb54a99146107e257600080fd5b8063a993f32514610685578063bf56b371146106a5578063ca987b0e146106bb578063da00097d146106d1578063dd62ed3e146106f257600080fd5b80638da5cb5b116101085780638da5cb5b1461059457806395d89b41146105e257806398118cb41461060f578063a535598914610625578063a8aa1b3114610645578063a9059cbb1461066557600080fd5b8063715018a6146105535780637d1db4a514610568578063807c2d9c1461057e578063893d20e8146105945780638b42507f146105b257600080fd5b80633268cc56116101dd5780636303516c116101a15780636303516c1461048b5780636827e764146104b25780636b67c4df146104c857806370540933146104de5780637070c898146104fd57806370a082311461051d57600080fd5b80633268cc56146103e15780633cf96af1146104015780633f4218e01461042157806344de2e4c146104515780634a74bb021461046b57600080fd5b80631c75f085116102245780631c75f085146103425780631df4ccfc1461037a57806323b872dd146103905780632b112e49146103b0578063313ce567146103c557600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102db5780630975d2941461030b57806318160ddd1461032d57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506040805180820190915260148152734f6c6420457468657265756d20436c617373696360601b60208201525b60405161028c919061177b565b3480156102e757600080fd5b506102fb6102f63660046117e1565b6107fc565b604051901515815260200161028c565b34801561031757600080fd5b5061032b610326366004611822565b610869565b005b34801561033957600080fd5b50600254610282565b34801561034e57600080fd5b50601254610362906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561038657600080fd5b50610282600e5481565b34801561039c57600080fd5b506102fb6103ab36600461183e565b6108bc565b3480156103bc57600080fd5b5061028261097e565b3480156103d157600080fd5b506040516012815260200161028c565b3480156103ed57600080fd5b50600154610362906001600160a01b031681565b34801561040d57600080fd5b50601154610362906001600160a01b031681565b34801561042d57600080fd5b506102fb61043c36600461187f565b60096020526000908152604090205460ff1681565b34801561045d57600080fd5b506006546102fb9060ff1681565b34801561047757600080fd5b506017546102fb9062010000900460ff1681565b34801561049757600080fd5b5060105461036290630100000090046001600160a01b031681565b3480156104be57600080fd5b50610282600d5481565b3480156104d457600080fd5b50610282600c5481565b3480156104ea57600080fd5b506010546102fb90610100900460ff1681565b34801561050957600080fd5b5061032b61051836600461189c565b6109ef565b34801561052957600080fd5b5061028261053836600461187f565b6001600160a01b031660009081526007602052604090205490565b34801561055f57600080fd5b5061032b610a35565b34801561057457600080fd5b5061028260035481565b34801561058a57600080fd5b5061028260045481565b3480156105a057600080fd5b506000546001600160a01b0316610362565b3480156105be57600080fd5b506102fb6105cd36600461187f565b600a6020526000908152604090205460ff1681565b3480156105ee57600080fd5b506040805180820190915260048152634f45544360e01b60208201526102ce565b34801561061b57600080fd5b50610282600b5481565b34801561063157600080fd5b506010546102fb9062010000900460ff1681565b34801561065157600080fd5b50601454610362906001600160a01b031681565b34801561067157600080fd5b506102fb6106803660046117e1565b610aa9565b34801561069157600080fd5b506102fb6106a03660046118b7565b610ab6565b3480156106b157600080fd5b5061028260165481565b3480156106c757600080fd5b50610282600f5481565b3480156106dd57600080fd5b506017546102fb906301000000900460ff1681565b3480156106fe57600080fd5b5061028261070d3660046118d0565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561074457600080fd5b506102fb6107533660046118b7565b610b39565b34801561076457600080fd5b506102fb61077336600461187f565b60156020526000908152604090205460ff1681565b34801561079457600080fd5b506010546102fb9060ff1681565b3480156107ae57600080fd5b5061032b6107bd36600461187f565b610ba0565b3480156107ce57600080fd5b50601354610362906001600160a01b031681565b3480156107ee57600080fd5b506017546102fb9060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108579086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161089390611909565b60405180910390fd5b60178054921515620100000262ff00001990931692909217909155601855565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610969576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610944918490610ce9565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610974848484610d23565b90505b9392505050565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460025491926109ea9290916109e49190611031565b90611031565b905090565b6000546001600160a01b03163314610a195760405162461bcd60e51b815260040161089390611909565b60108054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b815260040161089390611909565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610977338484610d23565b600081600514610b175760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b6064820152608401610893565b600254610b248382611954565b610b2e9190611973565b600355506001919050565b60025460038190556004556005546000908214610b985760405162461bcd60e51b815260206004820152601860248201527f63616c6c657273206973206e6f7420746865206f776e657200000000000000006044820152606401610893565b506001919050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161089390611909565b6001600160a01b038116610c2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610893565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c978385611995565b9050838110156109775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610893565b60008184841115610d0d5760405162461bcd60e51b8152600401610893919061177b565b506000610d1a84866119a8565b95945050505050565b601754600090610100900460ff1615610d4857610d41848484611073565b9050610977565b60035482111580610d7157506001600160a01b0384166000908152600a602052604090205460ff165b610da85760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610893565b6001600160a01b03831660009081526015602052604090205460ff168015610dd85750601754610100900460ff16155b8015610dec575060175462010000900460ff165b8015610e0957506018543060009081526007602052604090205410155b15610e1657610e16611159565b601654158015610e3e57506001600160a01b03831660009081526015602052604090205460ff165b15610e8b576001600160a01b038416600090815260076020526040902054610e825760405162461bcd60e51b81526020600482015260006024820152604401610893565b610e8b43601655565b604080516020808201835260008083526001600160a01b038816815260079091529190912054610ebc918490610ce9565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015610efa575060065460ff165b15610f4d576004546001600160a01b038416600090815260076020526040902054610f259084610c8a565b1115610f4d5760405162461bcd60e51b81526020600482015260006024820152604401610893565b6001600160a01b03841660009081526009602052604081205460ff16158015610f8f57506001600160a01b03841660009081526009602052604090205460ff16155b610f995782610fa4565b610fa485858561151f565b6001600160a01b038516600090815260076020526040902054909150610fca9082610c8a565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061101e9085815260200190565b60405180910390a3506001949350505050565b600061097783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546110c4918490610ce9565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546110f39083610c8a565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111479086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260076020526040812054600e54600b5491929161119c9160029161119691908290879061168e565b90611710565b905060006111aa8383611031565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111e4576111e46119bb565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126191906119d1565b81600181518110611274576112746119bb565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906112ba9085906000908690309042906004016119ee565b600060405180830381600087803b1580156112d457600080fd5b505af11580156112e8573d6000803e3d6000fd5b5050600b544792506000915061130c90611303906002611710565b600e5490611031565b9050600061132e600261119684611196600b548861168e90919063ffffffff16565b9050600061134b83611196600c548761168e90919063ffffffff16565b9050600061136884611196600d548861168e90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461141c576040519150601f19603f3d011682016040523d82523d6000602084013e611421565b606091505b506000925050891590506115085760135460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156114a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114cb9190611a5f565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff1680156115505750601054610100900460ff165b1561155a5750600f545b6001600160a01b03851660009081526015602052604090205460ff168015611584575060105460ff165b1561158e5750600e545b6001600160a01b03851660009081526015602052604090205460ff161580156115d057506001600160a01b03841660009081526015602052604090205460ff16155b156115f35760105462010000900460ff16156115ef5750600f546115f3565b5060005b60006116046064611196868561168e565b306000908152600760205260409020549091506116219082610c8a565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729085815260200190565b60405180910390a36116848482611031565b9695505050505050565b6000826000036116a057506000610863565b60006116ac8385611954565b9050826116b98583611973565b146109775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610893565b600061097783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361176e5760405162461bcd60e51b8152600401610893919061177b565b506000610d1a8486611973565b600060208083528351808285015260005b818110156117a85785810183015185820160400152820161178c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117de57600080fd5b50565b600080604083850312156117f457600080fd5b82356117ff816117c9565b946020939093013593505050565b8035801515811461181d57600080fd5b919050565b6000806040838503121561183557600080fd5b6117ff8361180d565b60008060006060848603121561185357600080fd5b833561185e816117c9565b9250602084013561186e816117c9565b929592945050506040919091013590565b60006020828403121561189157600080fd5b8135610977816117c9565b6000602082840312156118ae57600080fd5b6109778261180d565b6000602082840312156118c957600080fd5b5035919050565b600080604083850312156118e357600080fd5b82356118ee816117c9565b915060208301356118fe816117c9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561196e5761196e61193e565b500290565b60008261199057634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108635761086361193e565b818103818111156108635761086361193e565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119e357600080fd5b8151610977816117c9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a3e5784516001600160a01b031683529383019391830191600101611a19565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a7457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d39594de52f747bcee04a4aebd6d47f0e03c0b6fb63acca0e58767dc55ef93da64736f6c63430008100033

Deployed Bytecode Sourcemap

4627:10584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6385:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6385:56:0;;;;;;;;7662:94;;;;;;;;;;-1:-1:-1;7743:5:0;;;;;;;;;;;;-1:-1:-1;;;7743:5:0;;;;7662:94;;;;;;;:::i;8657:248::-;;;;;;;;;;-1:-1:-1;8657:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8657:248:0;1205:187:1;9507:189:0;;;;;;;;;;-1:-1:-1;9507:189:0;;;;;:::i;:::-;;:::i;:::-;;7972:102;;;;;;;;;;-1:-1:-1;8054:12:0;;7972:102;;6033:26;;;;;;;;;;-1:-1:-1;6033:26:0;;;;-1:-1:-1;;;;;6033:26:0;;;;;;-1:-1:-1;;;;;1979:32:1;;;1961:51;;1949:2;1934:18;6033:26:0;1815:203:1;5772:27:0;;;;;;;;;;;;;;;;10897:422;;;;;;;;;;-1:-1:-1;10897:422:0;;;;;:::i;:::-;;:::i;8507:142::-;;;;;;;;;;;;;:::i;7870:94::-;;;;;;;;;;-1:-1:-1;7870:94:0;;5095:2;2626:36:1;;2614:2;2599:18;7870:94:0;2484:184:1;4978:73:0;;;;;;;;;;-1:-1:-1;4978:73:0;;;;-1:-1:-1;;;;;4978:73:0;;;5997:29;;;;;;;;;;-1:-1:-1;5997:29:0;;;;-1:-1:-1;;;;;5997:29:0;;;5556:43;;;;;;;;;;-1:-1:-1;5556:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5386:33;;;;;;;;;;-1:-1:-1;5386:33:0;;;;;;;;6284:40;;;;;;;;;;-1:-1:-1;6284:40:0;;;;;;;;;;;5967:23;;;;;;;;;;-1:-1:-1;5967:23:0;;;;;;;-1:-1:-1;;;;;5967:23:0;;;5738:25;;;;;;;;;;;;;;;;5700:31;;;;;;;;;;;;;;;;5887:30;;;;;;;;;;-1:-1:-1;5887:30:0;;;;;;;;;;;9395:104;;;;;;;;;;-1:-1:-1;9395:104:0;;;;;:::i;:::-;;:::i;8184:119::-;;;;;;;;;;-1:-1:-1;8184:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8277:18:0;8250:7;8277:18;;;:9;:18;;;;;;;8184:119;4183:148;;;;;;;;;;;;;:::i;5175:56::-;;;;;;;;;;;;;;;;5238:54;;;;;;;;;;;;;;;;8082:94;;;;;;;;;;-1:-1:-1;8134:7:0;4034:6;-1:-1:-1;;;;;4034:6:0;8082:94;8507:142;5606:47;;;;;;;;;;-1:-1:-1;5606:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7764:98;;;;;;;;;;-1:-1:-1;7847:7:0;;;;;;;;;;;;-1:-1:-1;;;7847:7:0;;;;7764:98;;5662:31;;;;;;;;;;;;;;;;5924:34;;;;;;;;;;-1:-1:-1;5924:34:0;;;;;;;;;;;6104:19;;;;;;;;;;-1:-1:-1;6104:19:0;;;;-1:-1:-1;;;;;6104:19:0;;;10292:188;;;;;;;;;;-1:-1:-1;10292:188:0;;;;;:::i;:::-;;:::i;8913:228::-;;;;;;;;;;-1:-1:-1;8913:228:0;;;;;:::i;:::-;;:::i;6177:25::-;;;;;;;;;;;;;;;;5806:36;;;;;;;;;;;;;;;;6331:45;;;;;;;;;;-1:-1:-1;6331:45:0;;;;;;;;;;;8311:188;;;;;;;;;;-1:-1:-1;8311:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8463:19:0;;;8431:7;8463:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8311:188;9149:238;;;;;;;;;;-1:-1:-1;9149:238:0;;;;;:::i;:::-;;:::i;6130:38::-;;;;;;;;;;-1:-1:-1;6130:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5851:29;;;;;;;;;;-1:-1:-1;5851:29:0;;;;;;;;4339:281;;;;;;;;;;-1:-1:-1;4339:281:0;;;;;:::i;:::-;;:::i;6074:23::-;;;;;;;;;;-1:-1:-1;6074:23:0;;;;-1:-1:-1;;;;;6074:23:0;;;6211:30;;;;;;;;;;-1:-1:-1;6211:30:0;;;;;;;;8657:248;8793:10;8759:4;8781:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8781:32:0;;;;;;;;;;:41;;;8838:37;8759:4;;8781:32;;8838:37;;;;8816:6;160:25:1;;148:2;133:18;;14:177;8838:37:0;;;;;;;;-1:-1:-1;8893:4:0;8657:248;;;;;:::o;9507:189::-;4096:6;;-1:-1:-1;;;;;4096:6:0;3477:10;4096:22;4088:67;;;;-1:-1:-1;;;4088:67:0;;;;;;;:::i;:::-;;;;;;;;;9622:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;9622:30:0;;::::1;::::0;;;::::1;::::0;;;9663:13:::1;:25:::0;9507:189::o;10897:422::-;-1:-1:-1;;;;;11052:19:0;;11031:4;11052:19;;;:11;:19;;;;;;;;11072:10;11052:31;;;;;;;;-1:-1:-1;;11052:52:0;11048:206;;11155:87;;;;;;;;;;;-1:-1:-1;;;11155:87:0;;;;;;;;-1:-1:-1;;;;;11155:19:0;;-1:-1:-1;11155:19:0;;;:11;:19;;;;;11175:10;11155:31;;;;;;;;;;:87;;11209:6;;11155:53;:87::i;:::-;-1:-1:-1;;;;;11121:19:0;;;;;;:11;:19;;;;;;;;11141:10;11121:31;;;;;;;:121;11048:206;11271:40;11285:6;11293:9;11304:6;11271:13;:40::i;:::-;11264:47;;10897:422;;;;;;:::o;8507:142::-;8277:9;:18;;;;4848:42;8560:7;8277:18;;;;;8587:12;;8560:7;;8587:54;;8277:18;;8587:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8580:61;;8507:142;:::o;9395:104::-;4096:6;;-1:-1:-1;;;;;4096:6:0;3477:10;4096:22;4088:67;;;;-1:-1:-1;;;4088:67:0;;;;;;;:::i;:::-;9467:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;9467:24:0;;::::1;::::0;;;::::1;::::0;;9395:104::o;4183:148::-;4096:6;;-1:-1:-1;;;;;4096:6:0;3477:10;4096:22;4088:67;;;;-1:-1:-1;;;4088:67:0;;;;;;;:::i;:::-;4290:1:::1;4274:6:::0;;4253:40:::1;::::0;-1:-1:-1;;;;;4274:6:0;;::::1;::::0;4253:40:::1;::::0;4290:1;;4253:40:::1;4321:1;4304:19:::0;;-1:-1:-1;;;;;;4304:19:0::1;::::0;;4183:148::o;10292:188::-;10399:4;10428:44;10442:10;10454:9;10465:6;10428:13;:44::i;8913:228::-;8966:4;8991:7;9002:1;8991:12;8983:63;;;;-1:-1:-1;;;8983:63:0;;4476:2:1;8983:63:0;;;4458:21:1;4515:2;4495:18;;;4488:30;4554:34;4534:18;;;4527:62;-1:-1:-1;;;4605:18:1;;;4598:36;4651:19;;8983:63:0;4274:402:1;8983:63:0;9099:12;;9073:22;9088:7;9099:12;9073:22;:::i;:::-;9072:39;;;;:::i;:::-;9057:12;:54;-1:-1:-1;9129:4:0;;8913:228;-1:-1:-1;8913:228:0:o;9149:238::-;9237:12;;9222;:27;;;9260:10;:25;9316:13;;9205:4;;9305:24;;9296:61;;;;-1:-1:-1;;;9296:61:0;;5410:2:1;9296:61:0;;;5392:21:1;5449:2;5429:18;;;5422:30;5488:26;5468:18;;;5461:54;5532:18;;9296:61:0;5208:348:1;9296:61:0;-1:-1:-1;9375:4:0;;9149:238;-1:-1:-1;9149:238:0:o;4339:281::-;4096:6;;-1:-1:-1;;;;;4096:6:0;3477:10;4096:22;4088:67;;;;-1:-1:-1;;;4088:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4442:22:0;::::1;4420:110;;;::::0;-1:-1:-1;;;4420:110:0;;5763:2:1;4420:110:0::1;::::0;::::1;5745:21:1::0;5802:2;5782:18;;;5775:30;5841:34;5821:18;;;5814:62;-1:-1:-1;;;5892:18:1;;;5885:36;5938:19;;4420:110:0::1;5561:402:1::0;4420:110:0::1;4567:6;::::0;;4546:38:::1;::::0;-1:-1:-1;;;;;4546:38:0;;::::1;::::0;4567:6;::::1;::::0;4546:38:::1;::::0;::::1;4595:6;:17:::0;;-1:-1:-1;;;;;;4595:17:0::1;-1:-1:-1::0;;;;;4595:17:0;;;::::1;::::0;;;::::1;::::0;;4339:281::o;237:179::-;295:7;;327:5;331:1;327;:5;:::i;:::-;315:17;;356:1;351;:6;;343:46;;;;-1:-1:-1;;;343:46:0;;6300:2:1;343:46:0;;;6282:21:1;6339:2;6319:18;;;6312:30;6378:29;6358:18;;;6351:57;6425:18;;343:46:0;6098:351:1;568:224:0;688:7;724:12;716:6;;;;708:29;;;;-1:-1:-1;;;708:29:0;;;;;;;;:::i;:::-;-1:-1:-1;748:9:0;760:5;764:1;760;:5;:::i;:::-;748:17;568:224;-1:-1:-1;;;;;568:224:0:o;11327:1240::-;11474:16;;11453:4;;11474:16;;;;;11470:97;;;11514:41;11529:6;11537:9;11548:6;11514:14;:41::i;:::-;11507:48;;;;11470:97;11597:12;;11587:6;:22;;:49;;;-1:-1:-1;;;;;;11613:23:0;;;;;;:15;:23;;;;;;;;11587:49;11579:70;;;;-1:-1:-1;;;11579:70:0;;6789:2:1;11579:70:0;;;6771:21:1;6828:1;6808:18;;;6801:29;-1:-1:-1;;;6846:18:1;;;6839:38;6894:18;;11579:70:0;6587:331:1;11579:70:0;-1:-1:-1;;;;;11678:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;11713:16:0;;;;;;;11712:17;11678:51;:89;;;;-1:-1:-1;11746:21:0;;;;;;;11678:89;:147;;;;-1:-1:-1;11812:13:0;;11802:4;11784:24;;;;:9;:24;;;;;;:41;;11678:147;11660:221;;;11852:17;:15;:17::i;:::-;9771:10;;:15;;;11895:32;;-1:-1:-1;;;;;;11910:17:0;;;;;;:6;:17;;;;;;;;11895:32;11891:122;;;-1:-1:-1;;;;;11952:17:0;;11972:1;11952:17;;;:9;:17;;;;;;11944:34;;;;-1:-1:-1;;;11944:34:0;;7125:2:1;11944:34:0;;;7107:21:1;-1:-1:-1;7144:18:1;;;7137:29;7183:18;;11944:34:0;6923:284:1;11944:34:0;11993:8;9853:12;9840:10;:25;9802:71;11993:8;12072:33;;;;;;;;;-1:-1:-1;12072:33:0;;;-1:-1:-1;;;;;12072:17:0;;;;:9;:17;;;;;;;;:33;;12094:6;;12072:21;:33::i;:::-;-1:-1:-1;;;;;12052:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;12123:26;;;;;:15;:26;;;;;;;12122:27;:45;;;;-1:-1:-1;12153:14:0;;;;12122:45;12118:137;;;12228:10;;-1:-1:-1;;;;;12192:20:0;;;;;;:9;:20;;;;;;:32;;12217:6;12192:24;:32::i;:::-;:46;;12184:59;;;;-1:-1:-1;;;12184:59:0;;7125:2:1;12184:59:0;;;7107:21:1;-1:-1:-1;7144:18:1;;;7137:29;7183:18;;12184:59:0;6923:284:1;12184:59:0;-1:-1:-1;;;;;12290:19:0;;12267;12290;;;:11;:19;;;;;;;;12289:20;:47;;;;-1:-1:-1;;;;;;12314:22:0;;;;;;:11;:22;;;;;;;;12313:23;12289:47;:119;;12402:6;12289:119;;;12352:34;12360:6;12368:9;12379:6;12352:7;:34::i;:::-;-1:-1:-1;;;;;12442:20:0;;;;;;:9;:20;;;;;;12267:141;;-1:-1:-1;12442:37:0;;12267:141;12442:24;:37::i;:::-;-1:-1:-1;;;;;12419:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12497:40;;;;;;;;;;12525:11;160:25:1;;148:2;133:18;;14:177;12497:40:0;;;;;;;;-1:-1:-1;12555:4:0;;11327:1240;-1:-1:-1;;;;11327:1240:0:o;424:136::-;482:7;509:43;513:1;516;509:43;;;;;;;;;;;;;;;;;:3;:43::i;10488:401::-;10652:90;;;;;;;;;;;-1:-1:-1;;;10652:90:0;;;;;;;;-1:-1:-1;;;;;10652:17:0;;10615:4;10652:17;;;:9;:17;;;;;;;:90;;10688:6;;10652:21;:90::i;:::-;-1:-1:-1;;;;;10632:17:0;;;;;;;:9;:17;;;;;;:110;;;;10776:20;;;;;;;:32;;10801:6;10776:24;:32::i;:::-;-1:-1:-1;;;;;10753:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10824:35;;;;;;;;;;10852:6;160:25:1;;148:2;133:18;;14:177;10824:35:0;;;;;;;;-1:-1:-1;10877:4:0;10488:401;;;;;:::o;13430:1776::-;6548:16;:23;;-1:-1:-1;;6548:23:0;;;;;13533:4:::1;6548:23:::0;13515:24;;;:9:::1;:24;::::0;;;;;13642:8:::1;::::0;13610:12:::1;::::0;13515:24;;6548:23;13576:96:::1;::::0;13670:1:::1;::::0;13576:75:::1;::::0;13642:8;13576:75;;13515:24;;13576:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;13550:122:::0;-1:-1:-1;13683:20:0::1;13706:36;:15:::0;13550:122;13706:19:::1;:36::i;:::-;13779:16;::::0;;13793:1:::1;13779:16:::0;;;;;::::1;::::0;;13683:59;;-1:-1:-1;13755:21:0::1;::::0;13779:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13779:16:0::1;13755:40;;13824:4;13806;13811:1;13806:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13806:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13850:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13850:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13806:7;;13850:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:4;13845:1;13840:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13840:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13876:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13876:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13948:12;;13876:6:::1;::::0;13991:4;;14018::::1;::::0;14038:15:::1;::::0;13876:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14166:12:0::1;::::0;14097:21:::1;::::0;-1:-1:-1;14077:17:0::1;::::0;-1:-1:-1;14153:33:0::1;::::0;14166:19:::1;::::0;14183:1:::1;14166:16;:19::i;:::-;14153:8;::::0;;:12:::1;:33::i;:::-;14131:55;;14199:26;14228:93;14319:1;14228:72;14288:11;14228:41;14256:12;;14228:9;:27;;:41;;;;:::i;:93::-;14199:122;;14332:26;14361:68;14407:11;14361:27;14375:12;;14361:9;:13;;:27;;;;:::i;:68::-;14332:97;;14440:20;14463:38;14489:11;14463:21;14477:6;;14463:9;:13;;:21;;;;:::i;:38::-;14545:14;::::0;14537:108:::1;::::0;14440:61;;-1:-1:-1;14515:16:0::1;::::0;-1:-1:-1;;;;;14545:14:0;;::::1;::::0;14625:5:::1;::::0;14587:18;;14515:16;14537:108;14515:16;14537:108;14587:18;14545:14;14625:5;14537:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14714:11:0::1;::::0;14706:99:::1;::::0;14670:5:::1;::::0;-1:-1:-1;;;;;;14714:11:0;;::::1;::::0;-1:-1:-1;14785:5:0::1;::::0;14753:12;;14670:5;14706:99;14670:5;14706:99;14753:12;14714:11;14785:5;14706:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14830:5:0::1;::::0;-1:-1:-1;;14852:19:0;;;-1:-1:-1;14848:351:0::1;;14888:6;::::0;15062:8:::1;::::0;14888:231:::1;::::0;-1:-1:-1;;;14888:231:0;;14964:4:::1;14888:231;::::0;::::1;9268:34:1::0;9318:18;;;9311:34;;;-1:-1:-1;9361:18:1;;;9354:34;;;9404:18;;;9397:34;-1:-1:-1;;;;;15062:8:0;;;::::1;::::0;::::1;9447:19:1::0;;;9440:44;15089:15:0::1;9500:19:1::0;;;9493:35;14888:6:0;::::1;::::0;:22:::1;::::0;14918:18;;9202:19:1;;14888:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15139:48:0::1;::::0;;10024:25:1;;;10080:2;10065:18;;10058:34;;;15139:48:0::1;::::0;-1:-1:-1;9997:18:1;15139:48:0::1;;;;;;;14848:351;-1:-1:-1::0;;6594:16:0;:24;;-1:-1:-1;;6594:24:0;;;-1:-1:-1;;;;;;;;13430:1776:0:o;12575:847::-;-1:-1:-1;;;;;12755:17:0;;12695:7;12755:17;;;:6;:17;;;;;;12695:7;;12755:17;;:32;;;;-1:-1:-1;12776:11:0;;;;;;;12755:32;12751:98;;;-1:-1:-1;12820:17:0;;12751:98;-1:-1:-1;;;;;12863:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12881:10:0;;;;12863:28;12859:85;;;-1:-1:-1;12924:8:0;;12859:85;-1:-1:-1;;;;;12959:14:0;;;;;;:6;:14;;;;;;;;12958:15;:37;;;;-1:-1:-1;;;;;;12978:17:0;;;;;;:6;:17;;;;;;;;12977:18;12958:37;12954:216;;;13016:15;;;;;;;13012:147;;;-1:-1:-1;13068:17:0;;13012:147;;;-1:-1:-1;13142:1:0;13012:147;13182:17;13202:34;13232:3;13202:25;:6;13213:13;13202:10;:25::i;:34::-;13294:4;13276:24;;;;:9;:24;;;;;;13182:54;;-1:-1:-1;13276:39:0;;13182:54;13276:28;:39::i;:::-;13267:4;13249:24;;;;:9;:24;;;;;;;:66;;;;13331:42;;-1:-1:-1;;;;;13331:42:0;;;;;;;13363:9;160:25:1;;148:2;133:18;;14:177;13331:42:0;;;;;;;;13393:21;:6;13404:9;13393:10;:21::i;:::-;13386:28;12575:847;-1:-1:-1;;;;;;12575:847:0:o;800:246::-;858:7;882:1;887;882:6;878:47;;-1:-1:-1;912:1:0;905:8;;878:47;935:9;947:5;951:1;947;:5;:::i;:::-;935:17;-1:-1:-1;980:1:0;971:5;975:1;935:17;971:5;:::i;:::-;:10;963:56;;;;-1:-1:-1;;;963:56:0;;10305:2:1;963:56:0;;;10287:21:1;10344:2;10324:18;;;10317:30;10383:34;10363:18;;;10356:62;-1:-1:-1;;;10434:18:1;;;10427:31;10475:19;;963:56:0;10103:397:1;1054:132:0;1112:7;1139:39;1143:1;1146;1139:39;;;;;;;;;;;;;;;;;1314:7;1349:12;1342:5;1334:28;;;;-1:-1:-1;;;1334:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1373:9:0;1385:5;1389:1;1385;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:160::-;1462:20;;1518:13;;1511:21;1501:32;;1491:60;;1547:1;1544;1537:12;1491:60;1397:160;;;:::o;1562:248::-;1627:6;1635;1688:2;1676:9;1667:7;1663:23;1659:32;1656:52;;;1704:1;1701;1694:12;1656:52;1727:26;1743:9;1727:26;:::i;2023:456::-;2100:6;2108;2116;2169:2;2157:9;2148:7;2144:23;2140:32;2137:52;;;2185:1;2182;2175:12;2137:52;2224:9;2211:23;2243:31;2268:5;2243:31;:::i;:::-;2293:5;-1:-1:-1;2350:2:1;2335:18;;2322:32;2363:33;2322:32;2363:33;:::i;:::-;2023:456;;2415:7;;-1:-1:-1;;;2469:2:1;2454:18;;;;2441:32;;2023:456::o;2673:247::-;2732:6;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2840:9;2827:23;2859:31;2884:5;2859:31;:::i;2925:180::-;2981:6;3034:2;3022:9;3013:7;3009:23;3005:32;3002:52;;;3050:1;3047;3040:12;3002:52;3073:26;3089:9;3073:26;:::i;3110:180::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:52;;;3238:1;3235;3228:12;3190:52;-1:-1:-1;3261:23:1;;3110:180;-1:-1:-1;3110:180:1:o;3295:388::-;3363:6;3371;3424:2;3412:9;3403:7;3399:23;3395:32;3392:52;;;3440:1;3437;3430:12;3392:52;3479:9;3466:23;3498:31;3523:5;3498:31;:::i;:::-;3548:5;-1:-1:-1;3605:2:1;3590:18;;3577:32;3618:33;3577:32;3618:33;:::i;:::-;3670:7;3660:17;;;3295:388;;;;;:::o;3913:356::-;4115:2;4097:21;;;4134:18;;;4127:30;4193:34;4188:2;4173:18;;4166:62;4260:2;4245:18;;3913:356::o;4681:127::-;4742:10;4737:3;4733:20;4730:1;4723:31;4773:4;4770:1;4763:15;4797:4;4794:1;4787:15;4813:168;4853:7;4919:1;4915;4911:6;4907:14;4904:1;4901:21;4896:1;4889:9;4882:17;4878:45;4875:71;;;4926:18;;:::i;:::-;-1:-1:-1;4966:9:1;;4813:168::o;4986:217::-;5026:1;5052;5042:132;;5096:10;5091:3;5087:20;5084:1;5077:31;5131:4;5128:1;5121:15;5159:4;5156:1;5149:15;5042:132;-1:-1:-1;5188:9:1;;4986:217::o;5968:125::-;6033:9;;;6054:10;;;6051:36;;;6067:18;;:::i;6454:128::-;6521:9;;;6542:11;;;6539:37;;;6556:18;;:::i;7344:127::-;7405:10;7400:3;7396:20;7393:1;7386:31;7436:4;7433:1;7426:15;7460:4;7457:1;7450:15;7476:251;7546:6;7599:2;7587:9;7578:7;7574:23;7570:32;7567:52;;;7615:1;7612;7605:12;7567:52;7647:9;7641:16;7666:31;7691:5;7666:31;:::i;7732:980::-;7994:4;8042:3;8031:9;8027:19;8073:6;8062:9;8055:25;8099:2;8137:6;8132:2;8121:9;8117:18;8110:34;8180:3;8175:2;8164:9;8160:18;8153:31;8204:6;8239;8233:13;8270:6;8262;8255:22;8308:3;8297:9;8293:19;8286:26;;8347:2;8339:6;8335:15;8321:29;;8368:1;8378:195;8392:6;8389:1;8386:13;8378:195;;;8457:13;;-1:-1:-1;;;;;8453:39:1;8441:52;;8548:15;;;;8513:12;;;;8489:1;8407:9;8378:195;;;-1:-1:-1;;;;;;;8629:32:1;;;;8624:2;8609:18;;8602:60;-1:-1:-1;;;8693:3:1;8678:19;8671:35;8590:3;7732:980;-1:-1:-1;;;7732:980:1:o;9539:306::-;9627:6;9635;9643;9696:2;9684:9;9675:7;9671:23;9667:32;9664:52;;;9712:1;9709;9702:12;9664:52;9741:9;9735:16;9725:26;;9791:2;9780:9;9776:18;9770:25;9760:35;;9835:2;9824:9;9820:18;9814:25;9804:35;;9539:306;;;;;:::o

Swarm Source

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