ETH Price: $2,646.96 (+0.17%)

Token

Kum Kwon (KumKwon)
 

Overview

Max Total Supply

10,000,000 KumKwon

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
65,854.603517946619990368 KumKwon

Value
$0.00
0x8708cb657a3922cf2fd4cdfc441c192dd86b4a30
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:
KumKwon

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-22
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

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

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

interface IdexRouter {
    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;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
contract KumKwon is IBEP20, Ownable
{
    //TresFlames
    //mapping
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) private excludedFromLimits;
    mapping(address => bool) public excludedFromFees;
    mapping(address=>bool) public isPair;
    mapping (address => bool) public isBlacklisted;
    //strings
    string private constant _name = 'Kum Kwon';
    string private constant _symbol = 'KumKwon';
    //uints
    uint private constant DefaultLiquidityLockTime=7 days;
    uint public constant InitialSupply= 10**7 * 10**_decimals;
    uint public _circulatingSupply =InitialSupply;
    uint public buyTax = 150;
    uint public sellTax = 150;
    uint public transferTax = 150;
    uint public liquidityTax=330;
    uint public projectTax=670;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=10;
    uint public swapTreshold=1;
    uint public overLiquifyTreshold=70;
    uint private LaunchTimestamp;
    uint _liquidityUnlockTime;
    uint8 private constant _decimals = 18;
    uint256 public maxTransactionAmount;
    uint256 public maxWalletBalance;

    IdexRouter private  _dexRouter;
    
    //addresses
    address private dexRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _dexPairAddress;
    address constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable public projectWallet;
    //modifiers

    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    //bools
    bool private _isSwappingContractModifier;
    bool public blacklistMode = true;
    bool public manualSwap;
    bool public LPReleaseLimitedTo20Percent;
    
