ETH Price: $3,684.46 (+3.23%)

Token

Bishu Finance (BishuFi)
 

Overview

Max Total Supply

1,000,000,000,000 BishuFi

Holders

800 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
462,752,793.316064481 BishuFi

Value
$0.00
0x05dc97524660583D317EC5fA1e198A959FbBe1cB
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Bishu Finance is a DeFi token that serves as the epicenter for a universe of financial protocols. Governance driven and deflationary - Bishu Finance also serves as its own interest bearing investment vehicle for its holders, whilst donating to the less privileged and underserved.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BishuFinance

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-19
*/

/*
 .----------------.  .----------------.  .----------------.  .----------------.  .----------------.  .----------------.  .----------------. 
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| |   ______     | || |     _____    | || |    _______   | || |  ____  ____  | || | _____  _____ | || |  _________   | || |     _____    | |
| |  |_   _ \    | || |    |_   _|   | || |   /  ___  |  | || | |_   ||   _| | || ||_   _||_   _|| || | |_   ___  |  | || |    |_   _|   | |
| |    | |_) |   | || |      | |     | || |  |  (__ \_|  | || |   | |__| |   | || |  | |    | |  | || |   | |_  \_|  | || |      | |     | |
| |    |  __'.   | || |      | |     | || |   '.___`-.   | || |   |  __  |   | || |  | '    ' |  | || |   |  _|      | || |      | |     | |
| |   _| |__) |  | || |     _| |_    | || |  |`\____) |  | || |  _| |  | |_  | || |   \ `--' /   | || |  _| |_       | || |     _| |_    | |
| |  |_______/   | || |    |_____|   | || |  |_______.'  | || | |____||____| | || |    `.__.'    | || | |_____|      | || |    |_____|   | |
| |              | || |              | || |              | || |              | || |              | || |              | || |              | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
 '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------'  '----------------' 
*/
/* SPDX-License-Identifier: Unlicensed */
pragma solidity ^0.8.6;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Team(address indexed from, address indexed to, uint256 value);
    event Charity(address indexed from, address indexed to, uint256 value);
    event Burn(address indexed from, address indexed to, uint256 value);
    event DistributedFee(address indexed from, string msg, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract BishuFinance is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"Bishu Finance";
    string private constant _symbol = "BishuFi";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 2;
    // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
    uint256 private _charityFee = 1;
    // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
    uint256 private _burnFee = 1;
    mapping(address => bool) private bots;
    mapping(address => uint256) public buycooldown;
    mapping(address => uint256) public sellcooldown;
    mapping(address => uint256) public firstsell;
    mapping(address => uint256) public sellnumber;
    // made public for transparency
    address payable public _teamAddress;
    address payable public _charityAddress;
    address public _routerAddress;
    address payable public _burnAddress = payable(0x000000000000000000000000000000000000dEaD);
    //
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingOpen = false;
    bool public liquidityAdded = false;
    bool private inSwap = false;
    bool public swapEnabled = false;
    bool public cooldownEnabled = false;
    uint256 public _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor(address payable addr1, address payable addr2, address addr3) {
        _teamAddress = addr1;
        _charityAddress = addr2;
        _routerAddress = addr3;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = true;
        _isExcludedFromFee[_charityAddress] = true;
        _isExcludedFromFee[_burnAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }    

    function setIsExcludedFromFee(address _address,bool _isExcluded) external onlyOwner() {
        _isExcludedFromFee[_address] = _isExcluded;
    }    

    function setTeamAddress(address payable _address) external onlyOwner() {
        _teamAddress = _address;
    }

    function setCharityAddress(address payable _address) external onlyOwner() {
        _charityAddress = _address;
    }

    function setRouterAddress(address _address) external onlyOwner() {
        _routerAddress = _address;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal,"Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
        _charityFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = 2;
        _teamFee = 2;
        // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
        _charityFee = 1;
        // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
        _burnFee = 1;
    }

    function setRemoveAllFee() external onlyOwner {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
        _charityFee = 0;
        _burnFee = 0;
    }

    function setRestoreAllFee() external onlyOwner {
        _taxFee = 2;
        _teamFee = 2;
        // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
        _charityFee = 1;
        // 0.5% fee will be calculated later, number 1 is set because variable cannot store floating point
        _burnFee = 1;
    }
    
    function setFee(uint256 multiplier) private {
        if (multiplier == 0) {
            uint256 tfeeWhole = 3;
            _taxFee = tfeeWhole;
        }
        else if (multiplier == 1) {
            uint256 tfeeWhole = 6;
            _taxFee = tfeeWhole;

        }
        else if (multiplier == 2) {
            uint256 tfeeWhole = 17;
            _taxFee = tfeeWhole;

        }
        else if (multiplier == 3) {
            uint256 tfeeWhole = 24;
            _taxFee = tfeeWhole;

        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to], "You are a bot!");
            
            // cooldown buy handler
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(tradingOpen, "Trading is not open!");
                require(amount <= _maxTxAmount, "Amount larger than max tx amount!");
                require(buycooldown[to] < block.timestamp, "Wait for buy cooldown!");
                buycooldown[to] = block.timestamp + (30 seconds);
                takeFee = true;
            }

            // sell handler
            if (!inSwap && to == uniswapV2Pair && from != address(uniswapV2Router) && swapEnabled) {
                require(amount <= balanceOf(uniswapV2Pair).mul(3).div(100) && amount <= _maxTxAmount, "Slippage is over 2.9% or over MaxTxAmount!");
                require(sellcooldown[from] < block.timestamp, "Wait for sell cooldown!");
                if(firstsell[from] + (1 days) < block.timestamp){
                    sellnumber[from] = 0;
                }
                if (sellnumber[from] == 0) {
                    firstsell[from] = block.timestamp;
                    sellcooldown[from] = block.timestamp + (1 hours);
                }
                else if (sellnumber[from] == 1) {
                    sellcooldown[from] = block.timestamp + (2 hours);
                }
                else if (sellnumber[from] == 2) {
                    sellcooldown[from] = block.timestamp + (6 hours);
                }
                else if (sellnumber[from] == 3) {
                    sellcooldown[from] = firstsell[from] + (1 days);
                }
                setFee(sellnumber[from]);
                sellnumber[from]++;
                takeFee = true;
            }

            // block transfer if sell cooldown
            if (to != uniswapV2Pair) {
               require(sellcooldown[from] < block.timestamp, "Wait for sell cooldown!"); 
            }
        }
        
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

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

    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 sendETHToFee(uint256 amount) private {
        _teamAddress.transfer(amount.div(2));
        _charityAddress.transfer(amount.div(2));
    }
    
    function openTrading() public onlyOwner {
        require(liquidityAdded);
        tradingOpen = true;
    }

    function addLiquidity() external onlyOwner() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_routerAddress);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        liquidityAdded = true;
        _maxTxAmount = 3000000000 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        // moved fuction above to reduce stack
        // _getValues //
            // _getTValues
            uint256 tFee = tAmount.mul(_taxFee).div(100);
            uint256 tTeam = tAmount.mul(_teamFee).div(100);
            // 0.5% fee by dividing by 200
            uint256 tCharity = tAmount.mul(_charityFee).div(200);
            uint256 tBurn = tAmount.mul(_burnFee).div(200);
            //
            uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam).sub(tCharity).sub(tBurn);
            // _getRValues
            uint256 currentRate = _getRate();
            uint256 rAmount = tAmount.mul(currentRate);
            uint256 rFee = tFee.mul(currentRate);
            uint256 rTeam = tTeam.mul(currentRate);
            uint256 rCharity = tCharity.mul(currentRate);
            uint256 rBurn = tBurn.mul(currentRate);
            uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam).sub(rCharity).sub(rBurn);
        //
        _calculateReflectTransfer(sender,recipient,rAmount,rTransferAmount);
        _takeTeam(tTeam);
        _takeCharity(tCharity);
        _takeBurn(tBurn);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
        emit Team(sender, _teamAddress, tTeam);
        emit Charity(sender, _charityAddress, tCharity);
        emit DistributedFee(sender, "Fee split between all holders!", tFee);
        emit Burn(sender, _burnAddress, tBurn);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[_teamAddress] = _rOwned[_teamAddress].add(rTeam);
    }
    // added charity
    function _takeCharity(uint256 tCharity) private {
        uint256 currentRate = _getRate();
        uint256 rCharity = tCharity.mul(currentRate);
        _rOwned[_charityAddress] = _rOwned[_charityAddress].add(rCharity);
    }
    // added burn
    function _takeBurn(uint256 tBurn) private {
        uint256 currentRate = _getRate();
        uint256 rBurn = tBurn.mul(currentRate);
        _rOwned[_burnAddress] = _rOwned[_burnAddress].add(rBurn);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    // added to reduce stack
    function _calculateReflectTransfer(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private {
        
       _rOwned[sender] = _rOwned[sender].sub(rAmount);
       _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
    }

    // allow contract to receive deposits
    receive() external payable {}

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","type":"address"},{"internalType":"address","name":"addr3","type":"address"}],"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","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":"Charity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"msg","type":"string"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"DistributedFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Team","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":"_burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","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":"buycooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownEnabled","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":"","type":"address"}],"name":"firstsell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sellcooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sellnumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExcluded","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRemoveAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRestoreAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620002d5565b6200002990600019620002af565b600655600260088190556009556001600a819055600b55601480546001600160a01b03191661dead1790556016805464ffffffffff60a01b19169055683635c9adc5dea000006017553480156200007f57600080fd5b506040516200303338038062003033833981016040819052620000a2916200025b565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b038086166001600160a01b031992831617909255601280548584169083161790556013805492841692909116919091179055600654600260006200012f3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160056000620001696200024c60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155601154821684528284208054861682179055601254821684528284208054861682179055601454909116835291208054909216179055620001ec3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200023b91815260200190565b60405180910390a350505062000311565b6000546001600160a01b031690565b6000806000606084860312156200027157600080fd5b83516200027e81620002f8565b60208501519093506200029181620002f8565b6040850151909250620002a481620002f8565b809150509250925092565b600082821015620002d057634e487b7160e01b600052601160045260246000fd5b500390565b600082620002f357634e487b7160e01b600052601260045260246000fd5b500690565b6001600160a01b03811681146200030e57600080fd5b50565b612d1280620003216000396000f3fe60806040526004361061026e5760003560e01c80637a41865b11610153578063c3c8cd80116100cb578063d9e664601161007f578063e8078d9411610064578063e8078d94146107a2578063ef422a18146107b7578063ffb54a99146107d757600080fd5b8063d9e664601461073c578063dd62ed3e1461075c57600080fd5b8063d13f9344116100b0578063d13f9344146106d4578063d543dbeb146106e9578063d94439231461070957600080fd5b8063c3c8cd80146106aa578063c9567bf9146106bf57600080fd5b80638da5cb5b11610122578063a9059cbb11610107578063a9059cbb14610634578063a985ceef14610654578063bd3900c01461068a57600080fd5b80638da5cb5b146105d057806395d89b41146105ee57600080fd5b80637a41865b146105405780637d1db4a51461056d57806381dcc266146105835780638c97ca76146105b057600080fd5b806341cb87fc116101e65780636ddd1713116101b557806370a082311161019a57806370a08231146104db578063715018a6146104fb578063768dc7101461051057600080fd5b80636ddd1713146104915780636fc3eaec146104c657600080fd5b806341cb87fc1461041c5780634a7348121461043c5780635932ead1146104515780636690864e1461047157600080fd5b806318160ddd1161023d5780631bc8b18f116102225780631bc8b18f146103b357806323b872dd146103e0578063313ce5671461040057600080fd5b806318160ddd1461035f57806319a8ac9e1461037b57600080fd5b806306fdde031461027a578063095ea7b3146102d25780630c9be46d146103025780631283f1ca1461032457600080fd5b3661027557005b600080fd5b34801561028657600080fd5b5060408051808201909152600d81527f42697368752046696e616e63650000000000000000000000000000000000000060208201525b6040516102c99190612a6f565b60405180910390f35b3480156102de57600080fd5b506102f26102ed3660046129c2565b610809565b60405190151581526020016102c9565b34801561030e57600080fd5b5061032261031d3660046128e0565b610820565b005b34801561033057600080fd5b5061035161033f3660046128e0565b600d6020526000908152604090205481565b6040519081526020016102c9565b34801561036b57600080fd5b50683635c9adc5dea00000610351565b34801561038757600080fd5b5060125461039b906001600160a01b031681565b6040516001600160a01b0390911681526020016102c9565b3480156103bf57600080fd5b506103516103ce3660046128e0565b600f6020526000908152604090205481565b3480156103ec57600080fd5b506102f26103fb366004612953565b6108b9565b34801561040c57600080fd5b50604051600981526020016102c9565b34801561042857600080fd5b506103226104373660046128e0565b610922565b34801561044857600080fd5b506103226109b6565b34801561045d57600080fd5b5061032261046c3660046129ee565b610a3d565b34801561047d57600080fd5b5061032261048c3660046128e0565b610ae5565b34801561049d57600080fd5b506016546102f29077010000000000000000000000000000000000000000000000900460ff1681565b3480156104d257600080fd5b50610322610b79565b3480156104e757600080fd5b506103516104f63660046128e0565b610be0565b34801561050757600080fd5b50610322610c02565b34801561051c57600080fd5b506102f261052b3660046128e0565b60056020526000908152604090205460ff1681565b34801561054c57600080fd5b5061035161055b3660046128e0565b600e6020526000908152604090205481565b34801561057957600080fd5b5061035160175481565b34801561058f57600080fd5b5061035161059e3660046128e0565b60106020526000908152604090205481565b3480156105bc57600080fd5b5060115461039b906001600160a01b031681565b3480156105dc57600080fd5b506000546001600160a01b031661039b565b3480156105fa57600080fd5b5060408051808201909152600781527f426973687546690000000000000000000000000000000000000000000000000060208201526102bc565b34801561064057600080fd5b506102f261064f3660046129c2565b610cbe565b34801561066057600080fd5b506016546102f2907801000000000000000000000000000000000000000000000000900460ff1681565b34801561069657600080fd5b5060145461039b906001600160a01b031681565b3480156106b657600080fd5b50610322610ccb565b3480156106cb57600080fd5b50610322610d3b565b3480156106e057600080fd5b50610322610dfe565b3480156106f557600080fd5b50610322610704366004612a28565b610e6e565b34801561071557600080fd5b506016546102f2907501000000000000000000000000000000000000000000900460ff1681565b34801561074857600080fd5b5060135461039b906001600160a01b031681565b34801561076857600080fd5b5061035161077736600461291a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ae57600080fd5b50610322610f71565b3480156107c357600080fd5b506103226107d2366004612994565b6113c7565b3480156107e357600080fd5b506016546102f29074010000000000000000000000000000000000000000900460ff1681565b600061081633848461146a565b5060015b92915050565b6000546001600160a01b0316331461087f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006108c68484846115c2565b610918843361091385604051806060016040528060288152602001612cb5602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611e1b565b61146a565b5060019392505050565b6000546001600160a01b0316331461097c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600854158015610a205750600954155b15610a2757565b600060088190556009819055600a819055600b55565b6000546001600160a01b03163314610a975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601680549115157801000000000000000000000000000000000000000000000000027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bd35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b47610bdd81611e55565b50565b6001600160a01b03811660009081526002602052604081205461081a90611eda565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60006108163384846115c2565b6000546001600160a01b03163314610d255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6000610d3030610be0565b9050610bdd81611f71565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6016547501000000000000000000000000000000000000000000900460ff16610dbd57600080fd5b601680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600260088190556009556001600a819055600b55565b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b60008111610f185760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610876565b610f366064610f30683635c9adc5dea0000084612175565b90612210565b60178190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601354601580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0390921691821790556110183082683635c9adc5dea0000061146a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561105157600080fd5b505afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108991906128fd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d157600080fd5b505afa1580156110e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110991906128fd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a191906128fd565b601680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556015541663f305d71947306111e981610be0565b6000806111fe6000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112b29190612a41565b5050601680547fffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffffff81167801010001000000000000000000000000000000000000000000179091556729a2241af62c00006017556015546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b390604401602060405180830381600087803b15801561138b57600080fd5b505af115801561139f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c39190612a0b565b5050565b6000546001600160a01b031633146114215760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6001600160a01b0391909116600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6001600160a01b0383166114e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0382166115615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661163e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0382166116ba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610876565b600081116117305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610876565b600080546001600160a01b0385811691161480159061175d57506000546001600160a01b03848116911614155b15611da8576001600160a01b0384166000908152600c602052604090205460ff161580156117a457506001600160a01b0383166000908152600c602052604090205460ff16155b6117f05760405162461bcd60e51b815260206004820152600e60248201527f596f7520617265206120626f74210000000000000000000000000000000000006044820152606401610876565b6016546001600160a01b03858116911614801561181b57506015546001600160a01b03848116911614155b801561184057506001600160a01b03831660009081526005602052604090205460ff16155b801561186a57506016547801000000000000000000000000000000000000000000000000900460ff165b156119e05760165474010000000000000000000000000000000000000000900460ff166118d95760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206973206e6f74206f70656e210000000000000000000000006044820152606401610876565b6017548211156119515760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206c6172676572207468616e206d617820747820616d6f756e7460448201527f21000000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0383166000908152600d602052604090205442116119b85760405162461bcd60e51b815260206004820152601660248201527f5761697420666f722062757920636f6f6c646f776e21000000000000000000006044820152606401610876565b6119c342601e612b53565b6001600160a01b0384166000908152600d60205260409020555060015b601654760100000000000000000000000000000000000000000000900460ff16158015611a1a57506016546001600160a01b038481169116145b8015611a3457506015546001600160a01b03858116911614155b8015611a5d575060165477010000000000000000000000000000000000000000000000900460ff165b15611d2c57601654611a8b90606490610f3090600390611a85906001600160a01b0316610be0565b90612175565b8211158015611a9c57506017548211155b611b0e5760405162461bcd60e51b815260206004820152602a60248201527f536c697070616765206973206f76657220322e3925206f72206f766572204d6160448201527f785478416d6f756e7421000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0384166000908152600e60205260409020544211611b755760405162461bcd60e51b815260206004820152601760248201527f5761697420666f722073656c6c20636f6f6c646f776e210000000000000000006044820152606401610876565b6001600160a01b0384166000908152600f60205260409020544290611b9d9062015180612b53565b1015611bbd576001600160a01b0384166000908152601060205260408120555b6001600160a01b038416600090815260106020526040902054611c21576001600160a01b0384166000908152600f602052604090204290819055611c0390610e10612b53565b6001600160a01b0385166000908152600e6020526040902055611cdc565b6001600160a01b03841660009081526010602052604090205460011415611c4e57611c0342611c20612b53565b6001600160a01b03841660009081526010602052604090205460021415611c7b57611c0342615460612b53565b6001600160a01b03841660009081526010602052604090205460031415611cdc576001600160a01b0384166000908152600f6020526040902054611cc29062015180612b53565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b038416600090815260106020526040902054611cfe90612252565b6001600160a01b0384166000908152601060205260408120805491611d2283612bfa565b9190505550600190505b6016546001600160a01b03848116911614611da8576001600160a01b0384166000908152600e60205260409020544211611da85760405162461bcd60e51b815260206004820152601760248201527f5761697420666f722073656c6c20636f6f6c646f776e210000000000000000006044820152606401610876565b6001600160a01b03841660009081526005602052604090205460ff1680611de757506001600160a01b03831660009081526005602052604090205460ff165b15611df0575060005b611dfc84848484612292565b611e15600260088190556009556001600a819055600b55565b50505050565b60008184841115611e3f5760405162461bcd60e51b81526004016108769190612a6f565b506000611e4c8486612be3565b95945050505050565b6011546001600160a01b03166108fc611e6f836002612210565b6040518115909202916000818181858888f19350505050158015611e97573d6000803e3d6000fd5b506012546001600160a01b03166108fc611eb2836002612210565b6040518115909202916000818181858888f193505050501580156113c3573d6000803e3d6000fd5b6000600654821115611f545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610876565b6000611f5e6122c8565b9050611f6a8382612210565b9392505050565b601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff167601000000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611fe757611fe7612c62565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561205457600080fd5b505afa158015612068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208c91906128fd565b8160018151811061209f5761209f612c62565b6001600160a01b0392831660209182029290920101526015546120c5913091168461146a565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790612117908590600090869030904290600401612ae2565b600060405180830381600087803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b5050601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16905550505050565b6000826121845750600061081a565b60006121908385612ba6565b90508261219d8583612b6b565b14611f6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6000611f6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122eb565b8061225f57600360085550565b806001141561227057600660085550565b806002141561228157601160085550565b8060031415610bdd57601860085550565b8061229f5761229f610a10565b6122aa848484612319565b80611e1557611e15600260088190556009556001600a819055600b55565b60008060006122d5612645565b90925090506122e48282612210565b9250505090565b6000818361230c5760405162461bcd60e51b81526004016108769190612a6f565b506000611e4c8486612b6b565b60006123356064610f306008548561217590919063ffffffff16565b905060006123536064610f306009548661217590919063ffffffff16565b9050600061237160c8610f30600a548761217590919063ffffffff16565b9050600061238f60c8610f30600b548861217590919063ffffffff16565b905060006123ab826123a5858188818c8c612687565b90612687565b905060006123b76122c8565b905060006123c58883612175565b905060006123d38884612175565b905060006123e18885612175565b905060006123ef8886612175565b905060006123fd8887612175565b90506000612413826123a5858188818c8c612687565b90506124218f8f88846126c9565b61242a8b61273d565b6124338a61279d565b61243c896127fd565b612446858d61285d565b8d6001600160a01b03168f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a60405161248b91815260200190565b60405180910390a3601160009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167ff66369c8f94bab922b04533b82ce846253a410ac2636fafe651dedc8133509d78d6040516124ed91815260200190565b60405180910390a3601260009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167fca1677f804f862431f2dc8ef278f931a3d6b9da45ed59f98fbbdc93871e2084b8c60405161254f91815260200190565b60405180910390a38e6001600160a01b03167fc7d6f89597428d360a5f3fe92fcd36ac14e8c050d0c693437d7f0f73ef2585df8d6040516125ca91906040808252601e908201527f4665652073706c6974206265747765656e20616c6c20686f6c646572732100006060820152602081019190915260800190565b60405180910390a2601460009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b94538b60405161262c91815260200190565b60405180910390a3505050505050505050505050505050565b6006546000908190683635c9adc5dea000006126618282612210565b82101561267e57505060065492683635c9adc5dea0000092509050565b90939092509050565b6000611f6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1b565b6001600160a01b0384166000908152600260205260409020546126ec9083612687565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461271b9082612881565b6001600160a01b03909316600090815260026020526040902092909255505050565b60006127476122c8565b905060006127558383612175565b6011546001600160a01b031660009081526002602052604090205490915061277d9082612881565b6011546001600160a01b0316600090815260026020526040902055505050565b60006127a76122c8565b905060006127b58383612175565b6012546001600160a01b03166000908152600260205260409020549091506127dd9082612881565b6012546001600160a01b0316600090815260026020526040902055505050565b60006128076122c8565b905060006128158383612175565b6014546001600160a01b031660009081526002602052604090205490915061283d9082612881565b6014546001600160a01b0316600090815260026020526040902055505050565b60065461286a9083612687565b60065560075461287a9082612881565b6007555050565b60008061288e8385612b53565b905083811015611f6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610876565b6000602082840312156128f257600080fd5b8135611f6a81612c91565b60006020828403121561290f57600080fd5b8151611f6a81612c91565b6000806040838503121561292d57600080fd5b823561293881612c91565b9150602083013561294881612c91565b809150509250929050565b60008060006060848603121561296857600080fd5b833561297381612c91565b9250602084013561298381612c91565b929592945050506040919091013590565b600080604083850312156129a757600080fd5b82356129b281612c91565b9150602083013561294881612ca6565b600080604083850312156129d557600080fd5b82356129e081612c91565b946020939093013593505050565b600060208284031215612a0057600080fd5b8135611f6a81612ca6565b600060208284031215612a1d57600080fd5b8151611f6a81612ca6565b600060208284031215612a3a57600080fd5b5035919050565b600080600060608486031215612a5657600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612a9c57858101830151858201604001528201612a80565b81811115612aae576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b325784516001600160a01b031683529383019391830191600101612b0d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b6657612b66612c33565b500190565b600082612ba1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bde57612bde612c33565b500290565b600082821015612bf557612bf5612c33565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c2c57612c2c612c33565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b0381168114610bdd57600080fd5b8015158114610bdd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e352f4c06f5cee08f31932663330a2085438a422c0685ef0b82f6f4ee2e29c0f64736f6c6343000806003300000000000000000000000065b12e1d87a4242a6dd035889407e82dd54e45f10000000000000000000000000e8eaa9c410bc6c1613a13989a03304cb1888412000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564

