ETH Price: $2,043.75 (+0.76%)

Contract

0x548aC0B9C43E4858CA1aE8A7b4Eae493d24B5fba
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve234147392025-09-21 23:36:35169 days ago1758497795IN
0x548aC0B9...3d24B5fba
0 ETH0.000014610.60122651
Approve216077442025-01-12 10:14:47422 days ago1736676887IN
0x548aC0B9...3d24B5fba
0 ETH0.000056912.3362398
Transfer212344762024-11-21 7:00:23474 days ago1732172423IN
0x548aC0B9...3d24B5fba
0 ETH0.000490578.71799977
Transfer212335482024-11-21 3:53:23474 days ago1732161203IN
0x548aC0B9...3d24B5fba
0 ETH0.0004588211.70968612
Transfer212330412024-11-21 2:11:35474 days ago1732155095IN
0x548aC0B9...3d24B5fba
0 ETH0.0004489711.45146571
Transfer212311252024-11-20 19:46:47475 days ago1732132007IN
0x548aC0B9...3d24B5fba
0 ETH0.0006447216.44407092
Transfer212310922024-11-20 19:40:11475 days ago1732131611IN
0x548aC0B9...3d24B5fba
0 ETH0.0006228115.9
Transfer212308042024-11-20 18:41:59475 days ago1732128119IN
0x548aC0B9...3d24B5fba
0 ETH0.0010472616.50254928
Transfer212307702024-11-20 18:35:11475 days ago1732127711IN
0x548aC0B9...3d24B5fba
0 ETH0.0007426517.85352989
Transfer212302372024-11-20 16:47:59475 days ago1732121279IN
0x548aC0B9...3d24B5fba
0 ETH0.0009684624.70895574
Transfer212297352024-11-20 15:06:23475 days ago1732115183IN
0x548aC0B9...3d24B5fba
0 ETH0.0011197419.88640564
Transfer212278452024-11-20 8:46:11475 days ago1732092371IN
0x548aC0B9...3d24B5fba
0 ETH0.000388679.91344856
Transfer212278412024-11-20 8:45:23475 days ago1732092323IN
0x548aC0B9...3d24B5fba
0 ETH0.000349378.91103234
Transfer212278312024-11-20 8:43:23475 days ago1732092203IN
0x548aC0B9...3d24B5fba
0 ETH0.000545029.67951449
Approve212277402024-11-20 8:24:59475 days ago1732091099IN
0x548aC0B9...3d24B5fba
0 ETH0.000285210.68731108
Approve212277342024-11-20 8:23:47475 days ago1732091027IN
0x548aC0B9...3d24B5fba
0 ETH0.000432969.29392052
Approve210735522024-10-29 20:01:59497 days ago1730232119IN
0x548aC0B9...3d24B5fba
0 ETH0.0006995815.10647808
Transfer210735262024-10-29 19:56:47497 days ago1730231807IN
0x548aC0B9...3d24B5fba
0 ETH0.000644915.51250843
Approve210733002024-10-29 19:11:23497 days ago1730229083IN
0x548aC0B9...3d24B5fba
0 ETH0.0006832614.73513614
Approve209004312024-10-05 16:08:35521 days ago1728144515IN
0x548aC0B9...3d24B5fba
0 ETH0.000424039.14460315
Approve206444722024-08-30 22:47:47556 days ago1725058067IN
0x548aC0B9...3d24B5fba
0 ETH0.000063291.36709189
Approve206442642024-08-30 22:05:47556 days ago1725055547IN
0x548aC0B9...3d24B5fba
0 ETH0.000057721.24655114
Transfer206053982024-08-25 11:46:23562 days ago1724586383IN
0x548aC0B9...3d24B5fba
0 ETH0.000039121.00352345
Approve206052872024-08-25 11:24:11562 days ago1724585051IN
0x548aC0B9...3d24B5fba
0 ETH0.000040550.86933518
Approve206052742024-08-25 11:21:35562 days ago1724584895IN
0x548aC0B9...3d24B5fba
0 ETH0.000037580.80573802
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer212277502024-11-20 8:26:59475 days ago1732091219
0x548aC0B9...3d24B5fba
0.00081712 ETH
Transfer212277502024-11-20 8:26:59475 days ago1732091219
0x548aC0B9...3d24B5fba
0.00081712 ETH
Transfer212277502024-11-20 8:26:59475 days ago1732091219
0x548aC0B9...3d24B5fba
0.00152766 ETH
Add Liquidity ET...212277502024-11-20 8:26:59475 days ago1732091219
0x548aC0B9...3d24B5fba
0.00039079 ETH
Transfer212277502024-11-20 8:26:59475 days ago1732091219
0x548aC0B9...3d24B5fba
0.0035527 ETH
Transfer206706852024-09-03 14:35:59553 days ago1725374159
0x548aC0B9...3d24B5fba
0.00745922 ETH
Transfer206706852024-09-03 14:35:59553 days ago1725374159
0x548aC0B9...3d24B5fba
0.00745922 ETH
Transfer206706852024-09-03 14:35:59553 days ago1725374159
0x548aC0B9...3d24B5fba
0.01394551 ETH
Add Liquidity ET...206706852024-09-03 14:35:59553 days ago1725374159
0x548aC0B9...3d24B5fba
0.00356745 ETH
Transfer206706852024-09-03 14:35:59553 days ago1725374159
0x548aC0B9...3d24B5fba
0.03243141 ETH
Transfer202751542024-07-10 9:18:47608 days ago1720603127
0x548aC0B9...3d24B5fba
0.01034837 ETH
Transfer202751542024-07-10 9:18:47608 days ago1720603127
0x548aC0B9...3d24B5fba
0.01034837 ETH
Transfer202751542024-07-10 9:18:47608 days ago1720603127
0x548aC0B9...3d24B5fba
0.01934696 ETH
Add Liquidity ET...202751542024-07-10 9:18:47608 days ago1720603127
0x548aC0B9...3d24B5fba
0.00494922 ETH
Transfer202751542024-07-10 9:18:47608 days ago1720603127
0x548aC0B9...3d24B5fba
0.04499295 ETH
Transfer199220032024-05-22 0:57:35657 days ago1716339455
0x548aC0B9...3d24B5fba
0.01056507 ETH
Transfer199220032024-05-22 0:57:35657 days ago1716339455
0x548aC0B9...3d24B5fba
0.01056507 ETH
Transfer199220032024-05-22 0:57:35657 days ago1716339455
0x548aC0B9...3d24B5fba
0.01975209 ETH
Add Liquidity ET...199220032024-05-22 0:57:35657 days ago1716339455
0x548aC0B9...3d24B5fba
0.00505286 ETH
Transfer199220032024-05-22 0:57:35657 days ago1716339455
0x548aC0B9...3d24B5fba
0.04593511 ETH
Transfer196815782024-04-18 9:53:59691 days ago1713434039
0x548aC0B9...3d24B5fba
0.01184018 ETH
Transfer196815782024-04-18 9:53:59691 days ago1713434039
0x548aC0B9...3d24B5fba
0.01184018 ETH
Transfer196815782024-04-18 9:53:59691 days ago1713434039
0x548aC0B9...3d24B5fba
0.02213599 ETH
Add Liquidity ET...196815782024-04-18 9:53:59691 days ago1713434039
0x548aC0B9...3d24B5fba
0.00566269 ETH
Transfer196815782024-04-18 9:53:59691 days ago1713434039
0x548aC0B9...3d24B5fba
0.05147904 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EarnSphere

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-02-13
*/

//
//╭━━━╮       ╭━━━╮  ╭╮
//┃╭━━╯       ┃╭━╮┃  ┃┃
//┃╰━━┳━━┳━┳━╮┃╰━━┳━━┫╰━┳━━┳━┳━━╮
//┃╭━━┫╭╮┃╭┫╭╮╋━━╮┃╭╮┃╭╮┃┃━┫╭┫┃━┫
//┃╰━━┫╭╮┃┃┃┃┃┃╰━╯┃╰╯┃┃┃┃┃━┫┃┃┃━┫
//╰━━━┻╯╰┻╯╰╯╰┻━━━┫╭━┻╯╰┻━━┻╯╰━━╯
//                ┃┃
//                ╰╯
//
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