    //events
    event BlacklistStatusChange(bool status);
    event UpdateProjectWallet(address _address);
    event SwapThresholdChange(uint threshold);
    event OverLiquifiedThresholdChange(uint threshold);
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity);
    event ManualSwapChange(bool status);
    event MaxWalletBalanceUpdated(uint256 percent);
    event MaxTransactionAmountUpdated(uint256 percent);
    event ExcludeAccount(address account, bool exclude);
    event ExcludeFromLimits(address account, bool exclude);
    event OwnerSwap();
    event OnEnableTrading();
    event OnProlongLPLock(uint UnlockTimestamp);
    event OnReleaseLP();
    event RecoverETH();
    event BlacklistUpdated();
    event NewPairSet(address Pair, bool Add);
    event Release20PercentLP();
    event NewRouterSet(address _newdex);
    
    constructor () {
        uint deployerBalance=_circulatingSupply;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);
        _dexRouter = IdexRouter(dexRouter);
        _dexPairAddress = IdexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        isPair[_dexPairAddress]=true;
        
        projectWallet = payable(0x94090E75FeE1C420C885B3b16d7513ec7Af7332E);

        excludedFromFees[msg.sender]=true;
        excludedFromFees[dexRouter]=true;
        excludedFromFees[address(this)]=true;
        excludedFromFees[projectWallet]=true;
        excludedFromLimits[projectWallet] = true;
        excludedFromLimits[msg.sender] = true;
        excludedFromLimits[deadWallet] = true;
        excludedFromLimits[address(this)] = true;
    }
    
    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
        emit BlacklistStatusChange (_status);
    }
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
        emit BlacklistUpdated();
    }
    function ChangeProjectWallet(address newAddress) public onlyOwner{
        projectWallet=payable(newAddress);
        excludedFromFees[newAddress] = true;
        excludedFromLimits[newAddress] = true;
        emit UpdateProjectWallet(newAddress);
    }
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");
        if(blacklistMode){
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted");    
        }
        if(excludedFromFees[sender] || excludedFromFees[recipient])
            _feelessTransfer(sender, recipient, amount);
        
        else { 
            require(LaunchTimestamp>0,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);                  
        }
    }
    function _taxedTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        bool excludedAccount = excludedFromLimits[sender] || excludedFromLimits[recipient];
        if (
            isPair[sender] &&
            !excludedAccount
        ) {
            require(
                amount <= maxTransactionAmount,
                "Transfer amount exceeds the maxTxAmount."
            );
            uint256 contractBalanceRecepient = balanceOf(recipient);
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
            );
        } else if (
            isPair[recipient] &&
            !excludedAccount
        ) {
            require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxSellTransactionAmount.");
        }

        bool isBuy=isPair[sender];
        bool isSell=isPair[recipient];
        uint tax;
        if(isSell){  
            uint SellTaxDuration=3 minutes;          
            if(block.timestamp<LaunchTimestamp+SellTaxDuration){
                tax=_getStartTax(SellTaxDuration,750);
                }else tax=sellTax;
            }
        else if(isBuy){
            uint BuyTaxDuration=60 seconds;
            if(block.timestamp<LaunchTimestamp+BuyTaxDuration){
                tax=_getStartTax(BuyTaxDuration,999);
            }else tax=buyTax;
        } else tax=transferTax;

        if((sender!=_dexPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);
        uint contractToken=_calculateFee(amount, tax, projectTax+liquidityTax);
        uint taxedAmount=amount-contractToken;

        _balances[sender]-=amount;
        _balances[address(this)] += contractToken;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    function _getStartTax(uint duration, uint maxTax) private view returns (uint){
        uint timeSinceLaunch=block.timestamp-LaunchTimestamp;
        return maxTax-((maxTax-50)*timeSinceLaunch/duration);
    }
    function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }
    function _feelessTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        _balances[sender]-=amount;
        _balances[recipient]+=amount;      
        emit Transfer(sender,recipient,amount);
    }
    function setSwapTreshold(uint newSwapTresholdPermille) public onlyOwner{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
        emit SwapThresholdChange(newSwapTresholdPermille);
    }
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyOwner{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
        emit OverLiquifiedThresholdChange(newOverLiquifyTresholdPermille);
    }
    function SetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity) public onlyOwner{
        uint maxTax=TAX_DENOMINATOR/MAXTAXDENOMINATOR;
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(project+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        projectTax=project;
        liquidityTax=liquidity;
        emit OnSetTaxes(buy, sell, transfer_, project,liquidity);
    }
    
    function isOverLiquified() public view returns(bool){
        return _balances[_dexPairAddress]>_circulatingSupply*overLiquifyTreshold/1000;
    }
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+projectTax;
        uint tokenToSwap=_balances[_dexPairAddress]*swapTreshold/1000;
        if(totalTax==0)return;
        if(ignoreLimits)
            tokenToSwap=_balances[address(this)];
        else if(contractBalance<tokenToSwap)
            return;
        uint tokenForLiquidity=isOverLiquified()?0:(tokenToSwap*liquidityTax)/totalTax;

        uint tokenForProject= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        uint swapToken=LiqHalf+tokenForProject;
        uint initialETHBalance = address(this).balance;
        _swapTokenForETH(swapToken);
        uint newETH=(address(this).balance - initialETHBalance);
        if(tokenForLiquidity>0){
            uint liqETH = (newETH*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqETH);
        }
        (bool sent,)=projectWallet.call{value:address(this).balance}("");
        sent=true;
    }
    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(_dexRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _dexRouter.WETH();

        try _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }
    function _addLiquidity(uint tokenamount, uint ETHamount) private {
        _approve(address(this), address(_dexRouter), tokenamount);
        _dexRouter.addLiquidityETH{value: ETHamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }
    function getLiquidityReleaseTimeInSeconds() public view returns (uint){
        if(block.timestamp<_liquidityUnlockTime)
            return _liquidityUnlockTime-block.timestamp;
        return 0;
    }
    function getBurnedTokens() public view returns(uint){
        return (InitialSupply-_circulatingSupply)+_balances[address(0xdead)];
    }
    function SetPair(address Pair, bool Add) public onlyOwner{
        require(Pair!=_dexPairAddress,"can't change pancake");
        isPair[Pair]=Add;
        emit NewPairSet(Pair,Add);
    }
    function SwitchManualSwap(bool manual) public onlyOwner{
        manualSwap=manual;
        emit ManualSwapChange(manual);
    }
    function SwapContractToken() public onlyOwner{
        _swapContractToken(true);
        emit OwnerSwap();
    }

    function SetNewRouter(address _newdex) public onlyOwner{
        dexRouter = _newdex;
        emit NewRouterSet(_newdex);
    }

    function setMaxWalletBalancePercent(uint256 percent) external onlyOwner {
        require(percent >= 10, "min 1%");
        require(percent <= 1000, "max 100%");
        maxWalletBalance = InitialSupply * percent / 1000;
        emit MaxWalletBalanceUpdated(percent);
    }
    
    function setMaxTransactionAmount(uint256 percent) public onlyOwner {
        require(percent >= 25, "min 0.25%");
        require(percent <= 10000, "max 100%");
        maxTransactionAmount = InitialSupply * percent / 10000;
        emit MaxTransactionAmountUpdated(percent);
    }
    
    function ExcludeAccountFromFees(address account, bool exclude) public onlyOwner{
        require(account!=address(this),"can't Include the contract");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }
    
    function setExcludedAccountFromLimits(address account, bool exclude) public onlyOwner{
        excludedFromLimits[account]=exclude;
        emit ExcludeFromLimits(account,exclude);
    }
    function isExcludedFromLimits(address account) public view returns(bool) {
        return excludedFromLimits[account];
    }
    
    function SetupEnableTrading() public onlyOwner{
        require(LaunchTimestamp==0,"AlreadyLaunched");
        LaunchTimestamp=block.timestamp;
        maxWalletBalance = InitialSupply * 10 / 1000;
        maxTransactionAmount = InitialSupply * 100 / 10000;
        emit OnEnableTrading();
    }
    
    function limitLiquidityReleaseTo20Percent() public onlyOwner{
        LPReleaseLimitedTo20Percent=true;
        emit Release20PercentLP();
    }
    function LockLiquidityForSeconds(uint secondsUntilUnlock) public onlyOwner{
        _prolongLiquidityLock(secondsUntilUnlock+block.timestamp);
    }
    function _prolongLiquidityLock(uint newUnlockTime) private{
        require(newUnlockTime>_liquidityUnlockTime);
        _liquidityUnlockTime=newUnlockTime;
        emit OnProlongLPLock(_liquidityUnlockTime);
    }
    
    function LiquidityRelease() public onlyOwner {
        require(block.timestamp >= _liquidityUnlockTime, "Not yet unlocked");

        IBEP20 liquidityToken = IBEP20(_dexPairAddress);
        uint amount = liquidityToken.balanceOf(address(this));
        if(LPReleaseLimitedTo20Percent)
        {
            _liquidityUnlockTime=block.timestamp+DefaultLiquidityLockTime;
            amount=amount*2/10;
        }
        liquidityToken.transfer(msg.sender, amount);
        emit OnReleaseLP();
    }

    receive() external payable {}

    function getOwner() external view override returns (address) {
        return owner();
    }
    function name() external pure override returns (string memory) {
        return _name;
    }
    function symbol() external pure override returns (string memory) {
        return _symbol;
    }
    function decimals() external pure override returns (uint8) {
        return _decimals;
    }
    function totalSupply() external view override returns (uint) {
        return _circulatingSupply;
    }
    function balanceOf(address account) public view override returns (uint) {
        return _balances[account];
    }
    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function allowance(address _owner, address spender) external view override returns (uint) {
        return _allowances[_owner][spender];
    }
    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint amount) private {
        require(owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");
        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }
    function emergencyETHrecovery(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
        emit RecoverETH();
    }

}

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":"bool","name":"status","type":"bool"}],"name":"BlacklistStatusChange","type":"event"},{"anonymous":false,"inputs":[],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManualSwapChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxTransactionAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Pair","type":"address"},{"indexed":false,"internalType":"bool","name":"Add","type":"bool"}],"name":"NewPairSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newdex","type":"address"}],"name":"NewRouterSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"UnlockTimestamp","type":"uint256"}],"name":"OnProlongLPLock","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"project","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"OverLiquifiedThresholdChange","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnerSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RecoverETH","type":"event"},{"anonymous":false,"inputs":[],"name":"Release20PercentLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"SwapThresholdChange","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"UpdateProjectWallet","type":"event"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPReleaseLimitedTo20Percent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"secondsUntilUnlock","type":"uint256"}],"name":"LockLiquidityForSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newdex","type":"address"}],"name":"SetNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Pair","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"project","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyETHrecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityReleaseTimeInSeconds","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitLiquidityReleaseTo20Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityTax","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_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludedAccountFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletBalancePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620004b6565b620000219062989680620004ce565b600755609660088190556009819055600a5561014a600b5561029e600c556001600d556046600e55601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556016805460ff60a81b1916600160a81b1790553480156200008f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601454601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019b9190620004f0565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620004f0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002989190620004f0565b601580546001600160a01b039283166001600160a01b031991821681179092556000918252600560209081526040808420805460ff199081166001908117909255601680549095167394090e75fee1c420c885b3b16d7513ec7af7332e178555338087526004855283872080548316841790556014548816875283872080548316841790553080885284882080548416851790558654891688528488208054841685179055955490971686526003909352818520805484168217905594845280842080548316861790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054831686179055918352912080549091169091179055506200051b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f8578160001904821115620003dc57620003dc620003a1565b80851615620003ea57918102915b93841c9390800290620003bc565b509250929050565b6000826200041157506001620004b0565b816200042057506000620004b0565b8160018114620004395760028114620004445762000464565b6001915050620004b0565b60ff841115620004585762000458620003a1565b50506001821b620004b0565b5060208310610133831016604e8410600b841016171562000489575081810a620004b0565b620004958383620003b7565b8060001904821115620004ac57620004ac620003a1565b0290505b92915050565b6000620004c760ff84168362000400565b9392505050565b6000816000190483118215151615620004eb57620004eb620003a1565b500290565b6000602082840312156200050357600080fd5b81516001600160a01b0381168114620004c757600080fd5b612f65806200052b6000396000f3fe60806040526004361061036f5760003560e01c806395d89b41116101c6578063c8c8ebe4116100f7578063e52fb9ec11610095578063f40a563a1161006f578063f40a563a14610a00578063f7942b6314610a20578063fcd4d50514610a40578063fe575a8714610a6057600080fd5b8063e52fb9ec1461099a578063e5e31b13146109b0578063f2fde38b146109e057600080fd5b8063d24cd3ec116100d1578063d24cd3ec146108ee578063dbe66ca014610904578063dd62ed3e14610934578063e0d2f9eb1461097a57600080fd5b8063c8c8ebe4146108a2578063cc1776d3146108b8578063cfd1940e146108ce57600080fd5b8063baa88ea911610164578063be617fa01161013e578063be617fa014610842578063beb08ab914610858578063c3a3c03214610878578063c3f4f54f1461088d57600080fd5b8063baa88ea9146107ec578063bbde77c11461080c578063bc43d8491461082257600080fd5b8063a253c06e116101a0578063a253c06e14610781578063a457c2d714610797578063a68bdac7146107b7578063a9059cbb146107cc57600080fd5b806395d89b411461071057806397e78f35146107405780639b39b65f1461076057600080fd5b806346e35f03116102a05780637b9e987a1161023e578063893d20e811610218578063893d20e81461067f578063896648c1146106b15780638da5cb5b146106d25780638e2eee84146106f057600080fd5b80637b9e987a146106345780638124f7ac14610649578063868b01411461065f57600080fd5b80635cce86cd1161027a5780635cce86cd146105905780635e562f3b146105c957806370a08231146105e9578063715018a61461061f57600080fd5b806346e35f03146105445780634f7041a51461055957806351bc3c851461056f57600080fd5b80631eb25d131161030d578063313ce567116102e7578063313ce567146104d35780633227925f146104ef578063395093511461050f57806341aec3571461052f57600080fd5b80631eb25d131461047e57806323b872dd146104935780632c92293c146104b357600080fd5b8063095ea7b311610349578063095ea7b3146103f55780630eff4c641461042557806318160ddd146104495780631e293c101461045e57600080fd5b80630612f39d1461037b578063065f4b411461039257806306fdde03146103b257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a90565b005b34801561039e57600080fd5b506103906103ad3660046129f7565b610c66565b3480156103be57600080fd5b5060408051808201909152600881526725bab69025bbb7b760c11b60208201525b6040516103ec9190612a10565b60405180910390f35b34801561040157600080fd5b50610415610410366004612a7a565b610d10565b60405190151581526020016103ec565b34801561043157600080fd5b5061043b600e5481565b6040519081526020016103ec565b34801561045557600080fd5b5060075461043b565b34801561046a57600080fd5b506103906104793660046129f7565b610d27565b34801561048a57600080fd5b5061043b610e45565b34801561049f57600080fd5b506104156104ae366004612aa6565b610e61565b3480156104bf57600080fd5b506103906104ce3660046129f7565b610ef8565b3480156104df57600080fd5b50604051601281526020016103ec565b3480156104fb57600080fd5b5061039061050a3660046129f7565b61100c565b34801561051b57600080fd5b5061041561052a366004612a7a565b61105a565b34801561053b57600080fd5b50610390611091565b34801561055057600080fd5b506104156110ff565b34801561056557600080fd5b5061043b60085481565b34801561057b57600080fd5b5060165461041590600160b01b900460ff1681565b34801561059c57600080fd5b506104156105ab366004612ae7565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105d557600080fd5b506103906105e4366004612b19565b61113f565b3480156105f557600080fd5b5061043b610604366004612ae7565b6001600160a01b031660009081526001602052604090205490565b34801561062b57600080fd5b506103906111c5565b34801561064057600080fd5b50610390611248565b34801561065557600080fd5b5061043b600a5481565b34801561066b57600080fd5b5061039061067a366004612b19565b61135c565b34801561068b57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103ec565b3480156106bd57600080fd5b5060165461041590600160a81b900460ff1681565b3480156106de57600080fd5b506000546001600160a01b0316610699565b3480156106fc57600080fd5b5061039061070b366004612b36565b6113e7565b34801561071c57600080fd5b5060408051808201909152600781526625bab6a5bbb7b760c91b60208201526103df565b34801561074c57600080fd5b5061039061075b366004612ae7565b6114be565b34801561076c57600080fd5b5060165461041590600160b81b900460ff1681565b34801561078d57600080fd5b5061043b60075481565b3480156107a357600080fd5b506104156107b2366004612a7a565b611545565b3480156107c357600080fd5b506103906115c1565b3480156107d857600080fd5b506104156107e7366004612a7a565b611638565b3480156107f857600080fd5b50610390610807366004612bbc565b611645565b34801561081857600080fd5b5061043b60125481565b34801561082e57600080fd5b5061039061083d3660046129f7565b6117c0565b34801561084e57600080fd5b5061043b600b5481565b34801561086457600080fd5b50601654610699906001600160a01b031681565b34801561088457600080fd5b5061043b61183d565b34801561089957600080fd5b5061043b61185d565b3480156108ae57600080fd5b5061043b60115481565b3480156108c457600080fd5b5061043b60095481565b3480156108da57600080fd5b506103906108e93660046129f7565b6118bc565b3480156108fa57600080fd5b5061043b600c5481565b34801561091057600080fd5b5061041561091f366004612ae7565b60046020526000908152604090205460ff1681565b34801561094057600080fd5b5061043b61094f366004612bf7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561098657600080fd5b50610390610995366004612c30565b611938565b3480156109a657600080fd5b5061043b600d5481565b3480156109bc57600080fd5b506104156109cb366004612ae7565b60056020526000908152604090205460ff1681565b3480156109ec57600080fd5b506103906109fb366004612ae7565b611a2e565b348015610a0c57600080fd5b50610390610a1b366004612c30565b611b27565b348015610a2c57600080fd5b50610390610a3b366004612c30565b611c11565b348015610a4c57600080fd5b50610390610a5b366004612ae7565b611ca6565b348015610a6c57600080fd5b50610415610a7b366004612ae7565b60066020526000908152604090205460ff1681565b33610aa36000546001600160a01b031690565b6001600160a01b031614610ad25760405162461bcd60e51b8152600401610ac990612c5e565b60405180910390fd5b601054421015610b175760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610ac9565b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612c93565b601654909150600160b81b900460ff1615610bc757610baa62093a8042612cc2565b601055600a610bba826002612cda565b610bc49190612cf9565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c389190612d1b565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b33610c796000546001600160a01b031690565b6001600160a01b031614610c9f5760405162461bcd60e51b8152600401610ac990612c5e565b47336108fc6064610cb08585612cda565b610cba9190612cf9565b6040518115909202916000818181858888f19350505050158015610ce2573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610d1d338484611d5c565b5060015b92915050565b33610d3a6000546001600160a01b031690565b6001600160a01b031614610d605760405162461bcd60e51b8152600401610ac990612c5e565b6019811015610d9d5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610ac9565b612710811115610dda5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ac9565b61271081610dea6012600a612e1c565b610df79062989680612cda565b610e019190612cda565b610e0b9190612cf9565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610e516012600a612e1c565b610e5e9062989680612cda565b81565b6000610e6e848484611e4f565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610ed95760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610ac9565b610eed8533610ee88685612e2b565b611d5c565b506001949350505050565b33610f0b6000546001600160a01b031690565b6001600160a01b031614610f315760405162461bcd60e51b8152600401610ac990612c5e565b600a811015610f6b5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610ac9565b6103e8811115610fa85760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ac9565b6103e881610fb86012600a612e1c565b610fc59062989680612cda565b610fcf9190612cda565b610fd99190612cf9565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610e3a565b3361101f6000546001600160a01b031690565b6001600160a01b0316146110455760405162461bcd60e51b8152600401610ac990612c5e565b6110576110524283612cc2565b612022565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610d1d918590610ee8908690612cc2565b336110a46000546001600160a01b031690565b6001600160a01b0316146110ca5760405162461bcd60e51b8152600401610ac990612c5e565b6110d46001612065565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111149190612cda565b61111e9190612cf9565b6015546001600160a01b031660009081526001602052604090205411919050565b336111526000546001600160a01b031690565b6001600160a01b0316146111785760405162461bcd60e51b8152600401610ac990612c5e565b60168054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610e3a90831515815260200190565b336111d86000546001600160a01b031690565b6001600160a01b0316146111fe5760405162461bcd60e51b8152600401610ac990612c5e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361125b6000546001600160a01b031690565b6001600160a01b0316146112815760405162461bcd60e51b8152600401610ac990612c5e565b600f54156112c35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610ac9565b42600f556103e86112d66012600a612e1c565b6112e39062989680612cda565b6112ee90600a612cda565b6112f89190612cf9565b60129081556127109061130c90600a612e1c565b6113199062989680612cda565b611324906064612cda565b61132e9190612cf9565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361136f6000546001600160a01b031690565b6001600160a01b0316146113955760405162461bcd60e51b8152600401610ac990612c5e565b60168054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610e3a90831515815260200190565b905090565b336113fa6000546001600160a01b031690565b6001600160a01b0316146114205760405162461bcd60e51b8152600401610ac990612c5e565b60005b8281101561148f57816006600086868581811061144257611442612e42565b90506020020160208101906114579190612ae7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561148881612e58565b9050611423565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b336114d16000546001600160a01b031690565b6001600160a01b0316146114f75760405162461bcd60e51b8152600401610ac990612c5e565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610e3a565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156115a85760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610ac9565b6115b73385610ee88685612e2b565b5060019392505050565b336115d46000546001600160a01b031690565b6001600160a01b0316146115fa5760405162461bcd60e51b8152600401610ac990612c5e565b6016805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610d1d338484611e4f565b336116586000546001600160a01b031690565b6001600160a01b03161461167e5760405162461bcd60e51b8152600401610ac990612c5e565b600061168d600a6103e8612cf9565b905080861115801561169f5750808511155b80156116ab5750808411155b6116ec5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610ac9565b6103e86116f98385612cc2565b146117505760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610ac9565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336117d36000546001600160a01b031690565b6001600160a01b0316146117f95760405162461bcd60e51b8152600401610ac990612c5e565b6103e881111561180857600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610e3a565b600060105442101561185757426010546113e29190612e2b565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460075461189b6012600a612e1c565b6118a89062989680612cda565b6118b29190612e2b565b6113e29190612cc2565b336118cf6000546001600160a01b031690565b6001600160a01b0316146118f55760405162461bcd60e51b8152600401610ac990612c5e565b600a81111561190357600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610e3a565b3361194b6000546001600160a01b031690565b6001600160a01b0316146119715760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b0382163014156119ca5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610ac9565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491015b60405180910390a15050565b33611a416000546001600160a01b031690565b6001600160a01b031614611a675760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b038116611acc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611b3a6000546001600160a01b031690565b6001600160a01b031614611b605760405162461bcd60e51b8152600401610ac990612c5e565b6015546001600160a01b0383811691161415611bb55760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610ac9565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611a22565b33611c246000546001600160a01b031690565b6001600160a01b031614611c4a5760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101611a22565b33611cb96000546001600160a01b031690565b6001600160a01b031614611cdf5760405162461bcd60e51b8152600401610ac990612c5e565b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fff20ffd61c4c2d0ef6c92012ece4838b24c79b10136ae047c42f9311e8be86a29101610e3a565b6001600160a01b038316611da65760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610ac9565b6001600160a01b038216611dee5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610ac9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e9a5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610ac9565b6001600160a01b038216611ee35760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610ac9565b601654600160a81b900460ff1615611f71576001600160a01b03831660009081526006602052604090205460ff16158015611f3757506001600160a01b03821660009081526006602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610ac9565b6001600160a01b03831660009081526004602052604090205460ff1680611fb057506001600160a01b03821660009081526004602052604090205460ff165b15611fc557611fc083838361221e565b505050565b6000600f54116120175760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610ac9565b611fc0838383612331565b601054811161203057600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610e3a565b6016805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b5491929161209b9190612cc2565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e8916120ca91612cda565b6120d49190612cf9565b9050816120e35750505061220e565b83156120ff57503060009081526001602052604090205461210f565b8083101561210f5750505061220e565b60006121196110ff565b61213b5782600b548361212c9190612cda565b6121369190612cf9565b61213e565b60005b9050600061214c8284612e2b565b9050600061215b600284612cf9565b905060006121698383612cc2565b90504761217582612784565b60006121818247612e2b565b905085156121ae576000836121968684612cda565b6121a09190612cf9565b90506121ac85826128d3565b505b6016546040516000916001600160a01b03169047908381818185875af1925050503d80600081146121fb576040519150601f19603f3d011682016040523d82523d6000602084013e612200565b606091505b505050505050505050505050505b506016805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156122825760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ac9565b6001600160a01b038416600090815260016020526040812080548492906122aa908490612e2b565b90915550506001600160a01b038316600090815260016020526040812080548492906122d7908490612cc2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161232391815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156123955760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ac9565b6001600160a01b03841660009081526003602052604081205460ff16806123d457506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff1680156123fd575080155b156124eb576011548311156124655760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ac9565b6001600160a01b03841660009081526001602052604090205460125461248b8583612cc2565b11156124e55760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610ac9565b5061258e565b6001600160a01b03841660009081526005602052604090205460ff168015612511575080155b1561258e5760115483111561258e5760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610ac9565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156125f657600f5460b4906125d0908290612cc2565b4210156125ea576125e3816102ee612984565b91506125f0565b60095491505b5061262f565b821561262a57600f54603c9061260d908290612cc2565b421015612620576125e3816103e7612984565b505060085461262f565b50600a545b6015546001600160a01b038981169116148015906126575750601654600160b01b900460ff16155b801561266d5750601654600160a01b900460ff16155b1561267c5761267c6000612065565b60006126988783600b54600c546126939190612cc2565b6129ca565b905060006126a68289612e2b565b6001600160a01b038b16600090815260016020526040812080549293508a929091906126d3908490612e2b565b909155505030600090815260016020526040812080548492906126f7908490612cc2565b90915550506001600160a01b03891660009081526001602052604081208054839290612724908490612cc2565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161277091815260200190565b60405180910390a350505050505050505050565b60135461279c9030906001600160a01b031683611d5c565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127d1576127d1612e42565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e9190612e73565b8160018151811061286157612861612e42565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906128a7908590600090869030904290600401612e90565b600060405180830381600087803b1580156128c157600080fd5b505af1925050508015611fc057505050565b6013546128eb9030906001600160a01b031684611d5c565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612958573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061297d9190612f01565b5050505050565b600080600f54426129959190612e2b565b905083816129a4603286612e2b565b6129ae9190612cda565b6129b89190612cf9565b6129c29084612e2b565b949350505050565b60006129d86103e880612cda565b826129e38587612cda565b6129ed9190612cda565b6129c29190612cf9565b600060208284031215612a0957600080fd5b5035919050565b600060208083528351808285015260005b81811015612a3d57858101830151858201604001528201612a21565b81811115612a4f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105757600080fd5b60008060408385031215612a8d57600080fd5b8235612a9881612a65565b946020939093013593505050565b600080600060608486031215612abb57600080fd5b8335612ac681612a65565b92506020840135612ad681612a65565b929592945050506040919091013590565b600060208284031215612af957600080fd5b8135612b0481612a65565b9392505050565b801515811461105757600080fd5b600060208284031215612b2b57600080fd5b8135612b0481612b0b565b600080600060408486031215612b4b57600080fd5b833567ffffffffffffffff80821115612b6357600080fd5b818601915086601f830112612b7757600080fd5b813581811115612b8657600080fd5b8760208260051b8501011115612b9b57600080fd5b60209283019550935050840135612bb181612b0b565b809150509250925092565b600080600080600060a08688031215612bd457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612c0a57600080fd5b8235612c1581612a65565b91506020830135612c2581612a65565b809150509250929050565b60008060408385031215612c4357600080fd5b8235612c4e81612a65565b91506020830135612c2581612b0b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612ca557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612cd557612cd5612cac565b500190565b6000816000190483118215151615612cf457612cf4612cac565b500290565b600082612d1657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612d2d57600080fd5b8151612b0481612b0b565b600181815b80851115612d73578160001904821115612d5957612d59612cac565b80851615612d6657918102915b93841c9390800290612d3d565b509250929050565b600082612d8a57506001610d21565b81612d9757506000610d21565b8160018114612dad5760028114612db757612dd3565b6001915050610d21565b60ff841115612dc857612dc8612cac565b50506001821b610d21565b5060208310610133831016604e8410600b8410161715612df6575081810a610d21565b612e008383612d38565b8060001904821115612e1457612e14612cac565b029392505050565b6000612b0460ff841683612d7b565b600082821015612e3d57612e3d612cac565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612e6c57612e6c612cac565b5060010190565b600060208284031215612e8557600080fd5b8151612b0481612a65565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ee05784516001600160a01b031683529383019391830191600101612ebb565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f1657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122042c84db28b8380b8626aa0910d8f2b9146b5183c0bf6835ec9ce46fd7ccf464564736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806395d89b41116101c6578063c8c8ebe4116100f7578063e52fb9ec11610095578063f40a563a1161006f578063f40a563a14610a00578063f7942b6314610a20578063fcd4d50514610a40578063fe575a8714610a6057600080fd5b8063e52fb9ec1461099a578063e5e31b13146109b0578063f2fde38b146109e057600080fd5b8063d24cd3ec116100d1578063d24cd3ec146108ee578063dbe66ca014610904578063dd62ed3e14610934578063e0d2f9eb1461097a57600080fd5b8063c8c8ebe4146108a2578063cc1776d3146108b8578063cfd1940e146108ce57600080fd5b8063baa88ea911610164578063be617fa01161013e578063be617fa014610842578063beb08ab914610858578063c3a3c03214610878578063c3f4f54f1461088d57600080fd5b8063baa88ea9146107ec578063bbde77c11461080c578063bc43d8491461082257600080fd5b8063a253c06e116101a0578063a253c06e14610781578063a457c2d714610797578063a68bdac7146107b7578063a9059cbb146107cc57600080fd5b806395d89b411461071057806397e78f35146107405780639b39b65f1461076057600080fd5b806346e35f03116102a05780637b9e987a1161023e578063893d20e811610218578063893d20e81461067f578063896648c1146106b15780638da5cb5b146106d25780638e2eee84146106f057600080fd5b80637b9e987a146106345780638124f7ac14610649578063868b01411461065f57600080fd5b80635cce86cd1161027a5780635cce86cd146105905780635e562f3b146105c957806370a08231146105e9578063715018a61461061f57600080fd5b806346e35f03146105445780634f7041a51461055957806351bc3c851461056f57600080fd5b80631eb25d131161030d578063313ce567116102e7578063313ce567146104d35780633227925f146104ef578063395093511461050f57806341aec3571461052f57600080fd5b80631eb25d131461047e57806323b872dd146104935780632c92293c146104b357600080fd5b8063095ea7b311610349578063095ea7b3146103f55780630eff4c641461042557806318160ddd146104495780631e293c101461045e57600080fd5b80630612f39d1461037b578063065f4b411461039257806306fdde03146103b257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a90565b005b34801561039e57600080fd5b506103906103ad3660046129f7565b610c66565b3480156103be57600080fd5b5060408051808201909152600881526725bab69025bbb7b760c11b60208201525b6040516103ec9190612a10565b60405180910390f35b34801561040157600080fd5b50610415610410366004612a7a565b610d10565b60405190151581526020016103ec565b34801561043157600080fd5b5061043b600e5481565b6040519081526020016103ec565b34801561045557600080fd5b5060075461043b565b34801561046a57600080fd5b506103906104793660046129f7565b610d27565b34801561048a57600080fd5b5061043b610e45565b34801561049f57600080fd5b506104156104ae366004612aa6565b610e61565b3480156104bf57600080fd5b506103906104ce3660046129f7565b610ef8565b3480156104df57600080fd5b50604051601281526020016103ec565b3480156104fb57600080fd5b5061039061050a3660046129f7565b61100c565b34801561051b57600080fd5b5061041561052a366004612a7a565b61105a565b34801561053b57600080fd5b50610390611091565b34801561055057600080fd5b506104156110ff565b34801561056557600080fd5b5061043b60085481565b34801561057b57600080fd5b5060165461041590600160b01b900460ff1681565b34801561059c57600080fd5b506104156105ab366004612ae7565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105d557600080fd5b506103906105e4366004612b19565b61113f565b3480156105f557600080fd5b5061043b610604366004612ae7565b6001600160a01b031660009081526001602052604090205490565b34801561062b57600080fd5b506103906111c5565b34801561064057600080fd5b50610390611248565b34801561065557600080fd5b5061043b600a5481565b34801561066b57600080fd5b5061039061067a366004612b19565b61135c565b34801561068b57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103ec565b3480156106bd57600080fd5b5060165461041590600160a81b900460ff1681565b3480156106de57600080fd5b506000546001600160a01b0316610699565b3480156106fc57600080fd5b5061039061070b366004612b36565b6113e7565b34801561071c57600080fd5b5060408051808201909152600781526625bab6a5bbb7b760c91b60208201526103df565b34801561074c57600080fd5b5061039061075b366004612ae7565b6114be565b34801561076c57600080fd5b5060165461041590600160b81b900460ff1681565b34801561078d57600080fd5b5061043b60075481565b3480156107a357600080fd5b506104156107b2366004612a7a565b611545565b3480156107c357600080fd5b506103906115c1565b3480156107d857600080fd5b506104156107e7366004612a7a565b611638565b3480156107f857600080fd5b50610390610807366004612bbc565b611645565b34801561081857600080fd5b5061043b60125481565b34801561082e57600080fd5b5061039061083d3660046129f7565b6117c0565b34801561084e57600080fd5b5061043b600b5481565b34801561086457600080fd5b50601654610699906001600160a01b031681565b34801561088457600080fd5b5061043b61183d565b34801561089957600080fd5b5061043b61185d565b3480156108ae57600080fd5b5061043b60115481565b3480156108c457600080fd5b5061043b60095481565b3480156108da57600080fd5b506103906108e93660046129f7565b6118bc565b3480156108fa57600080fd5b5061043b600c5481565b34801561091057600080fd5b5061041561091f366004612ae7565b60046020526000908152604090205460ff1681565b34801561094057600080fd5b5061043b61094f366004612bf7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561098657600080fd5b50610390610995366004612c30565b611938565b3480156109a657600080fd5b5061043b600d5481565b3480156109bc57600080fd5b506104156109cb366004612ae7565b60056020526000908152604090205460ff1681565b3480156109ec57600080fd5b506103906109fb366004612ae7565b611a2e565b348015610a0c57600080fd5b50610390610a1b366004612c30565b611b27565b348015610a2c57600080fd5b50610390610a3b366004612c30565b611c11565b348015610a4c57600080fd5b50610390610a5b366004612ae7565b611ca6565b348015610a6c57600080fd5b50610415610a7b366004612ae7565b60066020526000908152604090205460ff1681565b33610aa36000546001600160a01b031690565b6001600160a01b031614610ad25760405162461bcd60e51b8152600401610ac990612c5e565b60405180910390fd5b601054421015610b175760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610ac9565b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612c93565b601654909150600160b81b900460ff1615610bc757610baa62093a8042612cc2565b601055600a610bba826002612cda565b610bc49190612cf9565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c389190612d1b565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b33610c796000546001600160a01b031690565b6001600160a01b031614610c9f5760405162461bcd60e51b8152600401610ac990612c5e565b47336108fc6064610cb08585612cda565b610cba9190612cf9565b6040518115909202916000818181858888f19350505050158015610ce2573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610d1d338484611d5c565b5060015b92915050565b33610d3a6000546001600160a01b031690565b6001600160a01b031614610d605760405162461bcd60e51b8152600401610ac990612c5e565b6019811015610d9d5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610ac9565b612710811115610dda5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ac9565b61271081610dea6012600a612e1c565b610df79062989680612cda565b610e019190612cda565b610e0b9190612cf9565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610e516012600a612e1c565b610e5e9062989680612cda565b81565b6000610e6e848484611e4f565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610ed95760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610ac9565b610eed8533610ee88685612e2b565b611d5c565b506001949350505050565b33610f0b6000546001600160a01b031690565b6001600160a01b031614610f315760405162461bcd60e51b8152600401610ac990612c5e565b600a811015610f6b5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610ac9565b6103e8811115610fa85760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610ac9565b6103e881610fb86012600a612e1c565b610fc59062989680612cda565b610fcf9190612cda565b610fd99190612cf9565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610e3a565b3361101f6000546001600160a01b031690565b6001600160a01b0316146110455760405162461bcd60e51b8152600401610ac990612c5e565b6110576110524283612cc2565b612022565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610d1d918590610ee8908690612cc2565b336110a46000546001600160a01b031690565b6001600160a01b0316146110ca5760405162461bcd60e51b8152600401610ac990612c5e565b6110d46001612065565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111149190612cda565b61111e9190612cf9565b6015546001600160a01b031660009081526001602052604090205411919050565b336111526000546001600160a01b031690565b6001600160a01b0316146111785760405162461bcd60e51b8152600401610ac990612c5e565b60168054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610e3a90831515815260200190565b336111d86000546001600160a01b031690565b6001600160a01b0316146111fe5760405162461bcd60e51b8152600401610ac990612c5e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361125b6000546001600160a01b031690565b6001600160a01b0316146112815760405162461bcd60e51b8152600401610ac990612c5e565b600f54156112c35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610ac9565b42600f556103e86112d66012600a612e1c565b6112e39062989680612cda565b6112ee90600a612cda565b6112f89190612cf9565b60129081556127109061130c90600a612e1c565b6113199062989680612cda565b611324906064612cda565b61132e9190612cf9565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361136f6000546001600160a01b031690565b6001600160a01b0316146113955760405162461bcd60e51b8152600401610ac990612c5e565b60168054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610e3a90831515815260200190565b905090565b336113fa6000546001600160a01b031690565b6001600160a01b0316146114205760405162461bcd60e51b8152600401610ac990612c5e565b60005b8281101561148f57816006600086868581811061144257611442612e42565b90506020020160208101906114579190612ae7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561148881612e58565b9050611423565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b336114d16000546001600160a01b031690565b6001600160a01b0316146114f75760405162461bcd60e51b8152600401610ac990612c5e565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610e3a565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156115a85760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610ac9565b6115b73385610ee88685612e2b565b5060019392505050565b336115d46000546001600160a01b031690565b6001600160a01b0316146115fa5760405162461bcd60e51b8152600401610ac990612c5e565b6016805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610d1d338484611e4f565b336116586000546001600160a01b031690565b6001600160a01b03161461167e5760405162461bcd60e51b8152600401610ac990612c5e565b600061168d600a6103e8612cf9565b905080861115801561169f5750808511155b80156116ab5750808411155b6116ec5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610ac9565b6103e86116f98385612cc2565b146117505760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610ac9565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336117d36000546001600160a01b031690565b6001600160a01b0316146117f95760405162461bcd60e51b8152600401610ac990612c5e565b6103e881111561180857600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610e3a565b600060105442101561185757426010546113e29190612e2b565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460075461189b6012600a612e1c565b6118a89062989680612cda565b6118b29190612e2b565b6113e29190612cc2565b336118cf6000546001600160a01b031690565b6001600160a01b0316146118f55760405162461bcd60e51b8152600401610ac990612c5e565b600a81111561190357600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610e3a565b3361194b6000546001600160a01b031690565b6001600160a01b0316146119715760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b0382163014156119ca5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610ac9565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491015b60405180910390a15050565b33611a416000546001600160a01b031690565b6001600160a01b031614611a675760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b038116611acc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611b3a6000546001600160a01b031690565b6001600160a01b031614611b605760405162461bcd60e51b8152600401610ac990612c5e565b6015546001600160a01b0383811691161415611bb55760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610ac9565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611a22565b33611c246000546001600160a01b031690565b6001600160a01b031614611c4a5760405162461bcd60e51b8152600401610ac990612c5e565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101611a22565b33611cb96000546001600160a01b031690565b6001600160a01b031614611cdf5760405162461bcd60e51b8152600401610ac990612c5e565b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fff20ffd61c4c2d0ef6c92012ece4838b24c79b10136ae047c42f9311e8be86a29101610e3a565b6001600160a01b038316611da65760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610ac9565b6001600160a01b038216611dee5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610ac9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e9a5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610ac9565b6001600160a01b038216611ee35760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610ac9565b601654600160a81b900460ff1615611f71576001600160a01b03831660009081526006602052604090205460ff16158015611f3757506001600160a01b03821660009081526006602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610ac9565b6001600160a01b03831660009081526004602052604090205460ff1680611fb057506001600160a01b03821660009081526004602052604090205460ff165b15611fc557611fc083838361221e565b505050565b6000600f54116120175760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610ac9565b611fc0838383612331565b601054811161203057600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610e3a565b6016805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b5491929161209b9190612cc2565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e8916120ca91612cda565b6120d49190612cf9565b9050816120e35750505061220e565b83156120ff57503060009081526001602052604090205461210f565b8083101561210f5750505061220e565b60006121196110ff565b61213b5782600b548361212c9190612cda565b6121369190612cf9565b61213e565b60005b9050600061214c8284612e2b565b9050600061215b600284612cf9565b905060006121698383612cc2565b90504761217582612784565b60006121818247612e2b565b905085156121ae576000836121968684612cda565b6121a09190612cf9565b90506121ac85826128d3565b505b6016546040516000916001600160a01b03169047908381818185875af1925050503d80600081146121fb576040519150601f19603f3d011682016040523d82523d6000602084013e612200565b606091505b505050505050505050505050505b506016805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156122825760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ac9565b6001600160a01b038416600090815260016020526040812080548492906122aa908490612e2b565b90915550506001600160a01b038316600090815260016020526040812080548492906122d7908490612cc2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161232391815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156123955760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610ac9565b6001600160a01b03841660009081526003602052604081205460ff16806123d457506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff1680156123fd575080155b156124eb576011548311156124655760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ac9565b6001600160a01b03841660009081526001602052604090205460125461248b8583612cc2565b11156124e55760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610ac9565b5061258e565b6001600160a01b03841660009081526005602052604090205460ff168015612511575080155b1561258e5760115483111561258e5760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610ac9565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156125f657600f5460b4906125d0908290612cc2565b4210156125ea576125e3816102ee612984565b91506125f0565b60095491505b5061262f565b821561262a57600f54603c9061260d908290612cc2565b421015612620576125e3816103e7612984565b505060085461262f565b50600a545b6015546001600160a01b038981169116148015906126575750601654600160b01b900460ff16155b801561266d5750601654600160a01b900460ff16155b1561267c5761267c6000612065565b60006126988783600b54600c546126939190612cc2565b6129ca565b905060006126a68289612e2b565b6001600160a01b038b16600090815260016020526040812080549293508a929091906126d3908490612e2b565b909155505030600090815260016020526040812080548492906126f7908490612cc2565b90915550506001600160a01b03891660009081526001602052604081208054839290612724908490612cc2565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161277091815260200190565b60405180910390a350505050505050505050565b60135461279c9030906001600160a01b031683611d5c565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127d1576127d1612e42565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e9190612e73565b8160018151811061286157612861612e42565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906128a7908590600090869030904290600401612e90565b600060405180830381600087803b1580156128c157600080fd5b505af1925050508015611fc057505050565b6013546128eb9030906001600160a01b031684611d5c565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612958573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061297d9190612f01565b5050505050565b600080600f54426129959190612e2b565b905083816129a4603286612e2b565b6129ae9190612cda565b6129b89190612cf9565b6129c29084612e2b565b949350505050565b60006129d86103e880612cda565b826129e38587612cda565b6129ed9190612cda565b6129c29190612cf9565b600060208284031215612a0957600080fd5b5035919050565b600060208083528351808285015260005b81811015612a3d57858101830151858201604001528201612a21565b81811115612a4f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105757600080fd5b60008060408385031215612a8d57600080fd5b8235612a9881612a65565b946020939093013593505050565b600080600060608486031215612abb57600080fd5b8335612ac681612a65565b92506020840135612ad681612a65565b929592945050506040919091013590565b600060208284031215612af957600080fd5b8135612b0481612a65565b9392505050565b801515811461105757600080fd5b600060208284031215612b2b57600080fd5b8135612b0481612b0b565b600080600060408486031215612b4b57600080fd5b833567ffffffffffffffff80821115612b6357600080fd5b818601915086601f830112612b7757600080fd5b813581811115612b8657600080fd5b8760208260051b8501011115612b9b57600080fd5b60209283019550935050840135612bb181612b0b565b809150509250925092565b600080600080600060a08688031215612bd457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612c0a57600080fd5b8235612c1581612a65565b91506020830135612c2581612a65565b809150509250929050565b60008060408385031215612c4357600080fd5b8235612c4e81612a65565b91506020830135612c2581612b0b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612ca557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612cd557612cd5612cac565b500190565b6000816000190483118215151615612cf457612cf4612cac565b500290565b600082612d1657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612d2d57600080fd5b8151612b0481612b0b565b600181815b80851115612d73578160001904821115612d5957612d59612cac565b80851615612d6657918102915b93841c9390800290612d3d565b509250929050565b600082612d8a57506001610d21565b81612d9757506000610d21565b8160018114612dad5760028114612db757612dd3565b6001915050610d21565b60ff841115612dc857612dc8612cac565b50506001821b610d21565b5060208310610133831016604e8410600b8410161715612df6575081810a610d21565b612e008383612d38565b8060001904821115612e1457612e14612cac565b029392505050565b6000612b0460ff841683612d7b565b600082821015612e3d57612e3d612cac565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612e6c57612e6c612cac565b5060010190565b600060208284031215612e8557600080fd5b8151612b0481612a65565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ee05784516001600160a01b031683529383019391830191600101612ebb565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f1657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122042c84db28b8380b8626aa0910d8f2b9146b5183c0bf6835ec9ce46fd7ccf464564736f6c634300080a0033