Deployed Bytecode

0x60806040526004361061026e5760003560e01c80637a41865b11610153578063c3c8cd80116100cb578063d9e664601161007f578063e8078d9411610064578063e8078d94146107a2578063ef422a18146107b7578063ffb54a99146107d757600080fd5b8063d9e664601461073c578063dd62ed3e1461075c57600080fd5b8063d13f9344116100b0578063d13f9344146106d4578063d543dbeb146106e9578063d94439231461070957600080fd5b8063c3c8cd80146106aa578063c9567bf9146106bf57600080fd5b80638da5cb5b11610122578063a9059cbb11610107578063a9059cbb14610634578063a985ceef14610654578063bd3900c01461068a57600080fd5b80638da5cb5b146105d057806395d89b41146105ee57600080fd5b80637a41865b146105405780637d1db4a51461056d57806381dcc266146105835780638c97ca76146105b057600080fd5b806341cb87fc116101e65780636ddd1713116101b557806370a082311161019a57806370a08231146104db578063715018a6146104fb578063768dc7101461051057600080fd5b80636ddd1713146104915780636fc3eaec146104c657600080fd5b806341cb87fc1461041c5780634a7348121461043c5780635932ead1146104515780636690864e1461047157600080fd5b806318160ddd1161023d5780631bc8b18f116102225780631bc8b18f146103b357806323b872dd146103e0578063313ce5671461040057600080fd5b806318160ddd1461035f57806319a8ac9e1461037b57600080fd5b806306fdde031461027a578063095ea7b3146102d25780630c9be46d146103025780631283f1ca1461032457600080fd5b3661027557005b600080fd5b34801561028657600080fd5b5060408051808201909152600d81527f42697368752046696e616e63650000000000000000000000000000000000000060208201525b6040516102c99190612a6f565b60405180910390f35b3480156102de57600080fd5b506102f26102ed3660046129c2565b610809565b60405190151581526020016102c9565b34801561030e57600080fd5b5061032261031d3660046128e0565b610820565b005b34801561033057600080fd5b5061035161033f3660046128e0565b600d6020526000908152604090205481565b6040519081526020016102c9565b34801561036b57600080fd5b50683635c9adc5dea00000610351565b34801561038757600080fd5b5060125461039b906001600160a01b031681565b6040516001600160a01b0390911681526020016102c9565b3480156103bf57600080fd5b506103516103ce3660046128e0565b600f6020526000908152604090205481565b3480156103ec57600080fd5b506102f26103fb366004612953565b6108b9565b34801561040c57600080fd5b50604051600981526020016102c9565b34801561042857600080fd5b506103226104373660046128e0565b610922565b34801561044857600080fd5b506103226109b6565b34801561045d57600080fd5b5061032261046c3660046129ee565b610a3d565b34801561047d57600080fd5b5061032261048c3660046128e0565b610ae5565b34801561049d57600080fd5b506016546102f29077010000000000000000000000000000000000000000000000900460ff1681565b3480156104d257600080fd5b50610322610b79565b3480156104e757600080fd5b506103516104f63660046128e0565b610be0565b34801561050757600080fd5b50610322610c02565b34801561051c57600080fd5b506102f261052b3660046128e0565b60056020526000908152604090205460ff1681565b34801561054c57600080fd5b5061035161055b3660046128e0565b600e6020526000908152604090205481565b34801561057957600080fd5b5061035160175481565b34801561058f57600080fd5b5061035161059e3660046128e0565b60106020526000908152604090205481565b3480156105bc57600080fd5b5060115461039b906001600160a01b031681565b3480156105dc57600080fd5b506000546001600160a01b031661039b565b3480156105fa57600080fd5b5060408051808201909152600781527f426973687546690000000000000000000000000000000000000000000000000060208201526102bc565b34801561064057600080fd5b506102f261064f3660046129c2565b610cbe565b34801561066057600080fd5b506016546102f2907801000000000000000000000000000000000000000000000000900460ff1681565b34801561069657600080fd5b5060145461039b906001600160a01b031681565b3480156106b657600080fd5b50610322610ccb565b3480156106cb57600080fd5b50610322610d3b565b3480156106e057600080fd5b50610322610dfe565b3480156106f557600080fd5b50610322610704366004612a28565b610e6e565b34801561071557600080fd5b506016546102f2907501000000000000000000000000000000000000000000900460ff1681565b34801561074857600080fd5b5060135461039b906001600160a01b031681565b34801561076857600080fd5b5061035161077736600461291a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ae57600080fd5b50610322610f71565b3480156107c357600080fd5b506103226107d2366004612994565b6113c7565b3480156107e357600080fd5b506016546102f29074010000000000000000000000000000000000000000900460ff1681565b600061081633848461146a565b5060015b92915050565b6000546001600160a01b0316331461087f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006108c68484846115c2565b610918843361091385604051806060016040528060288152602001612cb5602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611e1b565b61146a565b5060019392505050565b6000546001600160a01b0316331461097c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600854158015610a205750600954155b15610a2757565b600060088190556009819055600a819055600b55565b6000546001600160a01b03163314610a975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601680549115157801000000000000000000000000000000000000000000000000027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bd35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b47610bdd81611e55565b50565b6001600160a01b03811660009081526002602052604081205461081a90611eda565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60006108163384846115c2565b6000546001600160a01b03163314610d255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6000610d3030610be0565b9050610bdd81611f71565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6016547501000000000000000000000000000000000000000000900460ff16610dbd57600080fd5b601680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b600260088190556009556001600a819055600b55565b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b60008111610f185760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610876565b610f366064610f30683635c9adc5dea0000084612175565b90612210565b60178190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b601354601580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0390921691821790556110183082683635c9adc5dea0000061146a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561105157600080fd5b505afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108991906128fd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d157600080fd5b505afa1580156110e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110991906128fd565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a191906128fd565b601680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556015541663f305d71947306111e981610be0565b6000806111fe6000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112b29190612a41565b5050601680547fffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffffff81167801010001000000000000000000000000000000000000000000179091556729a2241af62c00006017556015546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b390604401602060405180830381600087803b15801561138b57600080fd5b505af115801561139f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c39190612a0b565b5050565b6000546001600160a01b031633146114215760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610876565b6001600160a01b0391909116600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6001600160a01b0383166114e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0382166115615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661163e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0382166116ba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610876565b600081116117305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610876565b600080546001600160a01b0385811691161480159061175d57506000546001600160a01b03848116911614155b15611da8576001600160a01b0384166000908152600c602052604090205460ff161580156117a457506001600160a01b0383166000908152600c602052604090205460ff16155b6117f05760405162461bcd60e51b815260206004820152600e60248201527f596f7520617265206120626f74210000000000000000000000000000000000006044820152606401610876565b6016546001600160a01b03858116911614801561181b57506015546001600160a01b03848116911614155b801561184057506001600160a01b03831660009081526005602052604090205460ff16155b801561186a57506016547801000000000000000000000000000000000000000000000000900460ff165b156119e05760165474010000000000000000000000000000000000000000900460ff166118d95760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206973206e6f74206f70656e210000000000000000000000006044820152606401610876565b6017548211156119515760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206c6172676572207468616e206d617820747820616d6f756e7460448201527f21000000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0383166000908152600d602052604090205442116119b85760405162461bcd60e51b815260206004820152601660248201527f5761697420666f722062757920636f6f6c646f776e21000000000000000000006044820152606401610876565b6119c342601e612b53565b6001600160a01b0384166000908152600d60205260409020555060015b601654760100000000000000000000000000000000000000000000900460ff16158015611a1a57506016546001600160a01b038481169116145b8015611a3457506015546001600160a01b03858116911614155b8015611a5d575060165477010000000000000000000000000000000000000000000000900460ff165b15611d2c57601654611a8b90606490610f3090600390611a85906001600160a01b0316610be0565b90612175565b8211158015611a9c57506017548211155b611b0e5760405162461bcd60e51b815260206004820152602a60248201527f536c697070616765206973206f76657220322e3925206f72206f766572204d6160448201527f785478416d6f756e7421000000000000000000000000000000000000000000006064820152608401610876565b6001600160a01b0384166000908152600e60205260409020544211611b755760405162461bcd60e51b815260206004820152601760248201527f5761697420666f722073656c6c20636f6f6c646f776e210000000000000000006044820152606401610876565b6001600160a01b0384166000908152600f60205260409020544290611b9d9062015180612b53565b1015611bbd576001600160a01b0384166000908152601060205260408120555b6001600160a01b038416600090815260106020526040902054611c21576001600160a01b0384166000908152600f602052604090204290819055611c0390610e10612b53565b6001600160a01b0385166000908152600e6020526040902055611cdc565b6001600160a01b03841660009081526010602052604090205460011415611c4e57611c0342611c20612b53565b6001600160a01b03841660009081526010602052604090205460021415611c7b57611c0342615460612b53565b6001600160a01b03841660009081526010602052604090205460031415611cdc576001600160a01b0384166000908152600f6020526040902054611cc29062015180612b53565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b038416600090815260106020526040902054611cfe90612252565b6001600160a01b0384166000908152601060205260408120805491611d2283612bfa565b9190505550600190505b6016546001600160a01b03848116911614611da8576001600160a01b0384166000908152600e60205260409020544211611da85760405162461bcd60e51b815260206004820152601760248201527f5761697420666f722073656c6c20636f6f6c646f776e210000000000000000006044820152606401610876565b6001600160a01b03841660009081526005602052604090205460ff1680611de757506001600160a01b03831660009081526005602052604090205460ff165b15611df0575060005b611dfc84848484612292565b611e15600260088190556009556001600a819055600b55565b50505050565b60008184841115611e3f5760405162461bcd60e51b81526004016108769190612a6f565b506000611e4c8486612be3565b95945050505050565b6011546001600160a01b03166108fc611e6f836002612210565b6040518115909202916000818181858888f19350505050158015611e97573d6000803e3d6000fd5b506012546001600160a01b03166108fc611eb2836002612210565b6040518115909202916000818181858888f193505050501580156113c3573d6000803e3d6000fd5b6000600654821115611f545760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610876565b6000611f5e6122c8565b9050611f6a8382612210565b9392505050565b601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff167601000000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611fe757611fe7612c62565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561205457600080fd5b505afa158015612068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208c91906128fd565b8160018151811061209f5761209f612c62565b6001600160a01b0392831660209182029290920101526015546120c5913091168461146a565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790612117908590600090869030904290600401612ae2565b600060405180830381600087803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b5050601680547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16905550505050565b6000826121845750600061081a565b60006121908385612ba6565b90508261219d8583612b6b565b14611f6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610876565b6000611f6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122eb565b8061225f57600360085550565b806001141561227057600660085550565b806002141561228157601160085550565b8060031415610bdd57601860085550565b8061229f5761229f610a10565b6122aa848484612319565b80611e1557611e15600260088190556009556001600a819055600b55565b60008060006122d5612645565b90925090506122e48282612210565b9250505090565b6000818361230c5760405162461bcd60e51b81526004016108769190612a6f565b506000611e4c8486612b6b565b60006123356064610f306008548561217590919063ffffffff16565b905060006123536064610f306009548661217590919063ffffffff16565b9050600061237160c8610f30600a548761217590919063ffffffff16565b9050600061238f60c8610f30600b548861217590919063ffffffff16565b905060006123ab826123a5858188818c8c612687565b90612687565b905060006123b76122c8565b905060006123c58883612175565b905060006123d38884612175565b905060006123e18885612175565b905060006123ef8886612175565b905060006123fd8887612175565b90506000612413826123a5858188818c8c612687565b90506124218f8f88846126c9565b61242a8b61273d565b6124338a61279d565b61243c896127fd565b612446858d61285d565b8d6001600160a01b03168f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a60405161248b91815260200190565b60405180910390a3601160009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167ff66369c8f94bab922b04533b82ce846253a410ac2636fafe651dedc8133509d78d6040516124ed91815260200190565b60405180910390a3601260009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167fca1677f804f862431f2dc8ef278f931a3d6b9da45ed59f98fbbdc93871e2084b8c60405161254f91815260200190565b60405180910390a38e6001600160a01b03167fc7d6f89597428d360a5f3fe92fcd36ac14e8c050d0c693437d7f0f73ef2585df8d6040516125ca91906040808252601e908201527f4665652073706c6974206265747765656e20616c6c20686f6c646572732100006060820152602081019190915260800190565b60405180910390a2601460009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b94538b60405161262c91815260200190565b60405180910390a3505050505050505050505050505050565b6006546000908190683635c9adc5dea000006126618282612210565b82101561267e57505060065492683635c9adc5dea0000092509050565b90939092509050565b6000611f6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1b565b6001600160a01b0384166000908152600260205260409020546126ec9083612687565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461271b9082612881565b6001600160a01b03909316600090815260026020526040902092909255505050565b60006127476122c8565b905060006127558383612175565b6011546001600160a01b031660009081526002602052604090205490915061277d9082612881565b6011546001600160a01b0316600090815260026020526040902055505050565b60006127a76122c8565b905060006127b58383612175565b6012546001600160a01b03166000908152600260205260409020549091506127dd9082612881565b6012546001600160a01b0316600090815260026020526040902055505050565b60006128076122c8565b905060006128158383612175565b6014546001600160a01b031660009081526002602052604090205490915061283d9082612881565b6014546001600160a01b0316600090815260026020526040902055505050565b60065461286a9083612687565b60065560075461287a9082612881565b6007555050565b60008061288e8385612b53565b905083811015611f6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610876565b6000602082840312156128f257600080fd5b8135611f6a81612c91565b60006020828403121561290f57600080fd5b8151611f6a81612c91565b6000806040838503121561292d57600080fd5b823561293881612c91565b9150602083013561294881612c91565b809150509250929050565b60008060006060848603121561296857600080fd5b833561297381612c91565b9250602084013561298381612c91565b929592945050506040919091013590565b600080604083850312156129a757600080fd5b82356129b281612c91565b9150602083013561294881612ca6565b600080604083850312156129d557600080fd5b82356129e081612c91565b946020939093013593505050565b600060208284031215612a0057600080fd5b8135611f6a81612ca6565b600060208284031215612a1d57600080fd5b8151611f6a81612ca6565b600060208284031215612a3a57600080fd5b5035919050565b600080600060608486031215612a5657600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612a9c57858101830151858201604001528201612a80565b81811115612aae576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b325784516001600160a01b031683529383019391830191600101612b0d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b6657612b66612c33565b500190565b600082612ba1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bde57612bde612c33565b500290565b600082821015612bf557612bf5612c33565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c2c57612c2c612c33565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b0381168114610bdd57600080fd5b8015158114610bdd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e352f4c06f5cee08f31932663330a2085438a422c0685ef0b82f6f4ee2e29c0f64736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000065b12e1d87a4242a6dd035889407e82dd54e45f10000000000000000000000000e8eaa9c410bc6c1613a13989a03304cb1888412000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564