contract EarnSphere is IERC20Metadata, Ownable {
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxWalletToken;

    address public uniswapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address payable public marketingWallet = payable(0x05EB2283525aF53168E792dBc5415741acA4083a);
    address payable public devWallet = payable(0x4142B89096a6377a749FBE13D2710CdaEEB373a3);
    address payable public rewardsWallet = payable(0xB27C44667Ac1C1b3cB74FfD877827c8B35f7EF46);
    address payable public constant burnWallet = payable(0x000000000000000000000000000000000000dEaD);
    address payable public lpWallet;

    uint8 private constant _decimals = 18;
    uint256 private _tTotal = 10**9 * 10**_decimals;
    string private constant _name = "EarnSphere";
    string private constant _symbol = "$ES";

    uint256 public swapMinTokens = 10**6 * 10**_decimals;

    uint256 public buyTax = 30;
    uint256 public sellTax = 30;
    uint256 public maxTransactionTax = 6;

    uint256 public marketingETHPct = 23;
    uint256 public devETHPct = 23;
    uint256 public lpETHPct = 11;
    uint256 public rewardsETHPct = 43;

    uint256 public marketingPct = 17;
    uint256 public devPct = 16;
    uint256 public burnPct = 16;
    uint256 public lpPct = 17;
    uint256 public rewardsPct = 34;
    uint256 public maxPct = 100;

    uint256 public maxWalletSize = (_tTotal * 3) / maxPct;

    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event UpdateLpWallet(address newLp_, address oldLpWallet);
    event TaxThresholdChanged(uint256 tokenAmount);
    event MaxWalletChanged(uint256 maxWalletSize);    
    event UpdatedBuyTax(uint256 buyTax);
    event UpdatedSellTax(uint256 sellTax);
    event UpdatedPercentTaxes(uint256 marketing, uint256 dev, uint256 lp, uint256 rewards, uint256 burn);
    event UpdatedPercentTaxesETH(uint256 marketing, uint256 dev, uint256 lp, uint256 rewards);
    event UpdatedIsExcludedFromFee(address account, bool flag);
    event UpdatedIsExcludedFromMaxWallet(address account, bool flag);
    event UpdatedProjectWallets(address marketing, address dev, address rewards);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(address lpWalletAddress) {
        _tOwned[owner()] = _tTotal;

        _uniswapV2Router = IUniswapV2Router02(uniswapRouterAddress);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        lpWallet = payable(lpWalletAddress);

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[rewardsWallet] = true;
        isExcludedFromFee[burnWallet] = true;
        isExcludedFromFee[lpWallet] = true;
        isExcludedFromFee[uniswapRouterAddress] = true;

        isExcludedFromMaxWalletToken[uniswapRouterAddress] = true;
        isExcludedFromMaxWalletToken[owner()] = true;
        isExcludedFromMaxWalletToken[address(this)] = true;
        isExcludedFromMaxWalletToken[marketingWallet] = true;
        isExcludedFromMaxWalletToken[devWallet] = true;
        isExcludedFromMaxWalletToken[rewardsWallet] = true;
        isExcludedFromMaxWalletToken[burnWallet] = true;
        isExcludedFromMaxWalletToken[lpWallet] = true;
        isExcludedFromMaxWalletToken[uniswapV2Pair] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        return true;
    }

    receive() external payable {}

    function _approve(
        address theOwner,
        address theSpender,
        uint256 amount
    ) private {
        require(
            theOwner != address(0) && theSpender != address(0),
            "Zero address."
        );
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }

    function setLpWallet(address newLp_) external onlyOwner {
        require(newLp_ != address(0), "TTF::Lp wallet cannot be zero address");

        address oldLpWallet = lpWallet;
        lpWallet = payable(newLp_);

        emit UpdateLpWallet(newLp_, oldLpWallet);
    }

    function setBuyTax(
        uint256 buy
    ) public onlyOwner {
        require(buy <= maxTransactionTax, "Buy tax cannot exceed the maximum.");        
        buyTax = buy;
        emit UpdatedBuyTax(buy);
    }

    function setSellTax(
        uint256 sell
    ) public onlyOwner {
        require(sell <= maxTransactionTax, "Sell tax cannot exceed the maximum.");
        sellTax = sell;
        emit UpdatedSellTax(sell);
    }    

    function setPercentTaxETH(
        uint256 marketing,
        uint256 dev,
        uint256 lp,
        uint256 rewards
    ) public onlyOwner {
        require(marketing + dev + lp == maxPct, "The sum of percentages must equal 100.");
        marketingETHPct = marketing;
        devETHPct = dev;
        lpETHPct = lp;
        rewardsETHPct = rewards;

        emit UpdatedPercentTaxesETH(marketing, dev,lp, rewards);
    }

    function setPercentTax(
        uint256 marketing,
        uint256 dev,
        uint256 lp,
        uint256 rewards,
        uint256 burn
    ) public onlyOwner {
        require(marketing + dev + lp == maxPct, "The sum of percentages must equal 100.");
        marketingPct = marketing;
        devPct = dev;
        lpPct = lp;
        rewardsPct = rewards;
        burnPct = burn;

        emit UpdatedPercentTaxes(marketing, dev,lp, rewards, burn);
    }
    function excludeFromFee(address account) external onlyOwner {
        isExcludedFromFee[account] = true;
        emit UpdatedIsExcludedFromFee(account, true);
    }

    function includeInFee(address account) external onlyOwner {
        isExcludedFromFee[account] = false;
        emit UpdatedIsExcludedFromFee(account, false);
    }

	function excludeMaxWallet(address account) external onlyOwner {
        isExcludedFromMaxWalletToken[account] = true;
        emit UpdatedIsExcludedFromMaxWallet(account, true);
    }

    function includeMaxWallet(address account) external onlyOwner {
        isExcludedFromMaxWalletToken[account] = false;
        emit UpdatedIsExcludedFromMaxWallet(account, false);
    }

    function setWallets(
        address marketing,
        address dev,
        address rewards
    ) public onlyOwner {
        require(marketing != address(0) && dev != address(0) && rewards != address(0), "Invalid wallet addresses.");
        require(payable(marketing).send(0) && payable(dev).send(0) && payable(rewards).send(0), "All wallets need to be payable");

        isExcludedFromFee[marketingWallet] = false;
        isExcludedFromFee[devWallet] = false;
        isExcludedFromFee[rewardsWallet] = false;

        marketingWallet = payable(marketing);
        devWallet = payable(dev);
        rewardsWallet = payable(rewards);

        isExcludedFromFee[marketing] = true;
        isExcludedFromFee[dev] = true;
        isExcludedFromFee[rewards] = true;

        emit UpdatedProjectWallets(marketing, dev, rewards);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (!isExcludedFromMaxWalletToken[to]) {
            uint256 heldTokens = balanceOf(to);
            require(
                (heldTokens + amount) <= maxWalletSize,
                "Over wallet limit."
            );
        }

        require(
            from != address(0) && to != address(0),
            "Using 0 address!"
        );

        require(amount > 0, "Token value must be higher than zero.");

        if (
            balanceOf(address(this)) >= swapMinTokens &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair
        ) {
            swapAndDistributeTaxes();
        }

        _tokenTransfer(from, to, amount);
    }

    function _sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function setSwapMinTokens(uint256 minTokens) external onlyOwner {
        swapMinTokens = minTokens * 10**decimals();
        require(swapMinTokens < totalSupply(), "Min tokens for swap is too high.");
        emit TaxThresholdChanged(swapMinTokens);
    }

    function setMaxWalletTreshold(uint256 percentage) external onlyOwner {
        maxWalletSize = (_tTotal * percentage) / maxPct;
        require(maxWalletSize <= totalSupply(), "Max wallet can't exceed total supply");
        require(maxWalletSize > _tTotal / 1000, "Max wallet can't be smaller than 0.1");
        emit MaxWalletChanged(maxWalletSize);
    }

    function swapAndDistributeTaxes() private lockTheSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 marketingTokensShare = (contractTokenBalance * marketingPct) / maxPct;
        uint256 devTokensShare = (contractTokenBalance * devPct) / maxPct;
        uint256 rewardsTokensShare = (contractTokenBalance * rewardsPct) / maxPct;
        uint256 burnTokensShare = (contractTokenBalance * burnPct) / maxPct;
        uint256 lpTokensHalfShare = (contractTokenBalance * lpPct) / (2 * maxPct);
        
        swapTokensForBNB(lpTokensHalfShare + marketingTokensShare + devTokensShare + rewardsTokensShare);
        uint256 bnbReceived = address(this).balance;
        uint256 bnbToMarketing = (bnbReceived * marketingETHPct) / maxPct;
        uint256 bnbToDev = (bnbReceived * devETHPct) / maxPct;
        uint256 bnbToRewards = (bnbReceived * rewardsETHPct) / maxPct;

        addLiquidity(lpTokensHalfShare, (bnbReceived - bnbToMarketing - bnbToDev - bnbToRewards));
        emit SwapAndLiquify(
            lpTokensHalfShare,
            (bnbReceived - bnbToMarketing - bnbToDev - bnbToRewards),
            lpTokensHalfShare
        );

        _transfer(address(this), burnWallet, burnTokensShare);
        _sendToWallet(rewardsWallet, bnbToRewards);
        _sendToWallet(marketingWallet, bnbToMarketing);
        _sendToWallet(devWallet, address(this).balance);
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            burnWallet,
            block.timestamp
        );
    }

    function rescueAnyToken(address tokenToRescue, uint256 percent) external onlyOwner() {
        IERC20(tokenToRescue).transfer(msg.sender, IERC20(tokenToRescue).balanceOf(address(this)) * percent / 100);
    }

    function rescueBnb() external onlyOwner {
        (bool success,) = address(owner()).call{value: address(this).balance}("");
        require(success, "failed");        
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 tAmount
    ) private {
        bool isBuy = (from == uniswapV2Pair);
        bool isSell = (to == uniswapV2Pair);
        bool isBuyOrSell = isBuy || isSell;
        bool takeFee = isBuyOrSell && !(isExcludedFromFee[from] || isExcludedFromFee[to]);

        uint256 fee = !takeFee
            ? 0
            : isBuy
                ? (tAmount * buyTax) / maxPct
                : (tAmount * sellTax) / maxPct;
        uint256 tTransferAmount = tAmount - fee;

        _tOwned[from] = _tOwned[from] - tAmount;
        _tOwned[to] = _tOwned[to] + tTransferAmount;
        _tOwned[address(this)] = _tOwned[address(this)] + fee;
        emit Transfer(from, to, tTransferAmount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"lpWalletAddress","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":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletChanged","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TaxThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLp_","type":"address"},{"indexed":false,"internalType":"address","name":"oldLpWallet","type":"address"}],"name":"UpdateLpWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"UpdatedIsExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"UpdatedIsExcludedFromMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dev","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewards","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"}],"name":"UpdatedPercentTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dev","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"UpdatedPercentTaxesETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"},{"indexed":false,"internalType":"address","name":"dev","type":"address"},{"indexed":false,"internalType":"address","name":"rewards","type":"address"}],"name":"UpdatedProjectWallets","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"burnPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devETHPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeMaxWallet","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpETHPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingETHPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenToRescue","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueAnyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueBnb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsETHPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLp_","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"lp","type":"uint256"},{"internalType":"uint256","name":"rewards","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"setPercentTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"lp","type":"uint256"},{"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"setPercentTaxETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minTokens","type":"uint256"}],"name":"setSwapMinTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"dev","type":"address"},{"internalType":"address","name":"rewards","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMinTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556006805482167305eb2283525af53168e792dbc5415741aca4083a179055600780548216734142b89096a6377a749fbe13d2710cdaeeb373a31790556008805490911673b27c44667ac1c1b3cb74ffd877827c8b35f7ef46179055620000966012600a620006ee565b620000a690633b9aca0062000706565b600a556012600a620000b99190620006ee565b620000c890620f424062000706565b600b55601e600c55601e600d556006600e556017600f556017601055600b601155602b601255601160135560106014556010601555601160165560226017556064601855601854600a54600362000120919062000706565b6200012c919062000720565b6019553480156200013c57600080fd5b5060405162002d8b38038062002d8b8339810160408190526200015f9162000743565b6200016a3362000589565b600a5460016000620001846000546001600160a01b031690565b6001600160a01b039081168252602080830193909352604091820160002093909355600554601a80546001600160a01b03191691909416908117909355805163c45a015560e01b8152905163c45a0155926004808401939192918290030181865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000743565b6001600160a01b031663c9c6539630601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000743565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000743565b601b80546001600160a01b03199081166001600160a01b039384161790915560098054909116918316919091179055600160036000620003636000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600384528281208054861660019081179091556006548316825283822080548716821790556007548316825283822080548716821790556008548316825283822080548716821790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80548716821790556009548316825283822080548716821790556005805484168352848320805488168317905554909216815260049384905291822080549094168117909355620004576000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556006548216845282842080548616821790556007548216845282842080548616821790556008548216845282842080548616821790557f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054861682179055600954821684528284208054861682179055601b54909116835291208054909216179055620005326000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200057a91815260200190565b60405180910390a3506200076e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000630578160001904821115620006145762000614620005d9565b808516156200062257918102915b93841c9390800290620005f4565b509250929050565b6000826200064957506001620006e8565b816200065857506000620006e8565b81600181146200067157600281146200067c576200069c565b6001915050620006e8565b60ff841115620006905762000690620005d9565b50506001821b620006e8565b5060208310610133831016604e8410600b8410161715620006c1575081810a620006e8565b620006cd8383620005ef565b8060001904821115620006e457620006e4620005d9565b0290505b92915050565b6000620006ff60ff84168362000638565b9392505050565b8082028115828204841417620006e857620006e8620005d9565b6000826200073e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075657600080fd5b81516001600160a01b0381168114620006ff57600080fd5b61260d806200077e6000396000f3fe6080604052600436106103395760003560e01c8063557f2a8d116101ab5780638da5cb5b116100f7578063a9059cbb11610095578063dc1052e21161006f578063dc1052e21461095a578063dd62ed3e1461097a578063ea2f0b37146109c0578063f2fde38b146109e057600080fd5b8063a9059cbb1461090e578063cc1776d31461092e578063d5fc1e601461094457600080fd5b8063950fdad7116100d1578063950fdad71461089657806395d89b41146108ac5780639618b31c146108d8578063a457c2d7146108ee57600080fd5b80638da5cb5b146108425780638ea5220f146108605780638f3fa8601461088057600080fd5b80636e08dbb5116101645780637344a44d1161013e5780637344a44d146107cd57806375cb1bd1146107e257806375f0a874146108025780638cd09d501461082257600080fd5b80636e08dbb51461076257806370a0823114610782578063715018a6146107b857600080fd5b8063557f2a8d146106b6578063583e0568146106d65780635b35f9c9146106f65780635b87bf08146107165780636303516c1461072c57806369c7ae371461074c57600080fd5b8063313ce567116102855780634f3260f611610223578063522ac058116101fd578063522ac0581461063a5780635342acb4146106505780635450e09314610680578063546417a91461069657600080fd5b80634f3260f6146105ee5780634f7041a5146106045780634fb639f31461061a57600080fd5b806343f07b581161025f57806343f07b5814610578578063468c7ee21461059857806349bd5a5e146105b85780634f0c9c33146105d857600080fd5b8063313ce5671461051c5780633950935114610538578063437823ec1461055857600080fd5b80631783e052116102f25780631ece8d7e116102cc5780631ece8d7e1461049b57806320ca3c7f146104bb578063220f6696146104db57806323b872dd146104fc57600080fd5b80631783e0521461044e57806318160ddd146104645780631e9384c71461047957600080fd5b8063062287491461034557806306fdde0314610378578063095ea7b3146103b45780630fe0eb0f146103e45780630ff974e71461040857806311f9262f1461043857600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561038457600080fd5b5060408051808201909152600a8152694561726e53706865726560b01b60208201525b60405161036f91906120e9565b3480156103c057600080fd5b506103d46103cf36600461214c565b610a00565b604051901515815260200161036f565b3480156103f057600080fd5b506103fa600e5481565b60405190815260200161036f565b34801561041457600080fd5b506103d4610423366004612178565b60046020526000908152604090205460ff1681565b34801561044457600080fd5b506103fa60165481565b34801561045a57600080fd5b506103fa600b5481565b34801561047057600080fd5b50600a546103fa565b34801561048557600080fd5b5061049961049436600461219c565b610a17565b005b3480156104a757600080fd5b506104996104b63660046121ce565b610ae1565b3480156104c757600080fd5b5060055461035b906001600160a01b031681565b3480156104e757600080fd5b50601b546103d490600160a01b900460ff1681565b34801561050857600080fd5b506103d4610517366004612209565b610baf565b34801561052857600080fd5b506040516012815260200161036f565b34801561054457600080fd5b506103d461055336600461214c565b610c01565b34801561056457600080fd5b50610499610573366004612178565b610c38565b34801561058457600080fd5b50610499610593366004612178565b610cc4565b3480156105a457600080fd5b506104996105b3366004612178565b610d45565b3480156105c457600080fd5b50601b5461035b906001600160a01b031681565b3480156105e457600080fd5b506103fa60175481565b3480156105fa57600080fd5b506103fa60125481565b34801561061057600080fd5b506103fa600c5481565b34801561062657600080fd5b5061049961063536600461224a565b610e32565b34801561064657600080fd5b506103fa60185481565b34801561065c57600080fd5b506103d461066b366004612178565b60036020526000908152604090205460ff1681565b34801561068c57600080fd5b506103fa60135481565b3480156106a257600080fd5b506104996106b1366004612178565b610efb565b3480156106c257600080fd5b506104996106d136600461224a565b610f80565b3480156106e257600080fd5b50601a5461035b906001600160a01b031681565b34801561070257600080fd5b5060085461035b906001600160a01b031681565b34801561072257600080fd5b506103fa600f5481565b34801561073857600080fd5b5060095461035b906001600160a01b031681565b34801561075857600080fd5b506103fa60115481565b34801561076e57600080fd5b5061049961077d36600461214c565b6110c7565b34801561078e57600080fd5b506103fa61079d366004612178565b6001600160a01b031660009081526001602052604090205490565b3480156107c457600080fd5b506104996111f0565b3480156107d957600080fd5b50610499611226565b3480156107ee57600080fd5b506104996107fd366004612263565b6112df565b34801561080e57600080fd5b5060065461035b906001600160a01b031681565b34801561082e57600080fd5b5061049961083d36600461224a565b611538565b34801561084e57600080fd5b506000546001600160a01b031661035b565b34801561086c57600080fd5b5060075461035b906001600160a01b031681565b34801561088c57600080fd5b506103fa60195481565b3480156108a257600080fd5b506103fa60145481565b3480156108b857600080fd5b5060408051808201909152600381526224455360e81b60208201526103a7565b3480156108e457600080fd5b506103fa60155481565b3480156108fa57600080fd5b506103d461090936600461214c565b6115f5565b34801561091a57600080fd5b506103d461092936600461214c565b61162c565b34801561093a57600080fd5b506103fa600d5481565b34801561095057600080fd5b506103fa60105481565b34801561096657600080fd5b5061049961097536600461224a565b611639565b34801561098657600080fd5b506103fa6109953660046122ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109cc57600080fd5b506104996109db366004612178565b6116f5565b3480156109ec57600080fd5b506104996109fb366004612178565b611776565b6000610a0d33848461180e565b5060015b92915050565b6000546001600160a01b03163314610a4a5760405162461bcd60e51b8152600401610a41906122e7565b60405180910390fd5b60185482610a588587612332565b610a629190612332565b14610a7f5760405162461bcd60e51b8152600401610a4190612345565b600f8490556010839055601182905560128190556040805185815260208101859052908101839052606081018290527f7a838d55bcce3202c0aa6256518e93dc95f6f6f9981f4ab5ea0e38646f2ae3bf9060800160405180910390a150505050565b6000546001600160a01b03163314610b0b5760405162461bcd60e51b8152600401610a41906122e7565b60185483610b198688612332565b610b239190612332565b14610b405760405162461bcd60e51b8152600401610a4190612345565b60138590556014849055601683905560178290556015819055604080518681526020810186905290810184905260608101839052608081018290527ff2523c959175c4a1529e5e9f50f75087ffb676ec7f019c96597d5b44493630569060a00160405180910390a15050505050565b6000610bbc8484846118cb565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610bf7918691610bf290869061238b565b61180e565b5060019392505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a0d918590610bf2908690612332565b6000546001600160a01b03163314610c625760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116600081815260036020908152604091829020805460ff191660019081179091558251938452908301527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f434791015b60405180910390a150565b6000546001600160a01b03163314610cee5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051938452908301919091527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610cb9565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602560248201527f5454463a3a4c702077616c6c65742063616e6e6f74206265207a65726f206164604482015264647265737360d81b6064820152608401610a41565b600980546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f9b605aae8f83676cfb10dbe7d27053ddf283489a08a395c9b1b33166857ed16d910160405180910390a15050565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b8152600401610a41906122e7565b610e686012600a612482565b610e729082612491565b600b55600a54600b5410610ec85760405162461bcd60e51b815260206004820181905260248201527f4d696e20746f6b656e7320666f72207377617020697320746f6f20686967682e6044820152606401610a41565b7f2c76ec4ba7ef257c3301537e7e59a6aaa99081a4005d3d77767b7e75a5288dfd600b54604051610cb991815260200190565b6000546001600160a01b03163314610f255760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116600081815260046020908152604091829020805460ff191660019081179091558251938452908301527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610cb9565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610a41906122e7565b60185481600a54610fbb9190612491565b610fc591906124a8565b601955600a5460195411156110285760405162461bcd60e51b8152602060048201526024808201527f4d61782077616c6c65742063616e27742065786365656420746f74616c20737560448201526370706c7960e01b6064820152608401610a41565b6103e8600a5461103891906124a8565b601954116110945760405162461bcd60e51b8152602060048201526024808201527f4d61782077616c6c65742063616e277420626520736d616c6c6572207468616e60448201526320302e3160e01b6064820152608401610a41565b7fd79b8c9aaacc4db9fee532137a1ade40c7238016bff71cb2abc1a3cf8b6cdff6601954604051610cb991815260200190565b6000546001600160a01b031633146110f15760405162461bcd60e51b8152600401610a41906122e7565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb903390606490859085906370a0823190602401602060405180830381865afa158015611144573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116891906124ca565b6111729190612491565b61117c91906124a8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb91906124e3565b505050565b6000546001600160a01b0316331461121a5760405162461bcd60e51b8152600401610a41906122e7565b6112246000611a70565b565b6000546001600160a01b031633146112505760405162461bcd60e51b8152600401610a41906122e7565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461129d576040519150601f19603f3d011682016040523d82523d6000602084013e6112a2565b606091505b50509050806112dc5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b6044820152606401610a41565b50565b6000546001600160a01b031633146113095760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0383161580159061132957506001600160a01b03821615155b801561133d57506001600160a01b03811615155b6113895760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642077616c6c6574206164647265737365732e000000000000006044820152606401610a41565b6040516001600160a01b038416906108fc9060009081818181818888f1935050505080156113d557506040516001600160a01b038316906108fc9060009081818181818888f193505050505b80156113ff57506040516001600160a01b038216906108fc9060009081818181818888f193505050505b61144b5760405162461bcd60e51b815260206004820152601e60248201527f416c6c2077616c6c657473206e65656420746f2062652070617961626c6500006044820152606401610a41565b600680546001600160a01b039081166000908152600360209081526040808320805460ff199081169091556007805486168552828520805483169055600880548716865283862080548416905587548b88166001600160a01b0319918216811790995582548b891690821681179093558154978a16971687179055868552828520805483166001908117909155818652838620805484168217905586865294839020805490921690941790558051948552908401919091528201527fa13fee400d87ced689034cb4668ff9fb550fa729a8f16d7132f97c92f72432339060600160405180910390a1505050565b6000546001600160a01b031633146115625760405162461bcd60e51b8152600401610a41906122e7565b600e548111156115c05760405162461bcd60e51b815260206004820152602360248201527f53656c6c207461782063616e6e6f742065786365656420746865206d6178696d6044820152623ab69760e91b6064820152608401610a41565b600d8190556040518181527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c9790602001610cb9565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a0d918590610bf290869061238b565b6000610a0d3384846118cb565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610a41906122e7565b600e548111156116c05760405162461bcd60e51b815260206004820152602260248201527f427579207461782063616e6e6f742065786365656420746865206d6178696d75604482015261369760f11b6064820152608401610a41565b600c8190556040518181527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece050890602001610cb9565b6000546001600160a01b0316331461171f5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166000818152600360209081526040808320805460ff191690558051938452908301919091527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f43479101610cb9565b6000546001600160a01b031633146117a05760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166118055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a41565b6112dc81611a70565b6001600160a01b0383161580159061182e57506001600160a01b03821615155b61186a5760405162461bcd60e51b815260206004820152600d60248201526c2d32b9379030b2323932b9b99760991b6044820152606401610a41565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526004602052604090205460ff16611956576001600160a01b0382166000908152600160205260409020546019546119118383612332565b11156119545760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610a41565b505b6001600160a01b0383161580159061197657506001600160a01b03821615155b6119b55760405162461bcd60e51b815260206004820152601060248201526f5573696e67203020616464726573732160801b6044820152606401610a41565b60008111611a135760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610a41565b600b543060009081526001602052604090205410158015611a3e5750601b54600160a01b900460ff16155b8015611a585750601b546001600160a01b03848116911614155b15611a6557611a65611ac0565b6111eb838383611d04565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601b805460ff60a01b1916600160a01b179055306000908152600160205260408120549050600060185460135483611af89190612491565b611b0291906124a8565b9050600060185460145484611b179190612491565b611b2191906124a8565b9050600060185460175485611b369190612491565b611b4091906124a8565b9050600060185460155486611b559190612491565b611b5f91906124a8565b905060006018546002611b729190612491565b601654611b7f9088612491565b611b8991906124a8565b9050611bb38385611b9a8885612332565b611ba49190612332565b611bae9190612332565b611ea7565b601854600f544791600091611bc89084612491565b611bd291906124a8565b9050600060185460105484611be79190612491565b611bf191906124a8565b9050600060185460125485611c069190612491565b611c1091906124a8565b9050611c3b858284611c22878961238b565b611c2c919061238b565b611c36919061238b565b612001565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858284611c69878961238b565b611c73919061238b565b611c7d919061238b565b604080519283526020830191909152810187905260600160405180910390a1611ca93061dead886118cb565b600854611cbf906001600160a01b0316826120b3565b600654611cd5906001600160a01b0316846120b3565b600754611ceb906001600160a01b0316476120b3565b5050601b805460ff60a01b191690555050505050505050565b601b546001600160a01b0390811684821681149184161460008280611d265750815b90506000818015611d7357506001600160a01b03871660009081526003602052604090205460ff1680611d7157506001600160a01b03861660009081526003602052604090205460ff165b155b905060008115611db15784611da157601854600d54611d929088612491565b611d9c91906124a8565b611db4565b601854600c54611d929088612491565b60005b90506000611dc2828861238b565b6001600160a01b038a16600090815260016020526040902054909150611de990889061238b565b6001600160a01b03808b1660009081526001602052604080822093909355908a1681522054611e19908290612332565b6001600160a01b038916600090815260016020526040808220929092553081522054611e46908390612332565b3060009081526001602090815260409182902092909255518281526001600160a01b038a811692908c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611edc57611edc612505565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f59919061251b565b81600181518110611f6c57611f6c612505565b6001600160a01b039283166020918202929092010152601a54611f92913091168461180e565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fcb908590600090869030904290600401612538565b600060405180830381600087803b158015611fe557600080fd5b505af1158015611ff9573d6000803e3d6000fd5b505050505050565b601a546120199030906001600160a01b03168461180e565b601a5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612087573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120ac91906125a9565b5050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111eb573d6000803e3d6000fd5b600060208083528351808285015260005b81811015612116578581018301518582016040015282016120fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112dc57600080fd5b6000806040838503121561215f57600080fd5b823561216a81612137565b946020939093013593505050565b60006020828403121561218a57600080fd5b813561219581612137565b9392505050565b600080600080608085870312156121b257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a086880312156121e657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060006060848603121561221e57600080fd5b833561222981612137565b9250602084013561223981612137565b929592945050506040919091013590565b60006020828403121561225c57600080fd5b5035919050565b60008060006060848603121561227857600080fd5b833561228381612137565b9250602084013561229381612137565b915060408401356122a381612137565b809150509250925092565b600080604083850312156122c157600080fd5b82356122cc81612137565b915060208301356122dc81612137565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1157610a1161231c565b60208082526026908201527f5468652073756d206f662070657263656e7461676573206d757374206571756160408201526536101898181760d11b606082015260800190565b81810381811115610a1157610a1161231c565b600181815b808511156123d95781600019048211156123bf576123bf61231c565b808516156123cc57918102915b93841c93908002906123a3565b509250929050565b6000826123f057506001610a11565b816123fd57506000610a11565b8160018114612413576002811461241d57612439565b6001915050610a11565b60ff84111561242e5761242e61231c565b50506001821b610a11565b5060208310610133831016604e8410600b841016171561245c575081810a610a11565b612466838361239e565b806000190482111561247a5761247a61231c565b029392505050565b600061219560ff8416836123e1565b8082028115828204841417610a1157610a1161231c565b6000826124c557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156124dc57600080fd5b5051919050565b6000602082840312156124f557600080fd5b8151801515811461219557600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252d57600080fd5b815161219581612137565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125885784516001600160a01b031683529383019391830191600101612563565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125be57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209c2d5df33d843bb0193dc53259ee7ea2f7105010fe32c441696c6e540c3dec2664736f6c634300081300330000000000000000000000008030de48e72bef087fa98e8254249cb1a8bd9e03

Deployed Bytecode

0x6080604052600436106103395760003560e01c8063557f2a8d116101ab5780638da5cb5b116100f7578063a9059cbb11610095578063dc1052e21161006f578063dc1052e21461095a578063dd62ed3e1461097a578063ea2f0b37146109c0578063f2fde38b146109e057600080fd5b8063a9059cbb1461090e578063cc1776d31461092e578063d5fc1e601461094457600080fd5b8063950fdad7116100d1578063950fdad71461089657806395d89b41146108ac5780639618b31c146108d8578063a457c2d7146108ee57600080fd5b80638da5cb5b146108425780638ea5220f146108605780638f3fa8601461088057600080fd5b80636e08dbb5116101645780637344a44d1161013e5780637344a44d146107cd57806375cb1bd1146107e257806375f0a874146108025780638cd09d501461082257600080fd5b80636e08dbb51461076257806370a0823114610782578063715018a6146107b857600080fd5b8063557f2a8d146106b6578063583e0568146106d65780635b35f9c9146106f65780635b87bf08146107165780636303516c1461072c57806369c7ae371461074c57600080fd5b8063313ce567116102855780634f3260f611610223578063522ac058116101fd578063522ac0581461063a5780635342acb4146106505780635450e09314610680578063546417a91461069657600080fd5b80634f3260f6146105ee5780634f7041a5146106045780634fb639f31461061a57600080fd5b806343f07b581161025f57806343f07b5814610578578063468c7ee21461059857806349bd5a5e146105b85780634f0c9c33146105d857600080fd5b8063313ce5671461051c5780633950935114610538578063437823ec1461055857600080fd5b80631783e052116102f25780631ece8d7e116102cc5780631ece8d7e1461049b57806320ca3c7f146104bb578063220f6696146104db57806323b872dd146104fc57600080fd5b80631783e0521461044e57806318160ddd146104645780631e9384c71461047957600080fd5b8063062287491461034557806306fdde0314610378578063095ea7b3146103b45780630fe0eb0f146103e45780630ff974e71461040857806311f9262f1461043857600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561038457600080fd5b5060408051808201909152600a8152694561726e53706865726560b01b60208201525b60405161036f91906120e9565b3480156103c057600080fd5b506103d46103cf36600461214c565b610a00565b604051901515815260200161036f565b3480156103f057600080fd5b506103fa600e5481565b60405190815260200161036f565b34801561041457600080fd5b506103d4610423366004612178565b60046020526000908152604090205460ff1681565b34801561044457600080fd5b506103fa60165481565b34801561045a57600080fd5b506103fa600b5481565b34801561047057600080fd5b50600a546103fa565b34801561048557600080fd5b5061049961049436600461219c565b610a17565b005b3480156104a757600080fd5b506104996104b63660046121ce565b610ae1565b3480156104c757600080fd5b5060055461035b906001600160a01b031681565b3480156104e757600080fd5b50601b546103d490600160a01b900460ff1681565b34801561050857600080fd5b506103d4610517366004612209565b610baf565b34801561052857600080fd5b506040516012815260200161036f565b34801561054457600080fd5b506103d461055336600461214c565b610c01565b34801561056457600080fd5b50610499610573366004612178565b610c38565b34801561058457600080fd5b50610499610593366004612178565b610cc4565b3480156105a457600080fd5b506104996105b3366004612178565b610d45565b3480156105c457600080fd5b50601b5461035b906001600160a01b031681565b3480156105e457600080fd5b506103fa60175481565b3480156105fa57600080fd5b506103fa60125481565b34801561061057600080fd5b506103fa600c5481565b34801561062657600080fd5b5061049961063536600461224a565b610e32565b34801561064657600080fd5b506103fa60185481565b34801561065c57600080fd5b506103d461066b366004612178565b60036020526000908152604090205460ff1681565b34801561068c57600080fd5b506103fa60135481565b3480156106a257600080fd5b506104996106b1366004612178565b610efb565b3480156106c257600080fd5b506104996106d136600461224a565b610f80565b3480156106e257600080fd5b50601a5461035b906001600160a01b031681565b34801561070257600080fd5b5060085461035b906001600160a01b031681565b34801561072257600080fd5b506103fa600f5481565b34801561073857600080fd5b5060095461035b906001600160a01b031681565b34801561075857600080fd5b506103fa60115481565b34801561076e57600080fd5b5061049961077d36600461214c565b6110c7565b34801561078e57600080fd5b506103fa61079d366004612178565b6001600160a01b031660009081526001602052604090205490565b3480156107c457600080fd5b506104996111f0565b3480156107d957600080fd5b50610499611226565b3480156107ee57600080fd5b506104996107fd366004612263565b6112df565b34801561080e57600080fd5b5060065461035b906001600160a01b031681565b34801561082e57600080fd5b5061049961083d36600461224a565b611538565b34801561084e57600080fd5b506000546001600160a01b031661035b565b34801561086c57600080fd5b5060075461035b906001600160a01b031681565b34801561088c57600080fd5b506103fa60195481565b3480156108a257600080fd5b506103fa60145481565b3480156108b857600080fd5b5060408051808201909152600381526224455360e81b60208201526103a7565b3480156108e457600080fd5b506103fa60155481565b3480156108fa57600080fd5b506103d461090936600461214c565b6115f5565b34801561091a57600080fd5b506103d461092936600461214c565b61162c565b34801561093a57600080fd5b506103fa600d5481565b34801561095057600080fd5b506103fa60105481565b34801561096657600080fd5b5061049961097536600461224a565b611639565b34801561098657600080fd5b506103fa6109953660046122ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109cc57600080fd5b506104996109db366004612178565b6116f5565b3480156109ec57600080fd5b506104996109fb366004612178565b611776565b6000610a0d33848461180e565b5060015b92915050565b6000546001600160a01b03163314610a4a5760405162461bcd60e51b8152600401610a41906122e7565b60405180910390fd5b60185482610a588587612332565b610a629190612332565b14610a7f5760405162461bcd60e51b8152600401610a4190612345565b600f8490556010839055601182905560128190556040805185815260208101859052908101839052606081018290527f7a838d55bcce3202c0aa6256518e93dc95f6f6f9981f4ab5ea0e38646f2ae3bf9060800160405180910390a150505050565b6000546001600160a01b03163314610b0b5760405162461bcd60e51b8152600401610a41906122e7565b60185483610b198688612332565b610b239190612332565b14610b405760405162461bcd60e51b8152600401610a4190612345565b60138590556014849055601683905560178290556015819055604080518681526020810186905290810184905260608101839052608081018290527ff2523c959175c4a1529e5e9f50f75087ffb676ec7f019c96597d5b44493630569060a00160405180910390a15050505050565b6000610bbc8484846118cb565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610bf7918691610bf290869061238b565b61180e565b5060019392505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a0d918590610bf2908690612332565b6000546001600160a01b03163314610c625760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116600081815260036020908152604091829020805460ff191660019081179091558251938452908301527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f434791015b60405180910390a150565b6000546001600160a01b03163314610cee5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051938452908301919091527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610cb9565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116610dd35760405162461bcd60e51b815260206004820152602560248201527f5454463a3a4c702077616c6c65742063616e6e6f74206265207a65726f206164604482015264647265737360d81b6064820152608401610a41565b600980546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f9b605aae8f83676cfb10dbe7d27053ddf283489a08a395c9b1b33166857ed16d910160405180910390a15050565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b8152600401610a41906122e7565b610e686012600a612482565b610e729082612491565b600b55600a54600b5410610ec85760405162461bcd60e51b815260206004820181905260248201527f4d696e20746f6b656e7320666f72207377617020697320746f6f20686967682e6044820152606401610a41565b7f2c76ec4ba7ef257c3301537e7e59a6aaa99081a4005d3d77767b7e75a5288dfd600b54604051610cb991815260200190565b6000546001600160a01b03163314610f255760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b038116600081815260046020908152604091829020805460ff191660019081179091558251938452908301527f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4119101610cb9565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610a41906122e7565b60185481600a54610fbb9190612491565b610fc591906124a8565b601955600a5460195411156110285760405162461bcd60e51b8152602060048201526024808201527f4d61782077616c6c65742063616e27742065786365656420746f74616c20737560448201526370706c7960e01b6064820152608401610a41565b6103e8600a5461103891906124a8565b601954116110945760405162461bcd60e51b8152602060048201526024808201527f4d61782077616c6c65742063616e277420626520736d616c6c6572207468616e60448201526320302e3160e01b6064820152608401610a41565b7fd79b8c9aaacc4db9fee532137a1ade40c7238016bff71cb2abc1a3cf8b6cdff6601954604051610cb991815260200190565b6000546001600160a01b031633146110f15760405162461bcd60e51b8152600401610a41906122e7565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb903390606490859085906370a0823190602401602060405180830381865afa158015611144573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116891906124ca565b6111729190612491565b61117c91906124a8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb91906124e3565b505050565b6000546001600160a01b0316331461121a5760405162461bcd60e51b8152600401610a41906122e7565b6112246000611a70565b565b6000546001600160a01b031633146112505760405162461bcd60e51b8152600401610a41906122e7565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461129d576040519150601f19603f3d011682016040523d82523d6000602084013e6112a2565b606091505b50509050806112dc5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b6044820152606401610a41565b50565b6000546001600160a01b031633146113095760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0383161580159061132957506001600160a01b03821615155b801561133d57506001600160a01b03811615155b6113895760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642077616c6c6574206164647265737365732e000000000000006044820152606401610a41565b6040516001600160a01b038416906108fc9060009081818181818888f1935050505080156113d557506040516001600160a01b038316906108fc9060009081818181818888f193505050505b80156113ff57506040516001600160a01b038216906108fc9060009081818181818888f193505050505b61144b5760405162461bcd60e51b815260206004820152601e60248201527f416c6c2077616c6c657473206e65656420746f2062652070617961626c6500006044820152606401610a41565b600680546001600160a01b039081166000908152600360209081526040808320805460ff199081169091556007805486168552828520805483169055600880548716865283862080548416905587548b88166001600160a01b0319918216811790995582548b891690821681179093558154978a16971687179055868552828520805483166001908117909155818652838620805484168217905586865294839020805490921690941790558051948552908401919091528201527fa13fee400d87ced689034cb4668ff9fb550fa729a8f16d7132f97c92f72432339060600160405180910390a1505050565b6000546001600160a01b031633146115625760405162461bcd60e51b8152600401610a41906122e7565b600e548111156115c05760405162461bcd60e51b815260206004820152602360248201527f53656c6c207461782063616e6e6f742065786365656420746865206d6178696d6044820152623ab69760e91b6064820152608401610a41565b600d8190556040518181527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c9790602001610cb9565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610a0d918590610bf290869061238b565b6000610a0d3384846118cb565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610a41906122e7565b600e548111156116c05760405162461bcd60e51b815260206004820152602260248201527f427579207461782063616e6e6f742065786365656420746865206d6178696d75604482015261369760f11b6064820152608401610a41565b600c8190556040518181527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece050890602001610cb9565b6000546001600160a01b0316331461171f5760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166000818152600360209081526040808320805460ff191690558051938452908301919091527ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f43479101610cb9565b6000546001600160a01b031633146117a05760405162461bcd60e51b8152600401610a41906122e7565b6001600160a01b0381166118055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a41565b6112dc81611a70565b6001600160a01b0383161580159061182e57506001600160a01b03821615155b61186a5760405162461bcd60e51b815260206004820152600d60248201526c2d32b9379030b2323932b9b99760991b6044820152606401610a41565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526004602052604090205460ff16611956576001600160a01b0382166000908152600160205260409020546019546119118383612332565b11156119545760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610a41565b505b6001600160a01b0383161580159061197657506001600160a01b03821615155b6119b55760405162461bcd60e51b815260206004820152601060248201526f5573696e67203020616464726573732160801b6044820152606401610a41565b60008111611a135760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610a41565b600b543060009081526001602052604090205410158015611a3e5750601b54600160a01b900460ff16155b8015611a585750601b546001600160a01b03848116911614155b15611a6557611a65611ac0565b6111eb838383611d04565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601b805460ff60a01b1916600160a01b179055306000908152600160205260408120549050600060185460135483611af89190612491565b611b0291906124a8565b9050600060185460145484611b179190612491565b611b2191906124a8565b9050600060185460175485611b369190612491565b611b4091906124a8565b9050600060185460155486611b559190612491565b611b5f91906124a8565b905060006018546002611b729190612491565b601654611b7f9088612491565b611b8991906124a8565b9050611bb38385611b9a8885612332565b611ba49190612332565b611bae9190612332565b611ea7565b601854600f544791600091611bc89084612491565b611bd291906124a8565b9050600060185460105484611be79190612491565b611bf191906124a8565b9050600060185460125485611c069190612491565b611c1091906124a8565b9050611c3b858284611c22878961238b565b611c2c919061238b565b611c36919061238b565b612001565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858284611c69878961238b565b611c73919061238b565b611c7d919061238b565b604080519283526020830191909152810187905260600160405180910390a1611ca93061dead886118cb565b600854611cbf906001600160a01b0316826120b3565b600654611cd5906001600160a01b0316846120b3565b600754611ceb906001600160a01b0316476120b3565b5050601b805460ff60a01b191690555050505050505050565b601b546001600160a01b0390811684821681149184161460008280611d265750815b90506000818015611d7357506001600160a01b03871660009081526003602052604090205460ff1680611d7157506001600160a01b03861660009081526003602052604090205460ff165b155b905060008115611db15784611da157601854600d54611d929088612491565b611d9c91906124a8565b611db4565b601854600c54611d929088612491565b60005b90506000611dc2828861238b565b6001600160a01b038a16600090815260016020526040902054909150611de990889061238b565b6001600160a01b03808b1660009081526001602052604080822093909355908a1681522054611e19908290612332565b6001600160a01b038916600090815260016020526040808220929092553081522054611e46908390612332565b3060009081526001602090815260409182902092909255518281526001600160a01b038a811692908c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611edc57611edc612505565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f59919061251b565b81600181518110611f6c57611f6c612505565b6001600160a01b039283166020918202929092010152601a54611f92913091168461180e565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fcb908590600090869030904290600401612538565b600060405180830381600087803b158015611fe557600080fd5b505af1158015611ff9573d6000803e3d6000fd5b505050505050565b601a546120199030906001600160a01b03168461180e565b601a5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612087573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120ac91906125a9565b5050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111eb573d6000803e3d6000fd5b600060208083528351808285015260005b81811015612116578581018301518582016040015282016120fa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112dc57600080fd5b6000806040838503121561215f57600080fd5b823561216a81612137565b946020939093013593505050565b60006020828403121561218a57600080fd5b813561219581612137565b9392505050565b600080600080608085870312156121b257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a086880312156121e657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060006060848603121561221e57600080fd5b833561222981612137565b9250602084013561223981612137565b929592945050506040919091013590565b60006020828403121561225c57600080fd5b5035919050565b60008060006060848603121561227857600080fd5b833561228381612137565b9250602084013561229381612137565b915060408401356122a381612137565b809150509250925092565b600080604083850312156122c157600080fd5b82356122cc81612137565b915060208301356122dc81612137565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1157610a1161231c565b60208082526026908201527f5468652073756d206f662070657263656e7461676573206d757374206571756160408201526536101898181760d11b606082015260800190565b81810381811115610a1157610a1161231c565b600181815b808511156123d95781600019048211156123bf576123bf61231c565b808516156123cc57918102915b93841c93908002906123a3565b509250929050565b6000826123f057506001610a11565b816123fd57506000610a11565b8160018114612413576002811461241d57612439565b6001915050610a11565b60ff84111561242e5761242e61231c565b50506001821b610a11565b5060208310610133831016604e8410600b841016171561245c575081810a610a11565b612466838361239e565b806000190482111561247a5761247a61231c565b029392505050565b600061219560ff8416836123e1565b8082028115828204841417610a1157610a1161231c565b6000826124c557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156124dc57600080fd5b5051919050565b6000602082840312156124f557600080fd5b8151801515811461219557600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252d57600080fd5b815161219581612137565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125885784516001600160a01b031683529383019391830191600101612563565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125be57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209c2d5df33d843bb0193dc53259ee7ea2f7105010fe32c441696c6e540c3dec2664736f6c63430008130033

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

0000000000000000000000008030de48e72bef087fa98e8254249cb1a8bd9e03

-----Decoded View---------------
Arg [0] : lpWalletAddress (address): 0x8030De48e72bEf087fa98e8254249cb1A8bD9E03

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008030de48e72bef087fa98e8254249cb1a8bd9e03


Deployed Bytecode Sourcemap

4013:14829:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:96;;;;;;;;;;;;4745:42;4692:96;;;;;-1:-1:-1;;;;;194:32:1;;;176:51;;164:2;149:18;4692:96:0;;;;;;;;8030:83;;;;;;;;;;-1:-1:-1;8100:5:0;;;;;;;;;;;;-1:-1:-1;;;8100:5:0;;;;8030:83;;;;;;;:::i;8946:193::-;;;;;;;;;;-1:-1:-1;8946:193:0;;;;;:::i;:::-;;:::i;:::-;;;1412:14:1;;1405:22;1387:41;;1375:2;1360:18;8946:193:0;1247:187:1;5160:36:0;;;;;;;;;;;;;;;;;;;1585:25:1;;;1573:2;1558:18;5160:36:0;1439:177:1;4247:60:0;;;;;;;;;;-1:-1:-1;4247:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5466:25;;;;;;;;;;;;;;;;5032:52;;;;;;;;;;;;;;;;8307:95;;;;;;;;;;-1:-1:-1;8387:7:0;;8307:95;;11269:437;;;;;;;;;;-1:-1:-1;11269:437:0;;;;;:::i;:::-;;:::i;:::-;;11714:473;;;;;;;;;;-1:-1:-1;11714:473:0;;;;;:::i;:::-;;:::i;4316:80::-;;;;;;;;;;-1:-1:-1;4316:80:0;;;;-1:-1:-1;;;;;4316:80:0;;;5717:28;;;;;;;;;;-1:-1:-1;5717:28:0;;;;-1:-1:-1;;;5717:28:0;;;;;;9147:350;;;;;;;;;;-1:-1:-1;9147:350:0;;;;;:::i;:::-;;:::i;8216:83::-;;;;;;;;;;-1:-1:-1;8216:83:0;;4870:2;3533:36:1;;3521:2;3506:18;8216:83:0;3391:184:1;9505:297:0;;;;;;;;;;-1:-1:-1;9505:297:0;;;;;:::i;:::-;;:::i;12193:167::-;;;;;;;;;;-1:-1:-1;12193:167:0;;;;;:::i;:::-;;:::i;12734:188::-;;;;;;;;;;-1:-1:-1;12734:188:0;;;;;:::i;:::-;;:::i;10523:278::-;;;;;;;;;;-1:-1:-1;10523:278:0;;;;;:::i;:::-;;:::i;5682:28::-;;;;;;;;;;-1:-1:-1;5682:28:0;;;;-1:-1:-1;;;;;5682:28:0;;;5498:30;;;;;;;;;;;;;;;;5318:33;;;;;;;;;;;;;;;;5093:26;;;;;;;;;;;;;;;;14716:260;;;;;;;;;;-1:-1:-1;14716:260:0;;;;;:::i;:::-;;:::i;5535:27::-;;;;;;;;;;;;;;;;4191:49;;;;;;;;;;-1:-1:-1;4191:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5360:32;;;;;;;;;;;;;;;;12540:186;;;;;;;;;;-1:-1:-1;12540:186:0;;;;;:::i;:::-;;:::i;14984:362::-;;;;;;;;;;-1:-1:-1;14984:362:0;;;;;:::i;:::-;;:::i;5633:42::-;;;;;;;;;;-1:-1:-1;5633:42:0;;;;-1:-1:-1;;;;;5633:42:0;;;4595:90;;;;;;;;;;-1:-1:-1;4595:90:0;;;;-1:-1:-1;;;;;4595:90:0;;;5205:35;;;;;;;;;;;;;;;;4795:31;;;;;;;;;;-1:-1:-1;4795:31:0;;;;-1:-1:-1;;;;;4795:31:0;;;5283:28;;;;;;;;;;;;;;;;17650:210;;;;;;;;;;-1:-1:-1;17650:210:0;;;;;:::i;:::-;;:::i;8410:117::-;;;;;;;;;;-1:-1:-1;8410:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8503:16:0;8476:7;8503:16;;;:7;:16;;;;;;;8410:117;2239:94;;;;;;;;;;;;;:::i;17868:177::-;;;;;;;;;;;;;:::i;12930:854::-;;;;;;;;;;-1:-1:-1;12930:854:0;;;;;:::i;:::-;;:::i;4403:92::-;;;;;;;;;;-1:-1:-1;4403:92:0;;;;-1:-1:-1;;;;;4403:92:0;;;11037:220;;;;;;;;;;-1:-1:-1;11037:220:0;;;;;:::i;:::-;;:::i;2016:87::-;;;;;;;;;;-1:-1:-1;2062:7:0;2089:6;-1:-1:-1;;;;;2089:6:0;2016:87;;4502:86;;;;;;;;;;-1:-1:-1;4502:86:0;;;;-1:-1:-1;;;;;4502:86:0;;;5571:53;;;;;;;;;;;;;;;;5399:26;;;;;;;;;;;;;;;;8121:87;;;;;;;;;;-1:-1:-1;8193:7:0;;;;;;;;;;;;-1:-1:-1;;;8193:7:0;;;;8121:87;;5432:27;;;;;;;;;;;;;;;;9810:307;;;;;;;;;;-1:-1:-1;9810:307:0;;;;;:::i;:::-;;:::i;8535:199::-;;;;;;;;;;-1:-1:-1;8535:199:0;;;;;:::i;:::-;;:::i;5126:27::-;;;;;;;;;;;;;;;;5247:29;;;;;;;;;;;;;;;;10809:220;;;;;;;;;;-1:-1:-1;10809:220:0;;;;;:::i;:::-;;:::i;8742:196::-;;;;;;;;;;-1:-1:-1;8742:196:0;;;;;:::i;:::-;-1:-1:-1;;;;;8897:21:0;;;8865:7;8897:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;8742:196;12368:167;;;;;;;;;;-1:-1:-1;12368:167:0;;;;;:::i;:::-;;:::i;2341:192::-;;;;;;;;;;-1:-1:-1;2341:192:0;;;;;:::i;:::-;;:::i;8946:193::-;9048:4;9070:39;719:10;9093:7;9102:6;9070:8;:39::i;:::-;-1:-1:-1;9127:4:0;8946:193;;;;;:::o;11269:437::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;;;;;;;;;11459:6:::1;::::0;11453:2;11435:15:::1;11447:3:::0;11435:9;:15:::1;:::i;:::-;:20;;;;:::i;:::-;:30;11427:81;;;;-1:-1:-1::0;;;11427:81:0::1;;;;;;;:::i;:::-;11519:15;:27:::0;;;11557:9:::1;:15:::0;;;11583:8:::1;:13:::0;;;11607::::1;:23:::0;;;11648:50:::1;::::0;;6187:25:1;;;6243:2;6228:18;;6221:34;;;6271:18;;;6264:34;;;6329:2;6314:18;;6307:34;;;11648:50:0::1;::::0;6174:3:1;6159:19;11648:50:0::1;;;;;;;11269:437:::0;;;;:::o;11714:473::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;11924:6:::1;::::0;11918:2;11900:15:::1;11912:3:::0;11900:9;:15:::1;:::i;:::-;:20;;;;:::i;:::-;:30;11892:81;;;;-1:-1:-1::0;;;11892:81:0::1;;;;;;;:::i;:::-;11984:12;:24:::0;;;12019:6:::1;:12:::0;;;12042:5:::1;:10:::0;;;12063::::1;:20:::0;;;12094:7:::1;:14:::0;;;12126:53:::1;::::0;;6611:25:1;;;6667:2;6652:18;;6645:34;;;6695:18;;;6688:34;;;6753:2;6738:18;;6731:34;;;6796:3;6781:19;;6774:35;;;12126:53:0::1;::::0;6598:3:1;6583:19;12126:53:0::1;;;;;;;11714:473:::0;;;;;:::o;9147:350::-;9279:4;9296:36;9306:6;9314:9;9325:6;9296:9;:36::i;:::-;-1:-1:-1;;;;;9414:19:0;;;;;;:11;:19;;;;;;;;719:10;9414:33;;;;;;;;;9343:124;;9366:6;;9414:42;;9450:6;;9414:42;:::i;:::-;9343:8;:124::i;:::-;-1:-1:-1;9485:4:0;9147:350;;;;;:::o;9505:297::-;719:10;9620:4;9714:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9714:34:0;;;;;;;;;;9620:4;;9642:130;;9692:7;;9714:47;;9751:10;;9714:47;:::i;12193:167::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12264:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;;:33;;-1:-1:-1;;12264:33:0::1;12293:4;12264:33:::0;;::::1;::::0;;;12313:39;;7121:51:1;;;7188:18;;;7181:50;12313:39:0::1;::::0;7094:18:1;12313:39:0::1;;;;;;;;12193:167:::0;:::o;12734:188::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12807:37:0;::::1;12847:5;12807:37:::0;;;:28:::1;:37;::::0;;;;;;;:45;;-1:-1:-1;;12807:45:0::1;::::0;;12868:46;;7121:51:1;;;7188:18;;;7181:50;;;;12868:46:0::1;::::0;7094:18:1;12868:46:0::1;6953:284:1::0;10523:278:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10598:20:0;::::1;10590:70;;;::::0;-1:-1:-1;;;10590:70:0;;7444:2:1;10590:70:0::1;::::0;::::1;7426:21:1::0;7483:2;7463:18;;;7456:30;7522:34;7502:18;;;7495:62;-1:-1:-1;;;7573:18:1;;;7566:35;7618:19;;10590:70:0::1;7242:401:1::0;10590:70:0::1;10695:8;::::0;;-1:-1:-1;;;;;10714:26:0;;::::1;-1:-1:-1::0;;;;;;10714:26:0;::::1;::::0;::::1;::::0;;;10758:35:::1;::::0;;7860:34:1;;;10695:8:0;::::1;7925:2:1::0;7910:18;;7903:43;;;10695:8:0;10758:35:::1;::::0;7795:18:1;10758:35:0::1;;;;;;;10579:222;10523:278:::0;:::o;14716:260::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;14819:14:::1;4870:2:::0;14819::::1;:14;:::i;:::-;14807:26;::::0;:9;:26:::1;:::i;:::-;14791:13;:42:::0;8387:7;;14852:13:::1;;:29;14844:74;;;::::0;-1:-1:-1;;;14844:74:0;;9715:2:1;14844:74:0::1;::::0;::::1;9697:21:1::0;;;9734:18;;;9727:30;9793:34;9773:18;;;9766:62;9845:18;;14844:74:0::1;9513:356:1::0;14844:74:0::1;14934:34;14954:13;;14934:34;;;;1585:25:1::0;;1573:2;1558:18;;1439:177;12540:186:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12613:37:0;::::1;;::::0;;;:28:::1;:37;::::0;;;;;;;;:44;;-1:-1:-1;;12613:44:0::1;12653:4;12613:44:::0;;::::1;::::0;;;12673:45;;7121:51:1;;;7188:18;;;7181:50;12673:45:0::1;::::0;7094:18:1;12673:45:0::1;6953:284:1::0;14984:362:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;15105:6:::1;;15091:10;15081:7;;:20;;;;:::i;:::-;15080:31;;;;:::i;:::-;15064:13;:47:::0;8387:7;;15130:13:::1;;:30;;15122:79;;;::::0;-1:-1:-1;;;15122:79:0;;10298:2:1;15122:79:0::1;::::0;::::1;10280:21:1::0;10337:2;10317:18;;;10310:30;10376:34;10356:18;;;10349:62;-1:-1:-1;;;10427:18:1;;;10420:34;10471:19;;15122:79:0::1;10096:400:1::0;15122:79:0::1;15246:4;15236:7;;:14;;;;:::i;:::-;15220:13;;:30;15212:79;;;::::0;-1:-1:-1;;;15212:79:0;;10703:2:1;15212:79:0::1;::::0;::::1;10685:21:1::0;10742:2;10722:18;;;10715:30;10781:34;10761:18;;;10754:62;-1:-1:-1;;;10832:18:1;;;10825:34;10876:19;;15212:79:0::1;10501:400:1::0;15212:79:0::1;15307:31;15324:13;;15307:31;;;;1585:25:1::0;;1573:2;1558:18;;1439:177;17650:210:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;17789:46:::1;::::0;-1:-1:-1;;;17789:46:0;;17829:4:::1;17789:46;::::0;::::1;176:51:1::0;-1:-1:-1;;;;;17746:30:0;::::1;::::0;::::1;::::0;17777:10:::1;::::0;17848:3:::1;::::0;17838:7;;17746:30;;17789:31:::1;::::0;149:18:1;;17789:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;;:::i;:::-;:62;;;;:::i;:::-;17746:106;::::0;-1:-1:-1;;;;;;17746:106:0::1;::::0;;;;;;-1:-1:-1;;;;;11287:32:1;;;17746:106:0::1;::::0;::::1;11269:51:1::0;11336:18;;;11329:34;11242:18;;17746:106:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17650:210:::0;;:::o;2239:94::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;2304:21:::1;2322:1;2304:9;:21::i;:::-;2239:94::o:0;17868:177::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;17920:12:::1;2089:6:::0;;17937:55:::1;::::0;-1:-1:-1;;;;;2089:6:0;;;;17966:21:::1;::::0;17920:12;17937:55;17920:12;17937:55;17966:21;2089:6;17937:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17919:73;;;18011:7;18003:26;;;::::0;-1:-1:-1;;;18003:26:0;;12068:2:1;18003:26:0::1;::::0;::::1;12050:21:1::0;12107:1;12087:18;;;12080:29;-1:-1:-1;;;12125:18:1;;;12118:36;12171:18;;18003:26:0::1;11866:329:1::0;18003:26:0::1;17908:137;17868:177::o:0;12930:854::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13069:23:0;::::1;::::0;;::::1;::::0;:44:::1;;-1:-1:-1::0;;;;;;13096:17:0;::::1;::::0;::::1;13069:44;:69;;;;-1:-1:-1::0;;;;;;13117:21:0;::::1;::::0;::::1;13069:69;13061:107;;;::::0;-1:-1:-1;;;13061:107:0;;12402:2:1;13061:107:0::1;::::0;::::1;12384:21:1::0;12441:2;12421:18;;;12414:30;12480:27;12460:18;;;12453:55;12525:18;;13061:107:0::1;12200:349:1::0;13061:107:0::1;13187:26;::::0;-1:-1:-1;;;;;13187:23:0;::::1;::::0;:26:::1;::::0;13211:1:::1;::::0;;13187:26;13211:1;13187:26;13211:1;13187:23;:26;::::1;;;;;;:50;;;;-1:-1:-1::0;13217:20:0::1;::::0;-1:-1:-1;;;;;13217:17:0;::::1;::::0;:20:::1;::::0;13235:1:::1;::::0;;13217:20;13235:1;13217:20;13235:1;13217:17;:20;::::1;;;;;;13187:50;:78;;;;-1:-1:-1::0;13241:24:0::1;::::0;-1:-1:-1;;;;;13241:21:0;::::1;::::0;:24:::1;::::0;13263:1:::1;::::0;;13241:24;13263:1;13241:24;13263:1;13241:21;:24;::::1;;;;;;13187:78;13179:121;;;::::0;-1:-1:-1;;;13179:121:0;;12756:2:1;13179:121:0::1;::::0;::::1;12738:21:1::0;12795:2;12775:18;;;12768:30;12834:32;12814:18;;;12807:60;12884:18;;13179:121:0::1;12554:354:1::0;13179:121:0::1;13331:15;::::0;;-1:-1:-1;;;;;13331:15:0;;::::1;13350:5;13313:34:::0;;;:17:::1;:34;::::0;;;;;;;:42;;-1:-1:-1;;13313:42:0;;::::1;::::0;;;13384:9:::1;::::0;;;::::1;13366:28:::0;;;;;:36;;;::::1;::::0;;13431:13:::1;::::0;;;::::1;13413:32:::0;;;;;:40;;;::::1;::::0;;13466:36;;;;::::1;-1:-1:-1::0;;;;;;13466:36:0;;::::1;::::0;::::1;::::0;;;13513:24;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;13548:32;;;;::::1;::::0;::::1;::::0;::::1;::::0;;13593:28;;;;;;:35;;;::::1;-1:-1:-1::0;13593:35:0;;::::1;::::0;;;13639:22;;;;;;:29;;;::::1;::::0;::::1;::::0;;13679:26;;;;;;;:33;;;;::::1;::::0;;::::1;::::0;;13730:46;;13153:34:1;;;13203:18;;;13196:43;;;;13255:18;;13248:43;13730:46:0::1;::::0;13103:2:1;13088:18;13730:46:0::1;;;;;;;12930:854:::0;;;:::o;11037:220::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;11131:17:::1;;11123:4;:25;;11115:73;;;::::0;-1:-1:-1;;;11115:73:0;;13504:2:1;11115:73:0::1;::::0;::::1;13486:21:1::0;13543:2;13523:18;;;13516:30;13582:34;13562:18;;;13555:62;-1:-1:-1;;;13633:18:1;;;13626:33;13676:19;;11115:73:0::1;13302:399:1::0;11115:73:0::1;11199:7;:14:::0;;;11229:20:::1;::::0;1585:25:1;;;11229:20:0::1;::::0;1573:2:1;1558:18;11229:20:0::1;1439:177:1::0;9810:307:0;719:10;9930:4;10024:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10024:34:0;;;;;;;;;;9930:4;;9952:135;;10002:7;;10024:52;;10061:15;;10024:52;:::i;8535:199::-;8640:4;8662:42;719:10;8686:9;8697:6;8662:9;:42::i;10809:220::-;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;10900:17:::1;;10893:3;:24;;10885:71;;;::::0;-1:-1:-1;;;10885:71:0;;13908:2:1;10885:71:0::1;::::0;::::1;13890:21:1::0;13947:2;13927:18;;;13920:30;13986:34;13966:18;;;13959:62;-1:-1:-1;;;14037:18:1;;;14030:32;14079:19;;10885:71:0::1;13706:398:1::0;10885:71:0::1;10975:6;:12:::0;;;11003:18:::1;::::0;1585:25:1;;;11003:18:0::1;::::0;1573:2:1;1558:18;11003::0::1;1439:177:1::0;12368:167:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12437:26:0;::::1;12466:5;12437:26:::0;;;:17:::1;:26;::::0;;;;;;;:34;;-1:-1:-1;;12437:34:0::1;::::0;;12487:40;;7121:51:1;;;7188:18;;;7181:50;;;;12487:40:0::1;::::0;7094:18:1;12487:40:0::1;6953:284:1::0;2341:192:0;2062:7;2089:6;-1:-1:-1;;;;;2089:6:0;719:10;2151:23;2143:68;;;;-1:-1:-1;;;2143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2430:22:0;::::1;2422:73;;;::::0;-1:-1:-1;;;2422:73:0;;14311:2:1;2422:73:0::1;::::0;::::1;14293:21:1::0;14350:2;14330:18;;;14323:30;14389:34;14369:18;;;14362:62;-1:-1:-1;;;14440:18:1;;;14433:36;14486:19;;2422:73:0::1;14109:402:1::0;2422:73:0::1;2506:19;2516:8;2506:9;:19::i;10162:353::-:0;-1:-1:-1;;;;;10309:22:0;;;;;;:50;;-1:-1:-1;;;;;;10335:24:0;;;;10309:50;10287:113;;;;-1:-1:-1;;;10287:113:0;;14718:2:1;10287:113:0;;;14700:21:1;14757:2;14737:18;;;14730:30;-1:-1:-1;;;14776:18:1;;;14769:43;14829:18;;10287:113:0;14516:337:1;10287:113:0;-1:-1:-1;;;;;10411:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;10469:38;;1585:25:1;;;10469:38:0;;1558:18:1;10469:38:0;;;;;;;10162:353;;;:::o;13792:795::-;-1:-1:-1;;;;;13911:32:0;;;;;;:28;:32;;;;;;;;13906:233;;-1:-1:-1;;;;;8503:16:0;;13960:18;8503:16;;;:7;:16;;;;;;14060:13;;14036:19;14049:6;8503:16;14036:19;:::i;:::-;14035:38;;14009:118;;;;-1:-1:-1;;;14009:118:0;;15060:2:1;14009:118:0;;;15042:21:1;15099:2;15079:18;;;15072:30;-1:-1:-1;;;15118:18:1;;;15111:48;15176:18;;14009:118:0;14858:342:1;14009:118:0;13945:194;13906:233;-1:-1:-1;;;;;14173:18:0;;;;;;:38;;-1:-1:-1;;;;;;14195:16:0;;;;14173:38;14151:104;;;;-1:-1:-1;;;14151:104:0;;15407:2:1;14151:104:0;;;15389:21:1;15446:2;15426:18;;;15419:30;-1:-1:-1;;;15465:18:1;;;15458:46;15521:18;;14151:104:0;15205:340:1;14151:104:0;14285:1;14276:6;:10;14268:60;;;;-1:-1:-1;;;14268:60:0;;15752:2:1;14268:60:0;;;15734:21:1;15791:2;15771:18;;;15764:30;15830:34;15810:18;;;15803:62;-1:-1:-1;;;15881:18:1;;;15874:35;15926:19;;14268:60:0;15550:401:1;14268:60:0;14387:13;;14377:4;8476:7;8503:16;;;:7;:16;;;;;;14359:41;;:75;;;;-1:-1:-1;14418:16:0;;-1:-1:-1;;;14418:16:0;;;;14417:17;14359:75;:113;;;;-1:-1:-1;14459:13:0;;-1:-1:-1;;;;;14451:21:0;;;14459:13;;14451:21;;14359:113;14341:194;;;14499:24;:22;:24::i;:::-;14547:32;14562:4;14568:2;14572:6;14547:14;:32::i;2541:173::-;2597:16;2616:6;;-1:-1:-1;;;;;2633:17:0;;;-1:-1:-1;;;;;;2633:17:0;;;;;;2666:40;;2616:6;;;;;;;2666:40;;2597:16;2666:40;2586:128;2541:173;:::o;15354:1433::-;6606:16;:23;;-1:-1:-1;;;;6606:23:0;-1:-1:-1;;;6606:23:0;;;15468:4:::1;-1:-1:-1::0;8503:16:0;;;-1:-1:-1;8503:16:0;;;;;;15419:55:::1;;15485:28;15556:6;;15540:12;;15517:20;:35;;;;:::i;:::-;15516:46;;;;:::i;:::-;15485:77;;15573:22;15632:6;;15622;;15599:20;:29;;;;:::i;:::-;15598:40;;;;:::i;:::-;15573:65;;15649:26;15716:6;;15702:10;;15679:20;:33;;;;:::i;:::-;15678:44;;;;:::i;:::-;15649:73;;15733:23;15794:6;;15783:7;;15760:20;:30;;;;:::i;:::-;15759:41;;;;:::i;:::-;15733:67;;15811:25;15877:6;;15873:1;:10;;;;:::i;:::-;15863:5;::::0;15840:28:::1;::::0;:20;:28:::1;:::i;:::-;15839:45;;;;:::i;:::-;15811:73:::0;-1:-1:-1;15905:96:0::1;15982:18:::0;15965:14;15922:40:::1;15942:20:::0;15811:73;15922:40:::1;:::i;:::-;:57;;;;:::i;:::-;:78;;;;:::i;:::-;15905:16;:96::i;:::-;16125:6;::::0;16106:15:::1;::::0;16034:21:::1;::::0;16012:19:::1;::::0;16092:29:::1;::::0;16034:21;16092:29:::1;:::i;:::-;16091:40;;;;:::i;:::-;16066:65;;16142:16;16189:6;;16176:9;;16162:11;:23;;;;:::i;:::-;16161:34;;;;:::i;:::-;16142:53;;16206:20;16261:6;;16244:13;;16230:11;:27;;;;:::i;:::-;16229:38;;;;:::i;:::-;16206:61:::0;-1:-1:-1;16280:89:0::1;16293:17:::0;16206:61;16344:8;16313:28:::1;16327:14:::0;16313:11;:28:::1;:::i;:::-;:39;;;;:::i;:::-;:54;;;;:::i;:::-;16280:12;:89::i;:::-;16385:160;16414:17:::0;16489:12;16478:8;16447:28:::1;16461:14:::0;16447:11;:28:::1;:::i;:::-;:39;;;;:::i;:::-;:54;;;;:::i;:::-;16385:160;::::0;;16158:25:1;;;16214:2;16199:18;;16192:34;;;;16242:18;;16235:34;;;16146:2;16131:18;16385:160:0::1;;;;;;;16558:53;16576:4;4745:42;16595:15;16558:9;:53::i;:::-;16636:13;::::0;16622:42:::1;::::0;-1:-1:-1;;;;;16636:13:0::1;16651:12:::0;16622:13:::1;:42::i;:::-;16689:15;::::0;16675:46:::1;::::0;-1:-1:-1;;;;;16689:15:0::1;16706:14:::0;16675:13:::1;:46::i;:::-;16746:9;::::0;16732:47:::1;::::0;-1:-1:-1;;;;;16746:9:0::1;16757:21;16732:13;:47::i;:::-;-1:-1:-1::0;;6652:16:0;:24;;-1:-1:-1;;;;6652:24:0;;;-1:-1:-1;;;;;;;;15354:1433:0:o;18053:786::-;18195:13;;-1:-1:-1;;;;;18195:13:0;;;18187:21;;;;;;18235:19;;;18173:10;18187:21;;18285:15;;;18294:6;18285:15;18266:34;;18311:12;18326:11;:66;;;;-1:-1:-1;;;;;;18343:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;18370:21:0;;;;;;:17;:21;;;;;;;;18343:48;18341:51;18326:66;18311:81;;18405:11;18420:7;18419:8;:141;;18460:5;:100;;18554:6;;18543:7;;18533:17;;:7;:17;:::i;:::-;18532:28;;;;:::i;:::-;18419:141;;18460:100;18506:6;;18496;;18486:16;;:7;:16;:::i;18419:141::-;18443:1;18419:141;18405:155;-1:-1:-1;18571:23:0;18597:13;18405:155;18597:7;:13;:::i;:::-;-1:-1:-1;;;;;18639:13:0;;;;;;:7;:13;;;;;;18571:39;;-1:-1:-1;18639:23:0;;18655:7;;18639:23;:::i;:::-;-1:-1:-1;;;;;18623:13:0;;;;;;;:7;:13;;;;;;:39;;;;18687:11;;;;;;;:29;;18701:15;;18687:29;:::i;:::-;-1:-1:-1;;;;;18673:11:0;;;;;;:7;:11;;;;;;:43;;;;18768:4;18752:22;;;;:28;;18777:3;;18752:28;:::i;:::-;18743:4;18727:22;;;;:7;:22;;;;;;;;;:53;;;;18796:35;1585:25:1;;;-1:-1:-1;;;;;18796:35:0;;;;;;;;;;1558:18:1;18796:35:0;;;;;;;18162:677;;;;;;18053:786;;;:::o;16795:474::-;16885:16;;;16899:1;16885:16;;;;;;;;16861:21;;16885:16;;;;;;;;;;-1:-1:-1;16885:16:0;16861:40;;16930:4;16912;16917:1;16912:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16912:23:0;;;:7;;;;;;;;;;:23;;;;16956:16;;:23;;;-1:-1:-1;;;16956:23:0;;;;:16;;;;;:21;;:23;;;;;16912:7;;16956:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16946:4;16951:1;16946:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16946:33:0;;;:7;;;;;;;;;:33;17022:16;;16990:63;;17007:4;;17022:16;17041:11;16990:8;:63::i;:::-;17064:16;;:197;;-1:-1:-1;;;17064:197:0;;-1:-1:-1;;;;;17064:16:0;;;;:67;;:197;;17146:11;;17064:16;;17188:4;;17215;;17235:15;;17064:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16850:419;16795:474;:::o;17277:365::-;17390:16;;17358:63;;17375:4;;-1:-1:-1;;;;;17390:16:0;17409:11;17358:8;:63::i;:::-;17432:16;;:202;;-1:-1:-1;;;17432:202:0;;17505:4;17432:202;;;18134:34:1;18184:18;;;18177:34;;;17432:16:0;18227:18:1;;;18220:34;;;18270:18;;;18263:34;4745:42:0;18313:19:1;;;18306:44;17608:15:0;18366:19:1;;;18359:35;-1:-1:-1;;;;;17432:16:0;;;;:32;;17472:9;;18068:19:1;;17432:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17277:365;;:::o;14595:113::-;14677:23;;-1:-1:-1;;;;;14677:15:0;;;:23;;;;;14693:6;;14677:23;;;;14693:6;14677:15;:23;;;;;;;;;;;;;;;;;;;238:548:1;350:4;379:2;408;397:9;390:21;440:6;434:13;483:6;478:2;467:9;463:18;456:34;508:1;518:140;532:6;529:1;526:13;518:140;;;627:14;;;623:23;;617:30;593:17;;;612:2;589:26;582:66;547:10;;518:140;;;522:3;707:1;702:2;693:6;682:9;678:22;674:31;667:42;777:2;770;766:7;761:2;753:6;749:15;745:29;734:9;730:45;726:54;718:62;;;;238:548;;;;:::o;791:131::-;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;927:315;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1111:9;1098:23;1130:31;1155:5;1130:31;:::i;:::-;1180:5;1232:2;1217:18;;;;1204:32;;-1:-1:-1;;;927:315:1:o;1621:247::-;1680:6;1733:2;1721:9;1712:7;1708:23;1704:32;1701:52;;;1749:1;1746;1739:12;1701:52;1788:9;1775:23;1807:31;1832:5;1807:31;:::i;:::-;1857:5;1621:247;-1:-1:-1;;;1621:247:1:o;1873:385::-;1959:6;1967;1975;1983;2036:3;2024:9;2015:7;2011:23;2007:33;2004:53;;;2053:1;2050;2043:12;2004:53;-1:-1:-1;;2076:23:1;;;2146:2;2131:18;;2118:32;;-1:-1:-1;2197:2:1;2182:18;;2169:32;;2248:2;2233:18;2220:32;;-1:-1:-1;1873:385:1;-1:-1:-1;1873:385:1:o;2263:454::-;2358:6;2366;2374;2382;2390;2443:3;2431:9;2422:7;2418:23;2414:33;2411:53;;;2460:1;2457;2450:12;2411:53;-1:-1:-1;;2483:23:1;;;2553:2;2538:18;;2525:32;;-1:-1:-1;2604:2:1;2589:18;;2576:32;;2655:2;2640:18;;2627:32;;-1:-1:-1;2706:3:1;2691:19;2678:33;;-1:-1:-1;2263:454:1;-1:-1:-1;2263:454:1:o;2930:456::-;3007:6;3015;3023;3076:2;3064:9;3055:7;3051:23;3047:32;3044:52;;;3092:1;3089;3082:12;3044:52;3131:9;3118:23;3150:31;3175:5;3150:31;:::i;:::-;3200:5;-1:-1:-1;3257:2:1;3242:18;;3229:32;3270:33;3229:32;3270:33;:::i;:::-;2930:456;;3322:7;;-1:-1:-1;;;3376:2:1;3361:18;;;;3348:32;;2930:456::o;3580:180::-;3639:6;3692:2;3680:9;3671:7;3667:23;3663:32;3660:52;;;3708:1;3705;3698:12;3660:52;-1:-1:-1;3731:23:1;;3580:180;-1:-1:-1;3580:180:1:o;3999:529::-;4076:6;4084;4092;4145:2;4133:9;4124:7;4120:23;4116:32;4113:52;;;4161:1;4158;4151:12;4113:52;4200:9;4187:23;4219:31;4244:5;4219:31;:::i;:::-;4269:5;-1:-1:-1;4326:2:1;4311:18;;4298:32;4339:33;4298:32;4339:33;:::i;:::-;4391:7;-1:-1:-1;4450:2:1;4435:18;;4422:32;4463:33;4422:32;4463:33;:::i;:::-;4515:7;4505:17;;;3999:529;;;;;:::o;4533:388::-;4601:6;4609;4662:2;4650:9;4641:7;4637:23;4633:32;4630:52;;;4678:1;4675;4668:12;4630:52;4717:9;4704:23;4736:31;4761:5;4736:31;:::i;:::-;4786:5;-1:-1:-1;4843:2:1;4828:18;;4815:32;4856:33;4815:32;4856:33;:::i;:::-;4908:7;4898:17;;;4533:388;;;;;:::o;4926:356::-;5128:2;5110:21;;;5147:18;;;5140:30;5206:34;5201:2;5186:18;;5179:62;5273:2;5258:18;;4926:356::o;5287:127::-;5348:10;5343:3;5339:20;5336:1;5329:31;5379:4;5376:1;5369:15;5403:4;5400:1;5393:15;5419:125;5484:9;;;5505:10;;;5502:36;;;5518:18;;:::i;5549:402::-;5751:2;5733:21;;;5790:2;5770:18;;;5763:30;5829:34;5824:2;5809:18;;5802:62;-1:-1:-1;;;5895:2:1;5880:18;;5873:36;5941:3;5926:19;;5549:402::o;6820:128::-;6887:9;;;6908:11;;;6905:37;;;6922:18;;:::i;7957:422::-;8046:1;8089:5;8046:1;8103:270;8124:7;8114:8;8111:21;8103:270;;;8183:4;8179:1;8175:6;8171:17;8165:4;8162:27;8159:53;;;8192:18;;:::i;:::-;8242:7;8232:8;8228:22;8225:55;;;8262:16;;;;8225:55;8341:22;;;;8301:15;;;;8103:270;;;8107:3;7957:422;;;;;:::o;8384:806::-;8433:5;8463:8;8453:80;;-1:-1:-1;8504:1:1;8518:5;;8453:80;8552:4;8542:76;;-1:-1:-1;8589:1:1;8603:5;;8542:76;8634:4;8652:1;8647:59;;;;8720:1;8715:130;;;;8627:218;;8647:59;8677:1;8668:10;;8691:5;;;8715:130;8752:3;8742:8;8739:17;8736:43;;;8759:18;;:::i;:::-;-1:-1:-1;;8815:1:1;8801:16;;8830:5;;8627:218;;8929:2;8919:8;8916:16;8910:3;8904:4;8901:13;8897:36;8891:2;8881:8;8878:16;8873:2;8867:4;8864:12;8860:35;8857:77;8854:159;;;-1:-1:-1;8966:19:1;;;8998:5;;8854:159;9045:34;9070:8;9064:4;9045:34;:::i;:::-;9115:6;9111:1;9107:6;9103:19;9094:7;9091:32;9088:58;;;9126:18;;:::i;:::-;9164:20;;8384:806;-1:-1:-1;;;8384:806:1:o;9195:140::-;9253:5;9282:47;9323:4;9313:8;9309:19;9303:4;9282:47;:::i;9340:168::-;9413:9;;;9444;;9461:15;;;9455:22;;9441:37;9431:71;;9482:18;;:::i;9874:217::-;9914:1;9940;9930:132;;9984:10;9979:3;9975:20;9972:1;9965:31;10019:4;10016:1;10009:15;10047:4;10044:1;10037:15;9930:132;-1:-1:-1;10076:9:1;;9874:217::o;10906:184::-;10976:6;11029:2;11017:9;11008:7;11004:23;11000:32;10997:52;;;11045:1;11042;11035:12;10997:52;-1:-1:-1;11068:16:1;;10906:184;-1:-1:-1;10906:184:1:o;11374:277::-;11441:6;11494:2;11482:9;11473:7;11469:23;11465:32;11462:52;;;11510:1;11507;11500:12;11462:52;11542:9;11536:16;11595:5;11588:13;11581:21;11574:5;11571:32;11561:60;;11617:1;11614;11607:12;16412:127;16473:10;16468:3;16464:20;16461:1;16454:31;16504:4;16501:1;16494:15;16528:4;16525:1;16518:15;16544:251;16614:6;16667:2;16655:9;16646:7;16642:23;16638:32;16635:52;;;16683:1;16680;16673:12;16635:52;16715:9;16709:16;16734:31;16759:5;16734:31;:::i;16800:980::-;17062:4;17110:3;17099:9;17095:19;17141:6;17130:9;17123:25;17167:2;17205:6;17200:2;17189:9;17185:18;17178:34;17248:3;17243:2;17232:9;17228:18;17221:31;17272:6;17307;17301:13;17338:6;17330;17323:22;17376:3;17365:9;17361:19;17354:26;;17415:2;17407:6;17403:15;17389:29;;17436:1;17446:195;17460:6;17457:1;17454:13;17446:195;;;17525:13;;-1:-1:-1;;;;;17521:39:1;17509:52;;17616:15;;;;17581:12;;;;17557:1;17475:9;17446:195;;;-1:-1:-1;;;;;;;17697:32:1;;;;17692:2;17677:18;;17670:60;-1:-1:-1;;;17761:3:1;17746:19;17739:35;17658:3;16800:980;-1:-1:-1;;;16800:980:1:o;18405:306::-;18493:6;18501;18509;18562:2;18550:9;18541:7;18537:23;18533:32;18530:52;;;18578:1;18575;18568:12;18530:52;18607:9;18601:16;18591:26;;18657:2;18646:9;18642:18;18636:25;18626:35;;18701:2;18690:9;18686:18;18680:25;18670:35;;18405:306;;;;;:::o

Swarm Source

ipfs://9c2d5df33d843bb0193dc53259ee7ea2f7105010fe32c441696c6e540c3dec26

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.