ETH Price: $3,009.31 (+4.46%)
Gas: 2 Gwei

Token

Democracy Land (DLAND)
 

Overview

Max Total Supply

100,000,000 DLAND

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
29,007.8797 DLAND

Value
$0.00
0x99186683823C18702e743e7d503cC45630666BEc
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
DEMOCRACYLAND

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-13
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.12;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr, uint256 confirm) public onlyOwner {
        require(confirm == 911911911,"Accidental Press"); // just paranoid
        require(adr != owner, "Already the owner");
        authorizations[owner] = false;
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract DEMOCRACYLAND is ERC20, Auth {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Democracy Land";
    string constant _symbol = "DLAND";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 100 * 10**6 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 200;
    uint256 public _maxWalletToken = _totalSupply / 100;

    mapping (address => uint256) _balances;

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

    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

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

    uint256 public liquidityFee = 2;
    uint256 public presidentFee = 1;
    uint256 public marketingFee = 3;
    uint256 public teamFee = 3;
    uint256 public devFee = 1;
    uint256 public totalFee = marketingFee + liquidityFee + teamFee + devFee + presidentFee;
    uint256 public constant feeDenominator = 100;

    uint256 sellMultiplier = 200;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 200;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public teamFeeReceiver;
    address public devFeeReceiver;
    address public presidentFeeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;
    bool public launchMode = true;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 1000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x81c172D71776Ef866550eb216Be2788D9f1456da;
        teamFeeReceiver = 0x861508edD3dEE9110B65FE66A0D01931C830F2e0;
        devFeeReceiver = 0x277BdadF7A82Ab1a9C5Cac664abfdF748aFF3486;
        presidentFeeReceiver = 0xbBB39c4C72410d113EfE1442026E061C509148E6;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;

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

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 1,"Cannot set max wallet less than 0.1%");
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000;
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 1,"Cannot set max transaction less than 0.1%");
        _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        // Blacklist
        if(blacklistMode){
            require(!isBlacklisted[sender],"Blacklisted");    
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf(recipient) + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        _balances[recipient] = _balances[recipient].add(amountReceived);


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        require(totalFee.mul(buyMultiplier).div(100) < 25, "Tax cannot be more than 24%");
        require(totalFee.mul(sellMultiplier).div(100) < 25, "Tax cannot be more than 24%");
    }

    // switch Trading
    function tradingStatus(bool _status) external onlyOwner {
        if(!_status){
            require(launchMode,"Cannot stop trading after launch is done");
        }
        tradingOpen = _status;
    }

    function tradingStatus_launchmode(uint256 confirm) external onlyOwner {
        require(confirm == 911911911,"Accidental Press"); // just paranoid
        require(tradingOpen,"Cant close launch mode when trading is disabled");
        launchMode = false;
    }

    function swapBack() internal swapping {
        uint256 amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);
        uint256 amountETHpresident = amountETH.mul(presidentFee).div(totalETHFee);

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(teamFeeReceiver).transfer(amountETHteam);
        payable(devFeeReceiver).transfer(amountETHDev);
        payable(presidentFeeReceiver).transfer(amountETHpresident);

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


    function manage_blacklist_status(bool _status) external onlyOwner {
        if(_status){
            require(launchMode,"Cannot turn on blacklistMode after launch is done");
        }
        blacklistMode = _status;
    }



    function manage_blacklist(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 201,"GAS Error: max limit is 200 addresses");
        if(status){
            require(launchMode,"Cannot manually blacklist after launch");
        }

        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
        }
    }

    function setFees(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _teamFee, uint256 _devFee, uint256 _presidentFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        teamFee = _teamFee;
        devFee = _devFee;
        presidentFee = _presidentFee;
        totalFee = _liquidityFee + _marketingFee + _teamFee + _devFee + _presidentFee;
        
        require(totalFee.mul(buyMultiplier).div(100) < 25, "Tax cannot be more than 24%");
        require(totalFee.mul(sellMultiplier).div(100) < 25, "Tax cannot be more than 24%");

    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _teamFeeReceiver, address _devFeeReceiver, address _presidentFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        presidentFeeReceiver = _presidentFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {
    require(launchMode,"Cannot execute this after launch is done");

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }

}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"manage_blacklist_status","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presidentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presidentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_presidentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_presidentFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"confirm","type":"uint256"}],"name":"tradingStatus_launchmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"},{"internalType":"uint256","name":"confirm","type":"uint256"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a620005a1565b62000041906305f5e100620005b9565b60055560c8600554620000559190620005db565b6006556064600554620000699190620005db565b600755600a805460ff191660019081179091556002600f819055601082905560036011819055601281905560138390558291620000a79082620005fe565b620000b39190620005fe565b620000bf9190620005fe565b620000cb9190620005fe565b60145560c860158190556064601655601755601e805462ffffff60a01b191661010160a81b1790556005546103e89062000107906001620005b9565b620001139190620005db565b601f553480156200012357600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601d8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000619565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000255919062000619565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cd919062000619565b601e80546001600160a01b039283166001600160a01b031991821617909155306000818152600960209081526040808320601d548716845282528083206000199055601880548616339081179091556019805487167381c172d71776ef866550eb216be2788d9f1456da178155601a8054881673861508edd3dee9110b65fe66a0d01931c830f2e0179055601b8054881673277bdadf7a82ab1a9c5cac664abfdf748aff3486179055601c805490971673bbb39c4c72410d113efe1442026e061c509148e617909655808452600c8352818420805460ff199081166001908117909255600d85528386208054821683179055600380548a16875284872080548316841790556004548a168752848720805483168417905588548a1687528487208054831684179055838752600e8652848720805483168417905596865283862080548216831790559554881685528285208054871682179055955490961683528083208054909416909417909255600554848252600890925282812082905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200047e9190815260200190565b60405180910390a362000644565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004e3578160001904821115620004c757620004c76200048c565b80851615620004d557918102915b93841c9390800290620004a7565b509250929050565b600082620004fc575060016200059b565b816200050b575060006200059b565b81600181146200052457600281146200052f576200054f565b60019150506200059b565b60ff8411156200054357620005436200048c565b50506001821b6200059b565b5060208310610133831016604e8410600b841016171562000574575081810a6200059b565b620005808383620004a2565b80600019048211156200059757620005976200048c565b0290505b92915050565b6000620005b260ff841683620004eb565b9392505050565b6000816000190483118215151615620005d657620005d66200048c565b500290565b600082620005f957634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200061457620006146200048c565b500190565b6000602082840312156200062c57600080fd5b81516001600160a01b0381168114620005b257600080fd5b612ed580620006546000396000f3fe6080604052600436106103835760003560e01c806370a08231116101d1578063b37dd69011610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610ab0578063fe575a8714610ad0578063fe9fbb8014610b00578063ffb54a9914610b2057600080fd5b8063dd62ed3e14610a0a578063df20fd4914610a50578063e96fada214610a70578063f0b37c0414610a9057600080fd5b8063c867d60b116100dc578063c867d60b14610984578063ca33e64c146109b4578063d7c94efd146109d4578063dab84ee7146109ea57600080fd5b8063b37dd69014610923578063b6a5d7de14610944578063bd9ab5371461096457600080fd5b80638e2eee841161016f5780639cd1aef1116101495780639cd1aef1146108a35780639d14c23a146108c3578063a8aa1b31146108e3578063a9059cbb1461090357600080fd5b80638e2eee841461083f57806395d89b411461085f57806398118cb41461088d57600080fd5b80637d1db4a5116101ab5780637d1db4a5146107c1578063893d20e8146107d7578063896648c1146107f55780638b42507f1461080f57600080fd5b806370a082311461075557806377b54bad1461078b57806378109e54146107ab57600080fd5b80631da1db5e116102b65780633f4218e0116102545780636827e764116102235780636827e764146106e85780636b67c4df146106fe5780636ce46bc3146107145780636ddd17131461073457600080fd5b80633f4218e01461064057806340291143146106705780634be9d869146106a8578063571ac8b0146106c857600080fd5b80632729e315116102905780632729e315146105ca5780632b112e49146105e05780632f54bf6e146105f5578063313ce5671461062457600080fd5b80631da1db5e146105745780631df4ccfc1461059457806323b872dd146105aa57600080fd5b8063095ea7b311610323578063180b0d7e116102fd578063180b0d7e1461050a57806318160ddd1461051f57806318abb635146105345780631ca0a28d1461055457600080fd5b8063095ea7b31461049a5780630a276680146104ca5780630d295980146104ea57600080fd5b80630445b6671161035f5780630445b667146103f157806304a66b481461041a57806306fdde031461043a57806309302dc61461047a57600080fd5b80621086831461038f578062bff446146103b1578063034fc0b7146103d157600080fd5b3661038a57005b600080fd5b34801561039b57600080fd5b506103af6103aa36600461291f565b610b41565b005b3480156103bd57600080fd5b506103af6103cc36600461291f565b610c05565b3480156103dd57600080fd5b506103af6103ec366004612976565b610cba565b3480156103fd57600080fd5b50610407601f5481565b6040519081526020015b60405180910390f35b34801561042657600080fd5b506103af610435366004612993565b610d70565b34801561044657600080fd5b5060408051808201909152600e81526d11195b5bd8dc9858de4813185b9960921b60208201525b60405161041191906129ce565b34801561048657600080fd5b506103af610495366004612a23565b610e5e565b3480156104a657600080fd5b506104ba6104b5366004612a51565b610f06565b6040519015158152602001610411565b3480156104d657600080fd5b506103af6104e5366004612a51565b610f73565b3480156104f657600080fd5b506103af610505366004612976565b6110b6565b34801561051657600080fd5b50610407606481565b34801561052b57600080fd5b50600554610407565b34801561054057600080fd5b506103af61054f366004612a7d565b61116d565b34801561056057600080fd5b506103af61056f366004612aee565b6111f6565b34801561058057600080fd5b506103af61058f366004612a23565b611474565b3480156105a057600080fd5b5061040760145481565b3480156105b657600080fd5b506104ba6105c5366004612b71565b6114e6565b3480156105d657600080fd5b5061040760105481565b3480156105ec57600080fd5b506104076115a8565b34801561060157600080fd5b506104ba610610366004612bb2565b6000546001600160a01b0391821691161490565b34801561063057600080fd5b5060405160048152602001610411565b34801561064c57600080fd5b506104ba61065b366004612bb2565b600c6020526000908152604090205460ff1681565b34801561067c57600080fd5b50601a54610690906001600160a01b031681565b6040516001600160a01b039091168152602001610411565b3480156106b457600080fd5b506103af6106c336600461291f565b6115fa565b3480156106d457600080fd5b506104ba6106e3366004612bb2565b6116af565b3480156106f457600080fd5b5061040760135481565b34801561070a57600080fd5b5061040760115481565b34801561072057600080fd5b506103af61072f366004612bcf565b6116bd565b34801561074057600080fd5b50601e546104ba90600160b01b900460ff1681565b34801561076157600080fd5b50610407610770366004612bb2565b6001600160a01b031660009081526008602052604090205490565b34801561079757600080fd5b506104ba6107a6366004612a51565b611760565b3480156107b757600080fd5b5061040760075481565b3480156107cd57600080fd5b5061040760065481565b3480156107e357600080fd5b506000546001600160a01b0316610690565b34801561080157600080fd5b50600a546104ba9060ff1681565b34801561081b57600080fd5b506104ba61082a366004612bb2565b600d6020526000908152604090205460ff1681565b34801561084b57600080fd5b506103af61085a36600461291f565b61186c565b34801561086b57600080fd5b50604080518082019091526005815264111310539160da1b602082015261046d565b34801561089957600080fd5b50610407600f5481565b3480156108af57600080fd5b506103af6108be366004612a23565b6119d1565b3480156108cf57600080fd5b50601c54610690906001600160a01b031681565b3480156108ef57600080fd5b50601e54610690906001600160a01b031681565b34801561090f57600080fd5b506104ba61091e366004612a51565b611ac2565b34801561092f57600080fd5b50601e546104ba90600160a81b900460ff1681565b34801561095057600080fd5b506103af61095f366004612bb2565b611acf565b34801561097057600080fd5b506103af61097f366004612a23565b611b20565b34801561099057600080fd5b506104ba61099f366004612bb2565b600e6020526000908152604090205460ff1681565b3480156109c057600080fd5b50601854610690906001600160a01b031681565b3480156109e057600080fd5b5061040760125481565b3480156109f657600080fd5b50601b54610690906001600160a01b031681565b348015610a1657600080fd5b50610407610a25366004612bfb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a5c57600080fd5b506103af610a6b366004612c34565b611bce565b348015610a7c57600080fd5b50601954610690906001600160a01b031681565b348015610a9c57600080fd5b506103af610aab366004612bb2565b611c1a565b348015610abc57600080fd5b50601d54610690906001600160a01b031681565b348015610adc57600080fd5b506104ba610aeb366004612bb2565b600b6020526000908152604090205460ff1681565b348015610b0c57600080fd5b506104ba610b1b366004612bb2565b611cc3565b348015610b2c57600080fd5b50601e546104ba90600160a01b900460ff1681565b610b4a33611cc3565b610b6f5760405162461bcd60e51b8152600401610b6690612c52565b60405180910390fd5b6101f58210610b905760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600e6000868685818110610bb257610bb2612cbc565b9050602002016020810190610bc79190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bf881612ce8565b9050610b93565b50505050565b610c0e33611cc3565b610c2a5760405162461bcd60e51b8152600401610b6690612c52565b6101f58210610c4b5760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600c6000868685818110610c6d57610c6d612cbc565b9050602002016020810190610c829190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cb381612ce8565b9050610c4e565b6000546001600160a01b03163314610ce45760405162461bcd60e51b8152600401610b6690612d03565b8015610d5d57601e54600160a81b900460ff16610d5d5760405162461bcd60e51b815260206004820152603160248201527f43616e6e6f74207475726e206f6e20626c61636b6c6973744d6f6465206166746044820152706572206c61756e636820697320646f6e6560781b6064820152608401610b66565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610b6690612d03565b600f8590556011849055601283905560138290556010819055808284610dc08789612d23565b610dca9190612d23565b610dd49190612d23565b610dde9190612d23565b6014819055601654601991610dff91606491610df991611ce1565b90611d60565b10610e1c5760405162461bcd60e51b8152600401610b6690612d3b565b6019610e3a6064610df9601554601454611ce190919063ffffffff16565b10610e575760405162461bcd60e51b8152600401610b6690612d3b565b5050505050565b6000546001600160a01b03163314610e885760405162461bcd60e51b8152600401610b6690612d03565b6001811015610ee55760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610b66565b6103e881600554610ef69190612d72565b610f009190612d91565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f619086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610f9d5760405162461bcd60e51b8152600401610b6690612d03565b8063365aabe714610fe35760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b66565b6000546001600160a01b03838116911614156110355760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610b66565b600080546001600160a01b039081168252600160208181526040808520805460ff1990811690915585546001600160a01b0319169488169485178655848652948190208054909516909217909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a15050565b6000546001600160a01b031633146110e05760405162461bcd60e51b8152600401610b6690612d03565b8061114f57601e54600160a81b900460ff1661114f5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b66565b601e8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146111975760405162461bcd60e51b8152600401610b6690612d03565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601b80548416918516919091179055601c80549092169216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b8152600401610b6690612d03565b601e54600160a81b900460ff1661128a5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b66565b6101f583106112f15760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610b66565b8281146113515760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610b66565b6000805b848110156113955783838281811061136f5761136f612cbc565b90506020020135826113819190612d23565b91508061138d81612ce8565b915050611355565b50806113b6876001600160a01b031660009081526008602052604090205490565b10156114045760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b66565b60005b8481101561146b576114588787878481811061142557611425612cbc565b905060200201602081019061143a9190612bb2565b86868581811061144c5761144c612cbc565b90506020020135611da2565b508061146381612ce8565b915050611407565b50505050505050565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610b6690612d03565b47336108fc60646114af8585612d72565b6114b99190612d91565b6040518115909202916000818181858888f193505050501580156114e1573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611593576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461156e918490611e88565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61159e848484611ec2565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546115f5906003546001600160a01b03166000908152600860205260409020546115ef90600554906122c3565b906122c3565b905090565b61160333611cc3565b61161f5760405162461bcd60e51b8152600401610b6690612c52565b6101f582106116405760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600d600086868581811061166257611662612cbc565b90506020020160208101906116779190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116a881612ce8565b9050611643565b6000610f6d82600019610f06565b6116c633611cc3565b6116e25760405162461bcd60e51b8152600401610b6690612c52565b60158290556016839055601781905560145460199061170890606490610df99087611ce1565b106117255760405162461bcd60e51b8152600401610b6690612d3b565b60196117436064610df9601554601454611ce190919063ffffffff16565b106114e15760405162461bcd60e51b8152600401610b6690612d3b565b600080546001600160a01b0316331461178b5760405162461bcd60e51b8152600401610b6690612d03565b816117fb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156117d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190612db3565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611848573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a19190612dcc565b6000546001600160a01b031633146118965760405162461bcd60e51b8152600401610b6690612d03565b60c982106118f45760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203230302061646472604482015264657373657360d81b6064820152608401610b66565b801561196257601e54600160a81b900460ff166119625760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f74206d616e75616c6c7920626c61636b6c697374206166746572206044820152650d8c2eadcc6d60d31b6064820152608401610b66565b60005b82811015610bff5781600b600086868581811061198457611984612cbc565b90506020020160208101906119999190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556119ca81612ce8565b9050611965565b6000546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610b6690612d03565b8063365aabe714611a415760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b66565b601e54600160a01b900460ff16611ab25760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610b66565b50601e805460ff60a81b19169055565b60006115a1338484611ec2565b6000546001600160a01b03163314611af95760405162461bcd60e51b8152600401610b6690612d03565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611b4a5760405162461bcd60e51b8152600401610b6690612d03565b6001811015611bad5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610b66565b6103e881600554611bbe9190612d72565b611bc89190612d91565b60065550565b6000546001600160a01b03163314611bf85760405162461bcd60e51b8152600401610b6690612d03565b601e8054921515600160b01b0260ff60b01b1990931692909217909155601f55565b6000546001600160a01b03163314611c445760405162461bcd60e51b8152600401610b6690612d03565b6000546001600160a01b0382811691161415611ca25760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610b66565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600082611cf057506000610f6d565b6000611cfc8385612d72565b905082611d098583612d91565b146115a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b66565b60006115a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612305565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611df3918490611e88565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e229083612333565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e769086815260200190565b60405180910390a35060019392505050565b60008184841115611eac5760405162461bcd60e51b8152600401610b6691906129ce565b506000611eb98486612de9565b95945050505050565b60205460009060ff1615611ee257611edb848484611da2565b90506115a1565b6001600160a01b03841660009081526001602052604090205460ff16158015611f2457506001600160a01b03831660009081526001602052604090205460ff16155b15611f7957601e54600160a01b900460ff16611f795760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b66565b600a5460ff1615611fdb576001600160a01b0384166000908152600b602052604090205460ff1615611fdb5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b66565b6001600160a01b03841660009081526001602052604090205460ff1615801561201d57506001600160a01b0384166000908152600e602052604090205460ff16155b801561204257506001600160a01b0383166000908152600e602052604090205460ff16155b801561205c5750601e546001600160a01b03848116911614155b156120dc5760075482612084856001600160a01b031660009081526008602052604090205490565b61208e9190612d23565b11156120dc5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610b66565b6006548211158061210557506001600160a01b0384166000908152600d602052604090205460ff165b8061212857506001600160a01b0383166000908152600d602052604090205460ff165b61216c5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610b66565b612174612392565b15612181576121816123e8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546121d3918490611e88565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff168061222057506001600160a01b0384166000908152600c602052604090205460ff165b6122345761222f8584866127c2565b612236565b825b6001600160a01b03851660009081526008602052604090205490915061225c9082612333565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122b09085815260200190565b60405180910390a3506001949350505050565b60006115a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e88565b600081836123265760405162461bcd60e51b8152600401610b6691906129ce565b506000611eb98486612d91565b6000806123408385612d23565b9050838110156115a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b66565b601e546000906001600160a01b031633148015906123b3575060205460ff16155b80156123c85750601e54600160b01b900460ff165b80156115f5575050601f5430600090815260086020526040902054101590565b6020805460ff19166001179055601454600f54601f5460009261241592600292610df99291839190611ce1565b9050600061242e82601f546122c390919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061246857612468612cbc565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061249957612499612cbc565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906124e3908690600090879030904290600401612e00565b600060405180830381600087803b1580156124fd57600080fd5b505af1158015612511573d6000803e3d6000fd5b50505050600061252a82476122c390919063ffffffff16565b905060006125506125476002600f54611d6090919063ffffffff16565b601454906122c3565b905060006125726002610df984610df9600f5488611ce190919063ffffffff16565b9050600061258f83610df960115487611ce190919063ffffffff16565b905060006125ac84610df960125488611ce190919063ffffffff16565b905060006125c985610df960135489611ce190919063ffffffff16565b905060006125e686610df96010548a611ce190919063ffffffff16565b6019546040519192506001600160a01b03169085156108fc029086906000818181858888f19350505050158015612621573d6000803e3d6000fd5b50601a546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561265c573d6000803e3d6000fd5b50601b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612697573d6000803e3d6000fd5b50601c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126d2573d6000803e3d6000fd5b508a156127ab57601d5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015612749573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061276e9190612e71565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506020805460ff19169055505050505050505050565b601754601e54600091906001600160a01b03848116911614156127e85750601554612803565b601e546001600160a01b038681169116141561280357506016545b6000612832612813606480612d72565b610df98461282c6014548a611ce190919063ffffffff16565b90611ce1565b905080156128ae57306000908152600860205260409020546128549082612333565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128a59085815260200190565b60405180910390a35b6128b885826122c3565b9695505050505050565b60008083601f8401126128d457600080fd5b50813567ffffffffffffffff8111156128ec57600080fd5b6020830191508360208260051b850101111561290757600080fd5b9250929050565b801515811461291c57600080fd5b50565b60008060006040848603121561293457600080fd5b833567ffffffffffffffff81111561294b57600080fd5b612957868287016128c2565b909450925050602084013561296b8161290e565b809150509250925092565b60006020828403121561298857600080fd5b81356115a18161290e565b600080600080600060a086880312156129ab57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156129fb578581018301518582016040015282016129df565b81811115612a0d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612a3557600080fd5b5035919050565b6001600160a01b038116811461291c57600080fd5b60008060408385031215612a6457600080fd5b8235612a6f81612a3c565b946020939093013593505050565b600080600080600060a08688031215612a9557600080fd5b8535612aa081612a3c565b94506020860135612ab081612a3c565b93506040860135612ac081612a3c565b92506060860135612ad081612a3c565b91506080860135612ae081612a3c565b809150509295509295909350565b600080600080600060608688031215612b0657600080fd5b8535612b1181612a3c565b9450602086013567ffffffffffffffff80821115612b2e57600080fd5b612b3a89838a016128c2565b90965094506040880135915080821115612b5357600080fd5b50612b60888289016128c2565b969995985093965092949392505050565b600080600060608486031215612b8657600080fd5b8335612b9181612a3c565b92506020840135612ba181612a3c565b929592945050506040919091013590565b600060208284031215612bc457600080fd5b81356115a181612a3c565b600080600060608486031215612be457600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612c0e57600080fd5b8235612c1981612a3c565b91506020830135612c2981612a3c565b809150509250929050565b60008060408385031215612c4757600080fd5b8235612a6f8161290e565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612cfc57612cfc612cd2565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008219821115612d3657612d36612cd2565b500190565b6020808252601b908201527f5461782063616e6e6f74206265206d6f7265207468616e203234250000000000604082015260600190565b6000816000190483118215151615612d8c57612d8c612cd2565b500290565b600082612dae57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dc557600080fd5b5051919050565b600060208284031215612dde57600080fd5b81516115a18161290e565b600082821015612dfb57612dfb612cd2565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e505784516001600160a01b031683529383019391830191600101612e2b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e8657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e7673b1f8504c3f46092490986c560130473a56e0eda6e2244f2ce1b0d50403464736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106103835760003560e01c806370a08231116101d1578063b37dd69011610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610ab0578063fe575a8714610ad0578063fe9fbb8014610b00578063ffb54a9914610b2057600080fd5b8063dd62ed3e14610a0a578063df20fd4914610a50578063e96fada214610a70578063f0b37c0414610a9057600080fd5b8063c867d60b116100dc578063c867d60b14610984578063ca33e64c146109b4578063d7c94efd146109d4578063dab84ee7146109ea57600080fd5b8063b37dd69014610923578063b6a5d7de14610944578063bd9ab5371461096457600080fd5b80638e2eee841161016f5780639cd1aef1116101495780639cd1aef1146108a35780639d14c23a146108c3578063a8aa1b31146108e3578063a9059cbb1461090357600080fd5b80638e2eee841461083f57806395d89b411461085f57806398118cb41461088d57600080fd5b80637d1db4a5116101ab5780637d1db4a5146107c1578063893d20e8146107d7578063896648c1146107f55780638b42507f1461080f57600080fd5b806370a082311461075557806377b54bad1461078b57806378109e54146107ab57600080fd5b80631da1db5e116102b65780633f4218e0116102545780636827e764116102235780636827e764146106e85780636b67c4df146106fe5780636ce46bc3146107145780636ddd17131461073457600080fd5b80633f4218e01461064057806340291143146106705780634be9d869146106a8578063571ac8b0146106c857600080fd5b80632729e315116102905780632729e315146105ca5780632b112e49146105e05780632f54bf6e146105f5578063313ce5671461062457600080fd5b80631da1db5e146105745780631df4ccfc1461059457806323b872dd146105aa57600080fd5b8063095ea7b311610323578063180b0d7e116102fd578063180b0d7e1461050a57806318160ddd1461051f57806318abb635146105345780631ca0a28d1461055457600080fd5b8063095ea7b31461049a5780630a276680146104ca5780630d295980146104ea57600080fd5b80630445b6671161035f5780630445b667146103f157806304a66b481461041a57806306fdde031461043a57806309302dc61461047a57600080fd5b80621086831461038f578062bff446146103b1578063034fc0b7146103d157600080fd5b3661038a57005b600080fd5b34801561039b57600080fd5b506103af6103aa36600461291f565b610b41565b005b3480156103bd57600080fd5b506103af6103cc36600461291f565b610c05565b3480156103dd57600080fd5b506103af6103ec366004612976565b610cba565b3480156103fd57600080fd5b50610407601f5481565b6040519081526020015b60405180910390f35b34801561042657600080fd5b506103af610435366004612993565b610d70565b34801561044657600080fd5b5060408051808201909152600e81526d11195b5bd8dc9858de4813185b9960921b60208201525b60405161041191906129ce565b34801561048657600080fd5b506103af610495366004612a23565b610e5e565b3480156104a657600080fd5b506104ba6104b5366004612a51565b610f06565b6040519015158152602001610411565b3480156104d657600080fd5b506103af6104e5366004612a51565b610f73565b3480156104f657600080fd5b506103af610505366004612976565b6110b6565b34801561051657600080fd5b50610407606481565b34801561052b57600080fd5b50600554610407565b34801561054057600080fd5b506103af61054f366004612a7d565b61116d565b34801561056057600080fd5b506103af61056f366004612aee565b6111f6565b34801561058057600080fd5b506103af61058f366004612a23565b611474565b3480156105a057600080fd5b5061040760145481565b3480156105b657600080fd5b506104ba6105c5366004612b71565b6114e6565b3480156105d657600080fd5b5061040760105481565b3480156105ec57600080fd5b506104076115a8565b34801561060157600080fd5b506104ba610610366004612bb2565b6000546001600160a01b0391821691161490565b34801561063057600080fd5b5060405160048152602001610411565b34801561064c57600080fd5b506104ba61065b366004612bb2565b600c6020526000908152604090205460ff1681565b34801561067c57600080fd5b50601a54610690906001600160a01b031681565b6040516001600160a01b039091168152602001610411565b3480156106b457600080fd5b506103af6106c336600461291f565b6115fa565b3480156106d457600080fd5b506104ba6106e3366004612bb2565b6116af565b3480156106f457600080fd5b5061040760135481565b34801561070a57600080fd5b5061040760115481565b34801561072057600080fd5b506103af61072f366004612bcf565b6116bd565b34801561074057600080fd5b50601e546104ba90600160b01b900460ff1681565b34801561076157600080fd5b50610407610770366004612bb2565b6001600160a01b031660009081526008602052604090205490565b34801561079757600080fd5b506104ba6107a6366004612a51565b611760565b3480156107b757600080fd5b5061040760075481565b3480156107cd57600080fd5b5061040760065481565b3480156107e357600080fd5b506000546001600160a01b0316610690565b34801561080157600080fd5b50600a546104ba9060ff1681565b34801561081b57600080fd5b506104ba61082a366004612bb2565b600d6020526000908152604090205460ff1681565b34801561084b57600080fd5b506103af61085a36600461291f565b61186c565b34801561086b57600080fd5b50604080518082019091526005815264111310539160da1b602082015261046d565b34801561089957600080fd5b50610407600f5481565b3480156108af57600080fd5b506103af6108be366004612a23565b6119d1565b3480156108cf57600080fd5b50601c54610690906001600160a01b031681565b3480156108ef57600080fd5b50601e54610690906001600160a01b031681565b34801561090f57600080fd5b506104ba61091e366004612a51565b611ac2565b34801561092f57600080fd5b50601e546104ba90600160a81b900460ff1681565b34801561095057600080fd5b506103af61095f366004612bb2565b611acf565b34801561097057600080fd5b506103af61097f366004612a23565b611b20565b34801561099057600080fd5b506104ba61099f366004612bb2565b600e6020526000908152604090205460ff1681565b3480156109c057600080fd5b50601854610690906001600160a01b031681565b3480156109e057600080fd5b5061040760125481565b3480156109f657600080fd5b50601b54610690906001600160a01b031681565b348015610a1657600080fd5b50610407610a25366004612bfb565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a5c57600080fd5b506103af610a6b366004612c34565b611bce565b348015610a7c57600080fd5b50601954610690906001600160a01b031681565b348015610a9c57600080fd5b506103af610aab366004612bb2565b611c1a565b348015610abc57600080fd5b50601d54610690906001600160a01b031681565b348015610adc57600080fd5b506104ba610aeb366004612bb2565b600b6020526000908152604090205460ff1681565b348015610b0c57600080fd5b506104ba610b1b366004612bb2565b611cc3565b348015610b2c57600080fd5b50601e546104ba90600160a01b900460ff1681565b610b4a33611cc3565b610b6f5760405162461bcd60e51b8152600401610b6690612c52565b60405180910390fd5b6101f58210610b905760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600e6000868685818110610bb257610bb2612cbc565b9050602002016020810190610bc79190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bf881612ce8565b9050610b93565b50505050565b610c0e33611cc3565b610c2a5760405162461bcd60e51b8152600401610b6690612c52565b6101f58210610c4b5760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600c6000868685818110610c6d57610c6d612cbc565b9050602002016020810190610c829190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610cb381612ce8565b9050610c4e565b6000546001600160a01b03163314610ce45760405162461bcd60e51b8152600401610b6690612d03565b8015610d5d57601e54600160a81b900460ff16610d5d5760405162461bcd60e51b815260206004820152603160248201527f43616e6e6f74207475726e206f6e20626c61636b6c6973744d6f6465206166746044820152706572206c61756e636820697320646f6e6560781b6064820152608401610b66565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b8152600401610b6690612d03565b600f8590556011849055601283905560138290556010819055808284610dc08789612d23565b610dca9190612d23565b610dd49190612d23565b610dde9190612d23565b6014819055601654601991610dff91606491610df991611ce1565b90611d60565b10610e1c5760405162461bcd60e51b8152600401610b6690612d3b565b6019610e3a6064610df9601554601454611ce190919063ffffffff16565b10610e575760405162461bcd60e51b8152600401610b6690612d3b565b5050505050565b6000546001600160a01b03163314610e885760405162461bcd60e51b8152600401610b6690612d03565b6001811015610ee55760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610b66565b6103e881600554610ef69190612d72565b610f009190612d91565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f619086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610f9d5760405162461bcd60e51b8152600401610b6690612d03565b8063365aabe714610fe35760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b66565b6000546001600160a01b03838116911614156110355760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610b66565b600080546001600160a01b039081168252600160208181526040808520805460ff1990811690915585546001600160a01b0319169488169485178655848652948190208054909516909217909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a15050565b6000546001600160a01b031633146110e05760405162461bcd60e51b8152600401610b6690612d03565b8061114f57601e54600160a81b900460ff1661114f5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b66565b601e8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146111975760405162461bcd60e51b8152600401610b6690612d03565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601b80548416918516919091179055601c80549092169216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b8152600401610b6690612d03565b601e54600160a81b900460ff1661128a5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b66565b6101f583106112f15760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610b66565b8281146113515760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610b66565b6000805b848110156113955783838281811061136f5761136f612cbc565b90506020020135826113819190612d23565b91508061138d81612ce8565b915050611355565b50806113b6876001600160a01b031660009081526008602052604090205490565b10156114045760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b66565b60005b8481101561146b576114588787878481811061142557611425612cbc565b905060200201602081019061143a9190612bb2565b86868581811061144c5761144c612cbc565b90506020020135611da2565b508061146381612ce8565b915050611407565b50505050505050565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610b6690612d03565b47336108fc60646114af8585612d72565b6114b99190612d91565b6040518115909202916000818181858888f193505050501580156114e1573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611593576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461156e918490611e88565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61159e848484611ec2565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546115f5906003546001600160a01b03166000908152600860205260409020546115ef90600554906122c3565b906122c3565b905090565b61160333611cc3565b61161f5760405162461bcd60e51b8152600401610b6690612c52565b6101f582106116405760405162461bcd60e51b8152600401610b6690612c77565b60005b82811015610bff5781600d600086868581811061166257611662612cbc565b90506020020160208101906116779190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556116a881612ce8565b9050611643565b6000610f6d82600019610f06565b6116c633611cc3565b6116e25760405162461bcd60e51b8152600401610b6690612c52565b60158290556016839055601781905560145460199061170890606490610df99087611ce1565b106117255760405162461bcd60e51b8152600401610b6690612d3b565b60196117436064610df9601554601454611ce190919063ffffffff16565b106114e15760405162461bcd60e51b8152600401610b6690612d3b565b600080546001600160a01b0316331461178b5760405162461bcd60e51b8152600401610b6690612d03565b816117fb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156117d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190612db3565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611848573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a19190612dcc565b6000546001600160a01b031633146118965760405162461bcd60e51b8152600401610b6690612d03565b60c982106118f45760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203230302061646472604482015264657373657360d81b6064820152608401610b66565b801561196257601e54600160a81b900460ff166119625760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f74206d616e75616c6c7920626c61636b6c697374206166746572206044820152650d8c2eadcc6d60d31b6064820152608401610b66565b60005b82811015610bff5781600b600086868581811061198457611984612cbc565b90506020020160208101906119999190612bb2565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556119ca81612ce8565b9050611965565b6000546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610b6690612d03565b8063365aabe714611a415760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b66565b601e54600160a01b900460ff16611ab25760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610b66565b50601e805460ff60a81b19169055565b60006115a1338484611ec2565b6000546001600160a01b03163314611af95760405162461bcd60e51b8152600401610b6690612d03565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611b4a5760405162461bcd60e51b8152600401610b6690612d03565b6001811015611bad5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610b66565b6103e881600554611bbe9190612d72565b611bc89190612d91565b60065550565b6000546001600160a01b03163314611bf85760405162461bcd60e51b8152600401610b6690612d03565b601e8054921515600160b01b0260ff60b01b1990931692909217909155601f55565b6000546001600160a01b03163314611c445760405162461bcd60e51b8152600401610b6690612d03565b6000546001600160a01b0382811691161415611ca25760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610b66565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600082611cf057506000610f6d565b6000611cfc8385612d72565b905082611d098583612d91565b146115a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b66565b60006115a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612305565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611df3918490611e88565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e229083612333565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e769086815260200190565b60405180910390a35060019392505050565b60008184841115611eac5760405162461bcd60e51b8152600401610b6691906129ce565b506000611eb98486612de9565b95945050505050565b60205460009060ff1615611ee257611edb848484611da2565b90506115a1565b6001600160a01b03841660009081526001602052604090205460ff16158015611f2457506001600160a01b03831660009081526001602052604090205460ff16155b15611f7957601e54600160a01b900460ff16611f795760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b66565b600a5460ff1615611fdb576001600160a01b0384166000908152600b602052604090205460ff1615611fdb5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b66565b6001600160a01b03841660009081526001602052604090205460ff1615801561201d57506001600160a01b0384166000908152600e602052604090205460ff16155b801561204257506001600160a01b0383166000908152600e602052604090205460ff16155b801561205c5750601e546001600160a01b03848116911614155b156120dc5760075482612084856001600160a01b031660009081526008602052604090205490565b61208e9190612d23565b11156120dc5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610b66565b6006548211158061210557506001600160a01b0384166000908152600d602052604090205460ff165b8061212857506001600160a01b0383166000908152600d602052604090205460ff165b61216c5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610b66565b612174612392565b15612181576121816123e8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546121d3918490611e88565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff168061222057506001600160a01b0384166000908152600c602052604090205460ff165b6122345761222f8584866127c2565b612236565b825b6001600160a01b03851660009081526008602052604090205490915061225c9082612333565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122b09085815260200190565b60405180910390a3506001949350505050565b60006115a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e88565b600081836123265760405162461bcd60e51b8152600401610b6691906129ce565b506000611eb98486612d91565b6000806123408385612d23565b9050838110156115a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b66565b601e546000906001600160a01b031633148015906123b3575060205460ff16155b80156123c85750601e54600160b01b900460ff165b80156115f5575050601f5430600090815260086020526040902054101590565b6020805460ff19166001179055601454600f54601f5460009261241592600292610df99291839190611ce1565b9050600061242e82601f546122c390919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061246857612468612cbc565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061249957612499612cbc565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906124e3908690600090879030904290600401612e00565b600060405180830381600087803b1580156124fd57600080fd5b505af1158015612511573d6000803e3d6000fd5b50505050600061252a82476122c390919063ffffffff16565b905060006125506125476002600f54611d6090919063ffffffff16565b601454906122c3565b905060006125726002610df984610df9600f5488611ce190919063ffffffff16565b9050600061258f83610df960115487611ce190919063ffffffff16565b905060006125ac84610df960125488611ce190919063ffffffff16565b905060006125c985610df960135489611ce190919063ffffffff16565b905060006125e686610df96010548a611ce190919063ffffffff16565b6019546040519192506001600160a01b03169085156108fc029086906000818181858888f19350505050158015612621573d6000803e3d6000fd5b50601a546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561265c573d6000803e3d6000fd5b50601b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612697573d6000803e3d6000fd5b50601c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156126d2573d6000803e3d6000fd5b508a156127ab57601d5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015612749573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061276e9190612e71565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506020805460ff19169055505050505050505050565b601754601e54600091906001600160a01b03848116911614156127e85750601554612803565b601e546001600160a01b038681169116141561280357506016545b6000612832612813606480612d72565b610df98461282c6014548a611ce190919063ffffffff16565b90611ce1565b905080156128ae57306000908152600860205260409020546128549082612333565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128a59085815260200190565b60405180910390a35b6128b885826122c3565b9695505050505050565b60008083601f8401126128d457600080fd5b50813567ffffffffffffffff8111156128ec57600080fd5b6020830191508360208260051b850101111561290757600080fd5b9250929050565b801515811461291c57600080fd5b50565b60008060006040848603121561293457600080fd5b833567ffffffffffffffff81111561294b57600080fd5b612957868287016128c2565b909450925050602084013561296b8161290e565b809150509250925092565b60006020828403121561298857600080fd5b81356115a18161290e565b600080600080600060a086880312156129ab57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156129fb578581018301518582016040015282016129df565b81811115612a0d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612a3557600080fd5b5035919050565b6001600160a01b038116811461291c57600080fd5b60008060408385031215612a6457600080fd5b8235612a6f81612a3c565b946020939093013593505050565b600080600080600060a08688031215612a9557600080fd5b8535612aa081612a3c565b94506020860135612ab081612a3c565b93506040860135612ac081612a3c565b92506060860135612ad081612a3c565b91506080860135612ae081612a3c565b809150509295509295909350565b600080600080600060608688031215612b0657600080fd5b8535612b1181612a3c565b9450602086013567ffffffffffffffff80821115612b2e57600080fd5b612b3a89838a016128c2565b90965094506040880135915080821115612b5357600080fd5b50612b60888289016128c2565b969995985093965092949392505050565b600080600060608486031215612b8657600080fd5b8335612b9181612a3c565b92506020840135612ba181612a3c565b929592945050506040919091013590565b600060208284031215612bc457600080fd5b81356115a181612a3c565b600080600060608486031215612be457600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612c0e57600080fd5b8235612c1981612a3c565b91506020830135612c2981612a3c565b809150509250929050565b60008060408385031215612c4757600080fd5b8235612a6f8161290e565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612cfc57612cfc612cd2565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008219821115612d3657612d36612cd2565b500190565b6020808252601b908201527f5461782063616e6e6f74206265206d6f7265207468616e203234250000000000604082015260600190565b6000816000190483118215151615612d8c57612d8c612cd2565b500290565b600082612dae57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dc557600080fd5b5051919050565b600060208284031215612dde57600080fd5b81516115a18161290e565b600082821015612dfb57612dfb612cd2565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e505784516001600160a01b031683529383019391830191600101612e2b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e8657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e7673b1f8504c3f46092490986c560130473a56e0eda6e2244f2ce1b0d50403464736f6c634300080c0033

