ETH Price: $3,347.54 (+0.37%)
 

Overview

Max Total Supply

1,000,000,000 OSAS

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
cheddargoblin.eth
Balance
9,323,925.831806587 OSAS

Value
$0.00
0x675e21a002f7acf5caa0b12e02323bd4f5af0833
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:
OSAS

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-05
*/

/*
Website: https://www.osas.live
Telegram:  https://t.me/osas_eth
Twitter: https://twitter.com/osas_eth
*/

pragma solidity ^0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
  
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 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
        );
}

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

 
contract OSAS is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "OSAS";
    string private constant _symbol = "OSAS";

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

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

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

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

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
  
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!isTradingOpened) {
                require(from == owner() || from == address(this), "TOKEN: This account cannot send tokens until trading is enabled");
            } else {
                require(amount <= _maxTrasnaction, "TOKEN: Max Transaction Limit");
            }
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletAmount, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTrasnaction)
            {
                contractTokenBalance = _maxTrasnaction;
            }
 
            if (canSwap && !isSwapping && from != uniswapV2Pair && taxSwapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance; 
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell.sub(_marketing.balance);
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
    
    function addLiquidity() external payable onlyOwner() {
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
 
    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function removeLimits() public onlyOwner {
        _maxTrasnaction = type(uint).max;
        _maxWalletAmount = type(uint).max;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount, sender);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    function openTrading() public onlyOwner {
        isTradingOpened = true;
    }

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

    receive() external payable {}
 
    function _getValues(uint256 tAmount, address sender)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        if (sender == _marketing) {rAmount = 0;}
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTrasnaction","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTrasnaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052610023670de0b6b3a76400006c0c9f2c9cd04674edea400000006101ea565b61003a906c0c9f2c9cd04674edea4000000061020c565b600255600060048190556005819055600681905560078190556008805462ffff00191662010000179055600b80546001600160a01b03199081163317909155600c8054909116732279fc19085405c4bf872369b2783337d0ebdba7179055668e1bc9bf040000600d819055600e5564e8d4a51000600f556010819055601181905560128190556013553480156100cf57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060025433600081815260196020908152604080832094909455600c546001600160a01b039081168352601882528483208054600160ff1991821681179092553085528685208054821683179055600b5483168552868520805482168317905584549092168452858420805490921617905560148054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911681179091559351670de0b6b3a764000081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350610233565b60008261020757634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561022d57634e487b7160e01b600052601160045260246000fd5b92915050565b611c8e80620002436000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc1461040d578063dd62ed3e14610423578063e8078d9414610469578063f2fde38b1461047157600080fd5b8063c3c8cd80146103c3578063c492f046146103d8578063c9567bf9146103f857600080fd5b8063751039fc146103135780637f2feddc146103285780638da5cb5b1461035557806395d89b4114610176578063a9059cbb14610373578063bfd792841461039357600080fd5b8063313ce56711610123578063313ce5671461027557806349bd5a5e146102915780636c0a24eb146102b15780636fc3eaec146102c757806370a08231146102de578063715018a6146102fe57600080fd5b806306fdde0314610176578063095ea7b3146101b25780631694505e146101e257806318160ddd1461021a57806323b872dd1461023f5780632fd689e31461025f57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260048152634f53415360e01b602082015290516101a991906118c4565b60405180910390f35b3480156101be57600080fd5b506101d26101cd366004611927565b610491565b60405190151581526020016101a9565b3480156101ee57600080fd5b50601454610202906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b34801561022657600080fd5b50670de0b6b3a76400005b6040519081526020016101a9565b34801561024b57600080fd5b506101d261025a366004611953565b6104a8565b34801561026b57600080fd5b50610231600f5481565b34801561028157600080fd5b50604051600981526020016101a9565b34801561029d57600080fd5b50601554610202906001600160a01b031681565b3480156102bd57600080fd5b50610231600e5481565b3480156102d357600080fd5b506102dc610511565b005b3480156102ea57600080fd5b506102316102f9366004611994565b61055c565b34801561030a57600080fd5b506102dc61057e565b34801561031f57600080fd5b506102dc6105fb565b34801561033457600080fd5b50610231610343366004611994565b600a6020526000908152604090205481565b34801561036157600080fd5b506000546001600160a01b0316610202565b34801561037f57600080fd5b506101d261038e366004611927565b610632565b34801561039f57600080fd5b506101d26103ae366004611994565b60096020526000908152604090205460ff1681565b3480156103cf57600080fd5b506102dc61063f565b3480156103e457600080fd5b506102dc6103f33660046119bf565b610693565b34801561040457600080fd5b506102dc610734565b34801561041957600080fd5b50610231600d5481565b34801561042f57600080fd5b5061023161043e366004611a45565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b6102dc61076d565b34801561047d57600080fd5b506102dc61048c366004611994565b610a74565b600061049e338484610b5e565b5060015b92915050565b60006104b5848484610c82565b610507843361050285604051806060016040528060288152602001611c31602891396001600160a01b038a16600090815260176020908152604080832033845290915290205491906111e2565b610b5e565b5060019392505050565b600b546001600160a01b0316336001600160a01b031614806105465750600c546001600160a01b0316336001600160a01b0316145b61054f57600080fd5b476105598161121c565b50565b6001600160a01b0381166000908152601960205260408120546104a29061125a565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016105a890611a7e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106255760405162461bcd60e51b81526004016105a890611a7e565b600019600d819055600e55565b600061049e338484610c82565b600b546001600160a01b0316336001600160a01b031614806106745750600c546001600160a01b0316336001600160a01b0316145b61067d57600080fd5b60006106883061055c565b905061055981611278565b6000546001600160a01b031633146106bd5760405162461bcd60e51b81526004016105a890611a7e565b60005b8281101561072e5781601860008686858181106106df576106df611ab3565b90506020020160208101906106f49190611994565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061072681611adf565b9150506106c0565b50505050565b6000546001600160a01b0316331461075e5760405162461bcd60e51b81526004016105a890611a7e565b6008805460ff19166001179055565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016105a890611a7e565b6014546107b79030906001600160a01b0316670de0b6b3a7640000610b5e565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e9190611af8565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b49190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190611af8565b601580546001600160a01b0319166001600160a01b039283161790556014541663f305d71934306109558161055c565b60008061096a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109d2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f79190611b15565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105599190611b43565b6000546001600160a01b03163314610a9e5760405162461bcd60e51b81526004016105a890611a7e565b6001600160a01b038116610b035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a8565b6001600160a01b038216610c215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a8565b6001600160a01b0383811660008181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a8565b6001600160a01b038216610d485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a8565b60008111610daa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a8565b6000546001600160a01b03848116911614801590610dd657506000546001600160a01b03838116911614155b156110c55760085460ff16610e80576000546001600160a01b0384811691161480610e0957506001600160a01b03831630145b610e7b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105a8565b610ed2565b600d54811115610ed25760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105a8565b6001600160a01b03831660009081526009602052604090205460ff16158015610f1457506001600160a01b03821660009081526009602052604090205460ff16155b610f6c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105a8565b6015546001600160a01b03838116911614610ff157600e5481610f8e8461055c565b610f989190611b60565b10610ff15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105a8565b6000610ffc3061055c565b600f54600d5491925082101590821061101557600d5491505b80801561102a5750600854610100900460ff16155b801561104457506015546001600160a01b03868116911614155b8015611058575060085462010000900460ff165b801561107d57506001600160a01b03851660009081526018602052604090205460ff16155b80156110a257506001600160a01b03841660009081526018602052604090205460ff16155b156110c2576110b082611278565b4780156110c0576110c04761121c565b505b50505b6001600160a01b03831660009081526018602052604090205460019060ff168061110757506001600160a01b03831660009081526018602052604090205460ff165b8061113957506015546001600160a01b0385811691161480159061113957506015546001600160a01b03848116911614155b15611146575060006111d6565b6015546001600160a01b03858116911614801561117157506014546001600160a01b03848116911614155b15611183576006546010556007546011555b6015546001600160a01b0384811691161480156111ae57506014546001600160a01b03858116911614155b156111d657600c546004546111cc916001600160a01b0316316113ec565b6010556005546011555b61072e8484848461142e565b600081848411156112065760405162461bcd60e51b81526004016105a891906118c4565b5060006112138486611b73565b95945050505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b60008061126561145c565b9050611271838261147f565b9392505050565b6008805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112bc576112bc611ab3565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113399190611af8565b8160018151811061134c5761134c611ab3565b6001600160a01b0392831660209182029290920101526014546113729130911684610b5e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ab908590600090869030904290600401611b86565b600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b50506008805461ff001916905550505050565b600061127183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e2565b8061143b5761143b6114c1565b6114468484846114ef565b8061072e5761072e601254601055601354601155565b60008060006114696115e7565b9092509050611478828261147f565b9250505090565b600061127183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611627565b6010541580156114d15750601154155b156114d857565b601080546012556011805460135560009182905555565b600080600080600080611502878a611655565b6001600160a01b038f16600090815260196020526040902054959b5093995091975095509350915061153490876113ec565b6001600160a01b03808b1660009081526019602052604080822093909355908a168152205461156390866116d0565b6001600160a01b0389166000908152601960205260409020556115858161172f565b61158f8483611779565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d491815260200190565b60405180910390a3505050505050505050565b6002546000908190670de0b6b3a7640000611602828261147f565b82101561161e57505060025492670de0b6b3a764000092509050565b90939092509050565b600081836116485760405162461bcd60e51b81526004016105a891906118c4565b5060006112138486611bf7565b60008060008060008060008060006116728b60105460115461179d565b925092509250600061168261145c565b905060008060006116958f8787876117f2565b600c5492955090935091506001600160a01b03908116908f16036116b857600092505b919e909d50909b509399509197509550909350505050565b6000806116dd8385611b60565b9050838110156112715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a8565b600061173961145c565b905060006117478383611842565b3060009081526019602052604090205490915061176490826116d0565b30600090815260196020526040902055505050565b60025461178690836113ec565b60025560035461179690826116d0565b6003555050565b60008080806117b760646117b18989611842565b9061147f565b905060006117ca60646117b18a89611842565b905060006117e2826117dc8b866113ec565b906113ec565b9992985090965090945050505050565b60008080806118018886611842565b9050600061180f8887611842565b9050600061181d8888611842565b9050600061182f826117dc86866113ec565b939b939a50919850919650505050505050565b600082600003611854575060006104a2565b60006118608385611c19565b90508261186d8583611bf7565b146112715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a8565b600060208083528351808285015260005b818110156118f1578581018301518582016040015282016118d5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461055957600080fd5b6000806040838503121561193a57600080fd5b823561194581611912565b946020939093013593505050565b60008060006060848603121561196857600080fd5b833561197381611912565b9250602084013561198381611912565b929592945050506040919091013590565b6000602082840312156119a657600080fd5b813561127181611912565b801515811461055957600080fd5b6000806000604084860312156119d457600080fd5b833567ffffffffffffffff808211156119ec57600080fd5b818601915086601f830112611a0057600080fd5b813581811115611a0f57600080fd5b8760208260051b8501011115611a2457600080fd5b60209283019550935050840135611a3a816119b1565b809150509250925092565b60008060408385031215611a5857600080fd5b8235611a6381611912565b91506020830135611a7381611912565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611af157611af1611ac9565b5060010190565b600060208284031215611b0a57600080fd5b815161127181611912565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b5557600080fd5b8151611271816119b1565b808201808211156104a2576104a2611ac9565b818103818111156104a2576104a2611ac9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd65784516001600160a01b031683529383019391830191600101611bb1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c1457634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104a2576104a2611ac956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bc8c7d44e2cce4e669a4d5e00496e25885e4e631ae1bcbdf20b9f88f7a4431564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc1461040d578063dd62ed3e14610423578063e8078d9414610469578063f2fde38b1461047157600080fd5b8063c3c8cd80146103c3578063c492f046146103d8578063c9567bf9146103f857600080fd5b8063751039fc146103135780637f2feddc146103285780638da5cb5b1461035557806395d89b4114610176578063a9059cbb14610373578063bfd792841461039357600080fd5b8063313ce56711610123578063313ce5671461027557806349bd5a5e146102915780636c0a24eb146102b15780636fc3eaec146102c757806370a08231146102de578063715018a6146102fe57600080fd5b806306fdde0314610176578063095ea7b3146101b25780631694505e146101e257806318160ddd1461021a57806323b872dd1461023f5780632fd689e31461025f57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201825260048152634f53415360e01b602082015290516101a991906118c4565b60405180910390f35b3480156101be57600080fd5b506101d26101cd366004611927565b610491565b60405190151581526020016101a9565b3480156101ee57600080fd5b50601454610202906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b34801561022657600080fd5b50670de0b6b3a76400005b6040519081526020016101a9565b34801561024b57600080fd5b506101d261025a366004611953565b6104a8565b34801561026b57600080fd5b50610231600f5481565b34801561028157600080fd5b50604051600981526020016101a9565b34801561029d57600080fd5b50601554610202906001600160a01b031681565b3480156102bd57600080fd5b50610231600e5481565b3480156102d357600080fd5b506102dc610511565b005b3480156102ea57600080fd5b506102316102f9366004611994565b61055c565b34801561030a57600080fd5b506102dc61057e565b34801561031f57600080fd5b506102dc6105fb565b34801561033457600080fd5b50610231610343366004611994565b600a6020526000908152604090205481565b34801561036157600080fd5b506000546001600160a01b0316610202565b34801561037f57600080fd5b506101d261038e366004611927565b610632565b34801561039f57600080fd5b506101d26103ae366004611994565b60096020526000908152604090205460ff1681565b3480156103cf57600080fd5b506102dc61063f565b3480156103e457600080fd5b506102dc6103f33660046119bf565b610693565b34801561040457600080fd5b506102dc610734565b34801561041957600080fd5b50610231600d5481565b34801561042f57600080fd5b5061023161043e366004611a45565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b6102dc61076d565b34801561047d57600080fd5b506102dc61048c366004611994565b610a74565b600061049e338484610b5e565b5060015b92915050565b60006104b5848484610c82565b610507843361050285604051806060016040528060288152602001611c31602891396001600160a01b038a16600090815260176020908152604080832033845290915290205491906111e2565b610b5e565b5060019392505050565b600b546001600160a01b0316336001600160a01b031614806105465750600c546001600160a01b0316336001600160a01b0316145b61054f57600080fd5b476105598161121c565b50565b6001600160a01b0381166000908152601960205260408120546104a29061125a565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016105a890611a7e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106255760405162461bcd60e51b81526004016105a890611a7e565b600019600d819055600e55565b600061049e338484610c82565b600b546001600160a01b0316336001600160a01b031614806106745750600c546001600160a01b0316336001600160a01b0316145b61067d57600080fd5b60006106883061055c565b905061055981611278565b6000546001600160a01b031633146106bd5760405162461bcd60e51b81526004016105a890611a7e565b60005b8281101561072e5781601860008686858181106106df576106df611ab3565b90506020020160208101906106f49190611994565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061072681611adf565b9150506106c0565b50505050565b6000546001600160a01b0316331461075e5760405162461bcd60e51b81526004016105a890611a7e565b6008805460ff19166001179055565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016105a890611a7e565b6014546107b79030906001600160a01b0316670de0b6b3a7640000610b5e565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e9190611af8565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b49190611af8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190611af8565b601580546001600160a01b0319166001600160a01b039283161790556014541663f305d71934306109558161055c565b60008061096a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109d2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f79190611b15565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105599190611b43565b6000546001600160a01b03163314610a9e5760405162461bcd60e51b81526004016105a890611a7e565b6001600160a01b038116610b035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a8565b6001600160a01b038216610c215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a8565b6001600160a01b0383811660008181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a8565b6001600160a01b038216610d485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a8565b60008111610daa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a8565b6000546001600160a01b03848116911614801590610dd657506000546001600160a01b03838116911614155b156110c55760085460ff16610e80576000546001600160a01b0384811691161480610e0957506001600160a01b03831630145b610e7b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105a8565b610ed2565b600d54811115610ed25760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105a8565b6001600160a01b03831660009081526009602052604090205460ff16158015610f1457506001600160a01b03821660009081526009602052604090205460ff16155b610f6c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105a8565b6015546001600160a01b03838116911614610ff157600e5481610f8e8461055c565b610f989190611b60565b10610ff15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105a8565b6000610ffc3061055c565b600f54600d5491925082101590821061101557600d5491505b80801561102a5750600854610100900460ff16155b801561104457506015546001600160a01b03868116911614155b8015611058575060085462010000900460ff165b801561107d57506001600160a01b03851660009081526018602052604090205460ff16155b80156110a257506001600160a01b03841660009081526018602052604090205460ff16155b156110c2576110b082611278565b4780156110c0576110c04761121c565b505b50505b6001600160a01b03831660009081526018602052604090205460019060ff168061110757506001600160a01b03831660009081526018602052604090205460ff165b8061113957506015546001600160a01b0385811691161480159061113957506015546001600160a01b03848116911614155b15611146575060006111d6565b6015546001600160a01b03858116911614801561117157506014546001600160a01b03848116911614155b15611183576006546010556007546011555b6015546001600160a01b0384811691161480156111ae57506014546001600160a01b03858116911614155b156111d657600c546004546111cc916001600160a01b0316316113ec565b6010556005546011555b61072e8484848461142e565b600081848411156112065760405162461bcd60e51b81526004016105a891906118c4565b5060006112138486611b73565b95945050505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b60008061126561145c565b9050611271838261147f565b9392505050565b6008805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112bc576112bc611ab3565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113399190611af8565b8160018151811061134c5761134c611ab3565b6001600160a01b0392831660209182029290920101526014546113729130911684610b5e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ab908590600090869030904290600401611b86565b600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b50506008805461ff001916905550505050565b600061127183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e2565b8061143b5761143b6114c1565b6114468484846114ef565b8061072e5761072e601254601055601354601155565b60008060006114696115e7565b9092509050611478828261147f565b9250505090565b600061127183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611627565b6010541580156114d15750601154155b156114d857565b601080546012556011805460135560009182905555565b600080600080600080611502878a611655565b6001600160a01b038f16600090815260196020526040902054959b5093995091975095509350915061153490876113ec565b6001600160a01b03808b1660009081526019602052604080822093909355908a168152205461156390866116d0565b6001600160a01b0389166000908152601960205260409020556115858161172f565b61158f8483611779565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d491815260200190565b60405180910390a3505050505050505050565b6002546000908190670de0b6b3a7640000611602828261147f565b82101561161e57505060025492670de0b6b3a764000092509050565b90939092509050565b600081836116485760405162461bcd60e51b81526004016105a891906118c4565b5060006112138486611bf7565b60008060008060008060008060006116728b60105460115461179d565b925092509250600061168261145c565b905060008060006116958f8787876117f2565b600c5492955090935091506001600160a01b03908116908f16036116b857600092505b919e909d50909b509399509197509550909350505050565b6000806116dd8385611b60565b9050838110156112715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a8565b600061173961145c565b905060006117478383611842565b3060009081526019602052604090205490915061176490826116d0565b30600090815260196020526040902055505050565b60025461178690836113ec565b60025560035461179690826116d0565b6003555050565b60008080806117b760646117b18989611842565b9061147f565b905060006117ca60646117b18a89611842565b905060006117e2826117dc8b866113ec565b906113ec565b9992985090965090945050505050565b60008080806118018886611842565b9050600061180f8887611842565b9050600061181d8888611842565b9050600061182f826117dc86866113ec565b939b939a50919850919650505050505050565b600082600003611854575060006104a2565b60006118608385611c19565b90508261186d8583611bf7565b146112715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a8565b600060208083528351808285015260005b818110156118f1578581018301518582016040015282016118d5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461055957600080fd5b6000806040838503121561193a57600080fd5b823561194581611912565b946020939093013593505050565b60008060006060848603121561196857600080fd5b833561197381611912565b9250602084013561198381611912565b929592945050506040919091013590565b6000602082840312156119a657600080fd5b813561127181611912565b801515811461055957600080fd5b6000806000604084860312156119d457600080fd5b833567ffffffffffffffff808211156119ec57600080fd5b818601915086601f830112611a0057600080fd5b813581811115611a0f57600080fd5b8760208260051b8501011115611a2457600080fd5b60209283019550935050840135611a3a816119b1565b809150509250925092565b60008060408385031215611a5857600080fd5b8235611a6381611912565b91506020830135611a7381611912565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611af157611af1611ac9565b5060010190565b600060208284031215611b0a57600080fd5b815161127181611912565b600080600060608486031215611b2a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b5557600080fd5b8151611271816119b1565b808201808211156104a2576104a2611ac9565b818103818111156104a2576104a2611ac9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd65784516001600160a01b031683529383019391830191600101611bb1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c1457634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104a2576104a2611ac956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bc8c7d44e2cce4e669a4d5e00496e25885e4e631ae1bcbdf20b9f88f7a4431564736f6c63430008130033

Deployed Bytecode Sourcemap

4173:12763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6481:83;;;;;;;;;;-1:-1:-1;6551:5:0;;;;;;;;;;;-1:-1:-1;;;6551:5:0;;;;6481:83;;;;6551:5;6481:83;:::i;:::-;;;;;;;;7789:193;;;;;;;;;;-1:-1:-1;7789:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7789:193:0;1023:187:1;5510:41:0;;;;;;;;;;-1:-1:-1;5510:41:0;;;;-1:-1:-1;;;;;5510:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5510:41:0;1215:229:1;6906:95:0;;;;;;;;;;-1:-1:-1;4436:15:0;6906:95;;;1595:25:1;;;1583:2;1568:18;6906:95:0;1449:177:1;7991:446:0;;;;;;;;;;-1:-1:-1;7991:446:0;;;;;:::i;:::-;;:::i;5252:52::-;;;;;;;;;;;;;;;;6814:83;;;;;;;;;;-1:-1:-1;6814:83:0;;4390:1;2234:36:1;;2222:2;2207:18;6814:83:0;2092:184:1;5558:28:0;;;;;;;;;;-1:-1:-1;5558:28:0;;;;-1:-1:-1;;;;;5558:28:0;;;5192:53;;;;;;;;;;;;;;;;12655:220;;;;;;;;;;;;;:::i;:::-;;6668:138;;;;;;;;;;-1:-1:-1;6668:138:0;;;;;:::i;:::-;;:::i;1644:148::-;;;;;;;;;;;;;:::i;12984:136::-;;;;;;;;;;;;;:::i;4919:43::-;;;;;;;;;;-1:-1:-1;4919:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1428:79;;;;;;;;;;-1:-1:-1;1466:7:0;1493:6;-1:-1:-1;;;;;1493:6:0;1428:79;;7203:199;;;;;;;;;;-1:-1:-1;7203:199:0;;;;;:::i;:::-;;:::i;4881:36::-;;;;;;;;;;-1:-1:-1;4881:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12425:221;;;;;;;;;;;;;:::i;14512:234::-;;;;;;;;;;-1:-1:-1;14512:234:0;;;;;:::i;:::-;;:::i;14423:81::-;;;;;;;;;;;;;:::i;5133:52::-;;;;;;;;;;;;;;;;7009:184;;;;;;;;;;-1:-1:-1;7009:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7158:18:0;;;7126:7;7158:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7009:184;11955:461;;;:::i;1801:244::-;;;;;;;;;;-1:-1:-1;1801:244:0;;;;;:::i;:::-;;:::i;7789:193::-;7891:4;7913:39;1019:10;7936:7;7945:6;7913:8;:39::i;:::-;-1:-1:-1;7970:4:0;7789:193;;;;;:::o;7991:446::-;8123:4;8140:36;8150:6;8158:9;8169:6;8140:9;:36::i;:::-;8187:220;8210:6;1019:10;8258:138;8314:6;8258:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8258:19:0;;;;;;:11;:19;;;;;;;;1019:10;8258:33;;;;;;;;;;:37;:138::i;:::-;8187:8;:220::i;:::-;-1:-1:-1;8425:4:0;7991:446;;;;;:::o;12655:220::-;12721:11;;-1:-1:-1;;;;;12721:11:0;1019:10;-1:-1:-1;;;;;12705:27:0;;:57;;;-1:-1:-1;12752:10:0;;-1:-1:-1;;;;;12752:10:0;1019;-1:-1:-1;;;;;12736:26:0;;12705:57;12697:66;;;;;;12803:21;12835:32;12803:21;12835:12;:32::i;:::-;12686:189;12655:220::o;6668:138::-;-1:-1:-1;;;;;6781:16:0;;6734:7;6781:16;;;:7;:16;;;;;;6761:37;;:19;:37::i;1644:148::-;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;;;;;;;;;1751:1:::1;1735:6:::0;;1714:40:::1;::::0;-1:-1:-1;;;;;1735:6:0;;::::1;::::0;1714:40:::1;::::0;1751:1;;1714:40:::1;1782:1;1765:19:::0;;-1:-1:-1;;;;;;1765:19:0::1;::::0;;1644:148::o;12984:136::-;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;-1:-1:-1;;13036:15:0::1;:32:::0;;;13079:16:::1;:33:::0;12984:136::o;7203:199::-;7308:4;7330:42;1019:10;7354:9;7365:6;7330:9;:42::i;12425:221::-;12491:11;;-1:-1:-1;;;;;12491:11:0;1019:10;-1:-1:-1;;;;;12475:27:0;;:57;;;-1:-1:-1;12522:10:0;;-1:-1:-1;;;;;12522:10:0;1019;-1:-1:-1;;;;;12506:26:0;;12475:57;12467:66;;;;;;12544:23;12570:24;12588:4;12570:9;:24::i;:::-;12544:50;;12605:33;12622:15;12605:16;:33::i;14512:234::-;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;14629:9:::1;14625:114;14644:19:::0;;::::1;14625:114;;;14719:8;14685:18;:31;14704:8;;14713:1;14704:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14685:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14685:31:0;:42;;-1:-1:-1;;14685:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14665:3;::::1;::::0;::::1;:::i;:::-;;;;14625:114;;;;14512:234:::0;;;:::o;14423:81::-;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;14474:15:::1;:22:::0;;-1:-1:-1;;14474:22:0::1;14492:4;14474:22;::::0;;14423:81::o;11955:461::-;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;12051:15:::1;::::0;12019:58:::1;::::0;12036:4:::1;::::0;-1:-1:-1;;;;;12051:15:0::1;4436;12019:8;:58::i;:::-;12122:15;;;;;;;;;-1:-1:-1::0;;;;;12122:15:0::1;-1:-1:-1::0;;;;;12122:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12104:55:0::1;;12168:4;12175:15;;;;;;;;;-1:-1:-1::0;;;;;12175:15:0::1;-1:-1:-1::0;;;;;12175:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12104:94;::::0;-1:-1:-1;;;;;;12104:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5263:15:1;;;12104:94:0::1;::::0;::::1;5245:34:1::0;5315:15;;5295:18;;;5288:43;5180:18;;12104:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12088:13;:110:::0;;-1:-1:-1;;;;;;12088:110:0::1;-1:-1:-1::0;;;;;12088:110:0;;::::1;;::::0;;12209:15:::1;::::0;::::1;:31;12248:9;12267:4;12273:24;12267:4:::0;12273:9:::1;:24::i;:::-;12298:1;12300::::0;12302:7:::1;1466::::0;1493:6;-1:-1:-1;;;;;1493:6:0;;1428:79;12302:7:::1;12209:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12209:117:0;;;-1:-1:-1;;;;;5701:15:1;;;12209:117:0::1;::::0;::::1;5683:34:1::0;5733:18;;;5726:34;;;;5776:18;;;5769:34;;;;5819:18;;;5812:34;5883:15;;;5862:19;;;5855:44;12310:15:0::1;5915:19:1::0;;;5908:35;5617:19;;12209:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12344:13:0::1;::::0;12375:15:::1;::::0;12337:71:::1;::::0;-1:-1:-1;;;12337:71:0;;-1:-1:-1;;;;;12375:15:0;;::::1;12337:71;::::0;::::1;6439:51:1::0;-1:-1:-1;;6506:18:1;;;6499:34;12344:13:0;::::1;::::0;-1:-1:-1;12337:29:0::1;::::0;6412:18:1;;12337:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1801:244::-:0;1556:6;;-1:-1:-1;;;;;1556:6:0;1019:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1890:22:0;::::1;1882:73;;;::::0;-1:-1:-1;;;1882:73:0;;6996:2:1;1882:73:0::1;::::0;::::1;6978:21:1::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;-1:-1:-1;;;7125:18:1;;;7118:36;7171:19;;1882:73:0::1;6794:402:1::0;1882:73:0::1;1992:6;::::0;;1971:38:::1;::::0;-1:-1:-1;;;;;1971:38:0;;::::1;::::0;1992:6;::::1;::::0;1971:38:::1;::::0;::::1;2020:6;:17:::0;;-1:-1:-1;;;;;;2020:17:0::1;-1:-1:-1::0;;;;;2020:17:0;;;::::1;::::0;;;::::1;::::0;;1801:244::o;7411:369::-;-1:-1:-1;;;;;7538:19:0;;7530:68;;;;-1:-1:-1;;;7530:68:0;;7403:2:1;7530:68:0;;;7385:21:1;7442:2;7422:18;;;7415:30;7481:34;7461:18;;;7454:62;-1:-1:-1;;;7532:18:1;;;7525:34;7576:19;;7530:68:0;7201:400:1;7530:68:0;-1:-1:-1;;;;;7617:21:0;;7609:68;;;;-1:-1:-1;;;7609:68:0;;7808:2:1;7609:68:0;;;7790:21:1;7847:2;7827:18;;;7820:30;7886:34;7866:18;;;7859:62;-1:-1:-1;;;7937:18:1;;;7930:32;7979:19;;7609:68:0;7606:398:1;7609:68:0;-1:-1:-1;;;;;7688:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7740:32;;1595:25:1;;;7740:32:0;;1568:18:1;7740:32:0;;;;;;;7411:369;;;:::o;8657:2438::-;-1:-1:-1;;;;;8779:18:0;;8771:68;;;;-1:-1:-1;;;8771:68:0;;8211:2:1;8771:68:0;;;8193:21:1;8250:2;8230:18;;;8223:30;8289:34;8269:18;;;8262:62;-1:-1:-1;;;8340:18:1;;;8333:35;8385:19;;8771:68:0;8009:401:1;8771:68:0;-1:-1:-1;;;;;8858:16:0;;8850:64;;;;-1:-1:-1;;;8850:64:0;;8617:2:1;8850:64:0;;;8599:21:1;8656:2;8636:18;;;8629:30;8695:34;8675:18;;;8668:62;-1:-1:-1;;;8746:18:1;;;8739:33;8789:19;;8850:64:0;8415:399:1;8850:64:0;8942:1;8933:6;:10;8925:64;;;;-1:-1:-1;;;8925:64:0;;9021:2:1;8925:64:0;;;9003:21:1;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:1;;;9143:39;9199:19;;8925:64:0;8819:405:1;8925:64:0;1466:7;1493:6;-1:-1:-1;;;;;9007:15:0;;;1493:6;;9007:15;;;;:32;;-1:-1:-1;1466:7:0;1493:6;-1:-1:-1;;;;;9026:13:0;;;1493:6;;9026:13;;9007:32;9003:1336;;;9097:15;;;;9092:280;;1466:7;1493:6;-1:-1:-1;;;;;9141:15:0;;;1493:6;;9141:15;;:40;;-1:-1:-1;;;;;;9160:21:0;;9176:4;9160:21;9141:40;9133:116;;;;-1:-1:-1;;;9133:116:0;;9431:2:1;9133:116:0;;;9413:21:1;9470:2;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;9580:33;9560:18;;;9553:61;9631:19;;9133:116:0;9229:427:1;9133:116:0;9092:280;;;9308:15;;9298:6;:25;;9290:66;;;;-1:-1:-1;;;9290:66:0;;9863:2:1;9290:66:0;;;9845:21:1;9902:2;9882:18;;;9875:30;9941;9921:18;;;9914:58;9989:18;;9290:66:0;9661:352:1;9290:66:0;-1:-1:-1;;;;;9395:10:0;;;;;;:4;:10;;;;;;;;9394:11;:24;;;;-1:-1:-1;;;;;;9410:8:0;;;;;;:4;:8;;;;;;;;9409:9;9394:24;9386:72;;;;-1:-1:-1;;;9386:72:0;;10220:2:1;9386:72:0;;;10202:21:1;10259:2;10239:18;;;10232:30;10298:34;10278:18;;;10271:62;-1:-1:-1;;;10349:18:1;;;10342:33;10392:19;;9386:72:0;10018:399:1;9386:72:0;9485:13;;-1:-1:-1;;;;;9479:19:0;;;9485:13;;9479:19;9476:148;;9552:16;;9543:6;9527:13;9537:2;9527:9;:13::i;:::-;:22;;;;:::i;:::-;:41;9519:89;;;;-1:-1:-1;;;9519:89:0;;10754:2:1;9519:89:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:34;10812:18;;;10805:62;-1:-1:-1;;;10883:18:1;;;10876:33;10926:19;;9519:89:0;10552:399:1;9519:89:0;9641:28;9672:24;9690:4;9672:9;:24::i;:::-;9750:19;;9814:15;;9641:55;;-1:-1:-1;9726:43:0;;;;9790:39;;9787:130;;9886:15;;9863:38;;9787:130;9938:7;:22;;;;-1:-1:-1;9950:10:0;;;;;;;9949:11;9938:22;:47;;;;-1:-1:-1;9972:13:0;;-1:-1:-1;;;;;9964:21:0;;;9972:13;;9964:21;;9938:47;:65;;;;-1:-1:-1;9989:14:0;;;;;;;9938:65;:94;;;;-1:-1:-1;;;;;;10008:24:0;;;;;;:18;:24;;;;;;;;10007:25;9938:94;:121;;;;-1:-1:-1;;;;;;10037:22:0;;;;;;:18;:22;;;;;;;;10036:23;9938:121;9934:394;;;10080:38;10097:20;10080:16;:38::i;:::-;10166:21;10211:22;;10207:106;;10258:35;10271:21;10258:12;:35::i;:::-;10061:267;9934:394;9041:1298;;9003:1336;-1:-1:-1;;;;;10417:24:0;;10352:12;10417:24;;;:18;:24;;;;;;10367:4;;10417:24;;;:50;;-1:-1:-1;;;;;;10445:22:0;;;;;;:18;:22;;;;;;;;10417:50;10416:102;;;-1:-1:-1;10481:13:0;;-1:-1:-1;;;;;10473:21:0;;;10481:13;;10473:21;;;;:44;;-1:-1:-1;10504:13:0;;-1:-1:-1;;;;;10498:19:0;;;10504:13;;10498:19;;10473:44;10412:621;;;-1:-1:-1;10545:5:0;10412:621;;;10629:13;;-1:-1:-1;;;;;10621:21:0;;;10629:13;;10621:21;:55;;;;-1:-1:-1;10660:15:0;;-1:-1:-1;;;;;10646:30:0;;;10660:15;;10646:30;;10621:55;10618:162;;;10709:14;;10697:9;:26;10752:12;;10742:7;:22;10618:162;10840:13;;-1:-1:-1;;;;;10834:19:0;;;10840:13;;10834:19;:55;;;;-1:-1:-1;10873:15:0;;-1:-1:-1;;;;;10857:32:0;;;10873:15;;10857:32;;10834:55;10830:189;;;10942:10;;10922:15;;:39;;-1:-1:-1;;;;;10942:10:0;:18;10922:19;:39::i;:::-;10910:9;:51;10990:13;;10980:7;:23;10830:189;11046:41;11061:4;11067:2;11071:6;11079:7;11046:14;:41::i;2414:224::-;2534:7;2570:12;2562:6;;;;2554:29;;;;-1:-1:-1;;;2554:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2594:9:0;2606:5;2610:1;2606;:5;:::i;:::-;2594:17;2414:224;-1:-1:-1;;;;;2414:224:0:o;12883:93::-;12940:11;;:28;;-1:-1:-1;;;;;12940:11:0;;;;:28;;;;;12961:6;;12940:11;:28;:11;:28;12961:6;12940:11;:28;;;;;;;;;;;;;;;;;;;;;12883:93;:::o;8446:202::-;8541:7;8566:19;8588:10;:8;:10::i;:::-;8566:32;-1:-1:-1;8616:24:0;:7;8566:32;8616:11;:24::i;:::-;8609:31;8446:202;-1:-1:-1;;;8446:202:0:o;11104:483::-;5919:10;:17;;-1:-1:-1;;5919:17:0;;;;;11206:16:::1;::::0;;11220:1:::1;11206:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11206:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11206:16:0::1;11182:40;;11251:4;11233;11238:1;11233:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11233:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11277:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11277:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11233:7;;11277:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11267:4;11272:1;11267:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11267:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11342:15:::1;::::0;11310:62:::1;::::0;11327:4:::1;::::0;11342:15:::1;11360:11:::0;11310:8:::1;:62::i;:::-;11383:15;::::0;:196:::1;::::0;-1:-1:-1;;;11383:196:0;;-1:-1:-1;;;;;11383:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11464:11;;11383:15:::1;::::0;11506:4;;11533::::1;::::0;11553:15:::1;::::0;11383:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5959:10:0;:18;;-1:-1:-1;;5959:18:0;;;-1:-1:-1;;;;11104:483:0:o;2269:136::-;2327:7;2354:43;2358:1;2361;2354:43;;;;;;;;;;;;;;;;;:3;:43::i;13129:282::-;13285:7;13280:28;;13294:14;:12;:14::i;:::-;13319:44;13337:6;13345:9;13356:6;13319:17;:44::i;:::-;13379:7;13374:29;;13388:15;11882:17;;11870:9;:29;11920:15;;11910:7;:25;11826:117;16503:164;16545:7;16566:15;16583;16602:19;:17;:19::i;:::-;16565:56;;-1:-1:-1;16565:56:0;-1:-1:-1;16639:20:0;16565:56;;16639:11;:20::i;:::-;16632:27;;;;16503:164;:::o;2902:132::-;2960:7;2987:39;2991:1;2994;2987:39;;;;;;;;;;;;;;;;;:3;:39::i;11596:221::-;11643:9;;:14;:30;;;;-1:-1:-1;11661:7:0;;:12;11643:30;11639:43;;;11596:221::o;11639:43::-;11715:9;;;11695:17;:29;11753:7;;;11735:15;:25;-1:-1:-1;11774:13:0;;;;11798:11;11596:221::o;13420:618::-;13567:15;13597:23;13635:12;13662:23;13700:12;13727:13;13754:27;13765:7;13774:6;13754:10;:27::i;:::-;-1:-1:-1;;;;;13810:15:0;;;;;;:7;:15;;;;;;13552:229;;-1:-1:-1;13552:229:0;;-1:-1:-1;13552:229:0;;-1:-1:-1;13552:229:0;-1:-1:-1;13552:229:0;-1:-1:-1;13552:229:0;-1:-1:-1;13810:28:0;;13552:229;13810:19;:28::i;:::-;-1:-1:-1;;;;;13792:15:0;;;;;;;:7;:15;;;;;;:46;;;;13870:18;;;;;;;:39;;13893:15;13870:22;:39::i;:::-;-1:-1:-1;;;;;13849:18:0;;;;;;:7;:18;;;;;:60;13920:16;13930:5;13920:9;:16::i;:::-;13947:23;13959:4;13965;13947:11;:23::i;:::-;14003:9;-1:-1:-1;;;;;13986:44:0;13995:6;-1:-1:-1;;;;;13986:44:0;;14014:15;13986:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13986:44:0;;;;;;;;13541:497;;;;;;13420:618;;;:::o;16676:257::-;16774:7;;16727;;;;4436:15;16842:20;16774:7;4436:15;16842:11;:20::i;:::-;16832:7;:30;16828:61;;;-1:-1:-1;;16872:7:0;;;4436:15;;-1:-1:-1;16676:257:0;-1:-1:-1;16676:257:0:o;16828:61::-;16908:7;;16917;;-1:-1:-1;16676:257:0;-1:-1:-1;16676:257:0:o;3043:223::-;3163:7;3198:12;3191:5;3183:28;;;;-1:-1:-1;;;3183:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3222:9:0;3234:5;3238:1;3234;:5;:::i;14792:681::-;14908:7;14930;14952;14974;14996;15018;15054:23;15079:12;15093:13;15123:40;15135:7;15144:9;;15155:7;;15123:11;:40::i;:::-;15053:110;;;;;;15174:19;15196:10;:8;:10::i;:::-;15174:32;;15218:15;15235:23;15260:12;15289:46;15301:7;15310:4;15316:5;15323:11;15289;:46::i;:::-;15360:10;;15217:118;;-1:-1:-1;15217:118:0;;-1:-1:-1;15217:118:0;-1:-1:-1;;;;;;15360:10:0;;;15350:20;;;;15346:40;;15383:1;15373:11;;15346:40;15404:7;;15413:15;;-1:-1:-1;15404:7:0;;-1:-1:-1;15436:15:0;;-1:-1:-1;15453:4:0;;-1:-1:-1;15453:4:0;-1:-1:-1;14792:681:0;;-1:-1:-1;;;;14792:681:0:o;2081:179::-;2139:7;;2171:5;2175:1;2171;:5;:::i;:::-;2159:17;;2200:1;2195;:6;;2187:46;;;;-1:-1:-1;;;2187:46:0;;12630:2:1;2187:46:0;;;12612:21:1;12669:2;12649:18;;;12642:30;12708:29;12688:18;;;12681:57;12755:18;;2187:46:0;12428:351:1;14047:211:0;14100:19;14122:10;:8;:10::i;:::-;14100:32;-1:-1:-1;14143:13:0;14159:22;:5;14100:32;14159:9;:22::i;:::-;14233:4;14217:22;;;;:7;:22;;;;;;14143:38;;-1:-1:-1;14217:33:0;;14143:38;14217:26;:33::i;:::-;14208:4;14192:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14047:211:0:o;14267:147::-;14345:7;;:17;;14357:4;14345:11;:17::i;:::-;14335:7;:27;14386:10;;:20;;14401:4;14386:14;:20::i;:::-;14373:10;:33;-1:-1:-1;;14267:147:0:o;15482:469::-;15651:7;;;;15745:30;15771:3;15745:21;:7;15757:8;15745:11;:21::i;:::-;:25;;:30::i;:::-;15730:45;-1:-1:-1;15786:13:0;15802:28;15826:3;15802:19;:7;15814:6;15802:11;:19::i;:28::-;15786:44;-1:-1:-1;15841:23:0;15867:28;15786:44;15867:17;:7;15879:4;15867:11;:17::i;:::-;:21;;:28::i;:::-;15841:54;15931:4;;-1:-1:-1;15937:5:0;;-1:-1:-1;15482:469:0;;-1:-1:-1;;;;;15482:469:0:o;15960:534::-;16154:7;;;;16251:24;:7;16263:11;16251;:24::i;:::-;16233:42;-1:-1:-1;16286:12:0;16301:21;:4;16310:11;16301:8;:21::i;:::-;16286:36;-1:-1:-1;16333:13:0;16349:22;:5;16359:11;16349:9;:22::i;:::-;16333:38;-1:-1:-1;16382:23:0;16408:28;16333:38;16408:17;:7;16420:4;16408:11;:17::i;:28::-;16455:7;;;;-1:-1:-1;16481:4:0;;-1:-1:-1;15960:534:0;;-1:-1:-1;;;;;;;15960:534:0:o;2647:246::-;2705:7;2729:1;2734;2729:6;2725:47;;-1:-1:-1;2759:1:0;2752:8;;2725:47;2782:9;2794:5;2798:1;2794;:5;:::i;:::-;2782:17;-1:-1:-1;2827:1:0;2818:5;2822:1;2782:17;2818:5;:::i;:::-;:10;2810:56;;;;-1:-1:-1;;;2810:56:0;;13159:2:1;2810:56:0;;;13141:21:1;13198:2;13178:18;;;13171:30;13237:34;13217:18;;;13210:62;-1:-1:-1;;;13288:18:1;;;13281:31;13329:19;;2810:56:0;12957:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:750;2956:6;2964;2972;3025:2;3013:9;3004:7;3000:23;2996:32;2993:52;;;3041:1;3038;3031:12;2993:52;3081:9;3068:23;3110:18;3151:2;3143:6;3140:14;3137:34;;;3167:1;3164;3157:12;3137:34;3205:6;3194:9;3190:22;3180:32;;3250:7;3243:4;3239:2;3235:13;3231:27;3221:55;;3272:1;3269;3262:12;3221:55;3312:2;3299:16;3338:2;3330:6;3327:14;3324:34;;;3354:1;3351;3344:12;3324:34;3409:7;3402:4;3392:6;3389:1;3385:14;3381:2;3377:23;3373:34;3370:47;3367:67;;;3430:1;3427;3420:12;3367:67;3461:4;3453:13;;;;-1:-1:-1;3485:6:1;-1:-1:-1;;3526:20:1;;3513:34;3556:28;3513:34;3556:28;:::i;:::-;3603:5;3593:15;;;2864:750;;;;;:::o;3619:388::-;3687:6;3695;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;3803:9;3790:23;3822:31;3847:5;3822:31;:::i;:::-;3872:5;-1:-1:-1;3929:2:1;3914:18;;3901:32;3942:33;3901:32;3942:33;:::i;:::-;3994:7;3984:17;;;3619:388;;;;;:::o;4012:356::-;4214:2;4196:21;;;4233:18;;;4226:30;4292:34;4287:2;4272:18;;4265:62;4359:2;4344:18;;4012:356::o;4373:127::-;4434:10;4429:3;4425:20;4422:1;4415:31;4465:4;4462:1;4455:15;4489:4;4486:1;4479:15;4505:127;4566:10;4561:3;4557:20;4554:1;4547:31;4597:4;4594:1;4587:15;4621:4;4618:1;4611:15;4637:135;4676:3;4697:17;;;4694:43;;4717:18;;:::i;:::-;-1:-1:-1;4764:1:1;4753:13;;4637:135::o;4777:251::-;4847:6;4900:2;4888:9;4879:7;4875:23;4871:32;4868:52;;;4916:1;4913;4906:12;4868:52;4948:9;4942:16;4967:31;4992:5;4967:31;:::i;5954:306::-;6042:6;6050;6058;6111:2;6099:9;6090:7;6086:23;6082:32;6079:52;;;6127:1;6124;6117:12;6079:52;6156:9;6150:16;6140:26;;6206:2;6195:9;6191:18;6185:25;6175:35;;6250:2;6239:9;6235:18;6229:25;6219:35;;5954:306;;;;;:::o;6544:245::-;6611:6;6664:2;6652:9;6643:7;6639:23;6635:32;6632:52;;;6680:1;6677;6670:12;6632:52;6712:9;6706:16;6731:28;6753:5;6731:28;:::i;10422:125::-;10487:9;;;10508:10;;;10505:36;;;10521:18;;:::i;10956:128::-;11023:9;;;11044:11;;;11041:37;;;11058:18;;:::i;11221:980::-;11483:4;11531:3;11520:9;11516:19;11562:6;11551:9;11544:25;11588:2;11626:6;11621:2;11610:9;11606:18;11599:34;11669:3;11664:2;11653:9;11649:18;11642:31;11693:6;11728;11722:13;11759:6;11751;11744:22;11797:3;11786:9;11782:19;11775:26;;11836:2;11828:6;11824:15;11810:29;;11857:1;11867:195;11881:6;11878:1;11875:13;11867:195;;;11946:13;;-1:-1:-1;;;;;11942:39:1;11930:52;;12037:15;;;;12002:12;;;;11978:1;11896:9;11867:195;;;-1:-1:-1;;;;;;;12118:32:1;;;;12113:2;12098:18;;12091:60;-1:-1:-1;;;12182:3:1;12167:19;12160:35;12079:3;11221:980;-1:-1:-1;;;11221:980:1:o;12206:217::-;12246:1;12272;12262:132;;12316:10;12311:3;12307:20;12304:1;12297:31;12351:4;12348:1;12341:15;12379:4;12376:1;12369:15;12262:132;-1:-1:-1;12408:9:1;;12206:217::o;12784:168::-;12857:9;;;12888;;12905:15;;;12899:22;;12885:37;12875:71;;12926:18;;:::i

Swarm Source

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