-----Decoded View---------------
Arg [0] : addr1 (address): 0x65b12E1d87A4242a6dd035889407E82Dd54e45F1
Arg [1] : addr2 (address): 0x0e8eaa9c410bC6c1613a13989A03304CB1888412
Arg [2] : addr3 (address): 0xE592427A0AEce92De3Edee1F18E0157C05861564

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000065b12e1d87a4242a6dd035889407e82dd54e45f1
Arg [1] : 0000000000000000000000000e8eaa9c410bc6c1613a13989a03304cb1888412
Arg [2] : 000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564


Deployed Bytecode Sourcemap

5414:14950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7966:83;;;;;;;;;;-1:-1:-1;8036:5:0;;;;;;;;;;;;;;;;;7966:83;;;;;;;:::i;:::-;;;;;;;;8818:161;;;;;;;;;;-1:-1:-1;8818:161:0;;;;;:::i;:::-;;:::i;:::-;;;5247:14:1;;5240:22;5222:41;;5210:2;5195:18;8818:161:0;5177:92:1;9700:119:0;;;;;;;;;;-1:-1:-1;9700:119:0;;;;;:::i;:::-;;:::i;:::-;;6484:46;;;;;;;;;;-1:-1:-1;6484:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;12638:25:1;;;12626:2;12611:18;6484:46:0;12593:76:1;8243:95:0;;;;;;;;;;-1:-1:-1;5973:21:0;8243:95;;6773:38;;;;;;;;;;-1:-1:-1;6773:38:0;;;;-1:-1:-1;;;;;6773:38:0;;;;;;-1:-1:-1;;;;;3499:55:1;;;3481:74;;3469:2;3454:18;6773:38:0;3436:125:1;6591:44:0;;;;;;;;;;-1:-1:-1;6591:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;8987:310;;;;;;;;;;-1:-1:-1;8987:310:0;;;;;:::i;:::-;;:::i;8152:83::-;;;;;;;;;;-1:-1:-1;8152:83:0;;5650:1;13847:36:1;;13835:2;13820:18;8152:83:0;13802:87:1;9827:109:0;;;;;;;;;;-1:-1:-1;9827:109:0;;;;;:::i;:::-;;:::i;10758:200::-;;;;;;;;;;;;;:::i;9305:103::-;;;;;;;;;;-1:-1:-1;9305:103:0;;;;;:::i;:::-;;:::i;9579:113::-;;;;;;;;;;-1:-1:-1;9579:113:0;;;;;:::i;:::-;;:::i;7156:31::-;;;;;;;;;;-1:-1:-1;7156:31:0;;;;;;;;;;;16460:153;;;;;;;;;;;;;:::i;8346:138::-;;;;;;;;;;-1:-1:-1;8346:138:0;;;;;:::i;:::-;;:::i;4467:148::-;;;;;;;;;;;;;:::i;5832:50::-;;;;;;;;;;-1:-1:-1;5832:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6537:47;;;;;;;;;;-1:-1:-1;6537:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;7236:37;;;;;;;;;;;;;;;;6642:45;;;;;;;;;;-1:-1:-1;6642:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;6731:35;;;;;;;;;;-1:-1:-1;6731:35:0;;;;-1:-1:-1;;;;;6731:35:0;;;4253:79;;;;;;;;;;-1:-1:-1;4291:7:0;4318:6;-1:-1:-1;;;;;4318:6:0;4253:79;;8057:87;;;;;;;;;;-1:-1:-1;8129:7:0;;;;;;;;;;;;;;;;;8057:87;;8492:167;;;;;;;;;;-1:-1:-1;8492:167:0;;;;;:::i;:::-;;:::i;7194:35::-;;;;;;;;;;-1:-1:-1;7194:35:0;;;;;;;;;;;6854:89;;;;;;;;;;-1:-1:-1;6854:89:0;;;;-1:-1:-1;;;;;6854:89:0;;;16298:154;;;;;;;;;;;;;:::i;15436:111::-;;;;;;;;;;;;;:::i;10966:365::-;;;;;;;;;;;;;:::i;20106:255::-;;;;;;;;;;-1:-1:-1;20106:255:0;;;;;:::i;:::-;;:::i;7081:34::-;;;;;;;;;;-1:-1:-1;7081:34:0;;;;;;;;;;;6818:29;;;;;;;;;;-1:-1:-1;6818:29:0;;;;-1:-1:-1;;;;;6818:29:0;;;8667:143;;;;;;;;;;-1:-1:-1;8667:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8775:18:0;;;8748:7;8775:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8667:143;15555:735;;;;;;;;;;;;;:::i;9420:147::-;;;;;;;;;;-1:-1:-1;9420:147:0;;;;;:::i;:::-;;:::i;7043:31::-;;;;;;;;;;-1:-1:-1;7043:31:0;;;;;;;;;;;8818:161;8893:4;8910:39;1753:10;8933:7;8942:6;8910:8;:39::i;:::-;-1:-1:-1;8967:4:0;8818:161;;;;;:::o;9700:119::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;;;;;;;;;9785:15:::1;:26:::0;;;::::1;-1:-1:-1::0;;;;;9785:26:0;;;::::1;::::0;;;::::1;::::0;;9700:119::o;8987:310::-;9085:4;9102:36;9112:6;9120:9;9131:6;9102:9;:36::i;:::-;9149:118;9158:6;1753:10;9178:88;9216:6;9178:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9178:19:0;;;;;;:11;:19;;;;;;;;1753:10;9178:33;;;;;;;;;;:37;:88::i;:::-;9149:8;:118::i;:::-;-1:-1:-1;9285:4:0;8987:310;;;;;:::o;9827:109::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;9903:14:::1;:25:::0;;;::::1;-1:-1:-1::0;;;;;9903:25:0;;;::::1;::::0;;;::::1;::::0;;9827:109::o;10758:200::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;10819:7:::1;::::0;:12;:29;::::1;;;-1:-1:-1::0;10835:8:0::1;::::0;:13;10819:29:::1;10815:42;;;10758:200::o:0;10815:42::-:1;10877:1;10867:7;:11:::0;;;10889:8:::1;:12:::0;;;10912:11:::1;:15:::0;;;10938:8:::1;:12:::0;10758:200::o;9305:103::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;9377:15:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;9305:103::o;9579:113::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;9661:12:::1;:23:::0;;;::::1;-1:-1:-1::0;;;;;9661:23:0;;;::::1;::::0;;;::::1;::::0;;9579:113::o;16460:153::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;16541:21:::1;16573:32;16541:21:::0;16573:12:::1;:32::i;:::-;16501:112;16460:153::o:0;8346:138::-;-1:-1:-1;;;;;8459:16:0;;8412:7;8459:16;;;:7;:16;;;;;;8439:37;;:19;:37::i;4467:148::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;4574:1:::1;4558:6:::0;;4537:40:::1;::::0;-1:-1:-1;;;;;4558:6:0;;::::1;::::0;4537:40:::1;::::0;4574:1;;4537:40:::1;4605:1;4588:19:::0;;;::::1;::::0;;4467:148::o;8492:167::-;8570:4;8587:42;1753:10;8611:9;8622:6;8587:9;:42::i;16298:154::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;16350:23:::1;16376:24;16394:4;16376:9;:24::i;:::-;16350:50;;16411:33;16428:15;16411:16;:33::i;15436:111::-:0;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;15495:14:::1;::::0;;;::::1;;;15487:23;;;::::0;::::1;;15521:11;:18:::0;;;::::1;::::0;::::1;::::0;;15436:111::o;10966:365::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;11034:1:::1;11024:7;:11:::0;;;11046:8:::1;:12:::0;11191:1:::1;11177:11;:15:::0;;;11311:8:::1;:12:::0;10966:365::o;20106:255::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;20208:1:::1;20193:12;:16;20185:58;;;::::0;-1:-1:-1;;;20185:58:0;;8144:2:1;20185:58:0::1;::::0;::::1;8126:21:1::0;8183:2;8163:18;;;8156:30;8222:31;8202:18;;;8195:59;8271:18;;20185:58:0::1;8116:179:1::0;20185:58:0::1;20269:36;20299:5;20269:25;5973:21;20281:12:::0;20269:11:::1;:25::i;:::-;:29:::0;::::1;:36::i;:::-;20254:12;:51:::0;;;20321:32:::1;::::0;12638:25:1;;;20321:32:0::1;::::0;12626:2:1;12611:18;20321:32:0::1;;;;;;;20106:255:::0;:::o;15555:735::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;15668:14:::1;::::0;15694:15:::1;:34:::0;;;::::1;-1:-1:-1::0;;;;;15668:14:0;;::::1;15694:34:::0;;::::1;::::0;;15739:58:::1;15756:4;15668:14:::0;5973:21:::1;15739:8;:58::i;:::-;15842:16;-1:-1:-1::0;;;;;15842:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15824:56:0::1;;15889:4;15896:16;-1:-1:-1::0;;;;;15896:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15824:96;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;4066:15:1;;;15824:96:0::1;::::0;::::1;4048:34:1::0;4118:15;;4098:18;;;4091:43;3960:18;;15824:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15808:13;:112:::0;;;::::1;-1:-1:-1::0;;;;;15808:112:0;;::::1;;::::0;;15931:15:::1;::::0;::::1;:31;15970:21;16001:4;16007:24;16001:4:::0;16007:9:::1;:24::i;:::-;16032:1;16034::::0;16036:7:::1;4291::::0;4318:6;-1:-1:-1;;;;;4318:6:0;;4253:79;16036:7:::1;15931:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;4829:15:1;;;15931:129:0::1;::::0;::::1;4811:34:1::0;4861:18;;;4854:34;;;;4904:18;;;4897:34;;;;4947:18;;;4940:34;5011:15;;;4990:19;;;4983:44;16044:15:0::1;5043:19:1::0;;;5036:35;4722:19;;15931:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16071:11:0::1;:18:::0;;16133:21;;;;;;;;16180:18:::1;16071:11;16165:33:::0;16133:14:::1;16247:15:::0;16209:73:::1;::::0;;;;-1:-1:-1;;;;;16247:15:0;;::::1;16209:73;::::0;::::1;4319:74:1::0;-1:-1:-1;4409:18:1;;;4402:34;16216:13:0;;;-1:-1:-1;16209:29:0::1;::::0;4292:18:1;;16209:73:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15600:690;15555:735::o:0;9420:147::-;4380:6;;-1:-1:-1;;;;;4380:6:0;1753:10;4380:22;4372:67;;;;-1:-1:-1;;;4372:67:0;;10066:2:1;4372:67:0;;;10048:21:1;;;10085:18;;;10078:30;10144:34;10124:18;;;10117:62;10196:18;;4372:67:0;10038:182:1;4372:67:0;-1:-1:-1;;;;;9517:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:42;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;9420:147::o;11878:335::-;-1:-1:-1;;;;;11971:19:0;;11963:68;;;;-1:-1:-1;;;11963:68:0;;11937:2:1;11963:68:0;;;11919:21:1;11976:2;11956:18;;;11949:30;12015:34;11995:18;;;11988:62;12086:6;12066:18;;;12059:34;12110:19;;11963:68:0;11909:226:1;11963:68:0;-1:-1:-1;;;;;12050:21:0;;12042:68;;;;-1:-1:-1;;;12042:68:0;;6952:2:1;12042:68:0;;;6934:21:1;6991:2;6971:18;;;6964:30;7030:34;7010:18;;;7003:62;7101:4;7081:18;;;7074:32;7123:19;;12042:68:0;6924:224:1;12042:68:0;-1:-1:-1;;;;;12121:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12173:32;;12638:25:1;;;12173:32:0;;12611:18:1;12173:32:0;;;;;;;11878:335;;;:::o;12221:2629::-;-1:-1:-1;;;;;12309:18:0;;12301:68;;;;-1:-1:-1;;;12301:68:0;;11180:2:1;12301:68:0;;;11162:21:1;11219:2;11199:18;;;11192:30;11258:34;11238:18;;;11231:62;11329:7;11309:18;;;11302:35;11354:19;;12301:68:0;11152:227:1;12301:68:0;-1:-1:-1;;;;;12388:16:0;;12380:64;;;;-1:-1:-1;;;12380:64:0;;6137:2:1;12380:64:0;;;6119:21:1;6176:2;6156:18;;;6149:30;6215:34;6195:18;;;6188:62;6286:5;6266:18;;;6259:33;6309:19;;12380:64:0;6109:225:1;12380:64:0;12472:1;12463:6;:10;12455:64;;;;-1:-1:-1;;;12455:64:0;;10427:2:1;12455:64:0;;;10409:21:1;10466:2;10446:18;;;10439:30;10505:34;10485:18;;;10478:62;10576:11;10556:18;;;10549:39;10605:19;;12455:64:0;10399:231:1;12455:64:0;12530:12;4318:6;;-1:-1:-1;;;;;12567:15:0;;;4318:6;;12567:15;;;;:32;;-1:-1:-1;4291:7:0;4318:6;-1:-1:-1;;;;;12586:13:0;;;4318:6;;12586:13;;12567:32;12563:2082;;;-1:-1:-1;;;;;12625:10:0;;;;;;:4;:10;;;;;;;;12624:11;:24;;;;-1:-1:-1;;;;;;12640:8:0;;;;;;:4;:8;;;;;;;;12639:9;12624:24;12616:51;;;;-1:-1:-1;;;12616:51:0;;10837:2:1;12616:51:0;;;10819:21:1;10876:2;10856:18;;;10849:30;10915:16;10895:18;;;10888:44;10949:18;;12616:51:0;10809:164:1;12616:51:0;12745:13;;-1:-1:-1;;;;;12737:21:0;;;12745:13;;12737:21;:55;;;;-1:-1:-1;12776:15:0;;-1:-1:-1;;;;;12762:30:0;;;12776:15;;12762:30;;12737:55;:82;;;;-1:-1:-1;;;;;;12797:22:0;;;;;;:18;:22;;;;;;;;12796:23;12737:82;:101;;;;-1:-1:-1;12823:15:0;;;;;;;12737:101;12733:460;;;12867:11;;;;;;;12859:44;;;;-1:-1:-1;;;12859:44:0;;8904:2:1;12859:44:0;;;8886:21:1;8943:2;8923:18;;;8916:30;8982:22;8962:18;;;8955:50;9022:18;;12859:44:0;8876:170:1;12859:44:0;12940:12;;12930:6;:22;;12922:68;;;;-1:-1:-1;;;12922:68:0;;8502:2:1;12922:68:0;;;8484:21:1;8541:2;8521:18;;;8514:30;8580:34;8560:18;;;8553:62;8651:3;8631:18;;;8624:31;8672:19;;12922:68:0;8474:223:1;12922:68:0;-1:-1:-1;;;;;13017:15:0;;;;;;:11;:15;;;;;;13035;-1:-1:-1;13009:68:0;;;;-1:-1:-1;;;13009:68:0;;11586:2:1;13009:68:0;;;11568:21:1;11625:2;11605:18;;;11598:30;11664:24;11644:18;;;11637:52;11706:18;;13009:68:0;11558:172:1;13009:68:0;13114:30;:15;13133:10;13114:30;:::i;:::-;-1:-1:-1;;;;;13096:15:0;;;;;;:11;:15;;;;;:48;-1:-1:-1;13173:4:0;12733:460;13243:6;;;;;;;13242:7;:30;;;;-1:-1:-1;13259:13:0;;-1:-1:-1;;;;;13253:19:0;;;13259:13;;13253:19;13242:30;:66;;;;-1:-1:-1;13292:15:0;;-1:-1:-1;;;;;13276:32:0;;;13292:15;;13276:32;;13242:66;:81;;;;-1:-1:-1;13312:11:0;;;;;;;13242:81;13238:1200;;;13372:13;;13362:40;;13398:3;;13362:31;;13391:1;;13362:24;;-1:-1:-1;;;;;13372:13:0;13362:9;:24::i;:::-;:28;;:31::i;:40::-;13352:6;:50;;:76;;;;;13416:12;;13406:6;:22;;13352:76;13344:131;;;;-1:-1:-1;;;13344:131:0;;9655:2:1;13344:131:0;;;9637:21:1;9694:2;9674:18;;;9667:30;9733:34;9713:18;;;9706:62;9804:12;9784:18;;;9777:40;9834:19;;13344:131:0;9627:232:1;13344:131:0;-1:-1:-1;;;;;13502:18:0;;;;;;:12;:18;;;;;;13523:15;-1:-1:-1;13494:72:0;;;;-1:-1:-1;;;13494:72:0;;12342:2:1;13494:72:0;;;12324:21:1;12381:2;12361:18;;;12354:30;12420:25;12400:18;;;12393:53;12463:18;;13494:72:0;12314:173:1;13494:72:0;-1:-1:-1;;;;;13588:15:0;;;;;;:9;:15;;;;;;13617;;13588:26;;13607:6;13588:26;:::i;:::-;:44;13585:111;;;-1:-1:-1;;;;;13656:16:0;;13675:1;13656:16;;;:10;:16;;;;;:20;13585:111;-1:-1:-1;;;;;13718:16:0;;;;;;:10;:16;;;;;;13714:596;;-1:-1:-1;;;;;13764:15:0;;;;;;:9;:15;;;;;13782;13764:33;;;;13841:27;;13860:7;13841:27;:::i;:::-;-1:-1:-1;;;;;13820:18:0;;;;;;:12;:18;;;;;:48;13714:596;;;-1:-1:-1;;;;;13915:16:0;;;;;;:10;:16;;;;;;13935:1;13915:21;13911:399;;;13982:27;:15;14001:7;13982:27;:::i;13911:399::-;-1:-1:-1;;;;;14056:16:0;;;;;;:10;:16;;;;;;14076:1;14056:21;14052:258;;;14123:27;:15;14142:7;14123:27;:::i;14052:258::-;-1:-1:-1;;;;;14197:16:0;;;;;;:10;:16;;;;;;14217:1;14197:21;14193:117;;;-1:-1:-1;;;;;14264:15:0;;;;;;:9;:15;;;;;;:26;;14283:6;14264:26;:::i;:::-;-1:-1:-1;;;;;14243:18:0;;;;;;:12;:18;;;;;:47;14193:117;-1:-1:-1;;;;;14335:16:0;;;;;;:10;:16;;;;;;14328:24;;:6;:24::i;:::-;-1:-1:-1;;;;;14371:16:0;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;;;14418:4;14408:14;;13238:1200;14512:13;;-1:-1:-1;;;;;14506:19:0;;;14512:13;;14506:19;14502:132;;-1:-1:-1;;;;;14553:18:0;;;;;;:12;:18;;;;;;14574:15;-1:-1:-1;14545:72:0;;;;-1:-1:-1;;;14545:72:0;;12342:2:1;14545:72:0;;;12324:21:1;12381:2;12361:18;;;12354:30;12420:25;12400:18;;;12393:53;12463:18;;14545:72:0;12314:173:1;14545:72:0;-1:-1:-1;;;;;14669:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;14697:22:0;;;;;;:18;:22;;;;;;;;14669:50;14665:98;;;-1:-1:-1;14746:5:0;14665:98;14775:41;14790:4;14796:2;14800:6;14808:7;14775:14;:41::i;:::-;14827:15;11034:1:::1;11024:7;:11:::0;;;11046:8:::1;:12:::0;11191:1:::1;11177:11;:15:::0;;;11311:8:::1;:12:::0;10966:365;14827:15;12290:2560;12221:2629;;;:::o;3111:190::-;3197:7;3233:12;3225:6;;;;3217:29;;;;-1:-1:-1;;;3217:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3257:9:0;3269:5;3273:1;3269;:5;:::i;:::-;3257:17;3111:190;-1:-1:-1;;;;;3111:190:0:o;15273:151::-;15330:12;;-1:-1:-1;;;;;15330:12:0;:36;15352:13;:6;15363:1;15352:10;:13::i;:::-;15330:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15377:15:0;;-1:-1:-1;;;;;15377:15:0;:39;15402:13;:6;15413:1;15402:10;:13::i;:::-;15377:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9944:253;10012:7;10051;;10040;:18;;10032:72;;;;-1:-1:-1;;;10032:72:0;;6541:2:1;10032:72:0;;;6523:21:1;6580:2;6560:18;;;6553:30;6619:34;6599:18;;;6592:62;6690:12;6670:18;;;6663:40;6720:19;;10032:72:0;6513:232:1;10032:72:0;10115:19;10137:10;:8;:10::i;:::-;10115:32;-1:-1:-1;10165:24:0;:7;10115:32;10165:11;:24::i;:::-;10158:31;9944:253;-1:-1:-1;;;9944:253:0:o;14858:407::-;7365:6;:13;;;;;;;;14960:16:::1;::::0;;14974:1:::1;14960:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14960:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14960:16:0::1;14936:40;;15005:4;14987;14992:1;14987:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14987:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15031:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14987:7;;15031:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15021:4;15026:1;15021:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15021:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15096:15:::1;::::0;15064:62:::1;::::0;15081:4:::1;::::0;15096:15:::1;15114:11:::0;15064:8:::1;:62::i;:::-;15137:15;::::0;:120:::1;::::0;;;;-1:-1:-1;;;;;15137:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;15204:11;;15137:15:::1;::::0;15220:4;;15234::::1;::::0;15241:15:::1;::::0;15137:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7401:6:0;:14;;;;;;-1:-1:-1;;;;14858:407:0:o;3309:246::-;3367:7;3391:6;3387:47;;-1:-1:-1;3421:1:0;3414:8;;3387:47;3444:9;3456:5;3460:1;3456;:5;:::i;:::-;3444:17;-1:-1:-1;3489:1:0;3480:5;3484:1;3444:17;3480:5;:::i;:::-;:10;3472:56;;;;-1:-1:-1;;;3472:56:0;;9253:2:1;3472:56:0;;;9235:21:1;9292:2;9272:18;;;9265:30;9331:34;9311:18;;;9304:62;9402:3;9382:18;;;9375:31;9423:19;;3472:56:0;9225:223:1;3563:132:0;3621:7;3648:39;3652:1;3655;3648:39;;;;;;;;;;;;;;;;;:3;:39::i;11343:527::-;11402:15;11398:465;;11454:1;11470:7;:19;16501:112:::1;16460:153::o:0;11398:465::-;11520:10;11534:1;11520:15;11516:347;;;11572:1;11588:7;:19;16501:112:::1;16460:153::o:0;11516:347::-;11640:10;11654:1;11640:15;11636:227;;;11692:2;11709:7;:19;16501:112:::1;16460:153::o:0;11636:227::-;11761:10;11775:1;11761:15;11757:106;;;11813:2;11830:7;:19;11343:527;:::o;16621:239::-;16734:7;16729:28;;16743:14;:12;:14::i;:::-;16768:44;16786:6;16794:9;16805:6;16768:17;:44::i;:::-;16828:7;16823:29;;16837:15;11034:1:::1;11024:7;:11:::0;;;11046:8:::1;:12:::0;11191:1:::1;11177:11;:15:::0;;;11311:8:::1;:12:::0;10966:365;19669:164;19711:7;19732:15;19749;19768:19;:17;:19::i;:::-;19731:56;;-1:-1:-1;19731:56:0;-1:-1:-1;19805:20:0;19731:56;;19805:11;:20::i;:::-;19798:27;;;;19669:164;:::o;3703:189::-;3789:7;3824:12;3817:5;3809:28;;;;-1:-1:-1;;;3809:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3848:9:0;3860:5;3864:1;3860;:5;:::i;16868:1546::-;17072:12;17087:29;17112:3;17087:20;17099:7;;17087;:11;;:20;;;;:::i;:29::-;17072:44;;17131:13;17147:30;17173:3;17147:21;17159:8;;17147:7;:11;;:21;;;;:::i;:30::-;17131:46;;17236:16;17255:33;17284:3;17255:24;17267:11;;17255:7;:11;;:24;;;;:::i;:33::-;17236:52;;17303:13;17319:30;17345:3;17319:21;17331:8;;17319:7;:11;;:21;;;;:::i;:30::-;17303:46;-1:-1:-1;17380:23:0;17406:53;17303:46;17406:42;17439:8;17406:42;17428:5;17406:42;:7;17418:4;17406:11;:17::i;:::-;:21;;:28::i;:53::-;17380:79;;17502:19;17524:10;:8;:10::i;:::-;17502:32;-1:-1:-1;17549:15:0;17567:24;:7;17502:32;17567:11;:24::i;:::-;17549:42;-1:-1:-1;17606:12:0;17621:21;:4;17630:11;17621:8;:21::i;:::-;17606:36;-1:-1:-1;17657:13:0;17673:22;:5;17683:11;17673:9;:22::i;:::-;17657:38;-1:-1:-1;17710:16:0;17729:25;:8;17742:11;17729:12;:25::i;:::-;17710:44;-1:-1:-1;17769:13:0;17785:22;:5;17795:11;17785:9;:22::i;:::-;17769:38;-1:-1:-1;17822:23:0;17848:53;17769:38;17848:42;17881:8;17848:42;17870:5;17848:42;:7;17860:4;17848:11;:17::i;:53::-;17822:79;;17924:67;17950:6;17957:9;17967:7;17975:15;17924:25;:67::i;:::-;18002:16;18012:5;18002:9;:16::i;:::-;18029:22;18042:8;18029:12;:22::i;:::-;18062:16;18072:5;18062:9;:16::i;:::-;18089:23;18101:4;18107;18089:11;:23::i;:::-;18145:9;-1:-1:-1;;;;;18128:44:0;18137:6;-1:-1:-1;;;;;18128:44:0;;18156:15;18128:44;;;;12638:25:1;;12626:2;12611:18;;12593:76;18128:44:0;;;;;;;;18201:12;;;;;;;;;-1:-1:-1;;;;;18201:12:0;-1:-1:-1;;;;;18188:33:0;18193:6;-1:-1:-1;;;;;18188:33:0;;18215:5;18188:33;;;;12638:25:1;;12626:2;12611:18;;12593:76;18188:33:0;;;;;;;;18253:15;;;;;;;;;-1:-1:-1;;;;;18253:15:0;-1:-1:-1;;;;;18237:42:0;18245:6;-1:-1:-1;;;;;18237:42:0;;18270:8;18237:42;;;;12638:25:1;;12626:2;12611:18;;12593:76;18237:42:0;;;;;;;;18310:6;-1:-1:-1;;;;;18295:62:0;;18352:4;18295:62;;;;;7383:2:1;7365:21;;;7422:2;7402:18;;;7395:30;7461:32;7456:2;7441:18;;7434:60;7561:4;7546:20;;7539:36;;;;7526:3;7511:19;;7355:226;18295:62:0;;;;;;;;18386:12;;;;;;;;;-1:-1:-1;;;;;18386:12:0;-1:-1:-1;;;;;18373:33:0;18378:6;-1:-1:-1;;;;;18373:33:0;;18400:5;18373:33;;;;12638:25:1;;12626:2;12611:18;;12593:76;18373:33:0;;;;;;;;16955:1459;;;;;;;;;;;;16868:1546;;;:::o;19841:257::-;19939:7;;19892;;;;5973:21;20007:20;19939:7;5973:21;20007:11;:20::i;:::-;19997:7;:30;19993:61;;;-1:-1:-1;;20037:7:0;;;5973:21;;-1:-1:-1;19841:257:0;-1:-1:-1;19841:257:0:o;19993:61::-;20073:7;;20082;;-1:-1:-1;19841:257:0;-1:-1:-1;19841:257:0:o;2967:136::-;3025:7;3052:43;3056:1;3059;3052:43;;;;;;;;;;;;;;;;;:3;:43::i;19316:265::-;-1:-1:-1;;;;;19474:15:0;;;;;;:7;:15;;;;;;:28;;19494:7;19474:19;:28::i;:::-;-1:-1:-1;;;;;19456:15:0;;;;;;;:7;:15;;;;;;:46;;;;19533:18;;;;;;;:39;;19556:15;19533:22;:39::i;:::-;-1:-1:-1;;;;;19512:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;19316:265:0:o;18422:209::-;18475:19;18497:10;:8;:10::i;:::-;18475:32;-1:-1:-1;18518:13:0;18534:22;:5;18475:32;18534:9;:22::i;:::-;18599:12;;-1:-1:-1;;;;;18599:12:0;18591:21;;;;:7;:21;;;;;;18518:38;;-1:-1:-1;18591:32:0;;18518:38;18591:25;:32::i;:::-;18575:12;;-1:-1:-1;;;;;18575:12:0;18567:21;;;;:7;:21;;;;;:56;-1:-1:-1;;;18422:209:0:o;18659:230::-;18718:19;18740:10;:8;:10::i;:::-;18718:32;-1:-1:-1;18761:16:0;18780:25;:8;18718:32;18780:12;:25::i;:::-;18851:15;;-1:-1:-1;;;;;18851:15:0;18843:24;;;;:7;:24;;;;;;18761:44;;-1:-1:-1;18843:38:0;;18761:44;18843:28;:38::i;:::-;18824:15;;-1:-1:-1;;;;;18824:15:0;18816:24;;;;:7;:24;;;;;:65;-1:-1:-1;;;18659:230:0:o;18914:209::-;18967:19;18989:10;:8;:10::i;:::-;18967:32;-1:-1:-1;19010:13:0;19026:22;:5;18967:32;19026:9;:22::i;:::-;19091:12;;-1:-1:-1;;;;;19091:12:0;19083:21;;;;:7;:21;;;;;;19010:38;;-1:-1:-1;19083:32:0;;19010:38;19083:25;:32::i;:::-;19067:12;;-1:-1:-1;;;;;19067:12:0;19059:21;;;;:7;:21;;;;;:56;-1:-1:-1;;;18914:209:0:o;19131:147::-;19209:7;;:17;;19221:4;19209:11;:17::i;:::-;19199:7;:27;19250:10;;:20;;19265:4;19250:14;:20::i;:::-;19237:10;:33;-1:-1:-1;;19131:147:0:o;2780:179::-;2838:7;;2870:5;2874:1;2870;:5;:::i;:::-;2858:17;;2899:1;2894;:6;;2886:46;;;;-1:-1:-1;;;2886:46:0;;7788:2:1;2886:46:0;;;7770:21:1;7827:2;7807:18;;;7800:30;7866:29;7846:18;;;7839:57;7913:18;;2886:46:0;7760:177:1;14:247;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;782:388::-;850:6;858;911:2;899:9;890:7;886:23;882:32;879:2;;;927:1;924;917:12;879:2;966:9;953:23;985:31;1010:5;985:31;:::i;:::-;1035:5;-1:-1:-1;1092:2:1;1077:18;;1064:32;1105:33;1064:32;1105:33;:::i;:::-;1157:7;1147:17;;;869:301;;;;;:::o;1175:456::-;1252:6;1260;1268;1321:2;1309:9;1300:7;1296:23;1292:32;1289:2;;;1337:1;1334;1327:12;1289:2;1376:9;1363:23;1395:31;1420:5;1395:31;:::i;:::-;1445:5;-1:-1:-1;1502:2:1;1487:18;;1474:32;1515:33;1474:32;1515:33;:::i;:::-;1279:352;;1567:7;;-1:-1:-1;;;1621:2:1;1606:18;;;;1593:32;;1279:352::o;1636:382::-;1701:6;1709;1762:2;1750:9;1741:7;1737:23;1733:32;1730:2;;;1778:1;1775;1768:12;1730:2;1817:9;1804:23;1836:31;1861:5;1836:31;:::i;:::-;1886:5;-1:-1:-1;1943:2:1;1928:18;;1915:32;1956:30;1915:32;1956:30;:::i;2023:315::-;2091:6;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:2;;;2168:1;2165;2158:12;2120:2;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;2328:2;2313:18;;;;2300:32;;-1:-1:-1;;;2110:228:1:o;2343:241::-;2399:6;2452:2;2440:9;2431:7;2427:23;2423:32;2420:2;;;2468:1;2465;2458:12;2420:2;2507:9;2494:23;2526:28;2548:5;2526:28;:::i;2589:245::-;2656:6;2709:2;2697:9;2688:7;2684:23;2680:32;2677:2;;;2725:1;2722;2715:12;2677:2;2757:9;2751:16;2776:28;2798:5;2776:28;:::i;2839:180::-;2898:6;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2967:1;2964;2957:12;2919:2;-1:-1:-1;2990:23:1;;2909:110;-1:-1:-1;2909:110:1:o;3024:306::-;3112:6;3120;3128;3181:2;3169:9;3160:7;3156:23;3152:32;3149:2;;;3197:1;3194;3187:12;3149:2;3226:9;3220:16;3210:26;;3276:2;3265:9;3261:18;3255:25;3245:35;;3320:2;3309:9;3305:18;3299:25;3289:35;;3139:191;;;;;:::o;5274:656::-;5386:4;5415:2;5444;5433:9;5426:21;5476:6;5470:13;5519:6;5514:2;5503:9;5499:18;5492:34;5544:1;5554:140;5568:6;5565:1;5562:13;5554:140;;;5663:14;;;5659:23;;5653:30;5629:17;;;5648:2;5625:26;5618:66;5583:10;;5554:140;;;5712:6;5709:1;5706:13;5703:2;;;5782:1;5777:2;5768:6;5757:9;5753:22;5749:31;5742:42;5703:2;-1:-1:-1;5846:2:1;5834:15;5851:66;5830:88;5815:104;;;;5921:2;5811:113;;5395:535;-1:-1:-1;;;5395:535:1:o;12674:1026::-;12936:4;12984:3;12973:9;12969:19;13015:6;13004:9;12997:25;13041:2;13079:6;13074:2;13063:9;13059:18;13052:34;13122:3;13117:2;13106:9;13102:18;13095:31;13146:6;13181;13175:13;13212:6;13204;13197:22;13250:3;13239:9;13235:19;13228:26;;13289:2;13281:6;13277:15;13263:29;;13310:1;13320:218;13334:6;13331:1;13328:13;13320:218;;;13399:13;;-1:-1:-1;;;;;13395:62:1;13383:75;;13513:15;;;;13478:12;;;;13356:1;13349:9;13320:218;;;-1:-1:-1;;;;;;;13594:55:1;;;;13589:2;13574:18;;13567:83;-1:-1:-1;;;13681:3:1;13666:19;13659:35;13555:3;12945:755;-1:-1:-1;;;12945:755:1:o;13894:128::-;13934:3;13965:1;13961:6;13958:1;13955:13;13952:2;;;13971:18;;:::i;:::-;-1:-1:-1;14007:9:1;;13942:80::o;14027:274::-;14067:1;14093;14083:2;;14128:77;14125:1;14118:88;14229:4;14226:1;14219:15;14257:4;14254:1;14247:15;14083:2;-1:-1:-1;14286:9:1;;14073:228::o;14306:::-;14346:7;14472:1;14404:66;14400:74;14397:1;14394:81;14389:1;14382:9;14375:17;14371:105;14368:2;;;14479:18;;:::i;:::-;-1:-1:-1;14519:9:1;;14358:176::o;14539:125::-;14579:4;14607:1;14604;14601:8;14598:2;;;14612:18;;:::i;:::-;-1:-1:-1;14649:9:1;;14588:76::o;14669:195::-;14708:3;14739:66;14732:5;14729:77;14726:2;;;14809:18;;:::i;:::-;-1:-1:-1;14856:1:1;14845:13;;14716:148::o;14869:184::-;14921:77;14918:1;14911:88;15018:4;15015:1;15008:15;15042:4;15039:1;15032:15;15058:184;15110:77;15107:1;15100:88;15207:4;15204:1;15197:15;15231:4;15228:1;15221:15;15436:154;-1:-1:-1;;;;;15515:5:1;15511:54;15504:5;15501:65;15491:2;;15580:1;15577;15570:12;15595:118;15681:5;15674:13;15667:21;15660:5;15657:32;15647:2;;15703:1;15700;15693:12

Swarm Source

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