Deployed Bytecode Sourcemap

4202:14581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:309;;;;;;;;;;-1:-1:-1;16343:309:0;;;;;:::i;:::-;;:::i;:::-;;15733:293;;;;;;;;;;-1:-1:-1;15733:293:0;;;;;:::i;:::-;;:::i;15083:227::-;;;;;;;;;;-1:-1:-1;15083:227:0;;;;;:::i;:::-;;:::i;5917:54::-;;;;;;;;;;;;;;;;;;;1472:25:1;;;1460:2;1445:18;5917:54:0;;;;;;;;16660:607;;;;;;;;;;-1:-1:-1;16660:607:0;;;;;:::i;:::-;;:::i;7556:80::-;;;;;;;;;;-1:-1:-1;7628:5:0;;;;;;;;;;;;-1:-1:-1;;;7628:5:0;;;;7556:80;;;;;;;:::i;8874:262::-;;;;;;;;;;-1:-1:-1;8874:262:0;;;;;:::i;:::-;;:::i;7978:216::-;;;;;;;;;;-1:-1:-1;7978:216:0;;;;;:::i;:::-;;:::i;:::-;;;3375:14:1;;3368:22;3350:41;;3338:2;3323:18;7978:216:0;3210:187:1;3034:359:0;;;;;;;;;;-1:-1:-1;3034:359:0;;;;;:::i;:::-;;:::i;12826:207::-;;;;;;;;;;-1:-1:-1;12826:207:0;;;;;:::i;:::-;;:::i;5380:44::-;;;;;;;;;;;;5421:3;5380:44;;7286:88;;;;;;;;;;-1:-1:-1;7359:12:0;;7286:88;;17275:452;;;;;;;;;;-1:-1:-1;17275:452:0;;;;;:::i;:::-;;:::i;18050:665::-;;;;;;;;;;-1:-1:-1;18050:665:0;;;;;:::i;:::-;;:::i;11902:207::-;;;;;;;;;;-1:-1:-1;11902:207:0;;;;;:::i;:::-;;:::i;5286:87::-;;;;;;;;;;;;;;;;8496:370;;;;;;;;;;-1:-1:-1;8496:370:0;;;;;:::i;:::-;;:::i;5145:31::-;;;;;;;;;;;;;;;;17902:142;;;;;;;;;;;;;:::i;2808:103::-;;;;;;;;;;-1:-1:-1;2808:103:0;;;;;:::i;:::-;2863:4;2898:5;-1:-1:-1;;;;;2887:16:0;;;2898:5;;2887:16;;2808:103;7380:80;;;;;;;;;;-1:-1:-1;7380:80:0;;4545:1;6316:36:1;;6304:2;6289:18;7380:80:0;6174:184:1;4940:44:0;;;;;;;;;;-1:-1:-1;4940:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5628:30;;;;;;;;;;-1:-1:-1;5628:30:0;;;;-1:-1:-1;;;;;5628:30:0;;;;;;-1:-1:-1;;;;;6527:32:1;;;6509:51;;6497:2;6482:18;5628:30:0;6363:203:1;16034:301:0;;;;;;;;;;-1:-1:-1;16034:301:0;;;;;:::i;:::-;;:::i;8202:122::-;;;;;;;;;;-1:-1:-1;8202:122:0;;;;;:::i;:::-;;:::i;5254:25::-;;;;;;;;;;;;;;;;5183:31;;;;;;;;;;;;;;;;12409:386;;;;;;;;;;-1:-1:-1;12409:386:0;;;;;:::i;:::-;;:::i;5880:30::-;;;;;;;;;;-1:-1:-1;5880:30:0;;;;-1:-1:-1;;;5880:30:0;;;;;;7726:105;;;;;;;;;;-1:-1:-1;7726:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7810:18:0;7792:7;7810:18;;;:9;:18;;;;;;;7726:105;12117:284;;;;;;;;;;-1:-1:-1;12117:284:0;;;;;:::i;:::-;;:::i;4669:51::-;;;;;;;;;;;;;;;;4614:48;;;;;;;;;;;;;;;;7642:78;;;;;;;;;;-1:-1:-1;7694:7:0;7712:5;-1:-1:-1;;;;;7712:5:0;7642:78;;4846:32;;;;;;;;;;-1:-1:-1;4846:32:0;;;;;;;;4991:48;;;;;;;;;;-1:-1:-1;4991:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15322:403;;;;;;;;;;-1:-1:-1;15322:403:0;;;;;:::i;:::-;;:::i;7466:84::-;;;;;;;;;;-1:-1:-1;7540:7:0;;;;;;;;;;;;-1:-1:-1;;;7540:7:0;;;;7466:84;;5107:31;;;;;;;;;;;;;;;;13041:264;;;;;;;;;;-1:-1:-1;13041:264:0;;;;;:::i;:::-;;:::i;5701:35::-;;;;;;;;;;-1:-1:-1;5701:35:0;;;;-1:-1:-1;;;;;5701:35:0;;;5776:19;;;;;;;;;;-1:-1:-1;5776:19:0;;;;-1:-1:-1;;;;;5776:19:0;;;8332:156;;;;;;;;;;-1:-1:-1;8332:156:0;;;;;:::i;:::-;;:::i;5842:29::-;;;;;;;;;;-1:-1:-1;5842:29:0;;;;-1:-1:-1;;;5842:29:0;;;;;;2539:94;;;;;;;;;;-1:-1:-1;2539:94:0;;;;;:::i;:::-;;:::i;9142:263::-;;;;;;;;;;-1:-1:-1;9142:263:0;;;;;:::i;:::-;;:::i;5046:52::-;;;;;;;;;;-1:-1:-1;5046:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5543:36;;;;;;;;;;-1:-1:-1;5543:36:0;;;;-1:-1:-1;;;;;5543:36:0;;;5221:26;;;;;;;;;;;;;;;;5665:29;;;;;;;;;;-1:-1:-1;5665:29:0;;;;-1:-1:-1;;;;;5665:29:0;;;7837:133;;;;;;;;;;-1:-1:-1;7837:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7939:19:0;;;7921:7;7939:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7837:133;17735:155;;;;;;;;;;-1:-1:-1;17735:155:0;;;;;:::i;:::-;;:::i;5586:35::-;;;;;;;;;;-1:-1:-1;5586:35:0;;;;-1:-1:-1;;;;;5586:35:0;;;2641:159;;;;;;;;;;-1:-1:-1;2641:159:0;;;;;:::i;:::-;;:::i;5745:24::-;;;;;;;;;;-1:-1:-1;5745:24:0;;;;-1:-1:-1;;;;;5745:24:0;;;4885:46;;;;;;;;;;-1:-1:-1;4885:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2919:107;;;;;;;;;;-1:-1:-1;2919:107:0;;;;;:::i;:::-;;:::i;5804:31::-;;;;;;;;;;-1:-1:-1;5804:31:0;;;;-1:-1:-1;;;5804:31:0;;;;;;16343:309;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;;;;;;;;;16478:3:::1;16459:22:::0;::::1;16451:71;;;;-1:-1:-1::0;;;16451:71:0::1;;;;;;;:::i;:::-;16538:9;16533:112;16549:20:::0;;::::1;16533:112;;;16627:6;16591:19;:33;16611:9;;16621:1;16611:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16591:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16591:33:0;:42;;-1:-1:-1;;16591:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16571:3:::1;::::0;::::1;:::i;:::-;;;16533:112;;;;16343:309:::0;;;:::o;15733:293::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;15860:3:::1;15841:22:::0;::::1;15833:71;;;;-1:-1:-1::0;;;15833:71:0::1;;;;;;;:::i;:::-;15920:9;15915:104;15931:20:::0;;::::1;15915:104;;;16001:6;15973:11;:25;15985:9;;15995:1;15985:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15973:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15973:25:0;:34;;-1:-1:-1;;15973:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15953:3:::1;::::0;::::1;:::i;:::-;;;15915:104;;15083:227:::0;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;15163:7:::1;15160:109;;;15194:10;::::0;-1:-1:-1;;;15194:10:0;::::1;;;15186:71;;;::::0;-1:-1:-1;;;15186:71:0;;9511:2:1;15186:71:0::1;::::0;::::1;9493:21:1::0;9550:2;9530:18;;;9523:30;9589:34;9569:18;;;9562:62;-1:-1:-1;;;9640:18:1;;;9633:47;9697:19;;15186:71:0::1;9309:413:1::0;15186:71:0::1;15279:13;:23:::0;;-1:-1:-1;;15279:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15083:227::o;16660:607::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;16812:12:::1;:28:::0;;;16851:12:::1;:28:::0;;;16890:7:::1;:18:::0;;;16919:6:::1;:16:::0;;;16946:12:::1;:28:::0;;;16961:13;16928:7;16900:8;16996:29:::1;16866:13:::0;16827;16996:29:::1;:::i;:::-;:40;;;;:::i;:::-;:50;;;;:::i;:::-;:66;;;;:::i;:::-;16985:8;:77:::0;;;17104:13:::1;::::0;17130:2:::1;::::0;17091:36:::1;::::0;17123:3:::1;::::0;17091:27:::1;::::0;:12:::1;:27::i;:::-;:31:::0;::::1;:36::i;:::-;:41;17083:81;;;;-1:-1:-1::0;;;17083:81:0::1;;;;;;;:::i;:::-;17223:2;17183:37;17216:3;17183:28;17196:14;;17183:8;;:12;;:28;;;;:::i;:37::-;:42;17175:82;;;;-1:-1:-1::0;;;17175:82:0::1;;;;;;;:::i;:::-;16660:607:::0;;;;;:::o;8874:262::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;9010:1:::1;8983:23;:28;;8975:76;;;::::0;-1:-1:-1;;;8975:76:0;;10418:2:1;8975:76:0::1;::::0;::::1;10400:21:1::0;10457:2;10437:18;;;10430:30;10496:34;10476:18;;;10469:62;-1:-1:-1;;;10547:18:1;;;10540:34;10591:19;;8975:76:0::1;10216:400:1::0;8975:76:0::1;9124:4;9096:23;9081:12;;:38;;;;:::i;:::-;9080:48;;;;:::i;:::-;9062:15;:66:::0;-1:-1:-1;8874:262:0:o;7978:216::-;8082:10;8053:4;8070:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8070:32:0;;;;;;;;;;:41;;;8127:37;8053:4;;8070:32;;8127:37;;;;8105:6;1472:25:1;;1460:2;1445:18;;1326:177;8127:37:0;;;;;;;;-1:-1:-1;8182:4:0;7978:216;;;;;:::o;3034:359::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;3135:7:::1;3146:9;3135:20;3127:48;;;::::0;-1:-1:-1;;;3127:48:0;;11218:2:1;3127:48:0::1;::::0;::::1;11200:21:1::0;11257:2;11237:18;;;11230:30;-1:-1:-1;;;11276:18:1;;;11269:46;11332:18;;3127:48:0::1;11016:340:1::0;3127:48:0::1;3218:5;::::0;-1:-1:-1;;;;;3211:12:0;;::::1;3218:5:::0;::::1;3211:12;;3203:42;;;::::0;-1:-1:-1;;;3203:42:0;;11563:2:1;3203:42:0::1;::::0;::::1;11545:21:1::0;11602:2;11582:18;;;11575:30;-1:-1:-1;;;11621:18:1;;;11614:47;11678:18;;3203:42:0::1;11361:341:1::0;3203:42:0::1;3280:5;3271::::0;;-1:-1:-1;;;;;3271:5:0;;::::1;3256:21:::0;;:14:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;3256:29:0;;::::1;::::0;;;3296:11;;-1:-1:-1;;;;;;3296:11:0::1;::::0;;::::1;::::0;;::::1;::::0;;3318:19;;;;;;;:26;;;;::::1;::::0;;::::1;::::0;;;3360:25;6509:51:1;;;3360:25:0::1;::::0;6482:18:1;3360:25:0::1;;;;;;;3034:359:::0;;:::o;12826:207::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;12897:7:::1;12893:101;;12928:10;::::0;-1:-1:-1;;;12928:10:0;::::1;;;12920:62;;;::::0;-1:-1:-1;;;12920:62:0;;12125:2:1;12920:62:0::1;::::0;::::1;12107:21:1::0;12164:2;12144:18;;;12137:30;12203:34;12183:18;;;12176:62;-1:-1:-1;;;12254:18:1;;;12247:38;12302:19;;12920:62:0::1;11923:404:1::0;12920:62:0::1;13004:11;:21:::0;;;::::1;;-1:-1:-1::0;;;13004:21:0::1;-1:-1:-1::0;;;;13004:21:0;;::::1;::::0;;;::::1;::::0;;12826:207::o;17275:452::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;17475:21:::1;:46:::0;;-1:-1:-1;;;;;;17475:46:0;;::::1;-1:-1:-1::0;;;;;17475:46:0;;::::1;;::::0;;;17532:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17587:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17632:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17675:20:::1;:44:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17275:452::o;18050:665::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;18178:10:::1;::::0;-1:-1:-1;;;18178:10:0;::::1;;;18170:62;;;::::0;-1:-1:-1;;;18170:62:0;;12534:2:1;18170:62:0::1;::::0;::::1;12516:21:1::0;12573:2;12553:18;;;12546:30;12612:34;12592:18;;;12585:62;-1:-1:-1;;;12663:18:1;;;12656:38;12711:19;;18170:62:0::1;12332:404:1::0;18170:62:0::1;18268:3;18249:22:::0;::::1;18241:79;;;::::0;-1:-1:-1;;;18241:79:0;;12943:2:1;18241:79:0::1;::::0;::::1;12925:21:1::0;12982:2;12962:18;;;12955:30;13021:34;13001:18;;;12994:62;-1:-1:-1;;;13072:18:1;;;13065:43;13125:19;;18241:79:0::1;12741:409:1::0;18241:79:0::1;18335:33:::0;;::::1;18327:85;;;::::0;-1:-1:-1;;;18327:85:0;;13357:2:1;18327:85:0::1;::::0;::::1;13339:21:1::0;13396:2;13376:18;;;13369:30;13435:34;13415:18;;;13408:62;-1:-1:-1;;;13486:18:1;;;13479:38;13534:19;;18327:85:0::1;13155:404:1::0;18327:85:0::1;18421:12;18450:6:::0;18446:82:::1;18460:20:::0;;::::1;18446:82;;;18511:6;;18518:1;18511:9;;;;;;;:::i;:::-;;;;;;;18504:4;:16;;;;:::i;:::-;18497:23:::0;-1:-1:-1;18482:3:0;::::1;::::0;::::1;:::i;:::-;;;;18446:82;;;;18563:4;18544:15;18554:4;-1:-1:-1::0;;;;;7810:18:0;7792:7;7810:18;;;:9;:18;;;;;;;7726:105;18544:15:::1;:23;;18536:63;;;::::0;-1:-1:-1;;;18536:63:0;;13766:2:1;18536:63:0::1;::::0;::::1;13748:21:1::0;13805:2;13785:18;;;13778:30;13844:29;13824:18;;;13817:57;13891:18;;18536:63:0::1;13564:351:1::0;18536:63:0::1;18612:6;18608:102;18622:20:::0;;::::1;18608:102;;;18659:43;18674:4;18679:9;;18689:1;18679:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18692:6;;18699:1;18692:9;;;;;;;:::i;:::-;;;;;;;18659:14;:43::i;:::-;-1:-1:-1::0;18644:3:0;::::1;::::0;::::1;:::i;:::-;;;;18608:102;;;;18163:552;18050:665:::0;;;;;:::o;11902:207::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;12005:21:::1;12045:10;12037:64;12097:3;12066:28;12078:16:::0;12005:21;12066:28:::1;:::i;:::-;:34;;;;:::i;:::-;12037:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11974:135;11902:207:::0;:::o;8496:370::-;-1:-1:-1;;;;;8616:19:0;;8596:4;8616:19;;;:11;:19;;;;;;;;8636:10;8616:31;;;;;;;;-1:-1:-1;;8616:52:0;8613:186;;8718:69;;;;;;;;;;;-1:-1:-1;;;8718:69:0;;;;;;;;-1:-1:-1;;;;;8718:19:0;;-1:-1:-1;8718:19:0;;;:11;:19;;;;;8738:10;8718:31;;;;;;;;;;:69;;8754:6;;8718:35;:69::i;:::-;-1:-1:-1;;;;;8684:19:0;;;;;;:11;:19;;;;;;;;8704:10;8684:31;;;;;;;:103;8613:186;8818:40;8832:6;8840:9;8851:6;8818:13;:40::i;:::-;8811:47;;8496:370;;;;;;:::o;17902:142::-;18030:4;;-1:-1:-1;;;;;18030:4:0;17955:7;7810:18;;;:9;:18;;;;;;17982:54;;18009:4;;-1:-1:-1;;;;;18009:4:0;7792:7;7810:18;;;:9;:18;;;;;;17982:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17975:61;;17902:142;:::o;16034:301::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;16165:3:::1;16146:22:::0;::::1;16138:71;;;;-1:-1:-1::0;;;16138:71:0::1;;;;;;;:::i;:::-;16225:9;16220:108;16236:20:::0;;::::1;16220:108;;;16310:6;16278:15;:29;16294:9;;16304:1;16294:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16278:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16278:29:0;:38;;-1:-1:-1;;16278:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16258:3:::1;::::0;::::1;:::i;:::-;;;16220:108;;8202:122:::0;8257:4;8281:35;8289:7;-1:-1:-1;;8281:7:0;:35::i;12409:386::-;2480:24;2493:10;2480:12;:24::i;:::-;2472:48;;;;-1:-1:-1;;;2472:48:0;;;;;;;:::i;:::-;12509:14:::1;:22:::0;;;12542:13:::1;:20:::0;;;12573:18:::1;:27:::0;;;12621:8:::1;::::0;12660:2:::1;::::0;12621:36:::1;::::0;12653:3:::1;::::0;12621:27:::1;::::0;12558:4;12621:12:::1;:27::i;:36::-;:41;12613:81;;;;-1:-1:-1::0;;;12613:81:0::1;;;;;;;:::i;:::-;12753:2;12713:37;12746:3;12713:28;12726:14;;12713:8;;:12;;:28;;;;:::i;:37::-;:42;12705:82;;;;-1:-1:-1::0;;;12705:82:0::1;;;;;;;:::i;12117:284::-:0;12208:12;2898:5;;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;12236:11;12233:95:::1;;12272:44;::::0;-1:-1:-1;;;12272:44:0;;12310:4:::1;12272:44;::::0;::::1;6509:51:1::0;-1:-1:-1;;;;;12272:29:0;::::1;::::0;::::1;::::0;6482:18:1;;12272:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12263:53;;12233:95;12345:48;::::0;-1:-1:-1;;;12345:48:0;;12374:10:::1;12345:48;::::0;::::1;14283:51:1::0;14350:18;;;14343:34;;;-1:-1:-1;;;;;12345:28:0;::::1;::::0;::::1;::::0;14256:18:1;;12345:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15322:403::-:0;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;15448:3:::1;15429:22:::0;::::1;15421:71;;;::::0;-1:-1:-1;;;15421:71:0;;14840:2:1;15421:71:0::1;::::0;::::1;14822:21:1::0;14879:2;14859:18;;;14852:30;14918:34;14898:18;;;14891:62;-1:-1:-1;;;14969:18:1;;;14962:35;15014:19;;15421:71:0::1;14638:401:1::0;15421:71:0::1;15506:6;15503:97;;;15536:10;::::0;-1:-1:-1;;;15536:10:0;::::1;;;15528:60;;;::::0;-1:-1:-1;;;15528:60:0;;15246:2:1;15528:60:0::1;::::0;::::1;15228:21:1::0;15285:2;15265:18;;;15258:30;15324:34;15304:18;;;15297:62;-1:-1:-1;;;15375:18:1;;;15368:36;15421:19;;15528:60:0::1;15044:402:1::0;15528:60:0::1;15617:9;15612:106;15628:20:::0;;::::1;15612:106;;;15700:6;15670:13;:27;15684:9;;15694:1;15684:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15670:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15670:27:0;:36;;-1:-1:-1;;15670:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15650:3:::1;::::0;::::1;:::i;:::-;;;15612:106;;13041:264:::0;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;13130:7:::1;13141:9;13130:20;13122:48;;;::::0;-1:-1:-1;;;13122:48:0;;11218:2:1;13122:48:0::1;::::0;::::1;11200:21:1::0;11257:2;11237:18;;;11230:30;-1:-1:-1;;;11276:18:1;;;11269:46;11332:18;;13122:48:0::1;11016:340:1::0;13122:48:0::1;13206:11;::::0;-1:-1:-1;;;13206:11:0;::::1;;;13198:70;;;::::0;-1:-1:-1;;;13198:70:0;;15653:2:1;13198:70:0::1;::::0;::::1;15635:21:1::0;15692:2;15672:18;;;15665:30;15731:34;15711:18;;;15704:62;-1:-1:-1;;;15782:18:1;;;15775:45;15837:19;;13198:70:0::1;15451:411:1::0;13198:70:0::1;-1:-1:-1::0;13279:10:0::1;:18:::0;;-1:-1:-1;;;;13279:18:0::1;::::0;;13041:264::o;8332:156::-;8412:4;8436:44;8450:10;8462:9;8473:6;8436:13;:44::i;2539:94::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2599:19:0::1;;::::0;;;2621:4:::1;2599:19;::::0;;;;;;;:26;;-1:-1:-1;;2599:26:0::1;::::0;;::::1;::::0;;2539:94::o;9142:263::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;9276:1:::1;9248:24;:29;;9240:82;;;::::0;-1:-1:-1;;;9240:82:0;;16069:2:1;9240:82:0::1;::::0;::::1;16051:21:1::0;16108:2;16088:18;;;16081:30;16147:34;16127:18;;;16120:62;-1:-1:-1;;;16198:18:1;;;16191:39;16247:19;;9240:82:0::1;15867:405:1::0;9240:82:0::1;9393:4;9364:24;9349:12;;:39;;;;:::i;:::-;9348:49;;;;:::i;:::-;9333:12;:64:::0;-1:-1:-1;9142:263:0:o;17735:155::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;17826:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17826:22:0::1;-1:-1:-1::0;;;;17826:22:0;;::::1;::::0;;;::::1;::::0;;;17859:13:::1;:23:::0;17735:155::o;2641:159::-;2863:4;2898:5;-1:-1:-1;;;;;2898:5:0;2398:10;2887:16;2382:38;;;;-1:-1:-1;;;2382:38:0;;;;;;;:::i;:::-;2718:5:::1;::::0;-1:-1:-1;;;;;2711:12:0;;::::1;2718:5:::0;::::1;2711:12;;2703:51;;;::::0;-1:-1:-1;;;2703:51:0;;16479:2:1;2703:51:0::1;::::0;::::1;16461:21:1::0;16518:2;16498:18;;;16491:30;16557:28;16537:18;;;16530:56;16603:18;;2703:51:0::1;16277:350:1::0;2703:51:0::1;-1:-1:-1::0;;;;;2765:19:0::1;2787:5;2765:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2765:27:0::1;::::0;;2641:159::o;2919:107::-;-1:-1:-1;;;;;2999:19:0;2975:4;2999:19;;;:14;:19;;;;;;;;;2919:107::o;621:250::-;679:7;703:6;699:47;;-1:-1:-1;733:1:0;726:8;;699:47;758:9;770:5;774:1;770;:5;:::i;:::-;758:17;-1:-1:-1;803:1:0;794:5;798:1;758:17;794:5;:::i;:::-;:10;786:56;;;;-1:-1:-1;;;786:56:0;;16834:2:1;786:56:0;;;16816:21:1;16873:2;16853:18;;;16846:30;16912:34;16892:18;;;16885:62;-1:-1:-1;;;16963:18:1;;;16956:31;17004:19;;786:56:0;16632:397:1;877:132:0;935:7;962:39;966:1;969;962:39;;;;;;;;;;;;;;;;;:3;:39::i;10710:330::-;10840:53;;;;;;;;;;;-1:-1:-1;;;10840:53:0;;;;;;;;-1:-1:-1;;;;;10840:17:0;;10803:4;10840:17;;;:9;:17;;;;;;;:53;;10862:6;;10840:21;:53::i;:::-;-1:-1:-1;;;;;10820:17:0;;;;;;;:9;:17;;;;;;:73;;;;10927:20;;;;;;;:32;;10952:6;10927:24;:32::i;:::-;-1:-1:-1;;;;;10904:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10975:35;;;;;;;;;;11003:6;1472:25:1;;1460:2;1445:18;;1326:177;10975:35:0;;;;;;;;-1:-1:-1;11028:4:0;10710:330;;;;;:::o;423:192::-;509:7;545:12;537:6;;;;529:29;;;;-1:-1:-1;;;529:29:0;;;;;;;;:::i;:::-;-1:-1:-1;569:9:0;581:5;585:1;581;:5;:::i;:::-;569:17;423:192;-1:-1:-1;;;;;423:192:0:o;9413:1285::-;9525:6;;9505:4;;9525:6;;9522:63;;;9541:41;9556:6;9564:9;9575:6;9541:14;:41::i;:::-;9534:48;;;;9522:63;-1:-1:-1;;;;;9601:22:0;;;;;;:14;:22;;;;;;;;9600:23;:53;;;;-1:-1:-1;;;;;;9628:25:0;;;;;;:14;:25;;;;;;;;9627:26;9600:53;9597:127;;;9677:11;;-1:-1:-1;;;9677:11:0;;;;9669:43;;;;-1:-1:-1;;;9669:43:0;;17366:2:1;9669:43:0;;;17348:21:1;17405:2;17385:18;;;17378:30;-1:-1:-1;;;17424:18:1;;;17417:50;17484:18;;9669:43:0;17164:344:1;9669:43:0;9761:13;;;;9758:93;;;-1:-1:-1;;;;;9799:21:0;;;;;;:13;:21;;;;;;;;9798:22;9790:45;;;;-1:-1:-1;;;9790:45:0;;17715:2:1;9790:45:0;;;17697:21:1;17754:2;17734:18;;;17727:30;-1:-1:-1;;;17773:18:1;;;17766:41;17824:18;;9790:45:0;17513:335:1;9790:45:0;-1:-1:-1;;;;;9868:22:0;;;;;;:14;:22;;;;;;;;9867:23;:55;;;;-1:-1:-1;;;;;;9895:27:0;;;;;;:19;:27;;;;;;;;9894:28;9867:55;:90;;;;-1:-1:-1;;;;;;9927:30:0;;;;;;:19;:30;;;;;;;;9926:31;9867:90;:111;;;;-1:-1:-1;9974:4:0;;-1:-1:-1;;;;;9961:17:0;;;9974:4;;9961:17;;9867:111;9863:230;;;10038:15;;10027:6;10004:20;10014:9;-1:-1:-1;;;;;7810:18:0;7792:7;7810:18;;;:9;:18;;;;;;;7726:105;10004:20;:29;;;;:::i;:::-;10003:50;;9995:86;;;;-1:-1:-1;;;9995:86:0;;18055:2:1;9995:86:0;;;18037:21:1;18094:2;18074:18;;;18067:30;18133:26;18113:18;;;18106:54;18177:18;;9995:86:0;17853:348:1;9995:86:0;10169:12;;10159:6;:22;;10158:51;;;-1:-1:-1;;;;;;10186:23:0;;;;;;:15;:23;;;;;;;;10158:51;:81;;;-1:-1:-1;;;;;;10213:26:0;;;;;;:15;:26;;;;;;;;10158:81;10150:115;;;;-1:-1:-1;;;10150:115:0;;18408:2:1;10150:115:0;;;18390:21:1;18447:2;18427:18;;;18420:30;-1:-1:-1;;;18466:18:1;;;18459:51;18527:18;;10150:115:0;18206:345:1;10150:115:0;10281:16;:14;:16::i;:::-;10278:35;;;10300:10;:8;:10::i;:::-;10345:53;;;;;;;;;;;-1:-1:-1;;;10345:53:0;;;;;;;;-1:-1:-1;;;;;10345:17:0;;-1:-1:-1;10345:17:0;;;:9;:17;;;;;;;;:53;;10367:6;;10345:21;:53::i;:::-;-1:-1:-1;;;;;10325:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10437:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10460:22:0;;;;;;:11;:22;;;;;;;;10437:45;10436:93;;10495:34;10503:6;10511;10519:9;10495:7;:34::i;:::-;10436:93;;;10486:6;10436:93;-1:-1:-1;;;;;10565:20:0;;;;;;:9;:20;;;;;;10411:118;;-1:-1:-1;10565:40:0;;10411:118;10565:24;:40::i;:::-;-1:-1:-1;;;;;10542:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10625:43;;;;;;;;;;10653:14;1472:25:1;;1460:2;1445:18;;1326:177;10625:43:0;;;;;;;;-1:-1:-1;10686:4:0;;9413:1285;-1:-1:-1;;;;9413:1285:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;1015:189::-;1101:7;1136:12;1129:5;1121:28;;;;-1:-1:-1;;;1121:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1160:9:0;1172:5;1176:1;1172;:5;:::i;94:181::-;152:7;;184:5;188:1;184;:5;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;-1:-1:-1;;;200:46:0;;18758:2:1;200:46:0;;;18740:21:1;18797:2;18777:18;;;18770:30;18836:29;18816:18;;;18809:57;18883:18;;200:46:0;18556:351:1;11697:197:0;11784:4;;11746;;-1:-1:-1;;;;;11784:4:0;11770:10;:18;;;;:38;;-1:-1:-1;11802:6:0;;;;11801:7;11770:38;:62;;;;-1:-1:-1;11821:11:0;;-1:-1:-1;;;11821:11:0;;;;11770:62;:116;;;;-1:-1:-1;;11873:13:0;;11863:4;11845:24;;;;:9;:24;;;;;;:41;;;11697:197::o;13313:1760::-;6018:6;:13;;-1:-1:-1;;6018:13:0;6027:4;6018:13;;;13424:8:::1;::::0;13406:12:::1;::::0;13388:13:::1;::::0;6018:6;;13388:52:::1;::::0;13438:1:::1;::::0;13388:45:::1;::::0;13424:8;13388:45;;:13;:17:::1;:31::i;:52::-;13362:78;;13451:20;13474:34;13492:15;13474:13;;:17;;:34;;;;:::i;:::-;13545:16;::::0;;13559:1:::1;13545:16:::0;;;;;::::1;::::0;;13451:57;;-1:-1:-1;13521:21:0::1;::::0;13545:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13545:16:0::1;13521:40;;13590:4;13572;13577:1;13572:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13572:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13616:4:::1;::::0;13606:7;;13616:4;::::1;::::0;13606;;13616;;13606:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13606:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13691:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13691:188:0;;13657:21:::1;::::0;13691:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13763:12;;13633:21:::1;::::0;13806:4;;13833::::1;::::0;13853:15:::1;::::0;13691:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13892:17;13912:40;13938:13;13912:21;:25;;:40;;;;:::i;:::-;13892:60;;13965:19;13987:33;14000:19;14017:1;14000:12;;:16;;:19;;;;:::i;:::-;13987:8;::::0;;:12:::1;:33::i;:::-;13965:55;;14041:26;14070:51;14119:1;14070:44;14102:11;14070:27;14084:12;;14070:9;:13;;:27;;;;:::i;:51::-;14041:80;;14132:26;14161:44;14193:11;14161:27;14175:12;;14161:9;:13;;:27;;;;:::i;:44::-;14132:73;;14216:21;14240:39;14267:11;14240:22;14254:7;;14240:9;:13;;:22;;;;:::i;:39::-;14216:63;;14290:20;14313:38;14339:11;14313:21;14327:6;;14313:9;:13;;:21;;;;:::i;:38::-;14290:61;;14362:26;14391:44;14423:11;14391:27;14405:12;;14391:9;:13;;:27;;;;:::i;:44::-;14456:20;::::0;14448:58:::1;::::0;14362:73;;-1:-1:-1;;;;;;14456:20:0::1;::::0;14448:58;::::1;;;::::0;14487:18;;14456:20:::1;14448:58:::0;14456:20;14448:58;14487:18;14456:20;14448:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14525:15:0::1;::::0;14517:48:::1;::::0;-1:-1:-1;;;;;14525:15:0;;::::1;::::0;14517:48;::::1;;;::::0;14551:13;;14525:15:::1;14517:48:::0;14525:15;14517:48;14551:13;14525:15;14517:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14584:14:0::1;::::0;14576:46:::1;::::0;-1:-1:-1;;;;;14584:14:0;;::::1;::::0;14576:46;::::1;;;::::0;14609:12;;14584:14:::1;14576:46:::0;14584:14;14576:46;14609:12;14584:14;14576:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14641:20:0::1;::::0;14633:58:::1;::::0;-1:-1:-1;;;;;14641:20:0;;::::1;::::0;14633:58;::::1;;;::::0;14672:18;;14641:20:::1;14633:58:::0;14641:20;14633:58;14672:18;14641:20;14633:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14707:19:0;;14704:362:::1;;14742:6;::::0;14916:21:::1;::::0;14742:244:::1;::::0;-1:-1:-1;;;14742:244:0;;14818:4:::1;14742:244;::::0;::::1;20370:34:1::0;20420:18;;;20413:34;;;14742:6:0::1;20463:18:1::0;;;20456:34;;;20506:18;;;20499:34;-1:-1:-1;;;;;14916:21:0;;::::1;20549:19:1::0;;;20542:44;14956:15:0::1;20602:19:1::0;;;20595:35;14742:6:0;::::1;::::0;:22:::1;::::0;14772:18;;20304:19:1;;14742:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15006:48:0::1;::::0;;21126:25:1;;;21182:2;21167:18;;21160:34;;;15006:48:0::1;::::0;-1:-1:-1;21099:18:1;15006:48:0::1;;;;;;;14704:362;-1:-1:-1::0;;6036:6:0;:14;;-1:-1:-1;;6036:14:0;;;-1:-1:-1;;;;;;;;;13313:1760:0:o;11048:641::-;11177:18;;11224:4;;11134:7;;11177:18;-1:-1:-1;;;;;11211:17:0;;;11224:4;;11211:17;11208:154;;;-1:-1:-1;11258:14:0;;11208:154;;;11303:4;;-1:-1:-1;;;;;11293:14:0;;;11303:4;;11293:14;11290:72;;;-1:-1:-1;11337:13:0;;11290:72;11374:17;11394:62;11435:20;5421:3;;11435:20;:::i;:::-;11394:36;11419:10;11394:20;11405:8;;11394:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;11374:82;-1:-1:-1;11472:13:0;;11469:172;;11546:4;11528:24;;;;:9;:24;;;;;;:39;;11557:9;11528:28;:39::i;:::-;11519:4;11501:24;;;;:9;:24;;;;;;;:66;;;;11587:42;;-1:-1:-1;;;;;11587:42:0;;;;;;;11619:9;1472:25:1;;1460:2;1445:18;;1326:177;11587:42:0;;;;;;;;11469:172;11660:21;:6;11671:9;11660:10;:21::i;:::-;11653:28;11048:641;-1:-1:-1;;;;;;11048:641:0:o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1080:241::-;1136:6;1189:2;1177:9;1168:7;1164:23;1160:32;1157:52;;;1205:1;1202;1195:12;1157:52;1244:9;1231:23;1263:28;1285:5;1263:28;:::i;1508:454::-;1603:6;1611;1619;1627;1635;1688:3;1676:9;1667:7;1663:23;1659:33;1656:53;;;1705:1;1702;1695:12;1656:53;-1:-1:-1;;1728:23:1;;;1798:2;1783:18;;1770:32;;-1:-1:-1;1849:2:1;1834:18;;1821:32;;1900:2;1885:18;;1872:32;;-1:-1:-1;1951:3:1;1936:19;1923:33;;-1:-1:-1;1508:454:1;-1:-1:-1;1508:454:1:o;1967:597::-;2079:4;2108:2;2137;2126:9;2119:21;2169:6;2163:13;2212:6;2207:2;2196:9;2192:18;2185:34;2237:1;2247:140;2261:6;2258:1;2255:13;2247:140;;;2356:14;;;2352:23;;2346:30;2322:17;;;2341:2;2318:26;2311:66;2276:10;;2247:140;;;2405:6;2402:1;2399:13;2396:91;;;2475:1;2470:2;2461:6;2450:9;2446:22;2442:31;2435:42;2396:91;-1:-1:-1;2548:2:1;2527:15;-1:-1:-1;;2523:29:1;2508:45;;;;2555:2;2504:54;;1967:597;-1:-1:-1;;;1967:597:1:o;2569:180::-;2628:6;2681:2;2669:9;2660:7;2656:23;2652:32;2649:52;;;2697:1;2694;2687:12;2649:52;-1:-1:-1;2720:23:1;;2569:180;-1:-1:-1;2569:180:1:o;2754:131::-;-1:-1:-1;;;;;2829:31:1;;2819:42;;2809:70;;2875:1;2872;2865:12;2890:315;2958:6;2966;3019:2;3007:9;2998:7;2994:23;2990:32;2987:52;;;3035:1;3032;3025:12;2987:52;3074:9;3061:23;3093:31;3118:5;3093:31;:::i;:::-;3143:5;3195:2;3180:18;;;;3167:32;;-1:-1:-1;;;2890:315:1:o;3730:813::-;3825:6;3833;3841;3849;3857;3910:3;3898:9;3889:7;3885:23;3881:33;3878:53;;;3927:1;3924;3917:12;3878:53;3966:9;3953:23;3985:31;4010:5;3985:31;:::i;:::-;4035:5;-1:-1:-1;4092:2:1;4077:18;;4064:32;4105:33;4064:32;4105:33;:::i;:::-;4157:7;-1:-1:-1;4216:2:1;4201:18;;4188:32;4229:33;4188:32;4229:33;:::i;:::-;4281:7;-1:-1:-1;4340:2:1;4325:18;;4312:32;4353:33;4312:32;4353:33;:::i;:::-;4405:7;-1:-1:-1;4464:3:1;4449:19;;4436:33;4478;4436;4478;:::i;:::-;4530:7;4520:17;;;3730:813;;;;;;;;:::o;4548:908::-;4679:6;4687;4695;4703;4711;4764:2;4752:9;4743:7;4739:23;4735:32;4732:52;;;4780:1;4777;4770:12;4732:52;4819:9;4806:23;4838:31;4863:5;4838:31;:::i;:::-;4888:5;-1:-1:-1;4944:2:1;4929:18;;4916:32;4967:18;4997:14;;;4994:34;;;5024:1;5021;5014:12;4994:34;5063:70;5125:7;5116:6;5105:9;5101:22;5063:70;:::i;:::-;5152:8;;-1:-1:-1;5037:96:1;-1:-1:-1;5240:2:1;5225:18;;5212:32;;-1:-1:-1;5256:16:1;;;5253:36;;;5285:1;5282;5275:12;5253:36;;5324:72;5388:7;5377:8;5366:9;5362:24;5324:72;:::i;:::-;4548:908;;;;-1:-1:-1;4548:908:1;;-1:-1:-1;5415:8:1;;5298:98;4548:908;-1:-1:-1;;;4548:908:1:o;5461:456::-;5538:6;5546;5554;5607:2;5595:9;5586:7;5582:23;5578:32;5575:52;;;5623:1;5620;5613:12;5575:52;5662:9;5649:23;5681:31;5706:5;5681:31;:::i;:::-;5731:5;-1:-1:-1;5788:2:1;5773:18;;5760:32;5801:33;5760:32;5801:33;:::i;:::-;5461:456;;5853:7;;-1:-1:-1;;;5907:2:1;5892:18;;;;5879:32;;5461:456::o;5922:247::-;5981:6;6034:2;6022:9;6013:7;6009:23;6005:32;6002:52;;;6050:1;6047;6040:12;6002:52;6089:9;6076:23;6108:31;6133:5;6108:31;:::i;6571:316::-;6648:6;6656;6664;6717:2;6705:9;6696:7;6692:23;6688:32;6685:52;;;6733:1;6730;6723:12;6685:52;-1:-1:-1;;6756:23:1;;;6826:2;6811:18;;6798:32;;-1:-1:-1;6877:2:1;6862:18;;;6849:32;;6571:316;-1:-1:-1;6571:316:1:o;6892:388::-;6960:6;6968;7021:2;7009:9;7000:7;6996:23;6992:32;6989:52;;;7037:1;7034;7027:12;6989:52;7076:9;7063:23;7095:31;7120:5;7095:31;:::i;:::-;7145:5;-1:-1:-1;7202:2:1;7187:18;;7174:32;7215:33;7174:32;7215:33;:::i;:::-;7267:7;7257:17;;;6892:388;;;;;:::o;7285:309::-;7350:6;7358;7411:2;7399:9;7390:7;7386:23;7382:32;7379:52;;;7427:1;7424;7417:12;7379:52;7466:9;7453:23;7485:28;7507:5;7485:28;:::i;7825:335::-;8027:2;8009:21;;;8066:2;8046:18;;;8039:30;-1:-1:-1;;;8100:2:1;8085:18;;8078:41;8151:2;8136:18;;7825:335::o;8165:401::-;8367:2;8349:21;;;8406:2;8386:18;;;8379:30;8445:34;8440:2;8425:18;;8418:62;-1:-1:-1;;;8511:2:1;8496:18;;8489:35;8556:3;8541:19;;8165:401::o;8571:127::-;8632:10;8627:3;8623:20;8620:1;8613:31;8663:4;8660:1;8653:15;8687:4;8684:1;8677:15;8703:127;8764:10;8759:3;8755:20;8752:1;8745:31;8795:4;8792:1;8785:15;8819:4;8816:1;8809:15;8835:135;8874:3;-1:-1:-1;;8895:17:1;;8892:43;;;8915:18;;:::i;:::-;-1:-1:-1;8962:1:1;8951:13;;8835:135::o;8975:329::-;9177:2;9159:21;;;9216:1;9196:18;;;9189:29;-1:-1:-1;;;9249:2:1;9234:18;;9227:36;9295:2;9280:18;;8975:329::o;9727:128::-;9767:3;9798:1;9794:6;9791:1;9788:13;9785:39;;;9804:18;;:::i;:::-;-1:-1:-1;9840:9:1;;9727:128::o;9860:351::-;10062:2;10044:21;;;10101:2;10081:18;;;10074:30;10140:29;10135:2;10120:18;;10113:57;10202:2;10187:18;;9860:351::o;10621:168::-;10661:7;10727:1;10723;10719:6;10715:14;10712:1;10709:21;10704:1;10697:9;10690:17;10686:45;10683:71;;;10734:18;;:::i;:::-;-1:-1:-1;10774:9:1;;10621:168::o;10794:217::-;10834:1;10860;10850:132;;10904:10;10899:3;10895:20;10892:1;10885:31;10939:4;10936:1;10929:15;10967:4;10964:1;10957:15;10850:132;-1:-1:-1;10996:9:1;;10794:217::o;13920:184::-;13990:6;14043:2;14031:9;14022:7;14018:23;14014:32;14011:52;;;14059:1;14056;14049:12;14011:52;-1:-1:-1;14082:16:1;;13920:184;-1:-1:-1;13920:184:1:o;14388:245::-;14455:6;14508:2;14496:9;14487:7;14483:23;14479:32;14476:52;;;14524:1;14521;14514:12;14476:52;14556:9;14550:16;14575:28;14597:5;14575:28;:::i;17034:125::-;17074:4;17102:1;17099;17096:8;17093:34;;;17107:18;;:::i;:::-;-1:-1:-1;17144:9:1;;17034:125::o;19044:980::-;19306:4;19354:3;19343:9;19339:19;19385:6;19374:9;19367:25;19411:2;19449:6;19444:2;19433:9;19429:18;19422:34;19492:3;19487:2;19476:9;19472:18;19465:31;19516:6;19551;19545:13;19582:6;19574;19567:22;19620:3;19609:9;19605:19;19598:26;;19659:2;19651:6;19647:15;19633:29;;19680:1;19690:195;19704:6;19701:1;19698:13;19690:195;;;19769:13;;-1:-1:-1;;;;;19765:39:1;19753:52;;19860:15;;;;19825:12;;;;19801:1;19719:9;19690:195;;;-1:-1:-1;;;;;;;19941:32:1;;;;19936:2;19921:18;;19914:60;-1:-1:-1;;;20005:3:1;19990:19;19983:35;19902:3;19044:980;-1:-1:-1;;;19044:980:1:o;20641:306::-;20729:6;20737;20745;20798:2;20786:9;20777:7;20773:23;20769:32;20766:52;;;20814:1;20811;20804:12;20766:52;20843:9;20837:16;20827:26;;20893:2;20882:9;20878:18;20872:25;20862:35;;20937:2;20926:9;20922:18;20916:25;20906:35;;20641:306;;;;;:::o

Swarm Source

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