ETH Price: $3,428.83 (-1.53%)
Gas: 5 Gwei

Contract

0x1ae378cC5d38350Ec90cE9bcf827a544cB2BBA75
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Approve199585802024-05-27 3:40:1152 days ago1716781211IN
0x1ae378cC...4cB2BBA75
0 ETH0.000395748.48339144
Approve196173492024-04-09 9:59:1199 days ago1712656751IN
0x1ae378cC...4cB2BBA75
0 ETH0.0005552822.79043899
Transfer195019432024-03-24 4:09:11115 days ago1711253351IN
0x1ae378cC...4cB2BBA75
0 ETH0.0031776916.13695965
Approve194912052024-03-22 15:57:59117 days ago1711123079IN
0x1ae378cC...4cB2BBA75
0 ETH0.0013172128.27307682
Approve194593762024-03-18 4:42:59121 days ago1710736979IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010414922.35485512
Approve194186562024-03-12 11:19:47127 days ago1710242387IN
0x1ae378cC...4cB2BBA75
0 ETH0.0021251145.55539367
Approve193931822024-03-08 21:43:23131 days ago1709934203IN
0x1ae378cC...4cB2BBA75
0 ETH0.0033848972.56098183
Approve193834492024-03-07 12:59:23132 days ago1709816363IN
0x1ae378cC...4cB2BBA75
0 ETH0.0022522848.60666841
Approve192965532024-02-24 9:28:23144 days ago1708766903IN
0x1ae378cC...4cB2BBA75
0 ETH0.0006212125.49630853
Approve192324612024-02-15 9:33:35153 days ago1707989615IN
0x1ae378cC...4cB2BBA75
0 ETH0.0009788621.01065241
Approve192096382024-02-12 4:43:35156 days ago1707713015IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010370822.23162275
Approve191686782024-02-06 10:42:35162 days ago1707216155IN
0x1ae378cC...4cB2BBA75
0 ETH0.0006995326.47230668
Approve191686672024-02-06 10:40:11162 days ago1707216011IN
0x1ae378cC...4cB2BBA75
0 ETH0.0012447926.87090693
Approve191116662024-01-29 10:43:47170 days ago1706525027IN
0x1ae378cC...4cB2BBA75
0 ETH0.0005179611.16956323
Approve189224742024-01-02 21:49:11197 days ago1704232151IN
0x1ae378cC...4cB2BBA75
0 ETH0.0012359526.52889232
Approve188717722023-12-26 18:52:23204 days ago1703616743IN
0x1ae378cC...4cB2BBA75
0 ETH0.0008850518.99717919
Approve188253312023-12-20 6:27:23210 days ago1703053643IN
0x1ae378cC...4cB2BBA75
0 ETH0.0018356839.35103311
Approve187822202023-12-14 5:11:59216 days ago1702530719IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010380439.35428637
Approve187822132023-12-14 5:10:35216 days ago1702530635IN
0x1ae378cC...4cB2BBA75
0 ETH0.0017826638.52154421
Approve186148682023-11-20 18:45:23240 days ago1700505923IN
0x1ae378cC...4cB2BBA75
0 ETH0.0019610942.03927675
Approve185585812023-11-12 21:41:47248 days ago1699825307IN
0x1ae378cC...4cB2BBA75
0 ETH0.0007194229.59967516
Approve184252062023-10-25 5:34:11266 days ago1698212051IN
0x1ae378cC...4cB2BBA75
0 ETH0.0002503610.27573875
Transfer183924302023-10-20 15:29:11271 days ago1697815751IN
0x1ae378cC...4cB2BBA75
0 ETH0.0008632119.73503028
Transfer183611942023-10-16 6:37:59275 days ago1697438279IN
0x1ae378cC...4cB2BBA75
0 ETH0.000210614.81508426
Transfer183252012023-10-11 5:44:35280 days ago1697003075IN
0x1ae378cC...4cB2BBA75
0 ETH0.00022885.23091112
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
195019432024-03-24 4:09:11115 days ago1711253351
0x1ae378cC...4cB2BBA75
0.04 ETH
195019432024-03-24 4:09:11115 days ago1711253351
0x1ae378cC...4cB2BBA75
0.04 ETH
178916112023-08-11 12:21:47341 days ago1691756507
0x1ae378cC...4cB2BBA75
0.00134275 ETH
178916112023-08-11 12:21:47341 days ago1691756507
0x1ae378cC...4cB2BBA75
0.00134275 ETH
178857072023-08-10 16:33:47342 days ago1691685227
0x1ae378cC...4cB2BBA75
0.00281719 ETH
178857072023-08-10 16:33:47342 days ago1691685227
0x1ae378cC...4cB2BBA75
0.00281719 ETH
178853772023-08-10 15:27:35342 days ago1691681255
0x1ae378cC...4cB2BBA75
0.001209 ETH
178853772023-08-10 15:27:35342 days ago1691681255
0x1ae378cC...4cB2BBA75
0.001209 ETH
178849402023-08-10 13:59:47342 days ago1691675987
0x1ae378cC...4cB2BBA75
0.00111061 ETH
178849402023-08-10 13:59:47342 days ago1691675987
0x1ae378cC...4cB2BBA75
0.00111061 ETH
178848962023-08-10 13:50:59342 days ago1691675459
0x1ae378cC...4cB2BBA75
0.00211613 ETH
178848962023-08-10 13:50:59342 days ago1691675459
0x1ae378cC...4cB2BBA75
0.00211613 ETH
178847242023-08-10 13:16:23342 days ago1691673383
0x1ae378cC...4cB2BBA75
0.00100806 ETH
178847242023-08-10 13:16:23342 days ago1691673383
0x1ae378cC...4cB2BBA75
0.00100806 ETH
178846732023-08-10 13:06:11342 days ago1691672771
0x1ae378cC...4cB2BBA75
0.00105947 ETH
178846732023-08-10 13:06:11342 days ago1691672771
0x1ae378cC...4cB2BBA75
0.00105947 ETH
178845602023-08-10 12:43:35342 days ago1691671415
0x1ae378cC...4cB2BBA75
0.00055609 ETH
178845602023-08-10 12:43:35342 days ago1691671415
0x1ae378cC...4cB2BBA75
0.00055609 ETH
178844262023-08-10 12:16:35342 days ago1691669795
0x1ae378cC...4cB2BBA75
0.00084716 ETH
178844262023-08-10 12:16:35342 days ago1691669795
0x1ae378cC...4cB2BBA75
0.00084716 ETH
178836902023-08-10 9:47:59342 days ago1691660879
0x1ae378cC...4cB2BBA75
0.00066025 ETH
178836902023-08-10 9:47:59342 days ago1691660879
0x1ae378cC...4cB2BBA75
0.00066025 ETH
178833252023-08-10 8:33:59342 days ago1691656439
0x1ae378cC...4cB2BBA75
0.00066119 ETH
178833252023-08-10 8:33:59342 days ago1691656439
0x1ae378cC...4cB2BBA75
0.00066119 ETH
178831712023-08-10 8:03:11342 days ago1691654591
0x1ae378cC...4cB2BBA75
0.01488143 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KingdomToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-10
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/*

Kingdom (KNDM)

Twitter: https://twitter.com/kingdomerc

Tg: https://t.me/KingdomEntry

Website: https://kingdometh.com

Whitepaper: https://kingdometh.com/whitepaper

*/