Deployed Bytecode Sourcemap

2608:17047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16499:511;;;;;;;;;;;;;:::i;:::-;;19412:238;;;;;;;;;;-1:-1:-1;19412:238:0;;;;;:::i;:::-;;:::i;17155:94::-;;;;;;;;;;-1:-1:-1;17236:5:0;;;;;;;;;;;;-1:-1:-1;;;17236:5:0;;;;17155:94;;;;;;;:::i;:::-;;;;;;;;18012:158;;;;;;;;;;-1:-1:-1;18012:158:0;;;;;:::i;:::-;;:::i;:::-;;;1422:14:1;;1415:22;1397:41;;1385:2;1370:18;18012:158:0;1257:187:1;3602:34:0;;;;;;;;;;;;;;;;;;;1595:25:1;;;1583:2;1568:18;3602:34:0;1449:177:1;17459:105:0;;;;;;;;;;-1:-1:-1;17538:18:0;;17459:105;;14755:286;;;;;;;;;;-1:-1:-1;14755:286:0;;;;;:::i;:::-;;:::i;3204:57::-;;;;;;;;;;;;;:::i;18476:382::-;;;;;;;;;;-1:-1:-1;18476:382:0;;;;;:::i;:::-;;:::i;14465:278::-;;;;;;;;;;-1:-1:-1;14465:278:0;;;;;:::i;:::-;;:::i;17359:94::-;;;;;;;;;;-1:-1:-1;17359:94:0;;3745:2;2234:36:1;;2222:2;2207:18;17359:94:0;2092:184:1;16113:150:0;;;;;;;;;;-1:-1:-1;16113:150:0;;;;;:::i;:::-;;:::i;18864:202::-;;;;;;;;;;-1:-1:-1;18864:202:0;;;;;:::i;:::-;;:::i;14204:115::-;;;;;;;;;;;;;:::i;11454:148::-;;;;;;;;;;;;;:::i;3320:24::-;;;;;;;;;;;;;;;;4389:22;;;;;;;;;;-1:-1:-1;4389:22:0;;;;-1:-1:-1;;;4389:22:0;;;;;;15509:126;;;;;;;;;;-1:-1:-1;15509:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;15600:27:0;15576:4;15600:27;;;:18;:27;;;;;;;;;15509:126;6220:146;;;;;;;;;;-1:-1:-1;6220:146:0;;;;;:::i;:::-;;:::i;17570:116::-;;;;;;;;;;-1:-1:-1;17570:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;17660:18:0;17636:4;17660:18;;;:9;:18;;;;;;;17570:116;2221:140;;;;;;;;;;;;;:::i;15647:301::-;;;;;;;;;;;;;:::i;3383:29::-;;;;;;;;;;;;;;;;14067:131;;;;;;;;;;-1:-1:-1;14067:131:0;;;;;:::i;:::-;;:::i;17055:94::-;;;;;;;;;;-1:-1:-1;17107:7:0;2077:6;-1:-1:-1;;;;;2077:6:0;17055:94;;;-1:-1:-1;;;;;3066:32:1;;;3048:51;;3036:2;3021:18;17055:94:0;2902:203:1;4350:32:0;;;;;;;;;;-1:-1:-1;4350:32:0;;;;-1:-1:-1;;;4350:32:0;;;;;;2012:79;;;;;;;;;;-1:-1:-1;2050:7:0;2077:6;-1:-1:-1;;;;;2077:6:0;2012:79;;6372:244;;;;;;;;;;-1:-1:-1;6372:244:0;;;;;:::i;:::-;;:::i;17255:98::-;;;;;;;;;;-1:-1:-1;17338:7:0;;;;;;;;;;;;-1:-1:-1;;;17338:7:0;;;;17255:98;;14327:130;;;;;;;;;;-1:-1:-1;14327:130:0;;;;;:::i;:::-;;:::i;4418:39::-;;;;;;;;;;-1:-1:-1;4418:39:0;;;;-1:-1:-1;;;4418:39:0;;;;;;3268:45;;;;;;;;;;;;;;;;19072:334;;;;;;;;;;-1:-1:-1;19072:334:0;;;;;:::i;:::-;;:::i;15960:147::-;;;;;;;;;;;;;:::i;17692:164::-;;;;;;;;;;-1:-1:-1;17692:164:0;;;;;:::i;:::-;;:::i;10888:554::-;;;;;;;;;;-1:-1:-1;10888:554:0;;;;;:::i;:::-;;:::i;3796:31::-;;;;;;;;;;;;;;;;10594:288;;;;;;;;;;-1:-1:-1;10594:288:0;;;;;:::i;:::-;;:::i;3419:28::-;;;;;;;;;;;;;;;;4088:36;;;;;;;;;;-1:-1:-1;4088:36:0;;;;-1:-1:-1;;;;;4088:36:0;;;13513:205;;;;;;;;;;;;;:::i;13724:139::-;;;;;;;;;;;;;:::i;3754:35::-;;;;;;;;;;;;;;;;3351:25;;;;;;;;;;;;;;;;10338:250;;;;;;;;;;-1:-1:-1;10338:250:0;;;;;:::i;:::-;;:::i;3454:26::-;;;;;;;;;;;;;;;;2866:48;;;;;;;;;;-1:-1:-1;2866:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17862:144;;;;;;;;;;-1:-1:-1;17862:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;17970:19:0;;;17946:4;17970:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17862:144;15053:249;;;;;;;;;;-1:-1:-1;15053:249:0;;;;;:::i;:::-;;:::i;3569:26::-;;;;;;;;;;;;;;;;2921:36;;;;;;;;;;-1:-1:-1;2921:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2367:236;;;;;;;;;;-1:-1:-1;2367:236:0;;;;;:::i;:::-;;:::i;13869:192::-;;;;;;;;;;-1:-1:-1;13869:192:0;;;;;:::i;:::-;;:::i;15314:189::-;;;;;;;;;;-1:-1:-1;15314:189:0;;;;;:::i;:::-;;:::i;6622:258::-;;;;;;;;;;-1:-1:-1;6622:258:0;;;;;:::i;:::-;;:::i;2964:46::-;;;;;;;;;;-1:-1:-1;2964:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16499:511;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;;;;;;;;;16582:20:::1;;16563:15;:39;;16555:68;;;::::0;-1:-1:-1;;;16555:68:0;;5891:2:1;16555:68:0::1;::::0;::::1;5873:21:1::0;5930:2;5910:18;;;5903:30;-1:-1:-1;;;5949:18:1;;;5942:46;6005:18;;16555:68:0::1;5689:340:1::0;16555:68:0::1;16667:15;::::0;16708:39:::1;::::0;-1:-1:-1;;;16708:39:0;;16741:4:::1;16708:39;::::0;::::1;3048:51:1::0;-1:-1:-1;;;;;16667:15:0;;::::1;::::0;16636:21:::1;::::0;16667:15;;16708:24:::1;::::0;3021:18:1;;16708:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16761:27;::::0;16694:53;;-1:-1:-1;;;;16761:27:0;::::1;;;16758:162;;;16835:40;3191:6;16835:15;:40;:::i;:::-;16814:20;:61:::0;16906:2:::1;16897:8;:6:::0;16904:1:::1;16897:8;:::i;:::-;:11;;;;:::i;:::-;16890:18;;16758:162;16930:43;::::0;-1:-1:-1;;;16930:43:0;;16954:10:::1;16930:43;::::0;::::1;7057:51:1::0;7124:18;;;7117:34;;;-1:-1:-1;;;;;16930:23:0;::::1;::::0;::::1;::::0;7030:18:1;;16930:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;16989:13:0::1;::::0;::::1;::::0;;;::::1;16544:466;;16499:511::o:0;19412:238::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;19518:21:::1;19558:10;19550:64;19610:3;19579:28;19591:16:::0;19518:21;19579:28:::1;:::i;:::-;:34;;;;:::i;:::-;19550:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19630:12:0::1;::::0;::::1;::::0;;;::::1;19487:163;19412:238:::0;:::o;18012:158::-;18086:4;18103:37;18112:10;18124:7;18133:6;18103:8;:37::i;:::-;-1:-1:-1;18158:4:0;18012:158;;;;;:::o;14755:286::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;14852:2:::1;14841:7;:13;;14833:35;;;::::0;-1:-1:-1;;;14833:35:0;;7614:2:1;14833:35:0::1;::::0;::::1;7596:21:1::0;7653:1;7633:18;;;7626:29;-1:-1:-1;;;7671:18:1;;;7664:39;7720:18;;14833:35:0::1;7412:332:1::0;14833:35:0::1;14898:5;14887:7;:16;;14879:37;;;::::0;-1:-1:-1;;;14879:37:0;;7951:2:1;14879:37:0::1;::::0;::::1;7933:21:1::0;7990:1;7970:18;;;7963:29;-1:-1:-1;;;8008:18:1;;;8001:38;8056:18;;14879:37:0::1;7749:331:1::0;14879:37:0::1;14976:5;14966:7:::0;3248:13:::1;3745:2;3248;:13;:::i;:::-;3240:21;::::0;:5:::1;:21;:::i;:::-;14950:23;;;;:::i;:::-;:31;;;;:::i;:::-;14927:20;:54:::0;14997:36:::1;::::0;1595:25:1;;;14997:36:0::1;::::0;1583:2:1;1568:18;14997:36:0::1;;;;;;;;14755:286:::0;:::o;3204:57::-;3248:13;3745:2;3248;:13;:::i;:::-;3240:21;;:5;:21;:::i;:::-;3204:57;:::o;18476:382::-;18573:4;18590:36;18600:6;18608:9;18619:6;18590:9;:36::i;:::-;-1:-1:-1;;;;;18661:19:0;;18637:21;18661:19;;;:11;:19;;;;;;;;18681:10;18661:31;;;;;;;;18711:26;;;;18703:59;;;;-1:-1:-1;;;18703:59:0;;9670:2:1;18703:59:0;;;9652:21:1;9709:2;9689:18;;;9682:30;-1:-1:-1;;;9728:18:1;;;9721:50;9788:18;;18703:59:0;9468:344:1;18703:59:0;18773:55;18782:6;18790:10;18802:25;18821:6;18802:16;:25;:::i;:::-;18773:8;:55::i;:::-;-1:-1:-1;18846:4:0;;18476:382;-1:-1:-1;;;;18476:382:0:o;14465:278::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;14567:2:::1;14556:7;:13;;14548:32;;;::::0;-1:-1:-1;;;14548:32:0;;10149:2:1;14548:32:0::1;::::0;::::1;10131:21:1::0;10188:1;10168:18;;;10161:29;-1:-1:-1;;;10206:18:1;;;10199:36;10252:18;;14548:32:0::1;9947:329:1::0;14548:32:0::1;14610:4;14599:7;:15;;14591:36;;;::::0;-1:-1:-1;;;14591:36:0;;7951:2:1;14591:36:0::1;::::0;::::1;7933:21:1::0;7990:1;7970:18;;;7963:29;-1:-1:-1;;;8008:18:1;;;8001:38;8056:18;;14591:36:0::1;7749:331:1::0;14591:36:0::1;14683:4;14673:7:::0;3248:13:::1;3745:2;3248;:13;:::i;:::-;3240:21;::::0;:5:::1;:21;:::i;:::-;14657:23;;;;:::i;:::-;:30;;;;:::i;:::-;14638:16;:49:::0;14703:32:::1;::::0;1595:25:1;;;14703:32:0::1;::::0;1583:2:1;1568:18;14703:32:0::1;1449:177:1::0;16113:150:0;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;16198:57:::1;16220:34;16239:15;16220:18:::0;:34:::1;:::i;:::-;16198:21;:57::i;:::-;16113:150:::0;:::o;18864:202::-;18969:10;18943:4;18990:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18990:32:0;;;;;;;;;;18943:4;;18960:76;;18981:7;;18990:45;;19025:10;;18990:45;:::i;14204:115::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;14260:24:::1;14279:4;14260:18;:24::i;:::-;14300:11;::::0;::::1;::::0;;;::::1;14204:115::o:0;11454:148::-;11501:4;11590;11570:19;;11551:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;11534:15;;-1:-1:-1;;;;;11534:15:0;11524:26;;;;:9;:26;;;;;;:70;;11454:148;-1:-1:-1;11454:148:0:o;6220:146::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;6288:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6288:23:0::1;-1:-1:-1::0;;;;6288:23:0;;::::1;;::::0;;6327:31:::1;::::0;::::1;::::0;::::1;::::0;6304:7;1422:14:1;1415:22;1397:41;;1385:2;1370:18;;1257:187;2221:140:0;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;2320:1:::1;2304:6:::0;;2283:40:::1;::::0;-1:-1:-1;;;;;2304:6:0;;::::1;::::0;2283:40:::1;::::0;2320:1;;2283:40:::1;2351:1;2334:19:::0;;-1:-1:-1;;;;;;2334:19:0::1;::::0;;2221:140::o;15647:301::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;15712:15:::1;::::0;:18;15704:45:::1;;;::::0;-1:-1:-1;;;15704:45:0;;10483:2:1;15704:45:0::1;::::0;::::1;10465:21:1::0;10522:2;10502:18;;;10495:30;-1:-1:-1;;;10541:18:1;;;10534:45;10596:18;;15704:45:0::1;10281:339:1::0;15704:45:0::1;15776:15;15760;:31:::0;15842:4:::1;3248:13;3745:2;3248;:13;:::i;:::-;3240:21;::::0;:5:::1;:21;:::i;:::-;15821:18;::::0;15837:2:::1;15821:18;:::i;:::-;:25;;;;:::i;:::-;15802:16;:44:::0;;;15902:5:::1;::::0;3248:13:::1;::::0;:2:::1;:13;:::i;:::-;3240:21;::::0;:5:::1;:21;:::i;:::-;15880:19;::::0;15896:3:::1;15880:19;:::i;:::-;:27;;;;:::i;:::-;15857:20;:50:::0;15923:17:::1;::::0;::::1;::::0;;;::::1;15647:301::o:0;14067:131::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;14133:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;14133:17:0::1;-1:-1:-1::0;;;;14133:17:0;;::::1;;::::0;;14166:24:::1;::::0;::::1;::::0;::::1;::::0;14144:6;1422:14:1;1415:22;1397:41;;1385:2;1370:18;;1257:187;17134:7:0;17127:14;;17055:94;:::o;6372:244::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;6474:9:::1;6469:106;6485:20:::0;;::::1;6469:106;;;6557:6;6527:13;:27;6541:9;;6551:1;6541:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6527:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6527:27:0;:36;;-1:-1:-1;;6527:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6507:3:::1;::::0;::::1;:::i;:::-;;;6469:106;;;-1:-1:-1::0;6590:18:0::1;::::0;::::1;::::0;;;::::1;6372:244:::0;;;:::o;14327:130::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;14393:9:::1;:19:::0;;-1:-1:-1;;;;;;14393:19:0::1;-1:-1:-1::0;;;;;14393:19:0;::::1;::::0;;::::1;::::0;;;14428:21:::1;::::0;3048:51:1;;;14428:21:0::1;::::0;3036:2:1;3021:18;14428:21:0::1;2902:203:1::0;19072:334:0;19209:10;19156:4;19197:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19197:32:0;;;;;;;;;;19248:35;;;;19240:60;;;;-1:-1:-1;;;19240:60:0;;11099:2:1;19240:60:0;;;11081:21:1;11138:2;11118:18;;;11111:30;-1:-1:-1;;;11157:18:1;;;11150:42;11209:18;;19240:60:0;10897:336:1;19240:60:0;19311:65;19320:10;19332:7;19341:34;19360:15;19341:16;:34;:::i;19311:65::-;-1:-1:-1;19394:4:0;;19072:334;-1:-1:-1;;;19072:334:0:o;15960:147::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;16031:27:::1;:32:::0;;-1:-1:-1;;;;16031:32:0::1;-1:-1:-1::0;;;16031:32:0::1;::::0;;16079:20:::1;::::0;::::1;::::0;16031:32;;16079:20:::1;15960:147::o:0;17692:164::-;17769:4;17786:40;17796:10;17808:9;17819:6;17786:9;:40::i;10888:554::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;10999:11:::1;11011:33;3560:2;3517:4;11011:33;:::i;:::-;10999:45;;11068:6;11063:3;:11;;:25;;;;;11082:6;11076:4;:12;;11063:25;:44;;;;;11101:6;11090:9;:17;;11063:44;11055:74;;;::::0;-1:-1:-1;;;11055:74:0;;11440:2:1;11055:74:0::1;::::0;::::1;11422:21:1::0;11479:2;11459:18;;;11452:30;-1:-1:-1;;;11498:18:1;;;11491:48;11556:18;;11055:74:0::1;11238:342:1::0;11055:74:0::1;3517:4;11148:17;11156:9:::0;11148:7;:17:::1;:::i;:::-;:34;11140:79;;;::::0;-1:-1:-1;;;11140:79:0;;11787:2:1;11140:79:0::1;::::0;::::1;11769:21:1::0;11826:2;11806:18;;;11799:30;11865:34;11845:18;;;11838:62;-1:-1:-1;;;11916:18:1;;;11909:31;11957:19;;11140:79:0::1;11585:397:1::0;11140:79:0::1;11240:6;:10:::0;;;11261:7:::1;:12:::0;;;11284:11:::1;:21:::0;;;11316:10:::1;:18:::0;;;11345:12:::1;:22:::0;;;11383:51:::1;::::0;;12246:25:1;;;12302:2;12287:18;;12280:34;;;12330:18;;;12323:34;;;12388:2;12373:18;;12366:34;;;12431:3;12416:19;;12409:35;;;11383:51:0::1;::::0;12233:3:1;12218:19;11383:51:0::1;;;;;;;10988:454;10888:554:::0;;;;;:::o;10594:288::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;10732:4:::1;10700:30;:36;;10692:45;;;::::0;::::1;;10748:19;:50:::0;;;10814:60:::1;::::0;1595:25:1;;;10814:60:0::1;::::0;1583:2:1;1568:18;10814:60:0::1;1449:177:1::0;13513:205:0;13578:4;13613:20;;13597:15;:36;13594:97;;;13676:15;13655:20;;:36;;;;:::i;13594:97::-;-1:-1:-1;13709:1:0;;13513:205::o;13724:139::-;13847:6;13771:4;13829:26;;;:9;:26;;;;13809:18;;3248:13;3745:2;3248;:13;:::i;:::-;3240:21;;:5;:21;:::i;:::-;13795:32;;;;:::i;:::-;13794:61;;;;:::i;10338:250::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;10453:2:::1;10428:23;:27;;10420:36;;;::::0;::::1;;10484:12;:36:::0;;;10536:44:::1;::::0;1595:25:1;;;10536:44:0::1;::::0;1583:2:1;1568:18;10536:44:0::1;1449:177:1::0;15053:249:0;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15151:22:0;::::1;15168:4;15151:22;;15143:60;;;::::0;-1:-1:-1;;;15143:60:0;;12657:2:1;15143:60:0::1;::::0;::::1;12639:21:1::0;12696:2;12676:18;;;12669:30;12735:28;12715:18;;;12708:56;12781:18;;15143:60:0::1;12455:350:1::0;15143:60:0::1;-1:-1:-1::0;;;;;15214:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;15214:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15263:31;;12978:51:1;;;13045:18;;;13038:50;15263:31:0::1;::::0;12951:18:1;15263:31:0::1;;;;;;;;15053:249:::0;;:::o;2367:236::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2448:22:0;::::1;2440:73;;;::::0;-1:-1:-1;;;2440:73:0;;13301:2:1;2440:73:0::1;::::0;::::1;13283:21:1::0;13340:2;13320:18;;;13313:30;13379:34;13359:18;;;13352:62;-1:-1:-1;;;13430:18:1;;;13423:36;13476:19;;2440:73:0::1;13099:402:1::0;2440:73:0::1;2550:6;::::0;;2529:38:::1;::::0;-1:-1:-1;;;;;2529:38:0;;::::1;::::0;2550:6;::::1;::::0;2529:38:::1;::::0;::::1;2578:6;:17:::0;;-1:-1:-1;;;;;;2578:17:0::1;-1:-1:-1::0;;;;;2578:17:0;;;::::1;::::0;;;::::1;::::0;;2367:236::o;13869:192::-;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;13951:15:::1;::::0;-1:-1:-1;;;;;13945:21:0;;::::1;13951:15:::0;::::1;13945:21;;13937:53;;;::::0;-1:-1:-1;;;13937:53:0;;13708:2:1;13937:53:0::1;::::0;::::1;13690:21:1::0;13747:2;13727:18;;;13720:30;-1:-1:-1;;;13766:18:1;;;13759:50;13826:18;;13937:53:0::1;13506:344:1::0;13937:53:0::1;-1:-1:-1::0;;;;;14001:12:0;::::1;;::::0;;;:6:::1;:12;::::0;;;;;;;;:16;;-1:-1:-1;;14001:16:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14033:20;;12978:51:1;;;13045:18;;;13038:50;14033:20:0::1;::::0;12951:18:1;14033:20:0::1;12810:284:1::0;15314:189:0;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15410:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;15410:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15461:34;;12978:51:1;;;13045:18;;;13038:50;15461:34:0::1;::::0;12951:18:1;15461:34:0::1;12810:284:1::0;6622:258:0;2148:10;2137:7;2050;2077:6;-1:-1:-1;;;;;2077:6:0;;2012:79;2137:7;-1:-1:-1;;;;;2137:21:0;;2129:66;;;;-1:-1:-1;;;2129:66:0;;;;;;;:::i;:::-;6698:13:::1;:33:::0;;-1:-1:-1;;;;;;6698:33:0::1;-1:-1:-1::0;;;;;6698:33:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6742:28:0;;;:16:::1;:28;::::0;;;;;;;:35;;-1:-1:-1;;6742:35:0;;::::1;-1:-1:-1::0;6742:35:0;;::::1;::::0;;;6788:18:::1;:30:::0;;;;;;:37;;;;::::1;;::::0;;;6841:31;;3048:51:1;;;6841:31:0::1;::::0;3021:18:1;6841:31:0::1;2902:203:1::0;18176:294:0;-1:-1:-1;;;;;18266:19:0;;18258:49;;;;-1:-1:-1;;;18258:49:0;;14057:2:1;18258:49:0;;;14039:21:1;14096:2;14076:18;;;14069:30;-1:-1:-1;;;14115:18:1;;;14108:47;14172:18;;18258:49:0;13855:341:1;18258:49:0;-1:-1:-1;;;;;18326:21:0;;18318:49;;;;-1:-1:-1;;;18318:49:0;;14403:2:1;18318:49:0;;;14385:21:1;14442:2;14422:18;;;14415:30;-1:-1:-1;;;14461:18:1;;;14454:45;14516:18;;18318:49:0;14201:339:1;18318:49:0;-1:-1:-1;;;;;18378:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18430:32;;1595:25:1;;;18430:32:0;;1568:18:1;18430:32:0;;;;;;;18176:294;;;:::o;6886:643::-;-1:-1:-1;;;;;6979:20:0;;6971:51;;;;-1:-1:-1;;;6971:51:0;;14747:2:1;6971:51:0;;;14729:21:1;14786:2;14766:18;;;14759:30;-1:-1:-1;;;14805:18:1;;;14798:48;14863:18;;6971:51:0;14545:342:1;6971:51:0;-1:-1:-1;;;;;7041:23:0;;7033:52;;;;-1:-1:-1;;;7033:52:0;;15094:2:1;7033:52:0;;;15076:21:1;15133:2;15113:18;;;15106:30;-1:-1:-1;;;15152:18:1;;;15145:46;15208:18;;7033:52:0;14892:340:1;7033:52:0;7099:13;;-1:-1:-1;;;7099:13:0;;;;7096:122;;;-1:-1:-1;;;;;7137:21:0;;;;;;:13;:21;;;;;;;;7136:22;:51;;;;-1:-1:-1;;;;;;7163:24:0;;;;;;:13;:24;;;;;;;;7162:25;7136:51;7128:74;;;;-1:-1:-1;;;7128:74:0;;15439:2:1;7128:74:0;;;15421:21:1;15478:2;15458:18;;;15451:30;-1:-1:-1;;;15497:18:1;;;15490:41;15548:18;;7128:74:0;15237:335:1;7128:74:0;-1:-1:-1;;;;;7231:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;7259:27:0;;;;;;:16;:27;;;;;;;;7231:55;7228:294;;;7301:43;7318:6;7326:9;7337:6;7301:16;:43::i;:::-;6886:643;;;:::o;7228:294::-;7410:1;7394:15;;:17;7386:52;;;;-1:-1:-1;;;7386:52:0;;15779:2:1;7386:52:0;;;15761:21:1;15818:2;15798:18;;;15791:30;15857:25;15837:18;;;15830:53;15900:18;;7386:52:0;15577:347:1;7386:52:0;7453:39;7468:6;7475:9;7485:6;7453:14;:39::i;16269:218::-;16360:20;;16346:13;:34;16338:43;;;;;;16392:20;:34;;;16442:37;;1595:25:1;;;16442:37:0;;1583:2:1;1568:18;16442:37:0;1449:177:1;11608:1074:0;4182:27;:34;;-1:-1:-1;;;;4182:34:0;-1:-1:-1;;;4182:34:0;;;11724:4:::1;4182:34:::0;11706:24;;;4212:4;11706:24:::1;::::0;;;;;11768:10:::1;::::0;11755:12:::1;::::0;11706:24;;4182:34;11755:23:::1;::::0;11768:10;11755:23:::1;:::i;:::-;11833:12;::::0;11816:15:::1;::::0;-1:-1:-1;;;;;11816:15:0::1;11789:16;11806:26:::0;;;:9:::1;:26;::::0;;;;;11741:37;;-1:-1:-1;11789:16:0;11846:4:::1;::::0;11806:39:::1;::::0;::::1;:::i;:::-;:44;;;;:::i;:::-;11789:61:::0;-1:-1:-1;11864:11:0;11861:22:::1;;11876:7;;;;;11861:22;11896:12;11893:134;;;-1:-1:-1::0;11953:4:0::1;11935:24;::::0;;;:9:::1;:24;::::0;;;;;11893:134:::1;;;11994:11;11978:15;:27;11975:52;;;12020:7;;;;;11975:52;12037:22;12060:17;:15;:17::i;:::-;:55;;12107:8;12093:12;;12081:11;:24;;;;:::i;:::-;12080:35;;;;:::i;:::-;12060:55;;;12078:1;12060:55;12037:78:::0;-1:-1:-1;12128:20:0::1;12150:29;12037:78:::0;12150:11;:29:::1;:::i;:::-;12128:51:::0;-1:-1:-1;12192:12:0::1;12205:19;12223:1;12205:17:::0;:19:::1;:::i;:::-;12192:32:::0;-1:-1:-1;12235:14:0::1;12250:23;12258:15:::0;12192:32;12250:23:::1;:::i;:::-;12235:38:::0;-1:-1:-1;12309:21:0::1;12341:27;12235:38:::0;12341:16:::1;:27::i;:::-;12379:11;12392:41;12416:17:::0;12392:21:::1;:41;:::i;:::-;12379:55:::0;-1:-1:-1;12448:19:0;;12445:135:::1;;12483:11;12514:9:::0;12498:14:::1;12505:7:::0;12498:6;:14:::1;:::i;:::-;12497:26;;;;:::i;:::-;12483:40;;12538:30;12552:7;12561:6;12538:13;:30::i;:::-;12468:112;12445:135;12603:13;::::0;:51:::1;::::0;12591:9:::1;::::0;-1:-1:-1;;;;;12603:13:0::1;::::0;12628:21:::1;::::0;12591:9;12603:51;12591:9;12603:51;12628:21;12603:13;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;4227:1:0::1;-1:-1:-1::0;4239:27:0;:35;;-1:-1:-1;;;;4239:35:0;;;11608:1074::o;9993:339::-;-1:-1:-1;;;;;10106:17:0;;10085:18;10106:17;;;:9;:17;;;;;;10142:23;;;;10134:60;;;;-1:-1:-1;;;10134:60:0;;16341:2:1;10134:60:0;;;16323:21:1;16380:2;16360:18;;;16353:30;-1:-1:-1;;;16399:18:1;;;16392:54;16463:18;;10134:60:0;16139:348:1;10134:60:0;-1:-1:-1;;;;;10205:17:0;;;;;;:9;:17;;;;;:25;;10224:6;;10205:17;:25;;10224:6;;10205:25;:::i;:::-;;;;-1:-1:-1;;;;;;;10241:20:0;;;;;;:9;:20;;;;;:28;;10263:6;;10241:20;:28;;10263:6;;10241:28;:::i;:::-;;;;;;;;10307:9;-1:-1:-1;;;;;10291:33:0;10300:6;-1:-1:-1;;;;;10291:33:0;;10317:6;10291:33;;;;1595:25:1;;1583:2;1568:18;;1449:177;10291:33:0;;;;;;;;10074:258;9993:339;;;:::o;7535:2053::-;-1:-1:-1;;;;;7646:17:0;;7625:18;7646:17;;;:9;:17;;;;;;7682:23;;;;7674:60;;;;-1:-1:-1;;;7674:60:0;;16341:2:1;7674:60:0;;;16323:21:1;16380:2;16360:18;;;16353:30;-1:-1:-1;;;16399:18:1;;;16392:54;16463:18;;7674:60:0;16139:348:1;7674:60:0;-1:-1:-1;;;;;7768:26:0;;7745:20;7768:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;7798:29:0;;;;;;:18;:29;;;;;;;;7768:59;-1:-1:-1;;;;;7856:14:0;;;;;;:6;:14;;;;;;7745:82;;-1:-1:-1;7856:14:0;;:47;;;;;7888:15;7887:16;7856:47;7838:686;;;7966:20;;7956:6;:30;;7930:132;;;;-1:-1:-1;;;7930:132:0;;16694:2:1;7930:132:0;;;16676:21:1;16733:2;16713:18;;;16706:30;16772:34;16752:18;;;16745:62;-1:-1:-1;;;16823:18:1;;;16816:38;16871:19;;7930:132:0;16492:404:1;7930:132:0;-1:-1:-1;;;;;17660:18:0;;8077:32;17660:18;;;:9;:18;;;;;;8210:16;;8173:33;8200:6;17660:18;8173:33;:::i;:::-;:53;;8147:151;;;;-1:-1:-1;;;8147:151:0;;17103:2:1;8147:151:0;;;17085:21:1;17142:2;17122:18;;;17115:30;17181:34;17161:18;;;17154:62;-1:-1:-1;;;17232:18:1;;;17225:34;17276:19;;8147:151:0;16901:400:1;8147:151:0;7915:395;7838:686;;;-1:-1:-1;;;;;8334:17:0;;;;;;:6;:17;;;;;;;;:50;;;;;8369:15;8368:16;8334:50;8316:208;;;8429:20;;8419:6;:30;;8411:101;;;;-1:-1:-1;;;8411:101:0;;17508:2:1;8411:101:0;;;17490:21:1;17547:2;17527:18;;;17520:30;17586:34;17566:18;;;17559:62;17657:28;17637:18;;;17630:56;17703:19;;8411:101:0;17306:422:1;8411:101:0;-1:-1:-1;;;;;8547:14:0;;;8536:10;8547:14;;;:6;:14;;;;;;;8584:17;;;;;;;;8547:14;;;;;8584:17;;8631:494;;;;8732:15;;8679:9;;8732:31;;8679:9;;8732:31;:::i;:::-;8716:15;:47;8713:143;;;8787:33;8800:15;8816:3;8787:12;:33::i;:::-;8783:37;;8713:143;;;8849:7;;8845:11;;8713:143;8641:231;8631:494;;;8890:5;8887:238;;;8975:15;;8931:10;;8975:30;;8931:10;;8975:30;:::i;:::-;8959:15;:46;8956:136;;;9029:32;9042:14;9057:3;9029:12;:32::i;8956:136::-;-1:-1:-1;;9086:6:0;;8887:238;;;-1:-1:-1;9114:11:0;;8887:238;9150:15;;-1:-1:-1;;;;;9142:23:0;;;9150:15;;9142:23;;;;9141:40;;-1:-1:-1;9170:10:0;;-1:-1:-1;;;9170:10:0;;;;9169:11;9141:40;:72;;;;-1:-1:-1;9185:27:0;;-1:-1:-1;;;9185:27:0;;;;9184:28;9141:72;9138:115;;;9228:25;9247:5;9228:18;:25::i;:::-;9264:18;9283:51;9297:6;9305:3;9321:12;;9310:10;;:23;;;;:::i;:::-;9283:13;:51::i;:::-;9264:70;-1:-1:-1;9345:16:0;9362:20;9264:70;9362:6;:20;:::i;:::-;-1:-1:-1;;;;;9395:17:0;;;;;;:9;:17;;;;;:25;;9345:37;;-1:-1:-1;9414:6:0;;9395:17;;;:25;;9414:6;;9395:25;:::i;:::-;;;;-1:-1:-1;;9449:4:0;9431:24;;;;:9;:24;;;;;:41;;9459:13;;9431:24;:41;;9459:13;;9431:41;:::i;:::-;;;;-1:-1:-1;;;;;;;9483:20:0;;;;;;:9;:20;;;;;:33;;9505:11;;9483:20;:33;;9505:11;;9483:33;:::i;:::-;;;;;;;;9558:9;-1:-1:-1;;;;;9542:38:0;9551:6;-1:-1:-1;;;;;9542:38:0;;9568:11;9542:38;;;;1595:25:1;;1583:2;1568:18;;1449:177;9542:38:0;;;;;;;;7614:1974;;;;;;;7535:2053;;;:::o;12688:462::-;12778:10;;12746:52;;12763:4;;-1:-1:-1;;;;;12778:10:0;12791:6;12746:8;:52::i;:::-;12833:16;;;12847:1;12833:16;;;;;;;;12809:21;;12833:16;;;;;;;;;;-1:-1:-1;12833:16:0;12809:40;;12878:4;12860;12865:1;12860:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12860:23:0;;;:7;;;;;;;;;;:23;;;;12904:10;;:17;;;-1:-1:-1;;;12904:17:0;;;;:10;;;;;:15;;:17;;;;;12860:7;;12904:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12894:4;12899:1;12894:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12894:27:0;;;:7;;;;;;;;;:27;12938:10;;:186;;-1:-1:-1;;;12938:186:0;;:10;;;:61;;:186;;13014:6;;12938:10;;13051:4;;13078;;13098:15;;12938:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12735:415;12688:462;:::o;13156:351::-;13264:10;;13232:57;;13249:4;;-1:-1:-1;;;;;13264:10:0;13277:11;13232:8;:57::i;:::-;13300:10;;:199;;-1:-1:-1;;;13300:199:0;;13367:4;13300:199;;;19447:34:1;;;19497:18;;;19490:34;;;13300:10:0;19540:18:1;;;19533:34;;;19583:18;;;19576:34;19626:19;;;19619:44;13473:15:0;19679:19:1;;;19672:35;-1:-1:-1;;;;;13300:10:0;;;;:26;;13334:9;;19381:19:1;;13300:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13156:351;;:::o;9594:211::-;9666:4;9682:20;9719:15;;9703;:31;;;;:::i;:::-;9682:52;-1:-1:-1;9788:8:0;9682:52;9761:9;9768:2;9761:6;:9;:::i;:::-;9760:27;;;;:::i;:::-;:36;;;;:::i;:::-;9752:45;;:6;:45;:::i;:::-;9745:52;9594:211;-1:-1:-1;;;;9594:211:0:o;9811:176::-;9896:4;9947:31;3517:4;;9947:31;:::i;:::-;9932:10;9921;9928:3;9921:6;:10;:::i;:::-;:21;;;;:::i;:::-;9920:59;;;;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:597::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;637:6;634:1;631:13;628:91;;;707:1;702:2;693:6;682:9;678:22;674:31;667:42;628:91;-1:-1:-1;780:2:1;759:15;-1:-1:-1;;755:29:1;740:45;;;;787:2;736:54;;199:597;-1:-1:-1;;;199:597:1:o;801:131::-;-1:-1:-1;;;;;876:31:1;;866:42;;856:70;;922:1;919;912:12;937:315;1005:6;1013;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;1121:9;1108:23;1140:31;1165:5;1140:31;:::i;:::-;1190:5;1242:2;1227:18;;;;1214:32;;-1:-1:-1;;;937:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;:::-;2517:5;2281:247;-1:-1:-1;;;2281:247:1:o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:241;2712:6;2765:2;2753:9;2744:7;2740:23;2736:32;2733:52;;;2781:1;2778;2771:12;2733:52;2820:9;2807:23;2839:28;2861:5;2839:28;:::i;3110:750::-;3202:6;3210;3218;3271:2;3259:9;3250:7;3246:23;3242:32;3239:52;;;3287:1;3284;3277:12;3239:52;3327:9;3314:23;3356:18;3397:2;3389:6;3386:14;3383:34;;;3413:1;3410;3403:12;3383:34;3451:6;3440:9;3436:22;3426:32;;3496:7;3489:4;3485:2;3481:13;3477:27;3467:55;;3518:1;3515;3508:12;3467:55;3558:2;3545:16;3584:2;3576:6;3573:14;3570:34;;;3600:1;3597;3590:12;3570:34;3655:7;3648:4;3638:6;3635:1;3631:14;3627:2;3623:23;3619:34;3616:47;3613:67;;;3676:1;3673;3666:12;3613:67;3707:4;3699:13;;;;-1:-1:-1;3731:6:1;-1:-1:-1;;3772:20:1;;3759:34;3802:28;3759:34;3802:28;:::i;:::-;3849:5;3839:15;;;3110:750;;;;;:::o;3865:454::-;3960:6;3968;3976;3984;3992;4045:3;4033:9;4024:7;4020:23;4016:33;4013:53;;;4062:1;4059;4052:12;4013:53;-1:-1:-1;;4085:23:1;;;4155:2;4140:18;;4127:32;;-1:-1:-1;4206:2:1;4191:18;;4178:32;;4257:2;4242:18;;4229:32;;-1:-1:-1;4308:3:1;4293:19;4280:33;;-1:-1:-1;3865:454:1;-1:-1:-1;3865:454:1:o;4548:388::-;4616:6;4624;4677:2;4665:9;4656:7;4652:23;4648:32;4645:52;;;4693:1;4690;4683:12;4645:52;4732:9;4719:23;4751:31;4776:5;4751:31;:::i;:::-;4801:5;-1:-1:-1;4858:2:1;4843:18;;4830:32;4871:33;4830:32;4871:33;:::i;:::-;4923:7;4913:17;;;4548:388;;;;;:::o;4941:382::-;5006:6;5014;5067:2;5055:9;5046:7;5042:23;5038:32;5035:52;;;5083:1;5080;5073:12;5035:52;5122:9;5109:23;5141:31;5166:5;5141:31;:::i;:::-;5191:5;-1:-1:-1;5248:2:1;5233:18;;5220:32;5261:30;5220:32;5261:30;:::i;5328:356::-;5530:2;5512:21;;;5549:18;;;5542:30;5608:34;5603:2;5588:18;;5581:62;5675:2;5660:18;;5328:356::o;6034:184::-;6104:6;6157:2;6145:9;6136:7;6132:23;6128:32;6125:52;;;6173:1;6170;6163:12;6125:52;-1:-1:-1;6196:16:1;;6034:184;-1:-1:-1;6034:184:1:o;6223:127::-;6284:10;6279:3;6275:20;6272:1;6265:31;6315:4;6312:1;6305:15;6339:4;6336:1;6329:15;6355:128;6395:3;6426:1;6422:6;6419:1;6416:13;6413:39;;;6432:18;;:::i;:::-;-1:-1:-1;6468:9:1;;6355:128::o;6488:168::-;6528:7;6594:1;6590;6586:6;6582:14;6579:1;6576:21;6571:1;6564:9;6557:17;6553:45;6550:71;;;6601:18;;:::i;:::-;-1:-1:-1;6641:9:1;;6488:168::o;6661:217::-;6701:1;6727;6717:132;;6771:10;6766:3;6762:20;6759:1;6752:31;6806:4;6803:1;6796:15;6834:4;6831:1;6824:15;6717:132;-1:-1:-1;6863:9:1;;6661:217::o;7162:245::-;7229:6;7282:2;7270:9;7261:7;7257:23;7253:32;7250:52;;;7298:1;7295;7288:12;7250:52;7330:9;7324:16;7349:28;7371:5;7349:28;:::i;8085:422::-;8174:1;8217:5;8174:1;8231:270;8252:7;8242:8;8239:21;8231:270;;;8311:4;8307:1;8303:6;8299:17;8293:4;8290:27;8287:53;;;8320:18;;:::i;:::-;8370:7;8360:8;8356:22;8353:55;;;8390:16;;;;8353:55;8469:22;;;;8429:15;;;;8231:270;;;8235:3;8085:422;;;;;:::o;8512:806::-;8561:5;8591:8;8581:80;;-1:-1:-1;8632:1:1;8646:5;;8581:80;8680:4;8670:76;;-1:-1:-1;8717:1:1;8731:5;;8670:76;8762:4;8780:1;8775:59;;;;8848:1;8843:130;;;;8755:218;;8775:59;8805:1;8796:10;;8819:5;;;8843:130;8880:3;8870:8;8867:17;8864:43;;;8887:18;;:::i;:::-;-1:-1:-1;;8943:1:1;8929:16;;8958:5;;8755:218;;9057:2;9047:8;9044:16;9038:3;9032:4;9029:13;9025:36;9019:2;9009:8;9006:16;9001:2;8995:4;8992:12;8988:35;8985:77;8982:159;;;-1:-1:-1;9094:19:1;;;9126:5;;8982:159;9173:34;9198:8;9192:4;9173:34;:::i;:::-;9243:6;9239:1;9235:6;9231:19;9222:7;9219:32;9216:58;;;9254:18;;:::i;:::-;9292:20;;8512:806;-1:-1:-1;;;8512:806:1:o;9323:140::-;9381:5;9410:47;9451:4;9441:8;9437:19;9431:4;9410:47;:::i;9817:125::-;9857:4;9885:1;9882;9879:8;9876:34;;;9890:18;;:::i;:::-;-1:-1:-1;9927:9:1;;9817:125::o;10625:127::-;10686:10;10681:3;10677:20;10674:1;10667:31;10717:4;10714:1;10707:15;10741:4;10738:1;10731:15;10757:135;10796:3;-1:-1:-1;;10817:17:1;;10814:43;;;10837:18;;:::i;:::-;-1:-1:-1;10884:1:1;10873:13;;10757:135::o;17865:251::-;17935:6;17988:2;17976:9;17967:7;17963:23;17959:32;17956:52;;;18004:1;18001;17994:12;17956:52;18036:9;18030:16;18055:31;18080:5;18055:31;:::i;18121:980::-;18383:4;18431:3;18420:9;18416:19;18462:6;18451:9;18444:25;18488:2;18526:6;18521:2;18510:9;18506:18;18499:34;18569:3;18564:2;18553:9;18549:18;18542:31;18593:6;18628;18622:13;18659:6;18651;18644:22;18697:3;18686:9;18682:19;18675:26;;18736:2;18728:6;18724:15;18710:29;;18757:1;18767:195;18781:6;18778:1;18775:13;18767:195;;;18846:13;;-1:-1:-1;;;;;18842:39:1;18830:52;;18937:15;;;;18902:12;;;;18878:1;18796:9;18767:195;;;-1:-1:-1;;;;;;;19018:32:1;;;;19013:2;18998:18;;18991:60;-1:-1:-1;;;19082:3:1;19067:19;19060:35;18979:3;18121:980;-1:-1:-1;;;18121:980:1:o;19718:306::-;19806:6;19814;19822;19875:2;19863:9;19854:7;19850:23;19846:32;19843:52;;;19891:1;19888;19881:12;19843:52;19920:9;19914:16;19904:26;;19970:2;19959:9;19955:18;19949:25;19939:35;;20014:2;20003:9;19999:18;19993:25;19983:35;;19718:306;;;;;:::o

Swarm Source

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