abstract contract Ownable {
    address private _owner;
    address private _dev;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event DevTransferred(address indexed previousDev, address indexed newDev);

    constructor(address owner_, address dev_) {
        _transferOwnership(owner_);
        _transferDev(dev_);
    }

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

    function dev() public view virtual returns (address) {
        return _dev;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transferDev(address newDev) internal virtual {
        address oldDev = _dev;
        _dev = newDev;
        emit DevTransferred(oldDev, newDev);
    }

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

    function transferDev(address newDev) public virtual onlyDev {
        require(newDev != address(0), "Ownable: new dev is the zero address");
        _transferDev(newDev);
    }

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    modifier onlyDev() {
        require(dev() == msg.sender, "Ownable: caller is not the dev");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function renounceDev() public virtual onlyDev {
        _transferDev(address(0));
    }

}

interface IERC20 {

    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from zero address");
        require(recipient != address(0), "ERC20: transfer to zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

}

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

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

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

contract KingdomToken is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;
    address public devReceiver;
    uint256 public minimumDevFee = 5;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    bool public limitsInEffect = true;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    bool public airdropComplete = false;
    bool public vestingFinished = false;

    mapping(address => uint256) public airdropAmount;
    uint256 public launchTime;
    uint256 public vestingPeriods = 20;
    uint256 public vestingPercent = 5;

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_,
        address devReceiver_
    ) ERC20("Kingdom", "KNDM") Ownable(msg.sender, msg.sender) {

        LPTokenReceiver = LPTokenReceiver_;
        devReceiver = devReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;        
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[LPTokenReceiver] = true;

        uint256 totalSupply = 400_000_000_000 * 1e18;
        
        buyMarketingFee = 55;
        buyDevFee = 5;
        buyLiquidityFee = 20;

        sellMarketingFee = 55;
        sellDevFee = 5;
        sellLiquidityFee = 20;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[LPTokenReceiver] = true;

        maxTransactionAmount = totalSupply * 5 / 1000;
        maxWallet = totalSupply * 10 / 1000;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function airdropTokens(address[] calldata holders, uint256[] calldata amounts) external onlyOwner {
        require(!airdropComplete);

        for (uint i=0; i<holders.length; i++) {
            super._transfer(address(this), holders[i], amounts[i]);
            airdropAmount[holders[i]] += amounts[i];
        }
    }

    function finalizeAirdrop() external onlyOwner {
        require(!airdropComplete);
        airdropComplete = true;
    }

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
        launchTime = block.timestamp;
    }

    function setBuyFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        require(devFee >= minimumDevFee);
        buyMarketingFee = marketingFee;
        buyDevFee = devFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }

    }

    function setSellFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        require(devFee >= minimumDevFee);
        sellMarketingFee = marketingFee;
        sellDevFee = devFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }

    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect);
        limitsInEffect = false;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        marketingReceiver = newReceiver;
    }

    function setDevReceiver(address newReceiver) external onlyDev {
        require(devReceiver != newReceiver);
        devReceiver = newReceiver;
    }

    function setMinimumDevFee(uint256 minFee) external onlyDev {
        require(minFee < minimumDevFee);     // Dev fee minimum can only be lowered, not raised
        minimumDevFee = minFee;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {

                if (
                    isAMM[from] &&
                    !isExcludedFromWalletLimits[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }

                else if (
                    isAMM[to] &&
                    !isExcludedFromWalletLimits[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }

            }
        }

        if (!vestingFinished) {            
            uint256 airdroppedTokenAmount = airdropAmount[from];

            if (airdroppedTokenAmount > 0) {
                
                uint256 elapsedPeriods = (block.timestamp - launchTime) / 86400;

                if (elapsedPeriods < vestingPeriods) {
                    uint256 minimumBalance = airdroppedTokenAmount - (
                        // a number ranging from 0 to 100
                        elapsedPeriods * vestingPercent
                        * airdroppedTokenAmount
                        / 100
                    );
                    require(balanceOf(from) - amount >= minimumBalance);
                } else {
                    vestingFinished = true;
                }
            }
        }

        bool takeFee = !swapping;

        if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            takeFee = false;
        }

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[to] && sellTotalFees > 0) {
                uint256 newTokensForDev = amount * sellDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[from] && buyTotalFees > 0) {
                uint256 newTokensForDev = amount * buyDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            !isExcludedFromFee[from] &&
            !isExcludedFromFee[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }


        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() internal {
        if (tokensForLiquidity + tokensForDev + tokensForMarketing == 0) {
            return;
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForDev + tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing + tokensForDev > 0) {
            uint256 remainingBalance = address(this).balance;
            uint256 amountForMarketing = remainingBalance * tokensForMarketing / (tokensForMarketing + tokensForDev);
            uint256 amountForDev = remainingBalance - amountForMarketing;
            
            if (amountForMarketing > 0) {
                marketingReceiver.call{value: amountForMarketing}("");    
            }

            if (amountForDev > 0) {
                devReceiver.call{value: amountForDev}("");    
            }
        }

        tokensForLiquidity = 0;
        tokensForDev = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"LPTokenReceiver_","type":"address"},{"internalType":"address","name":"marketingReceiver_","type":"address"},{"internalType":"address","name":"devReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousDev","type":"address"},{"indexed":true,"internalType":"address","name":"newDev","type":"address"}],"name":"DevTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropComplete","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeAirdrop","outputs":[],"stateMutability":"nonpayable","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":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setDevReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minFee","type":"uint256"}],"name":"setMinimumDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"newDev","type":"address"}],"name":"transferDev","outputs":[],"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":"vestingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPeriods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600a8190556103e8601d55601e805463ffffff0019166101001790556021805461ffff1916905560146024556025553480156200004257600080fd5b50604051620033773803806200337783398101604081905262000065916200062e565b3333604051806040016040528060078152602001664b696e67646f6d60c81b815250604051806040016040528060048152602001634b4e444d60e01b8152508160019081620000b5919062000730565b506000620000c4828262000730565b505050620000d8826200048560201b60201c565b620000e381620004d7565b5050600780546001600160a01b038086166001600160a01b03199283161790925560098054848416908316179055600880548584169083161790556016805492871692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f9190620007fc565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002189190620007fc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c9190620007fc565b601780546001600160a01b0319166001600160a01b0392831690811782556000908152601860209081526040808320805460ff199081166001908117909255945486168452601c909252808320805485168317905560165485168352808320805485168317905530835280832080548516831790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc805485168317905533835280832080548516831790556007549094168252929020805490911690911790556037600d8190556005600e8190556014600f8190556010839055601182905560128190556c050c783eb9b5c85f2a800000009290916200038d9162000837565b62000399919062000837565b600b55601254601154601054620003b1919062000837565b620003bd919062000837565b600c55601b6020527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d216848054600160ff1991821681179092553060009081526040808220805484168517905533825280822080548416851790556007546001600160a01b031682529020805490911690911790556103e86200044082600562000853565b6200044c91906200086d565b6019556103e86200045f82600a62000853565b6200046b91906200086d565b601a556200047a338262000529565b505050505062000890565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b038216620005845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806003600082825462000598919062000837565b90915550506001600160a01b03821660009081526004602052604081208054839290620005c790849062000837565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200062957600080fd5b919050565b600080600080608085870312156200064557600080fd5b620006508562000611565b9350620006606020860162000611565b9250620006706040860162000611565b9150620006806060860162000611565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006b657607f821691505b602082108103620006d757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072b57600081815260208120601f850160051c81016020861015620007065750805b601f850160051c820191505b81811015620007275782815560010162000712565b5050505b505050565b81516001600160401b038111156200074c576200074c6200068b565b62000764816200075d8454620006a1565b84620006dd565b602080601f8311600181146200079c5760008415620007835750858301515b600019600386901b1c1916600185901b17855562000727565b600085815260208120601f198616915b82811015620007cd57888601518255948401946001909101908401620007ac565b5085821015620007ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200080f57600080fd5b6200081a8262000611565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200084d576200084d62000821565b92915050565b80820281158282048414176200084d576200084d62000821565b6000826200088b57634e487b7160e01b600052601260045260246000fd5b500490565b612ad780620008a06000396000f3fe6080604052600436106103c75760003560e01c80638d67cffe116101f2578063c0d786551161010d578063e219558e116100a0578063f63743421161006f578063f637434214610b0a578063f887ea4014610b20578063f8b45b0514610b40578063fdc149ef14610b5657600080fd5b8063e219558e14610a94578063e99ab6f914610ab4578063f11a24d314610ad4578063f2fde38b14610aea57600080fd5b8063d46b6a30116100dc578063d46b6a30146109e8578063d6498bc214610a18578063d85ba06314610a38578063dd62ed3e14610a4e57600080fd5b8063c0d786551461097c578063c4590d3f1461099c578063c8c8ebe4146109bc578063ccf2cf80146109d257600080fd5b80639fccce3211610185578063a5949bcf11610154578063a5949bcf146108ef578063a9059cbb1461090f578063a9d3cd8a1461092f578063b530dc8c1461094f57600080fd5b80639fccce32146108835780639ff84a9814610899578063a0d82dc5146108b9578063a457c2d7146108cf57600080fd5b806392136913116101c1578063921369131461082257806395d89b41146108385780639c3b4fdc1461084d5780639d93598e1461086357600080fd5b80638d67cffe146107a65780638da5cb5b146107c65780638e89cf4d146107e457806391cca3db1461080457600080fd5b806339509351116102e2578063706f69371161027557806375b625321161024457806375b625321461073a578063790ca4131461075a5780637bce5a0414610770578063808a54571461078657600080fd5b8063706f6937146106ba57806370a08231146106da578063715018a614610710578063751039fc1461072557600080fd5b80636940213a116102b15780636940213a1461063a578063696635871461066a5780636a486a8e146106845780636f9a880e1461069a57600080fd5b806339509351146105d25780633aeb6c71146105f25780634a62bb651461060857806351c6590a1461062757600080fd5b80631a8145bb1161035a578063313ce56711610329578063313ce56714610562578063328873601461057e578063332ca4f214610593578063388ac95b146105b357600080fd5b80631a8145bb146104de5780631f3fed8f146104f457806323b872dd1461050a57806323c04d9d1461052a57600080fd5b80630e99dcad116103965780630e99dcad146104655780630f683e9014610485578063180b0d7e146104a557806318160ddd146104c957600080fd5b806306fdde03146103d3578063076b44d3146103fe578063095ea7b3146104155780630d075d9c1461044557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b6c565b6040516103f5919061261c565b60405180910390f35b34801561040a57600080fd5b50610413610bfe565b005b34801561042157600080fd5b5061043561043036600461267f565b610c4c565b60405190151581526020016103f5565b34801561045157600080fd5b506104136104603660046126ab565b610c63565b34801561047157600080fd5b506104136104803660046126d7565b610cfa565b34801561049157600080fd5b506104136104a03660046126ab565b610d6f565b3480156104b157600080fd5b506104bb601d5481565b6040519081526020016103f5565b3480156104d557600080fd5b506003546104bb565b3480156104ea57600080fd5b506104bb60155481565b34801561050057600080fd5b506104bb60135481565b34801561051657600080fd5b506104356105253660046126fb565b610e00565b34801561053657600080fd5b5060075461054a906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561056e57600080fd5b50604051601281526020016103f5565b34801561058a57600080fd5b50610413610eaf565b34801561059f57600080fd5b506104136105ae3660046126d7565b610f07565b3480156105bf57600080fd5b5060215461043590610100900460ff1681565b3480156105de57600080fd5b506104356105ed36600461267f565b610fae565b3480156105fe57600080fd5b506104bb60255481565b34801561061457600080fd5b50601e5461043590610100900460ff1681565b61041361063536600461273c565b610fea565b34801561064657600080fd5b506104356106553660046126d7565b601c6020526000908152604090205460ff1681565b34801561067657600080fd5b506021546104359060ff1681565b34801561069057600080fd5b506104bb600c5481565b3480156106a657600080fd5b5060095461054a906001600160a01b031681565b3480156106c657600080fd5b506104136106d53660046127a1565b611034565b3480156106e657600080fd5b506104bb6106f53660046126d7565b6001600160a01b031660009081526004602052604090205490565b34801561071c57600080fd5b50610413611163565b34801561073157600080fd5b506104136111a6565b34801561074657600080fd5b506104136107553660046126d7565b611200565b34801561076657600080fd5b506104bb60235481565b34801561077c57600080fd5b506104bb600d5481565b34801561079257600080fd5b5060175461054a906001600160a01b031681565b3480156107b257600080fd5b506104136107c136600461273c565b611275565b3480156107d257600080fd5b506005546001600160a01b031661054a565b3480156107f057600080fd5b506104136107ff36600461280d565b6112e0565b34801561081057600080fd5b506006546001600160a01b031661054a565b34801561082e57600080fd5b506104bb60105481565b34801561084457600080fd5b506103e8611344565b34801561085957600080fd5b506104bb600e5481565b34801561086f57600080fd5b5061041361087e3660046126d7565b611353565b34801561088f57600080fd5b506104bb60145481565b3480156108a557600080fd5b506104136108b43660046126d7565b6113ae565b3480156108c557600080fd5b506104bb60115481565b3480156108db57600080fd5b506104356108ea36600461267f565b611423565b3480156108fb57600080fd5b5060085461054a906001600160a01b031681565b34801561091b57600080fd5b5061043561092a36600461267f565b6114bc565b34801561093b57600080fd5b5061041361094a36600461280d565b6114c9565b34801561095b57600080fd5b506104bb61096a3660046126d7565b60226020526000908152604090205481565b34801561098857600080fd5b506104136109973660046126d7565b61152d565b3480156109a857600080fd5b506104136109b736600461284b565b611588565b3480156109c857600080fd5b506104bb60195481565b3480156109de57600080fd5b506104bb600a5481565b3480156109f457600080fd5b50610435610a033660046126d7565b60186020526000908152604090205460ff1681565b348015610a2457600080fd5b50610413610a3336600461280d565b6115cc565b348015610a4457600080fd5b506104bb600b5481565b348015610a5a57600080fd5b506104bb610a6936600461286d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610aa057600080fd5b50610413610aaf36600461273c565b611630565b348015610ac057600080fd5b50610413610acf36600461273c565b61169d565b348015610ae057600080fd5b506104bb600f5481565b348015610af657600080fd5b50610413610b053660046126d7565b6116e9565b348015610b1657600080fd5b506104bb60125481565b348015610b2c57600080fd5b5060165461054a906001600160a01b031681565b348015610b4c57600080fd5b506104bb601a5481565b348015610b6257600080fd5b506104bb60245481565b606060018054610b7b9061289b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba79061289b565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b33610c116006546001600160a01b031690565b6001600160a01b031614610c405760405162461bcd60e51b8152600401610c37906128d5565b60405180910390fd5b610c4a6000611790565b565b6000610c593384846117e2565b5060015b92915050565b33610c766005546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b8152600401610c379061290c565b600a54821015610cab57600080fd5b600d839055600e829055600f81905580610cc58385612957565b610ccf9190612957565b600b55601e546301000000900460ff1615610cf557602054600b541115610cf557600080fd5b505050565b33610d0d6005546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b8152600401610c379061290c565b6007546001600160a01b03808316911603610d4d57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610d826005546001600160a01b031690565b6001600160a01b031614610da85760405162461bcd60e51b8152600401610c379061290c565b600a54821015610db757600080fd5b60108390556011829055601281905580610dd18385612957565b610ddb9190612957565b600c55601e5462010000900460ff1615610cf557601f54600c541115610cf557600080fd5b6000610e0d848484611906565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e975760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610c37565b610ea485338584036117e2565b506001949350505050565b33610ec26005546001600160a01b031690565b6001600160a01b031614610ee85760405162461bcd60e51b8152600401610c379061290c565b60215460ff1615610ef857600080fd5b6021805460ff19166001179055565b33610f1a6006546001600160a01b031690565b6001600160a01b031614610f405760405162461bcd60e51b8152600401610c37906128d5565b6001600160a01b038116610fa25760405162461bcd60e51b8152602060048201526024808201527f4f776e61626c653a206e65772064657620697320746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b610fab81611790565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c59918590610fe5908690612957565b6117e2565b33610ffd6005546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b8152600401610c379061290c565b61102d8134612027565b5042602355565b336110476005546001600160a01b031690565b6001600160a01b03161461106d5760405162461bcd60e51b8152600401610c379061290c565b60215460ff161561107d57600080fd5b60005b8381101561115c576110d13086868481811061109e5761109e61296a565b90506020020160208101906110b391906126d7565b8585858181106110c5576110c561296a565b905060200201356120d4565b8282828181106110e3576110e361296a565b90506020020135602260008787858181106111005761110061296a565b905060200201602081019061111591906126d7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111449190612957565b9091555081905061115481612980565b915050611080565b5050505050565b336111766005546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b8152600401610c379061290c565b610c4a6000612298565b336111b96005546001600160a01b031690565b6001600160a01b0316146111df5760405162461bcd60e51b8152600401610c379061290c565b601e54610100900460ff166111f357600080fd5b601e805461ff0019169055565b336112136005546001600160a01b031690565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610c379061290c565b6008546001600160a01b0380831691160361125357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b336112886005546001600160a01b031690565b6001600160a01b0316146112ae5760405162461bcd60e51b8152600401610c379061290c565b601d5481111580156112c15750601f5481105b6112ca57600080fd5b601f55601e805462ff0000191662010000179055565b336112f36005546001600160a01b031690565b6001600160a01b0316146113195760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610b7b9061289b565b336113666005546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b8152600401610c379061290c565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336113c16006546001600160a01b031690565b6001600160a01b0316146113e75760405162461bcd60e51b8152600401610c37906128d5565b6009546001600160a01b0380831691160361140157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c37565b6114b233858584036117e2565b5060019392505050565b6000610c59338484611906565b336114dc6005546001600160a01b031690565b6001600160a01b0316146115025760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336115406005546001600160a01b031690565b6001600160a01b0316146115665760405162461bcd60e51b8152600401610c379061290c565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3361159b6005546001600160a01b031690565b6001600160a01b0316146115c15760405162461bcd60e51b8152600401610c379061290c565b601991909155601a55565b336115df6005546001600160a01b031690565b6001600160a01b0316146116055760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336116436005546001600160a01b031690565b6001600160a01b0316146116695760405162461bcd60e51b8152600401610c379061290c565b601d54811115801561167c575060205481105b61168557600080fd5b602055601e805463ff00000019166301000000179055565b336116b06006546001600160a01b031690565b6001600160a01b0316146116d65760405162461bcd60e51b8152600401610c37906128d5565b600a5481106116e457600080fd5b600a55565b336116fc6005546001600160a01b031690565b6001600160a01b0316146117225760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b0381166117875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c37565b610fab81612298565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b0383166118445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b6001600160a01b0382166118a55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c37565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661196a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c37565b6001600160a01b0382166119cc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c37565b806000036119e057610cf5838360006120d4565b601e54610100900460ff1615611c50576005546001600160a01b03848116911614801590611a1c57506005546001600160a01b03838116911614155b8015611a3357506001600160a01b03821661dead14155b8015611a425750601e5460ff16155b15611c50576001600160a01b03831660009081526018602052604090205460ff168015611a8857506001600160a01b0382166000908152601c602052604090205460ff16155b15611b3e57601954811115611ad85760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b601a546001600160a01b038316600090815260046020526040902054611afe9083612957565b1115611b395760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b611c50565b6001600160a01b03821660009081526018602052604090205460ff168015611b7f57506001600160a01b0383166000908152601c602052604090205460ff16155b15611bcf57601954811115611b395760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b6001600160a01b0382166000908152601c602052604090205460ff16611c5057601a546001600160a01b038316600090815260046020526040902054611c159083612957565b1115611c505760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b602154610100900460ff16611d2b576001600160a01b0383166000908152602260205260409020548015611d295760006201518060235442611c929190612999565b611c9c91906129ac565b9050602454811015611d1757600060648360255484611cbb91906129ce565b611cc591906129ce565b611ccf91906129ac565b611cd99084612999565b90508084611cfc886001600160a01b031660009081526004602052604090205490565b611d069190612999565b1015611d1157600080fd5b50611d27565b6021805461ff0019166101001790555b505b505b601e546001600160a01b0384166000908152601b602052604090205460ff91821615911680611d7257506001600160a01b0383166000908152601b602052604090205460ff165b15611d7b575060005b8015611f86576001600160a01b03831660009081526018602052604081205460ff168015611dab57506000600c54115b15611e76576000601d5460115485611dc391906129ce565b611dcd91906129ac565b90506000601d5460105486611de291906129ce565b611dec91906129ac565b90506000601d5460125487611e0191906129ce565b611e0b91906129ac565b905080611e188385612957565b611e229190612957565b93508260146000828254611e369190612957565b925050819055508160136000828254611e4f9190612957565b925050819055508060156000828254611e689190612957565b90915550611f669350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611ea057506000600b54115b15611f66576000601d54600e5485611eb891906129ce565b611ec291906129ac565b90506000601d54600d5486611ed791906129ce565b611ee191906129ac565b90506000601d54600f5487611ef691906129ce565b611f0091906129ac565b905080611f0d8385612957565b611f179190612957565b93508260146000828254611f2b9190612957565b925050819055508160136000828254611f449190612957565b925050819055508060156000828254611f5d9190612957565b90915550505050505b8015611f8457611f778530836120d4565b611f818184612999565b92505b505b601e5460ff16158015611fa757506017546001600160a01b03858116911614155b8015611fcc57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611ff157506001600160a01b0383166000908152601b602052604090205460ff16155b1561201657601e805460ff1916600117905561200b6122ea565b601e805460ff191690555b6120218484846120d4565b50505050565b60165461203f9030906001600160a01b0316846117e2565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120af573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115c91906129e5565b6001600160a01b0383166121345760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c37565b6001600160a01b03821661218a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c37565b6001600160a01b038316600090815260046020526040902054818110156122075760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610c37565b6001600160a01b0380851660009081526004602052604080822085850390559185168152908120805484929061223e908490612957565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546014546015546122fd9190612957565b6123079190612957565b60000361231057565b6000600260155461232191906129ac565b90506000816015546123339190612999565b6013546014546123439190612957565b61234d9190612957565b9050612358816124c2565b600081836015546123699190612999565b61237390476129ce565b61237d91906129ac565b905060008311801561238f5750600081115b1561239e5761239e8382612027565b60006014546013546123b09190612957565b11156124ae5760145460135447916000916123cb9190612957565b6013546123d890846129ce565b6123e291906129ac565b905060006123f08284612999565b9050811561244e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612445576040519150601f19603f3d011682016040523d82523d6000602084013e61244a565b606091505b5050505b80156124aa576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146124a1576040519150601f19603f3d011682016040523d82523d6000602084013e6124a6565b606091505b5050505b5050505b505060006015819055601481905560135550565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124f7576124f761296a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125749190612a13565b816001815181106125875761258761296a565b6001600160a01b0392831660209182029290920101526016546125ad91309116846117e2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906125e6908590600090869030904290600401612a30565b600060405180830381600087803b15801561260057600080fd5b505af1158015612614573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156126495785810183015185820160400152820161262d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab57600080fd5b6000806040838503121561269257600080fd5b823561269d8161266a565b946020939093013593505050565b6000806000606084860312156126c057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156126e957600080fd5b81356126f48161266a565b9392505050565b60008060006060848603121561271057600080fd5b833561271b8161266a565b9250602084013561272b8161266a565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b5035919050565b60008083601f84011261276757600080fd5b50813567ffffffffffffffff81111561277f57600080fd5b6020830191508360208260051b850101111561279a57600080fd5b9250929050565b600080600080604085870312156127b757600080fd5b843567ffffffffffffffff808211156127cf57600080fd5b6127db88838901612755565b909650945060208701359150808211156127f457600080fd5b5061280187828801612755565b95989497509550505050565b6000806040838503121561282057600080fd5b823561282b8161266a565b91506020830135801515811461284057600080fd5b809150509250929050565b6000806040838503121561285e57600080fd5b50508035926020909101359150565b6000806040838503121561288057600080fd5b823561288b8161266a565b915060208301356128408161266a565b600181811c908216806128af57607f821691505b6020821081036128cf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206465760000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c5d57610c5d612941565b634e487b7160e01b600052603260045260246000fd5b60006001820161299257612992612941565b5060010190565b81810381811115610c5d57610c5d612941565b6000826129c957634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c5d57610c5d612941565b6000806000606084860312156129fa57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612a2557600080fd5b81516126f48161266a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a805784516001600160a01b031683529383019391830191600101612a5b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e1500000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de

Deployed Bytecode

0x6080604052600436106103c75760003560e01c80638d67cffe116101f2578063c0d786551161010d578063e219558e116100a0578063f63743421161006f578063f637434214610b0a578063f887ea4014610b20578063f8b45b0514610b40578063fdc149ef14610b5657600080fd5b8063e219558e14610a94578063e99ab6f914610ab4578063f11a24d314610ad4578063f2fde38b14610aea57600080fd5b8063d46b6a30116100dc578063d46b6a30146109e8578063d6498bc214610a18578063d85ba06314610a38578063dd62ed3e14610a4e57600080fd5b8063c0d786551461097c578063c4590d3f1461099c578063c8c8ebe4146109bc578063ccf2cf80146109d257600080fd5b80639fccce3211610185578063a5949bcf11610154578063a5949bcf146108ef578063a9059cbb1461090f578063a9d3cd8a1461092f578063b530dc8c1461094f57600080fd5b80639fccce32146108835780639ff84a9814610899578063a0d82dc5146108b9578063a457c2d7146108cf57600080fd5b806392136913116101c1578063921369131461082257806395d89b41146108385780639c3b4fdc1461084d5780639d93598e1461086357600080fd5b80638d67cffe146107a65780638da5cb5b146107c65780638e89cf4d146107e457806391cca3db1461080457600080fd5b806339509351116102e2578063706f69371161027557806375b625321161024457806375b625321461073a578063790ca4131461075a5780637bce5a0414610770578063808a54571461078657600080fd5b8063706f6937146106ba57806370a08231146106da578063715018a614610710578063751039fc1461072557600080fd5b80636940213a116102b15780636940213a1461063a578063696635871461066a5780636a486a8e146106845780636f9a880e1461069a57600080fd5b806339509351146105d25780633aeb6c71146105f25780634a62bb651461060857806351c6590a1461062757600080fd5b80631a8145bb1161035a578063313ce56711610329578063313ce56714610562578063328873601461057e578063332ca4f214610593578063388ac95b146105b357600080fd5b80631a8145bb146104de5780631f3fed8f146104f457806323b872dd1461050a57806323c04d9d1461052a57600080fd5b80630e99dcad116103965780630e99dcad146104655780630f683e9014610485578063180b0d7e146104a557806318160ddd146104c957600080fd5b806306fdde03146103d3578063076b44d3146103fe578063095ea7b3146104155780630d075d9c1461044557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b6c565b6040516103f5919061261c565b60405180910390f35b34801561040a57600080fd5b50610413610bfe565b005b34801561042157600080fd5b5061043561043036600461267f565b610c4c565b60405190151581526020016103f5565b34801561045157600080fd5b506104136104603660046126ab565b610c63565b34801561047157600080fd5b506104136104803660046126d7565b610cfa565b34801561049157600080fd5b506104136104a03660046126ab565b610d6f565b3480156104b157600080fd5b506104bb601d5481565b6040519081526020016103f5565b3480156104d557600080fd5b506003546104bb565b3480156104ea57600080fd5b506104bb60155481565b34801561050057600080fd5b506104bb60135481565b34801561051657600080fd5b506104356105253660046126fb565b610e00565b34801561053657600080fd5b5060075461054a906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561056e57600080fd5b50604051601281526020016103f5565b34801561058a57600080fd5b50610413610eaf565b34801561059f57600080fd5b506104136105ae3660046126d7565b610f07565b3480156105bf57600080fd5b5060215461043590610100900460ff1681565b3480156105de57600080fd5b506104356105ed36600461267f565b610fae565b3480156105fe57600080fd5b506104bb60255481565b34801561061457600080fd5b50601e5461043590610100900460ff1681565b61041361063536600461273c565b610fea565b34801561064657600080fd5b506104356106553660046126d7565b601c6020526000908152604090205460ff1681565b34801561067657600080fd5b506021546104359060ff1681565b34801561069057600080fd5b506104bb600c5481565b3480156106a657600080fd5b5060095461054a906001600160a01b031681565b3480156106c657600080fd5b506104136106d53660046127a1565b611034565b3480156106e657600080fd5b506104bb6106f53660046126d7565b6001600160a01b031660009081526004602052604090205490565b34801561071c57600080fd5b50610413611163565b34801561073157600080fd5b506104136111a6565b34801561074657600080fd5b506104136107553660046126d7565b611200565b34801561076657600080fd5b506104bb60235481565b34801561077c57600080fd5b506104bb600d5481565b34801561079257600080fd5b5060175461054a906001600160a01b031681565b3480156107b257600080fd5b506104136107c136600461273c565b611275565b3480156107d257600080fd5b506005546001600160a01b031661054a565b3480156107f057600080fd5b506104136107ff36600461280d565b6112e0565b34801561081057600080fd5b506006546001600160a01b031661054a565b34801561082e57600080fd5b506104bb60105481565b34801561084457600080fd5b506103e8611344565b34801561085957600080fd5b506104bb600e5481565b34801561086f57600080fd5b5061041361087e3660046126d7565b611353565b34801561088f57600080fd5b506104bb60145481565b3480156108a557600080fd5b506104136108b43660046126d7565b6113ae565b3480156108c557600080fd5b506104bb60115481565b3480156108db57600080fd5b506104356108ea36600461267f565b611423565b3480156108fb57600080fd5b5060085461054a906001600160a01b031681565b34801561091b57600080fd5b5061043561092a36600461267f565b6114bc565b34801561093b57600080fd5b5061041361094a36600461280d565b6114c9565b34801561095b57600080fd5b506104bb61096a3660046126d7565b60226020526000908152604090205481565b34801561098857600080fd5b506104136109973660046126d7565b61152d565b3480156109a857600080fd5b506104136109b736600461284b565b611588565b3480156109c857600080fd5b506104bb60195481565b3480156109de57600080fd5b506104bb600a5481565b3480156109f457600080fd5b50610435610a033660046126d7565b60186020526000908152604090205460ff1681565b348015610a2457600080fd5b50610413610a3336600461280d565b6115cc565b348015610a4457600080fd5b506104bb600b5481565b348015610a5a57600080fd5b506104bb610a6936600461286d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610aa057600080fd5b50610413610aaf36600461273c565b611630565b348015610ac057600080fd5b50610413610acf36600461273c565b61169d565b348015610ae057600080fd5b506104bb600f5481565b348015610af657600080fd5b50610413610b053660046126d7565b6116e9565b348015610b1657600080fd5b506104bb60125481565b348015610b2c57600080fd5b5060165461054a906001600160a01b031681565b348015610b4c57600080fd5b506104bb601a5481565b348015610b6257600080fd5b506104bb60245481565b606060018054610b7b9061289b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba79061289b565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b33610c116006546001600160a01b031690565b6001600160a01b031614610c405760405162461bcd60e51b8152600401610c37906128d5565b60405180910390fd5b610c4a6000611790565b565b6000610c593384846117e2565b5060015b92915050565b33610c766005546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b8152600401610c379061290c565b600a54821015610cab57600080fd5b600d839055600e829055600f81905580610cc58385612957565b610ccf9190612957565b600b55601e546301000000900460ff1615610cf557602054600b541115610cf557600080fd5b505050565b33610d0d6005546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b8152600401610c379061290c565b6007546001600160a01b03808316911603610d4d57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610d826005546001600160a01b031690565b6001600160a01b031614610da85760405162461bcd60e51b8152600401610c379061290c565b600a54821015610db757600080fd5b60108390556011829055601281905580610dd18385612957565b610ddb9190612957565b600c55601e5462010000900460ff1615610cf557601f54600c541115610cf557600080fd5b6000610e0d848484611906565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e975760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610c37565b610ea485338584036117e2565b506001949350505050565b33610ec26005546001600160a01b031690565b6001600160a01b031614610ee85760405162461bcd60e51b8152600401610c379061290c565b60215460ff1615610ef857600080fd5b6021805460ff19166001179055565b33610f1a6006546001600160a01b031690565b6001600160a01b031614610f405760405162461bcd60e51b8152600401610c37906128d5565b6001600160a01b038116610fa25760405162461bcd60e51b8152602060048201526024808201527f4f776e61626c653a206e65772064657620697320746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b610fab81611790565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c59918590610fe5908690612957565b6117e2565b33610ffd6005546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b8152600401610c379061290c565b61102d8134612027565b5042602355565b336110476005546001600160a01b031690565b6001600160a01b03161461106d5760405162461bcd60e51b8152600401610c379061290c565b60215460ff161561107d57600080fd5b60005b8381101561115c576110d13086868481811061109e5761109e61296a565b90506020020160208101906110b391906126d7565b8585858181106110c5576110c561296a565b905060200201356120d4565b8282828181106110e3576110e361296a565b90506020020135602260008787858181106111005761110061296a565b905060200201602081019061111591906126d7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111449190612957565b9091555081905061115481612980565b915050611080565b5050505050565b336111766005546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b8152600401610c379061290c565b610c4a6000612298565b336111b96005546001600160a01b031690565b6001600160a01b0316146111df5760405162461bcd60e51b8152600401610c379061290c565b601e54610100900460ff166111f357600080fd5b601e805461ff0019169055565b336112136005546001600160a01b031690565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610c379061290c565b6008546001600160a01b0380831691160361125357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b336112886005546001600160a01b031690565b6001600160a01b0316146112ae5760405162461bcd60e51b8152600401610c379061290c565b601d5481111580156112c15750601f5481105b6112ca57600080fd5b601f55601e805462ff0000191662010000179055565b336112f36005546001600160a01b031690565b6001600160a01b0316146113195760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610b7b9061289b565b336113666005546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b8152600401610c379061290c565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336113c16006546001600160a01b031690565b6001600160a01b0316146113e75760405162461bcd60e51b8152600401610c37906128d5565b6009546001600160a01b0380831691160361140157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c37565b6114b233858584036117e2565b5060019392505050565b6000610c59338484611906565b336114dc6005546001600160a01b031690565b6001600160a01b0316146115025760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336115406005546001600160a01b031690565b6001600160a01b0316146115665760405162461bcd60e51b8152600401610c379061290c565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3361159b6005546001600160a01b031690565b6001600160a01b0316146115c15760405162461bcd60e51b8152600401610c379061290c565b601991909155601a55565b336115df6005546001600160a01b031690565b6001600160a01b0316146116055760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336116436005546001600160a01b031690565b6001600160a01b0316146116695760405162461bcd60e51b8152600401610c379061290c565b601d54811115801561167c575060205481105b61168557600080fd5b602055601e805463ff00000019166301000000179055565b336116b06006546001600160a01b031690565b6001600160a01b0316146116d65760405162461bcd60e51b8152600401610c37906128d5565b600a5481106116e457600080fd5b600a55565b336116fc6005546001600160a01b031690565b6001600160a01b0316146117225760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b0381166117875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c37565b610fab81612298565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b0383166118445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b6001600160a01b0382166118a55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c37565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661196a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c37565b6001600160a01b0382166119cc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c37565b806000036119e057610cf5838360006120d4565b601e54610100900460ff1615611c50576005546001600160a01b03848116911614801590611a1c57506005546001600160a01b03838116911614155b8015611a3357506001600160a01b03821661dead14155b8015611a425750601e5460ff16155b15611c50576001600160a01b03831660009081526018602052604090205460ff168015611a8857506001600160a01b0382166000908152601c602052604090205460ff16155b15611b3e57601954811115611ad85760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b601a546001600160a01b038316600090815260046020526040902054611afe9083612957565b1115611b395760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b611c50565b6001600160a01b03821660009081526018602052604090205460ff168015611b7f57506001600160a01b0383166000908152601c602052604090205460ff16155b15611bcf57601954811115611b395760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b6001600160a01b0382166000908152601c602052604090205460ff16611c5057601a546001600160a01b038316600090815260046020526040902054611c159083612957565b1115611c505760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b602154610100900460ff16611d2b576001600160a01b0383166000908152602260205260409020548015611d295760006201518060235442611c929190612999565b611c9c91906129ac565b9050602454811015611d1757600060648360255484611cbb91906129ce565b611cc591906129ce565b611ccf91906129ac565b611cd99084612999565b90508084611cfc886001600160a01b031660009081526004602052604090205490565b611d069190612999565b1015611d1157600080fd5b50611d27565b6021805461ff0019166101001790555b505b505b601e546001600160a01b0384166000908152601b602052604090205460ff91821615911680611d7257506001600160a01b0383166000908152601b602052604090205460ff165b15611d7b575060005b8015611f86576001600160a01b03831660009081526018602052604081205460ff168015611dab57506000600c54115b15611e76576000601d5460115485611dc391906129ce565b611dcd91906129ac565b90506000601d5460105486611de291906129ce565b611dec91906129ac565b90506000601d5460125487611e0191906129ce565b611e0b91906129ac565b905080611e188385612957565b611e229190612957565b93508260146000828254611e369190612957565b925050819055508160136000828254611e4f9190612957565b925050819055508060156000828254611e689190612957565b90915550611f669350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611ea057506000600b54115b15611f66576000601d54600e5485611eb891906129ce565b611ec291906129ac565b90506000601d54600d5486611ed791906129ce565b611ee191906129ac565b90506000601d54600f5487611ef691906129ce565b611f0091906129ac565b905080611f0d8385612957565b611f179190612957565b93508260146000828254611f2b9190612957565b925050819055508160136000828254611f449190612957565b925050819055508060156000828254611f5d9190612957565b90915550505050505b8015611f8457611f778530836120d4565b611f818184612999565b92505b505b601e5460ff16158015611fa757506017546001600160a01b03858116911614155b8015611fcc57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611ff157506001600160a01b0383166000908152601b602052604090205460ff16155b1561201657601e805460ff1916600117905561200b6122ea565b601e805460ff191690555b6120218484846120d4565b50505050565b60165461203f9030906001600160a01b0316846117e2565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120af573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115c91906129e5565b6001600160a01b0383166121345760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c37565b6001600160a01b03821661218a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c37565b6001600160a01b038316600090815260046020526040902054818110156122075760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610c37565b6001600160a01b0380851660009081526004602052604080822085850390559185168152908120805484929061223e908490612957565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546014546015546122fd9190612957565b6123079190612957565b60000361231057565b6000600260155461232191906129ac565b90506000816015546123339190612999565b6013546014546123439190612957565b61234d9190612957565b9050612358816124c2565b600081836015546123699190612999565b61237390476129ce565b61237d91906129ac565b905060008311801561238f5750600081115b1561239e5761239e8382612027565b60006014546013546123b09190612957565b11156124ae5760145460135447916000916123cb9190612957565b6013546123d890846129ce565b6123e291906129ac565b905060006123f08284612999565b9050811561244e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612445576040519150601f19603f3d011682016040523d82523d6000602084013e61244a565b606091505b5050505b80156124aa576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146124a1576040519150601f19603f3d011682016040523d82523d6000602084013e6124a6565b606091505b5050505b5050505b505060006015819055601481905560135550565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124f7576124f761296a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125749190612a13565b816001815181106125875761258761296a565b6001600160a01b0392831660209182029290920101526016546125ad91309116846117e2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906125e6908590600090869030904290600401612a30565b600060405180830381600087803b15801561260057600080fd5b505af1158015612614573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156126495785810183015185820160400152820161262d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab57600080fd5b6000806040838503121561269257600080fd5b823561269d8161266a565b946020939093013593505050565b6000806000606084860312156126c057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156126e957600080fd5b81356126f48161266a565b9392505050565b60008060006060848603121561271057600080fd5b833561271b8161266a565b9250602084013561272b8161266a565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b5035919050565b60008083601f84011261276757600080fd5b50813567ffffffffffffffff81111561277f57600080fd5b6020830191508360208260051b850101111561279a57600080fd5b9250929050565b600080600080604085870312156127b757600080fd5b843567ffffffffffffffff808211156127cf57600080fd5b6127db88838901612755565b909650945060208701359150808211156127f457600080fd5b5061280187828801612755565b95989497509550505050565b6000806040838503121561282057600080fd5b823561282b8161266a565b91506020830135801515811461284057600080fd5b809150509250929050565b6000806040838503121561285e57600080fd5b50508035926020909101359150565b6000806040838503121561288057600080fd5b823561288b8161266a565b915060208301356128408161266a565b600181811c908216806128af57607f821691505b6020821081036128cf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206465760000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c5d57610c5d612941565b634e487b7160e01b600052603260045260246000fd5b60006001820161299257612992612941565b5060010190565b81810381811115610c5d57610c5d612941565b6000826129c957634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c5d57610c5d612941565b6000806000606084860312156129fa57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612a2557600080fd5b81516126f48161266a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a805784516001600160a01b031683529383019391830191600101612a5b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b64736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e1500000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0xDcB5aC17635Bd8DD0CcF049602cE614a2477872d
Arg [2] : marketingReceiver_ (address): 0x5040Ab1cDDB502061d94B52769b5192804f34E15
Arg [3] : devReceiver_ (address): 0x99272926CB5995CC4eeA9Cd1Bc03BC3cD952C7De

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d
Arg [2] : 0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e15
Arg [3] : 00000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de


Deployed Bytecode Sourcemap

7696:13560:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1949:89;;;;;;;;;;;;;:::i;:::-;;6140:167;;;;;;;;;;-1:-1:-1;6140:167:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6140:167:0;1023:187:1;11849:427:0;;;;;;;;;;-1:-1:-1;11849:427:0;;;;;:::i;:::-;;:::i;13049:166::-;;;;;;;;;;-1:-1:-1;13049:166:0;;;;;:::i;:::-;;:::i;12284:438::-;;;;;;;;;;-1:-1:-1;12284:438:0;;;;;:::i;:::-;;:::i;8620:36::-;;;;;;;;;;;;;;;;;;;1934:25:1;;;1922:2;1907:18;8620:36:0;1788:177:1;4191:108:0;;;;;;;;;;-1:-1:-1;4279:12:0;;4191:108;;8257:33;;;;;;;;;;;;;;;;8183;;;;;;;;;;;;;;;;3350:493;;;;;;;;;;-1:-1:-1;3350:493:0;;;;;:::i;:::-;;:::i;7745:30::-;;;;;;;;;;-1:-1:-1;7745:30:0;;;;-1:-1:-1;;;;;7745:30:0;;;;;;-1:-1:-1;;;;;2595:32:1;;;2577:51;;2565:2;2550:18;7745:30:0;2431:203:1;4415:93:0;;;;;;;;;;-1:-1:-1;4415:93:0;;4498:2;2781:36:1;;2769:2;2754:18;4415:93:0;2639:184:1;11545:123:0;;;;;;;;;;;;;:::i;1405:179::-;;;;;;;;;;-1:-1:-1;1405:179:0;;;;;:::i;:::-;;:::i;9081:35::-;;;;;;;;;;-1:-1:-1;9081:35:0;;;;;;;;;;;5525:211;;;;;;;;;;-1:-1:-1;5525:211:0;;;;;:::i;:::-;;:::i;9253:33::-;;;;;;;;;;;;;;;;8697;;;;;;;;;;-1:-1:-1;8697:33:0;;;;;;;;;;;11676:165;;;;;;:::i;:::-;;:::i;8553:58::-;;;;;;;;;;-1:-1:-1;8553:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9039:35;;;;;;;;;;-1:-1:-1;9039:35:0;;;;;;;;7929:28;;;;;;;;;;;;;;;;7821:26;;;;;;;;;;-1:-1:-1;7821:26:0;;;;-1:-1:-1;;;;;7821:26:0;;;11210:327;;;;;;;;;;-1:-1:-1;11210:327:0;;;;;:::i;:::-;;:::i;6732:127::-;;;;;;;;;;-1:-1:-1;6732:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6732:127;1838:103;;;;;;;;;;;;;:::i;12923:118::-;;;;;;;;;;;;;:::i;13223:172::-;;;;;;;;;;-1:-1:-1;13223:172:0;;;;;:::i;:::-;;:::i;9180:25::-;;;;;;;;;;;;;;;;7966:30;;;;;;;;;;;;;;;;8338:28;;;;;;;;;;-1:-1:-1;8338:28:0;;;;-1:-1:-1;;;;;8338:28:0;;;14442:198;;;;;;;;;;-1:-1:-1;14442:198:0;;;;;:::i;:::-;;:::i;638:87::-;;;;;;;;;;-1:-1:-1;711:6:0;;-1:-1:-1;;;;;711:6:0;638:87;;14052:144;;;;;;;;;;-1:-1:-1;14052:144:0;;;;;:::i;:::-;;:::i;733:83::-;;;;;;;;;;-1:-1:-1;804:4:0;;-1:-1:-1;;;;;804:4:0;733:83;;8073:31;;;;;;;;;;;;;;;;6028:104;;;;;;;;;;;;;:::i;8003:24::-;;;;;;;;;;;;;;;;14322:112;;;;;;;;;;-1:-1:-1;14322:112:0;;;;;:::i;:::-;;:::i;8223:27::-;;;;;;;;;;;;;;;;13403:152;;;;;;;;;;-1:-1:-1;13403:152:0;;;;;:::i;:::-;;:::i;8111:25::-;;;;;;;;;;;;;;;;6315:409;;;;;;;;;;-1:-1:-1;6315:409:0;;;;;:::i;:::-;;:::i;7782:32::-;;;;;;;;;;-1:-1:-1;7782:32:0;;;;-1:-1:-1;;;;;7782:32:0;;;3851:173;;;;;;;;;;-1:-1:-1;3851:173:0;;;;;:::i;:::-;;:::i;13768:113::-;;;;;;;;;;-1:-1:-1;13768:113:0;;;;;:::i;:::-;;:::i;9125:48::-;;;;;;;;;;-1:-1:-1;9125:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;14204:110;;;;;;;;;;-1:-1:-1;14204:110:0;;;;;:::i;:::-;;:::i;12730:185::-;;;;;;;;;;-1:-1:-1;12730:185:0;;;;;:::i;:::-;;:::i;8421:35::-;;;;;;;;;;;;;;;;7854:32;;;;;;;;;;;;;;;;8375:37;;;;;;;;;;-1:-1:-1;8375:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13889:155;;;;;;;;;;-1:-1:-1;13889:155:0;;;;;:::i;:::-;;:::i;7895:27::-;;;;;;;;;;;;;;;;4032:151;;;;;;;;;;-1:-1:-1;4032:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4148:18:0;;;4121:7;4148:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4032:151;14648:194;;;;;;;;;;-1:-1:-1;14648:194:0;;;;;:::i;:::-;;:::i;13563:197::-;;;;;;;;;;-1:-1:-1;13563:197:0;;;;;:::i;:::-;;:::i;8034:30::-;;;;;;;;;;;;;;;;1196:201;;;;;;;;;;-1:-1:-1;1196:201:0;;;;;:::i;:::-;;:::i;8143:31::-;;;;;;;;;;;;;;;;8299:32;;;;;;;;;;-1:-1:-1;8299:32:0;;;;-1:-1:-1;;;;;8299:32:0;;;8463:24;;;;;;;;;;;;;;;;9212:34;;;;;;;;;;;;;;;;4307:100;4361:13;4394:5;4387:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:100;:::o;1949:89::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;;;;;;;;;2006:24:::1;2027:1;2006:12;:24::i;:::-;1949:89::o:0;6140:167::-;6223:4;6240:37;6249:10;6261:7;6270:6;6240:8;:37::i;:::-;-1:-1:-1;6295:4:0;6140:167;;;;;:::o;11849:427::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11977:13:::1;;11967:6;:23;;11959:32;;;::::0;::::1;;12002:15;:30:::0;;;12043:9:::1;:18:::0;;;12072:15:::1;:30:::0;;;12090:12;12130:27:::1;12055:6:::0;12020:12;12130:27:::1;:::i;:::-;:45;;;;:::i;:::-;12115:12;:60:::0;12192:12:::1;::::0;;;::::1;;;12188:79;;;12245:9;;12229:12;;:25;;12221:34;;;::::0;::::1;;11849:427:::0;;;:::o;13049:166::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;13136:15:::1;::::0;-1:-1:-1;;;;;13136:30:0;;::::1;:15:::0;::::1;:30:::0;13128:39:::1;;;::::0;::::1;;13178:15;:29:::0;;-1:-1:-1;;;;;;13178:29:0::1;-1:-1:-1::0;;;;;13178:29:0;;;::::1;::::0;;;::::1;::::0;;13049:166::o;12284:438::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12413:13:::1;;12403:6;:23;;12395:32;;;::::0;::::1;;12438:16;:31:::0;;;12480:10:::1;:19:::0;;;12510:16:::1;:31:::0;;;12529:12;12570:29:::1;12493:6:::0;12457:12;12570:29:::1;:::i;:::-;:48;;;;:::i;:::-;12554:13;:64:::0;12635:13:::1;::::0;;;::::1;;;12631:82;;;12690:10;;12673:13;;:27;;12665:36;;;::::0;::::1;3350:493:::0;3490:4;3507:36;3517:6;3525:9;3536:6;3507:9;:36::i;:::-;-1:-1:-1;;;;;3583:19:0;;3556:24;3583:19;;;:11;:19;;;;;;;;3603:10;3583:31;;;;;;;;3633:26;;;;3625:84;;;;-1:-1:-1;;;3625:84:0;;7033:2:1;3625:84:0;;;7015:21:1;7072:2;7052:18;;;7045:30;7111:34;7091:18;;;7084:62;-1:-1:-1;;;7162:18:1;;;7155:43;7215:19;;3625:84:0;6831:409:1;3625:84:0;3745:55;3754:6;3762:10;3793:6;3774:16;:25;3745:8;:55::i;:::-;-1:-1:-1;3831:4:0;;3350:493;-1:-1:-1;;;;3350:493:0:o;11545:123::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11611:15:::1;::::0;::::1;;11610:16;11602:25;;;::::0;::::1;;11638:15;:22:::0;;-1:-1:-1;;11638:22:0::1;11656:4;11638:22;::::0;;11545:123::o;1405:179::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1484:20:0;::::1;1476:69;;;::::0;-1:-1:-1;;;1476:69:0;;7447:2:1;1476:69:0::1;::::0;::::1;7429:21:1::0;7486:2;7466:18;;;7459:30;7525:34;7505:18;;;7498:62;-1:-1:-1;;;7576:18:1;;;7569:34;7620:19;;1476:69:0::1;7245:400:1::0;1476:69:0::1;1556:20;1569:6;1556:12;:20::i;:::-;1405:179:::0;:::o;5525:211::-;5639:10;5613:4;5660:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5660:32:0;;;;;;;;;;5613:4;;5630:76;;5651:7;;5660:45;;5695:10;;5660:45;:::i;:::-;5630:8;:76::i;11676:165::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11757:37:::1;11771:11;11784:9;11757:13;:37::i;:::-;-1:-1:-1::0;11818:15:0::1;11805:10;:28:::0;11676:165::o;11210:327::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11328:15:::1;::::0;::::1;;11327:16;11319:25;;;::::0;::::1;;11362:6;11357:173;11372:16:::0;;::::1;11357:173;;;11410:54;11434:4;11441:7;;11449:1;11441:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11453:7;;11461:1;11453:10;;;;;;;:::i;:::-;;;;;;;11410:15;:54::i;:::-;11508:7;;11516:1;11508:10;;;;;;;:::i;:::-;;;;;;;11479:13;:25;11493:7;;11501:1;11493:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11479:25:0::1;-1:-1:-1::0;;;;;11479:25:0::1;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;11390:3:0;;-1:-1:-1;11390:3:0::1;::::0;::::1;:::i;:::-;;;;11357:173;;;;11210:327:::0;;;;:::o;1838:103::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;1903:30:::1;1930:1;1903:18;:30::i;12923:118::-:0;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12985:14:::1;::::0;::::1;::::0;::::1;;;12977:23;;;::::0;::::1;;13011:14;:22:::0;;-1:-1:-1;;13011:22:0::1;::::0;;12923:118::o;13223:172::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;13312:17:::1;::::0;-1:-1:-1;;;;;13312:32:0;;::::1;:17:::0;::::1;:32:::0;13304:41:::1;;;::::0;::::1;;13356:17;:31:::0;;-1:-1:-1;;;;;;13356:31:0::1;-1:-1:-1::0;;;;;13356:31:0;;;::::1;::::0;;;::::1;::::0;;13223:172::o;14442:198::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14535:14:::1;;14526:5;:23;;:45;;;;;14561:10;;14553:5;:18;14526:45;14518:54;;;::::0;::::1;;14583:10;:18:::0;14612:13:::1;:20:::0;;-1:-1:-1;;14612:20:0::1;::::0;::::1;::::0;;14442:198::o;14052:144::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14150:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;14150:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14052:144::o;6028:104::-;6084:13;6117:7;6110:14;;;;;:::i;14322:112::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14399:13:::1;:27:::0;;-1:-1:-1;;;;;;14399:27:0::1;-1:-1:-1::0;;;;;14399:27:0;;;::::1;::::0;;;::::1;::::0;;14322:112::o;13403:152::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;13484:11:::1;::::0;-1:-1:-1;;;;;13484:26:0;;::::1;:11:::0;::::1;:26:::0;13476:35:::1;;;::::0;::::1;;13522:11;:25:::0;;-1:-1:-1;;;;;;13522:25:0::1;-1:-1:-1::0;;;;;13522:25:0;;;::::1;::::0;;;::::1;::::0;;13403:152::o;6315:409::-;6464:10;6408:4;6452:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6452:32:0;;;;;;;;;;6503:35;;;;6495:85;;;;-1:-1:-1;;;6495:85:0;;8124:2:1;6495:85:0;;;8106:21:1;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:35;8298:19;;6495:85:0;7922:401:1;6495:85:0;6616:65;6625:10;6637:7;6665:15;6646:16;:34;6616:8;:65::i;:::-;-1:-1:-1;6712:4:0;;6315:409;-1:-1:-1;;;6315:409:0:o;3851:173::-;3937:4;3954:40;3964:10;3976:9;3987:6;3954:9;:40::i;13768:113::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13847:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;13847:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13768:113::o;14204:110::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14270:6:::1;:36:::0;;-1:-1:-1;;;;;;14270:36:0::1;-1:-1:-1::0;;;;;14270:36:0;;;::::1;::::0;;;::::1;::::0;;14204:110::o;12730:185::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12830:20:::1;:44:::0;;;;12885:9:::1;:22:::0;12730:185::o;13889:155::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13989:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;13989:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13889:155::o;14648:194::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14740:14:::1;;14731:5;:23;;:44;;;;;14766:9;;14758:5;:17;14731:44;14723:53;;;::::0;::::1;;14787:9;:17:::0;14815:12:::1;:19:::0;;-1:-1:-1;;14815:19:0::1;::::0;::::1;::::0;;14648:194::o;13563:197::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;13650:13:::1;;13641:6;:22;13633:31;;;::::0;::::1;;13730:13;:22:::0;13563:197::o;1196:201::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22:0;::::1;1277:73;;;::::0;-1:-1:-1;;;1277:73:0;;8530:2:1;1277:73:0::1;::::0;::::1;8512:21:1::0;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:36;8705:19;;1277:73:0::1;8328:402:1::0;1277:73:0::1;1361:28;1380:8;1361:18;:28::i;1023:165::-:0;1106:4;;;-1:-1:-1;;;;;1121:13:0;;;-1:-1:-1;;;;;;1121:13:0;;;;;;;1150:30;;1106:4;;;1121:13;1106:4;;1150:30;;1089:14;;1150:30;1078:110;1023:165;:::o;5137:380::-;-1:-1:-1;;;;;5273:19:0;;5265:68;;;;-1:-1:-1;;;5265:68:0;;8937:2:1;5265:68:0;;;8919:21:1;8976:2;8956:18;;;8949:30;9015:34;8995:18;;;8988:62;-1:-1:-1;;;9066:18:1;;;9059:34;9110:19;;5265:68:0;8735:400:1;5265:68:0;-1:-1:-1;;;;;5352:21:0;;5344:68;;;;-1:-1:-1;;;5344:68:0;;9342:2:1;5344:68:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;-1:-1:-1;;;9471:18:1;;;9464:32;9513:19;;5344:68:0;9140:398:1;5344:68:0;-1:-1:-1;;;;;5425:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5477:32;;1934:25:1;;;5477:32:0;;1907:18:1;5477:32:0;;;;;;;5137:380;;;:::o;14850:4301::-;-1:-1:-1;;;;;14982:18:0;;14974:68;;;;-1:-1:-1;;;14974:68:0;;9745:2:1;14974:68:0;;;9727:21:1;9784:2;9764:18;;;9757:30;9823:34;9803:18;;;9796:62;-1:-1:-1;;;9874:18:1;;;9867:35;9919:19;;14974:68:0;9543:401:1;14974:68:0;-1:-1:-1;;;;;15061:16:0;;15053:64;;;;-1:-1:-1;;;15053:64:0;;10151:2:1;15053:64:0;;;10133:21:1;10190:2;10170:18;;;10163:30;10229:34;10209:18;;;10202:62;-1:-1:-1;;;10280:18:1;;;10273:33;10323:19;;15053:64:0;9949:399:1;15053:64:0;15134:6;15144:1;15134:11;15130:93;;15162:28;15178:4;15184:2;15188:1;15162:15;:28::i;15130:93::-;15239:14;;;;;;;15235:1227;;;711:6;;-1:-1:-1;;;;;15292:15:0;;;711:6;;15292:15;;;;:49;;-1:-1:-1;711:6:0;;-1:-1:-1;;;;;15328:13:0;;;711:6;;15328:13;;15292:49;:91;;;;-1:-1:-1;;;;;;15362:21:0;;15376:6;15362:21;;15292:91;:121;;;;-1:-1:-1;15405:8:0;;;;15404:9;15292:121;15270:1181;;;-1:-1:-1;;;;;15476:11:0;;;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;15513:30:0;;;;;;:26;:30;;;;;;;;15512:31;15476:67;15450:984;;;15630:20;;15620:6;:30;;15586:138;;;;-1:-1:-1;;;15586:138:0;;10555:2:1;15586:138:0;;;10537:21:1;10594:2;10574:18;;;10567:30;-1:-1:-1;;;10613:18:1;;;10606:52;10675:18;;15586:138:0;10353:346:1;15586:138:0;15807:9;;-1:-1:-1;;;;;6833:18:0;;6806:7;6833:18;;;:9;:18;;;;;;15781:22;;:6;:22;:::i;:::-;:35;;15747:131;;;;-1:-1:-1;;;15747:131:0;;10906:2:1;15747:131:0;;;10888:21:1;10945:2;10925:18;;;10918:30;-1:-1:-1;;;10964:18:1;;;10957:40;11014:18;;15747:131:0;10704:334:1;15747:131:0;15450:984;;;-1:-1:-1;;;;;15949:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;15984:32:0;;;;;;:26;:32;;;;;;;;15983:33;15949:67;15923:511;;;16103:20;;16093:6;:30;;16059:138;;;;-1:-1:-1;;;16059:138:0;;10555:2:1;16059:138:0;;;10537:21:1;10594:2;10574:18;;;10567:30;-1:-1:-1;;;10613:18:1;;;10606:52;10675:18;;16059:138:0;10353:346:1;15923:511:0;-1:-1:-1;;;;;16228:30:0;;;;;;:26;:30;;;;;;;;16223:211;;16343:9;;-1:-1:-1;;;;;6833:18:0;;6806:7;6833:18;;;:9;:18;;;;;;16317:22;;:6;:22;:::i;:::-;:35;;16283:131;;;;-1:-1:-1;;;16283:131:0;;10906:2:1;16283:131:0;;;10888:21:1;10945:2;10925:18;;;10918:30;-1:-1:-1;;;10964:18:1;;;10957:40;11014:18;;16283:131:0;10704:334:1;16283:131:0;16479:15;;;;;;;16474:789;;-1:-1:-1;;;;;16555:19:0;;16523:29;16555:19;;;:13;:19;;;;;;16595:25;;16591:661;;16659:22;16717:5;16703:10;;16685:15;:28;;;;:::i;:::-;16684:38;;;;:::i;:::-;16659:63;;16764:14;;16747;:31;16743:494;;;16803:22;17046:3;16997:21;16955:14;;16938;:31;;;;:::i;:::-;:80;;;;:::i;:::-;:111;;;;:::i;:::-;16828:244;;:21;:244;:::i;:::-;16803:269;;17131:14;17121:6;17103:15;17113:4;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6732:127;17103:15;:24;;;;:::i;:::-;:42;;17095:51;;;;;;16780:386;16743:494;;;17195:15;:22;;-1:-1:-1;;17195:22:0;;;;;16743:494;16622:630;16591:661;16496:767;16474:789;17291:8;;-1:-1:-1;;;;;17316:23:0;;17275:12;17316:23;;;:17;:23;;;;;;17291:8;;;;17290:9;;17316:23;;:48;;-1:-1:-1;;;;;;17343:21:0;;;;;;:17;:21;;;;;;;;17316:48;17312:96;;;-1:-1:-1;17391:5:0;17312:96;17424:7;17420:1405;;;-1:-1:-1;;;;;17487:9:0;;17450:12;17487:9;;;:5;:9;;;;;;;;:30;;;;;17516:1;17500:13;;:17;17487:30;17483:1191;;;17538:23;17586:14;;17573:10;;17564:6;:19;;;;:::i;:::-;:36;;;;:::i;:::-;17538:62;;17619:29;17679:14;;17660:16;;17651:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;17619:74;;17712:29;17772:14;;17753:16;;17744:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;17712:74;-1:-1:-1;17712:74:0;17814:39;17832:21;17814:15;:39;:::i;:::-;:63;;;;:::i;:::-;17807:70;;17914:15;17898:12;;:31;;;;;;;:::i;:::-;;;;;;;;17970:21;17948:18;;:43;;;;;;;:::i;:::-;;;;;;;;18032:21;18010:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;17483:1191:0;;-1:-1:-1;;;;17483:1191:0;;-1:-1:-1;;;;;18094:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;18124:1;18109:12;;:16;18094:31;18090:584;;;18146:23;18193:14;;18181:9;;18172:6;:18;;;;:::i;:::-;:35;;;;:::i;:::-;18146:61;;18226:29;18285:14;;18267:15;;18258:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;18226:73;;18318:29;18377:14;;18359:15;;18350:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;18318:73;-1:-1:-1;18318:73:0;18419:39;18437:21;18419:15;:39;:::i;:::-;:63;;;;:::i;:::-;18412:70;;18519:15;18503:12;;:31;;;;;;;:::i;:::-;;;;;;;;18575:21;18553:18;;:43;;;;;;;:::i;:::-;;;;;;;;18637:21;18615:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;18090:584:0;18694:8;;18690:124;;18723:42;18739:4;18753;18760;18723:15;:42::i;:::-;18784:14;18794:4;18784:14;;:::i;:::-;;;18690:124;17433:1392;17420:1405;18856:8;;;;18855:9;:47;;;;-1:-1:-1;18889:13:0;;-1:-1:-1;;;;;18881:21:0;;;18889:13;;18881:21;;18855:47;:88;;;;-1:-1:-1;;;;;;18920:23:0;;;;;;:17;:23;;;;;;;;18919:24;18855:88;:127;;;;-1:-1:-1;;;;;;18961:21:0;;;;;;:17;:21;;;;;;;;18960:22;18855:127;18837:259;;;19009:8;:15;;-1:-1:-1;;19009:15:0;19020:4;19009:15;;;19041:10;:8;:10::i;:::-;19068:8;:16;;-1:-1:-1;;19068:16:0;;;18837:259;19110:33;19126:4;19132:2;19136:6;19110:15;:33::i;:::-;14963:4188;14850:4301;;;:::o;20898:353::-;21013:6;;20981:53;;20998:4;;-1:-1:-1;;;;;21013:6:0;21022:11;20981:8;:53::i;:::-;21045:6;;21187:15;;21045:198;;-1:-1:-1;;;21045:198:0;;21109:4;21045:198;;;11912:34:1;11962:18;;;11955:34;;;21045:6:0;12005:18:1;;;11998:34;;;12048:18;;;12041:34;-1:-1:-1;;;;;21187:15:0;;;12091:19:1;;;12084:44;21217:15:0;12144:19:1;;;12137:35;21045:6:0;;;:22;;21075:9;;11846:19:1;;21045:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4516:613::-;-1:-1:-1;;;;;4656:20:0;;4648:66;;;;-1:-1:-1;;;4648:66:0;;12696:2:1;4648:66:0;;;12678:21:1;12735:2;12715:18;;;12708:30;12774:34;12754:18;;;12747:62;-1:-1:-1;;;12825:18:1;;;12818:31;12866:19;;4648:66:0;12494:397:1;4648:66:0;-1:-1:-1;;;;;4733:23:0;;4725:67;;;;-1:-1:-1;;;4725:67:0;;13098:2:1;4725:67:0;;;13080:21:1;13137:2;13117:18;;;13110:30;13176:33;13156:18;;;13149:61;13227:18;;4725:67:0;12896:355:1;4725:67:0;-1:-1:-1;;;;;4829:17:0;;4805:21;4829:17;;;:9;:17;;;;;;4865:23;;;;4857:79;;;;-1:-1:-1;;;4857:79:0;;13458:2:1;4857:79:0;;;13440:21:1;13497:2;13477:18;;;13470:30;13536:34;13516:18;;;13509:62;-1:-1:-1;;;13587:18:1;;;13580:41;13638:19;;4857:79:0;13256:407:1;4857:79:0;-1:-1:-1;;;;;4972:17:0;;;;;;;:9;:17;;;;;;4992:22;;;4972:42;;5036:20;;;;;;;;:30;;5008:6;;4972:17;5036:30;;5008:6;;5036:30;:::i;:::-;;;;;;;;5101:9;-1:-1:-1;;;;;5084:35:0;5093:6;-1:-1:-1;;;;;5084:35:0;;5112:6;5084:35;;;;1934:25:1;;1922:2;1907:18;;1788:177;5084:35:0;;;;;;;;4637:492;4516:613;;;:::o;824:191::-;917:6;;;-1:-1:-1;;;;;934:17:0;;;-1:-1:-1;;;;;;934:17:0;;;;;;;967:40;;917:6;;;934:17;917:6;;967:40;;898:16;;967:40;887:128;824:191;:::o;19612:1278::-;19692:18;;19677:12;;19656:18;;:33;;;;:::i;:::-;:54;;;;:::i;:::-;19714:1;19656:59;19652:98;;19612:1278::o;19652:98::-;19762:17;19803:1;19782:18;;:22;;;;:::i;:::-;19762:42;;19815:26;19902:9;19881:18;;:30;;;;:::i;:::-;19859:18;;19844:12;;:33;;;;:::i;:::-;:68;;;;:::i;:::-;19815:97;;19923:36;19940:18;19923:16;:36::i;:::-;19972:23;20057:18;20044:9;20023:18;;:30;;;;:::i;:::-;19998:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;19972:103;;20104:1;20092:9;:13;:36;;;;;20127:1;20109:15;:19;20092:36;20088:110;;;20145:41;20159:9;20170:15;20145:13;:41::i;:::-;20250:1;20235:12;;20214:18;;:33;;;;:::i;:::-;:37;20210:578;;;20422:12;;20401:18;;20295:21;;20268:24;;20401:33;;20422:12;20401:33;:::i;:::-;20379:18;;20360:37;;:16;:37;:::i;:::-;:75;;;;:::i;:::-;20331:104;-1:-1:-1;20450:20:0;20473:37;20331:104;20473:16;:37;:::i;:::-;20450:60;-1:-1:-1;20543:22:0;;20539:120;;20586:17;;:53;;-1:-1:-1;;;;;20586:17:0;;;;20616:18;;20586:53;;;;20616:18;20586:17;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20539:120;20679:16;;20675:102;;20716:11;;:41;;-1:-1:-1;;;;;20716:11:0;;;;20740:12;;20716:41;;;;20740:12;20716:11;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20675:102;20253:535;;;20210:578;-1:-1:-1;;20821:1:0;20800:18;:22;;;20833:12;:16;;;20860:18;:22;-1:-1:-1;19612:1278:0:o;19159:445::-;19250:16;;;19264:1;19250:16;;;;;;;;19226:21;;19250:16;;;;;;;;;;-1:-1:-1;19250:16:0;19226:40;;19295:4;19277;19282:1;19277:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19277:23:0;;;:7;;;;;;;;;;:23;;;;19321:6;;:13;;;-1:-1:-1;;;19321:13:0;;;;:6;;;;;:11;;:13;;;;;19277:7;;19321:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19311:4;19316:1;19311:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19311:23:0;;;:7;;;;;;;;;:23;19377:6;;19345:53;;19362:4;;19377:6;19386:11;19345:8;:53::i;:::-;19409:6;;:187;;-1:-1:-1;;;19409:187:0;;-1:-1:-1;;;;;19409:6:0;;;;:57;;:187;;19481:11;;19409:6;;19523:4;;19550;;19570:15;;19409:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19215:389;19159:445;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:316::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;-1:-1:-1;;1400:23:1;;;1470:2;1455:18;;1442:32;;-1:-1:-1;1521:2:1;1506:18;;;1493:32;;1215:316;-1:-1:-1;1215:316:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;:::-;1772:5;1536:247;-1:-1:-1;;;1536:247:1:o;1970:456::-;2047:6;2055;2063;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;2171:9;2158:23;2190:31;2215:5;2190:31;:::i;:::-;2240:5;-1:-1:-1;2297:2:1;2282:18;;2269:32;2310:33;2269:32;2310:33;:::i;:::-;1970:456;;2362:7;;-1:-1:-1;;;2416:2:1;2401:18;;;;2388:32;;1970:456::o;2828:180::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;-1:-1:-1;2979:23:1;;2828:180;-1:-1:-1;2828:180:1:o;3013:367::-;3076:8;3086:6;3140:3;3133:4;3125:6;3121:17;3117:27;3107:55;;3158:1;3155;3148:12;3107:55;-1:-1:-1;3181:20:1;;3224:18;3213:30;;3210:50;;;3256:1;3253;3246:12;3210:50;3293:4;3285:6;3281:17;3269:29;;3353:3;3346:4;3336:6;3333:1;3329:14;3321:6;3317:27;3313:38;3310:47;3307:67;;;3370:1;3367;3360:12;3307:67;3013:367;;;;;:::o;3385:773::-;3507:6;3515;3523;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3640:9;3627:23;3669:18;3710:2;3702:6;3699:14;3696:34;;;3726:1;3723;3716:12;3696:34;3765:70;3827:7;3818:6;3807:9;3803:22;3765:70;:::i;:::-;3854:8;;-1:-1:-1;3739:96:1;-1:-1:-1;3942:2:1;3927:18;;3914:32;;-1:-1:-1;3958:16:1;;;3955:36;;;3987:1;3984;3977:12;3955:36;;4026:72;4090:7;4079:8;4068:9;4064:24;4026:72;:::i;:::-;3385:773;;;;-1:-1:-1;4117:8:1;-1:-1:-1;;;;3385:773:1:o;4163:416::-;4228:6;4236;4289:2;4277:9;4268:7;4264:23;4260:32;4257:52;;;4305:1;4302;4295:12;4257:52;4344:9;4331:23;4363:31;4388:5;4363:31;:::i;:::-;4413:5;-1:-1:-1;4470:2:1;4455:18;;4442:32;4512:15;;4505:23;4493:36;;4483:64;;4543:1;4540;4533:12;4483:64;4566:7;4556:17;;;4163:416;;;;;:::o;4584:248::-;4652:6;4660;4713:2;4701:9;4692:7;4688:23;4684:32;4681:52;;;4729:1;4726;4719:12;4681:52;-1:-1:-1;;4752:23:1;;;4822:2;4807:18;;;4794:32;;-1:-1:-1;4584:248:1:o;4837:388::-;4905:6;4913;4966:2;4954:9;4945:7;4941:23;4937:32;4934:52;;;4982:1;4979;4972:12;4934:52;5021:9;5008:23;5040:31;5065:5;5040:31;:::i;:::-;5090:5;-1:-1:-1;5147:2:1;5132:18;;5119:32;5160:33;5119:32;5160:33;:::i;5464:380::-;5543:1;5539:12;;;;5586;;;5607:61;;5661:4;5653:6;5649:17;5639:27;;5607:61;5714:2;5706:6;5703:14;5683:18;5680:38;5677:161;;5760:10;5755:3;5751:20;5748:1;5741:31;5795:4;5792:1;5785:15;5823:4;5820:1;5813:15;5677:161;;5464:380;;;:::o;5849:354::-;6051:2;6033:21;;;6090:2;6070:18;;;6063:30;6129:32;6124:2;6109:18;;6102:60;6194:2;6179:18;;5849:354::o;6208:356::-;6410:2;6392:21;;;6429:18;;;6422:30;6488:34;6483:2;6468:18;;6461:62;6555:2;6540:18;;6208:356::o;6569:127::-;6630:10;6625:3;6621:20;6618:1;6611:31;6661:4;6658:1;6651:15;6685:4;6682:1;6675:15;6701:125;6766:9;;;6787:10;;;6784:36;;;6800:18;;:::i;7650:127::-;7711:10;7706:3;7702:20;7699:1;7692:31;7742:4;7739:1;7732:15;7766:4;7763:1;7756:15;7782:135;7821:3;7842:17;;;7839:43;;7862:18;;:::i;:::-;-1:-1:-1;7909:1:1;7898:13;;7782:135::o;11043:128::-;11110:9;;;11131:11;;;11128:37;;;11145:18;;:::i;11176:217::-;11216:1;11242;11232:132;;11286:10;11281:3;11277:20;11274:1;11267:31;11321:4;11318:1;11311:15;11349:4;11346:1;11339:15;11232:132;-1:-1:-1;11378:9:1;;11176:217::o;11398:168::-;11471:9;;;11502;;11519:15;;;11513:22;;11499:37;11489:71;;11540:18;;:::i;12183:306::-;12271:6;12279;12287;12340:2;12328:9;12319:7;12315:23;12311:32;12308:52;;;12356:1;12353;12346:12;12308:52;12385:9;12379:16;12369:26;;12435:2;12424:9;12420:18;12414:25;12404:35;;12479:2;12468:9;12464:18;12458:25;12448:35;;12183:306;;;;;:::o;14010:251::-;14080:6;14133:2;14121:9;14112:7;14108:23;14104:32;14101:52;;;14149:1;14146;14139:12;14101:52;14181:9;14175:16;14200:31;14225:5;14200:31;:::i;14266:980::-;14528:4;14576:3;14565:9;14561:19;14607:6;14596:9;14589:25;14633:2;14671:6;14666:2;14655:9;14651:18;14644:34;14714:3;14709:2;14698:9;14694:18;14687:31;14738:6;14773;14767:13;14804:6;14796;14789:22;14842:3;14831:9;14827:19;14820:26;;14881:2;14873:6;14869:15;14855:29;;14902:1;14912:195;14926:6;14923:1;14920:13;14912:195;;;14991:13;;-1:-1:-1;;;;;14987:39:1;14975:52;;15082:15;;;;15047:12;;;;15023:1;14941:9;14912:195;;;-1:-1:-1;;;;;;;15163:32:1;;;;15158:2;15143:18;;15136:60;-1:-1:-1;;;15227:3:1;15212:19;15205:35;15124:3;14266:980;-1:-1:-1;;;14266:980:1:o

Swarm Source

ipfs://faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.