ETH Price: $3,371.71 (+3.06%)

Contract

0x642Ac912A58428767FA14a26A749f9A1b001bA92
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve216561972025-01-19 4:38:3516 hrs ago1737261515IN
0x642Ac912...1b001bA92
0 ETH0.000285611.75465676
Approve216452462025-01-17 15:56:352 days ago1737129395IN
0x642Ac912...1b001bA92
0 ETH0.0004597118.96729292
Approve216155232025-01-13 12:20:596 days ago1736770859IN
0x642Ac912...1b001bA92
0 ETH0.0009572420.55007467
Approve216076802025-01-12 10:01:597 days ago1736676119IN
0x642Ac912...1b001bA92
0 ETH0.000176663.79763337
Approve216010992025-01-11 11:59:598 days ago1736596799IN
0x642Ac912...1b001bA92
0 ETH0.000205924.42658193
Approve215797022025-01-08 12:17:2311 days ago1736338643IN
0x642Ac912...1b001bA92
0 ETH0.000309226.64700654
Approve215770662025-01-08 3:27:5911 days ago1736306879IN
0x642Ac912...1b001bA92
0 ETH0.000253575.48616153
Approve215587362025-01-05 14:00:3514 days ago1736085635IN
0x642Ac912...1b001bA92
0 ETH0.000415898.92849773
Approve215198032024-12-31 3:34:5919 days ago1735616099IN
0x642Ac912...1b001bA92
0 ETH0.000188834.05913716
Approve215096762024-12-29 17:39:2321 days ago1735493963IN
0x642Ac912...1b001bA92
0 ETH0.000230144.9407452
Approve214976862024-12-28 1:30:2322 days ago1735349423IN
0x642Ac912...1b001bA92
0 ETH0.000223824.80511604
Approve214943162024-12-27 14:12:5923 days ago1735308779IN
0x642Ac912...1b001bA92
0 ETH0.000176727.27358899
Approve214876232024-12-26 15:45:5924 days ago1735227959IN
0x642Ac912...1b001bA92
0 ETH0.000363277.80485724
Approve214851842024-12-26 7:36:1124 days ago1735198571IN
0x642Ac912...1b001bA92
0 ETH0.000292446.27812405
Approve214791512024-12-25 11:20:2325 days ago1735125623IN
0x642Ac912...1b001bA92
0 ETH0.000215554.62758197
Approve214334752024-12-19 2:05:4731 days ago1734573947IN
0x642Ac912...1b001bA92
0 ETH0.000600422.73846138
Approve214334742024-12-19 2:05:3531 days ago1734573935IN
0x642Ac912...1b001bA92
0 ETH0.0009490520.49579885
Approve214308452024-12-18 17:16:1132 days ago1734542171IN
0x642Ac912...1b001bA92
0 ETH0.0006198225.5104652
Approve214276152024-12-18 6:25:2332 days ago1734503123IN
0x642Ac912...1b001bA92
0 ETH0.0002663310.96183866
Transfer214001512024-12-14 10:26:5936 days ago1734172019IN
0x642Ac912...1b001bA92
0 ETH0.000761638.56905191
Approve213858462024-12-12 10:31:4738 days ago1733999507IN
0x642Ac912...1b001bA92
0 ETH0.0003537514.55946206
Approve213858392024-12-12 10:30:2338 days ago1733999423IN
0x642Ac912...1b001bA92
0 ETH0.0006629614.23259454
Transfer213858292024-12-12 10:28:2338 days ago1733999303IN
0x642Ac912...1b001bA92
0 ETH0.0013772315.4950696
Approve213836072024-12-12 3:02:1138 days ago1733972531IN
0x642Ac912...1b001bA92
0 ETH0.0008446718.24154743
Approve213808542024-12-11 17:48:2339 days ago1733939303IN
0x642Ac912...1b001bA92
0 ETH0.0006124125.20532212
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
211954252024-11-15 20:17:4765 days ago1731701867
0x642Ac912...1b001bA92
0.30204293 ETH
211954252024-11-15 20:17:4765 days ago1731701867
0x642Ac912...1b001bA92
0.30204293 ETH
208572072024-09-29 15:31:11112 days ago1727623871
0x642Ac912...1b001bA92
0.19096944 ETH
208572072024-09-29 15:31:11112 days ago1727623871
0x642Ac912...1b001bA92
0.19096944 ETH
194088672024-03-11 2:27:35314 days ago1710124055
0x642Ac912...1b001bA92
0.29285553 ETH
194088672024-03-11 2:27:35314 days ago1710124055
0x642Ac912...1b001bA92
0.29285553 ETH
190803912024-01-25 1:34:11360 days ago1706146451
0x642Ac912...1b001bA92
0.57042764 ETH
190803912024-01-25 1:34:11360 days ago1706146451
0x642Ac912...1b001bA92
0.57042764 ETH
190160332024-01-16 1:02:23369 days ago1705366943
0x642Ac912...1b001bA92
1.11452634 ETH
190160332024-01-16 1:02:23369 days ago1705366943
0x642Ac912...1b001bA92
1.11452634 ETH
190019152024-01-14 1:42:35371 days ago1705196555
0x642Ac912...1b001bA92
2.026013 ETH
190019152024-01-14 1:42:35371 days ago1705196555
0x642Ac912...1b001bA92
1.878813 ETH
189987512024-01-13 15:05:47372 days ago1705158347
0x642Ac912...1b001bA92
0.80231018 ETH
189987512024-01-13 15:05:47372 days ago1705158347
0x642Ac912...1b001bA92
0.80231018 ETH
186772822023-11-29 12:30:35417 days ago1701261035
0x642Ac912...1b001bA92
0.72946074 ETH
186772822023-11-29 12:30:35417 days ago1701261035
0x642Ac912...1b001bA92
0.72946074 ETH
185814562023-11-16 2:27:23430 days ago1700101643
0x642Ac912...1b001bA92
0.7652045 ETH
185814562023-11-16 2:27:23430 days ago1700101643
0x642Ac912...1b001bA92
0.7652045 ETH
185179442023-11-07 5:18:11439 days ago1699334291
0x642Ac912...1b001bA92
2.61404719 ETH
185179442023-11-07 5:18:11439 days ago1699334291
0x642Ac912...1b001bA92
2.61404719 ETH
184684932023-10-31 7:02:11446 days ago1698735731
0x642Ac912...1b001bA92
2.37625958 ETH
184684932023-10-31 7:02:11446 days ago1698735731
0x642Ac912...1b001bA92
2.37625958 ETH
184401892023-10-27 7:55:35450 days ago1698393335
0x642Ac912...1b001bA92
3.76910918 ETH
184401892023-10-27 7:55:35450 days ago1698393335
0x642Ac912...1b001bA92
3.76910918 ETH
184070982023-10-22 16:43:23455 days ago1697993003
0x642Ac912...1b001bA92
1.75294654 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
XXCOIN

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-25
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-26
*/

/**

WHO CONTROLS THE MEMES, CONTROLS THE UNIVERSE

https://x.com/xx_xiuxian

https://www.xxcoin.me

42 The answer to Life, the universe and Everything


*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function 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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract XXCOIN is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'XXCOIN';
    string private constant _symbol = 'XX';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 42069000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 1000;
    uint256 private burnFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 7000;
    uint256 private transferFee = 7000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xDa7de5F98eAF22538562Ef9f430292aBC78C6Edf; 
    address internal marketing_receiver = 0xDa7de5F98eAF22538562Ef9f430292aBC78C6Edf;
    address internal liquidity_receiver = 0xDa7de5F98eAF22538562Ef9f430292aBC78C6Edf;
    uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 300 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setisBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

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

    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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004d5565b6200002490652642f3cd1200620004ed565b60018181556007805461ffff60a01b1916600160a81b179055600a55620186a09062000053906103e8620004ed565b6200005f919062000507565b600b55620186a0600154600a620000779190620004ed565b62000083919062000507565b600c556000600d819055600e8190556103e8600f55601055610bb8601155611b58601281905560135561271060148190556015805473da7de5f98eaf22538562ef9f430292abc78c6edf6001600160a01b0319918216811790925560168054821683179055601780549091169091179055600154620001049060c8620004ed565b62000110919062000507565b60185561271060015461012c620001289190620004ed565b62000134919062000507565b60195561271060015461012c6200014c9190620004ed565b62000158919062000507565b601a553480156200016857600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f691906200052a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026a91906200052a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de91906200052a565b600680546001600160a01b038581166001600160a01b031992831617909255600780548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560175486168552828520805482168317905560165486168552828520805482168317905560155490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000555565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000417578160001904821115620003fb57620003fb620003c0565b808516156200040957918102915b93841c9390800290620003db565b509250929050565b6000826200043057506001620004cf565b816200043f57506000620004cf565b8160018114620004585760028114620004635762000483565b6001915050620004cf565b60ff841115620004775762000477620003c0565b50506001821b620004cf565b5060208310610133831016604e8410600b8410161715620004a8575081810a620004cf565b620004b48383620003d6565b8060001904821115620004cb57620004cb620003c0565b0290505b92915050565b6000620004e660ff8416836200041f565b9392505050565b8082028115828204841417620004cf57620004cf620003c0565b6000826200052557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053d57600080fd5b81516001600160a01b0381168114620004e657600080fd5b611e4f80620005656000396000f3fe6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a1578063cb7f97d7146104c1578063dd62ed3e146104e1578063f2fde38b1461052757600080fd5b80639cc35351146104415780639d8740cb14610461578063a8aa1b311461048157600080fd5b80637cca52fe146103785780637d1db4a51461038e578063893d20e8146103a45780638cd4426d146103d65780639213c358146103f657806395d89b411461041657600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f757806351bc3c851461031757806370a082311461032c57806378109e541461036257600080fd5b80632f54bf6e1461027c578063313ce567146102ab5780633f4218e0146102c757600080fd5b806306fdde0314610191578063095ea7b3146101d257806318160ddd14610202578063229b6a5e1461022557806323b872dd14610247578063293230b81461026757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506040805180820190915260068152652c2c21a7a4a760d11b60208201525b6040516101c99190611998565b60405180910390f35b3480156101de57600080fd5b506101f26101ed3660046119fe565b610547565b60405190151581526020016101c9565b34801561020e57600080fd5b5061021761055e565b6040519081526020016101c9565b34801561023157600080fd5b50610245610240366004611a38565b6105cf565b005b34801561025357600080fd5b506101f2610262366004611abe565b610679565b34801561027357600080fd5b506102456106e3565b34801561028857600080fd5b506101f2610297366004611aff565b6000546001600160a01b0391821691161490565b3480156102b757600080fd5b50604051600981526020016101c9565b3480156102d357600080fd5b506101f26102e2366004611aff565b60046020526000908152604090205460ff1681565b34801561030357600080fd5b50610245610312366004611b1c565b610722565b34801561032357600080fd5b50610245610777565b34801561033857600080fd5b50610217610347366004611aff565b6001600160a01b031660009081526002602052604090205490565b34801561036e57600080fd5b50610217601a5481565b34801561038457600080fd5b5061021760195481565b34801561039a57600080fd5b5061021760185481565b3480156103b057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c9565b3480156103e257600080fd5b506102456103f13660046119fe565b6107ae565b34801561040257600080fd5b50610245610411366004611b55565b6108d5565b34801561042257600080fd5b506040805180820190915260028152610b0b60f31b60208201526101bc565b34801561044d57600080fd5b5061024561045c366004611b95565b61097b565b34801561046d57600080fd5b5061024561047c366004611b95565b610ab0565b34801561048d57600080fd5b506007546103be906001600160a01b031681565b3480156104ad57600080fd5b506101f26104bc3660046119fe565b610b16565b3480156104cd57600080fd5b506102456104dc366004611bc1565b610b23565b3480156104ed57600080fd5b506102176104fc366004611c0d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053357600080fd5b50610245610542366004611aff565b610c1a565b6000610554338484610c98565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105ca9290916105c49190610dbc565b90610dbc565b905090565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611c3b565b60405180910390fd5b60005b8281101561067357816005600086868581811061062457610624611c5b565b90506020020160208101906106399190611aff565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061066b81611c87565b915050610605565b50505050565b6000610686848484610dc8565b6106d884336106d385604051806060016040528060288152602001611df2602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611315565b610c98565b5060015b9392505050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016105f990611c3b565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016105f990611c3b565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016105f990611c3b565b6107ac600b54611341565b565b6000546001600160a01b031633146107d85760405162461bcd60e51b81526004016105f990611c3b565b6040516370a0823160e01b815230600482015260009061085c906064906108569085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190611ca0565b906114be565b906114ca565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106739190611cb9565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526004016105f990611c3b565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109a55760405162461bcd60e51b81526004016105f990611c3b565b60006109c2612710610856866001546114be90919063ffffffff16565b905060006109e1612710610856866001546114be90919063ffffffff16565b90506000610a00612710610856866001546114be90919063ffffffff16565b60188490556019839055601a81905590506000610a266103e8610856600561085061055e565b9050808410158015610a385750808310155b8015610a445750808210155b610aa75760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105f9565b50505050505050565b6000546001600160a01b03163314610ada5760405162461bcd60e51b81526004016105f990611c3b565b600a839055600154610af590620186a09061085690856114be565b600b55600154610b0e90620186a09061085690846114be565b600c55505050565b6000610554338484610dc8565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016105f990611c3b565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b7e9060016114ca565b60115411158015610b9e5750601454610b989060016114ca565b60125411155b8015610bb95750601454610bb39060016114ca565b60135411155b610aa75760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105f9565b6000546001600160a01b03163314610c445760405162461bcd60e51b81526004016105f990611c3b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610cfa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610d5b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106dc8284611cd6565b6001600160a01b038316610e2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b6001600160a01b038316600090815260026020526040902054811115610f105760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105f9565b6001600160a01b03831660009081526004602052604090205460ff16158015610f5257506001600160a01b03821660009081526004602052604090205460ff16155b15610fa157600754600160a01b900460ff16610fa15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105f9565b6001600160a01b03831660009081526004602052604090205460ff16158015610fe357506001600160a01b03821660009081526004602052604090205460ff16155b8015610ffd57506007546001600160a01b03838116911614155b801561101457506001600160a01b03821661dead14155b1561108d57601a546001600160a01b03831660009081526002602052604090205461103f90836114d6565b111561108d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105f9565b6007546001600160a01b0384811691161461112e57601954811115806110cb57506001600160a01b03831660009081526004602052604090205460ff165b806110ee57506001600160a01b03821660009081526004602052604090205460ff165b61112e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f9565b6018548111158061115757506001600160a01b03831660009081526004602052604090205460ff165b8061117a57506001600160a01b03821660009081526004602052604090205460ff165b6111ba5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f9565b6007546001600160a01b0383811691161480156111f057506001600160a01b03831660009081526004602052604090205460ff16155b1561120e576001600860008282546112089190611ce9565b90915550505b6112198383836114e2565b1561122f57611229600b54611341565b60006008555b6001600160a01b0383166000908152600260205260409020546112529082610dbc565b6001600160a01b038416600090815260026020526040812091909155611278848461159c565b611282578161128d565b61128d8484846115e2565b6001600160a01b0384166000908152600260205260409020549091506112b390826114d6565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113079085815260200190565b60405180910390a350505050565b600081848411156113395760405162461bcd60e51b81526004016105f99190611998565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361137b936002936108509391926113759283916114d6565b906114d6565b9050600061139882610856600d54866114be90919063ffffffff16565b905060006113a68483610dbc565b9050476113b2826116e9565b60006113be4783610dbc565b905060006113e16113da600d5488610dbc90919063ffffffff16565b83906114ca565b905060006113fa600d54836114be90919063ffffffff16565b9050801561140c5761140c8682611843565b600e54600090611421906108508560026114be565b90508015611465576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611463573d6000803e3d6000fd5b505b4780156114a8576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114a6573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106dc8284611cfc565b60006106dc8284611d13565b60006106dc8284611ce9565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561151d5750600754600160a81b900460ff165b80156115325750600754600160a01b900460ff165b801561153b5750815b801561156057506001600160a01b03861660009081526004602052604090205460ff16155b801561157957506007546001600160a01b038681169116145b80156115895750600a5460085410155b80156115925750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106dc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806115ef85856118f7565b11156116e257600061161261160486866118f7565b6014546108509086906114ca565b3060009081526002602052604090205490915061162f90826114d6565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116809085815260200190565b60405180910390a360006010541180156116a457506010546116a286866118f7565b115b156116d0576116d03061dead6116cb601054610850601454896114ca90919063ffffffff16565b610dc8565b6116da8382610dbc565b9150506106dc565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061171e5761171e611c5b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b9190611d35565b816001815181106117ae576117ae611c5b565b6001600160a01b0392831660209182029290920101526006546117d49130911684610c98565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061180d908590600090869030904290600401611d52565b600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050505050565b60065461185b9030906001600160a01b031684610c98565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118f09190611dc3565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061193657506001600160a01b03821660009081526005602052604090205460ff165b1561195057601454611949906064610dbc565b9050610558565b6007546001600160a01b039081169083160361196f5750601254610558565b6007546001600160a01b039081169084160361198e5750601154610558565b5060135492915050565b600060208083528351808285015260005b818110156119c5578581018301518582016040015282016119a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fb57600080fd5b50565b60008060408385031215611a1157600080fd5b8235611a1c816119e6565b946020939093013593505050565b80151581146119fb57600080fd5b600080600060408486031215611a4d57600080fd5b833567ffffffffffffffff80821115611a6557600080fd5b818601915086601f830112611a7957600080fd5b813581811115611a8857600080fd5b8760208260051b8501011115611a9d57600080fd5b60209283019550935050840135611ab381611a2a565b809150509250925092565b600080600060608486031215611ad357600080fd5b8335611ade816119e6565b92506020840135611aee816119e6565b929592945050506040919091013590565b600060208284031215611b1157600080fd5b81356106dc816119e6565b60008060408385031215611b2f57600080fd5b8235611b3a816119e6565b91506020830135611b4a81611a2a565b809150509250929050565b600080600060608486031215611b6a57600080fd5b8335611b75816119e6565b92506020840135611b85816119e6565b91506040840135611ab3816119e6565b600080600060608486031215611baa57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bdc57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c2057600080fd5b8235611c2b816119e6565b91506020830135611b4a816119e6565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c9957611c99611c71565b5060010190565b600060208284031215611cb257600080fd5b5051919050565b600060208284031215611ccb57600080fd5b81516106dc81611a2a565b8181038181111561055857610558611c71565b8082018082111561055857610558611c71565b808202811582820484141761055857610558611c71565b600082611d3057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d4757600080fd5b81516106dc816119e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611da25784516001600160a01b031683529383019391830191600101611d7d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611dd857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200412b6a030acae2be9065c1e2a27695673335d780699baed367047f18e79d7b464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a1578063cb7f97d7146104c1578063dd62ed3e146104e1578063f2fde38b1461052757600080fd5b80639cc35351146104415780639d8740cb14610461578063a8aa1b311461048157600080fd5b80637cca52fe146103785780637d1db4a51461038e578063893d20e8146103a45780638cd4426d146103d65780639213c358146103f657806395d89b411461041657600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f757806351bc3c851461031757806370a082311461032c57806378109e541461036257600080fd5b80632f54bf6e1461027c578063313ce567146102ab5780633f4218e0146102c757600080fd5b806306fdde0314610191578063095ea7b3146101d257806318160ddd14610202578063229b6a5e1461022557806323b872dd14610247578063293230b81461026757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506040805180820190915260068152652c2c21a7a4a760d11b60208201525b6040516101c99190611998565b60405180910390f35b3480156101de57600080fd5b506101f26101ed3660046119fe565b610547565b60405190151581526020016101c9565b34801561020e57600080fd5b5061021761055e565b6040519081526020016101c9565b34801561023157600080fd5b50610245610240366004611a38565b6105cf565b005b34801561025357600080fd5b506101f2610262366004611abe565b610679565b34801561027357600080fd5b506102456106e3565b34801561028857600080fd5b506101f2610297366004611aff565b6000546001600160a01b0391821691161490565b3480156102b757600080fd5b50604051600981526020016101c9565b3480156102d357600080fd5b506101f26102e2366004611aff565b60046020526000908152604090205460ff1681565b34801561030357600080fd5b50610245610312366004611b1c565b610722565b34801561032357600080fd5b50610245610777565b34801561033857600080fd5b50610217610347366004611aff565b6001600160a01b031660009081526002602052604090205490565b34801561036e57600080fd5b50610217601a5481565b34801561038457600080fd5b5061021760195481565b34801561039a57600080fd5b5061021760185481565b3480156103b057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c9565b3480156103e257600080fd5b506102456103f13660046119fe565b6107ae565b34801561040257600080fd5b50610245610411366004611b55565b6108d5565b34801561042257600080fd5b506040805180820190915260028152610b0b60f31b60208201526101bc565b34801561044d57600080fd5b5061024561045c366004611b95565b61097b565b34801561046d57600080fd5b5061024561047c366004611b95565b610ab0565b34801561048d57600080fd5b506007546103be906001600160a01b031681565b3480156104ad57600080fd5b506101f26104bc3660046119fe565b610b16565b3480156104cd57600080fd5b506102456104dc366004611bc1565b610b23565b3480156104ed57600080fd5b506102176104fc366004611c0d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053357600080fd5b50610245610542366004611aff565b610c1a565b6000610554338484610c98565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105ca9290916105c49190610dbc565b90610dbc565b905090565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611c3b565b60405180910390fd5b60005b8281101561067357816005600086868581811061062457610624611c5b565b90506020020160208101906106399190611aff565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061066b81611c87565b915050610605565b50505050565b6000610686848484610dc8565b6106d884336106d385604051806060016040528060288152602001611df2602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611315565b610c98565b5060015b9392505050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016105f990611c3b565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016105f990611c3b565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016105f990611c3b565b6107ac600b54611341565b565b6000546001600160a01b031633146107d85760405162461bcd60e51b81526004016105f990611c3b565b6040516370a0823160e01b815230600482015260009061085c906064906108569085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190611ca0565b906114be565b906114ca565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106739190611cb9565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526004016105f990611c3b565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109a55760405162461bcd60e51b81526004016105f990611c3b565b60006109c2612710610856866001546114be90919063ffffffff16565b905060006109e1612710610856866001546114be90919063ffffffff16565b90506000610a00612710610856866001546114be90919063ffffffff16565b60188490556019839055601a81905590506000610a266103e8610856600561085061055e565b9050808410158015610a385750808310155b8015610a445750808210155b610aa75760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105f9565b50505050505050565b6000546001600160a01b03163314610ada5760405162461bcd60e51b81526004016105f990611c3b565b600a839055600154610af590620186a09061085690856114be565b600b55600154610b0e90620186a09061085690846114be565b600c55505050565b6000610554338484610dc8565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016105f990611c3b565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b7e9060016114ca565b60115411158015610b9e5750601454610b989060016114ca565b60125411155b8015610bb95750601454610bb39060016114ca565b60135411155b610aa75760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105f9565b6000546001600160a01b03163314610c445760405162461bcd60e51b81526004016105f990611c3b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610cfa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610d5b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106dc8284611cd6565b6001600160a01b038316610e2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b6001600160a01b038316600090815260026020526040902054811115610f105760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105f9565b6001600160a01b03831660009081526004602052604090205460ff16158015610f5257506001600160a01b03821660009081526004602052604090205460ff16155b15610fa157600754600160a01b900460ff16610fa15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105f9565b6001600160a01b03831660009081526004602052604090205460ff16158015610fe357506001600160a01b03821660009081526004602052604090205460ff16155b8015610ffd57506007546001600160a01b03838116911614155b801561101457506001600160a01b03821661dead14155b1561108d57601a546001600160a01b03831660009081526002602052604090205461103f90836114d6565b111561108d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105f9565b6007546001600160a01b0384811691161461112e57601954811115806110cb57506001600160a01b03831660009081526004602052604090205460ff165b806110ee57506001600160a01b03821660009081526004602052604090205460ff165b61112e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f9565b6018548111158061115757506001600160a01b03831660009081526004602052604090205460ff165b8061117a57506001600160a01b03821660009081526004602052604090205460ff165b6111ba5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f9565b6007546001600160a01b0383811691161480156111f057506001600160a01b03831660009081526004602052604090205460ff16155b1561120e576001600860008282546112089190611ce9565b90915550505b6112198383836114e2565b1561122f57611229600b54611341565b60006008555b6001600160a01b0383166000908152600260205260409020546112529082610dbc565b6001600160a01b038416600090815260026020526040812091909155611278848461159c565b611282578161128d565b61128d8484846115e2565b6001600160a01b0384166000908152600260205260409020549091506112b390826114d6565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113079085815260200190565b60405180910390a350505050565b600081848411156113395760405162461bcd60e51b81526004016105f99190611998565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361137b936002936108509391926113759283916114d6565b906114d6565b9050600061139882610856600d54866114be90919063ffffffff16565b905060006113a68483610dbc565b9050476113b2826116e9565b60006113be4783610dbc565b905060006113e16113da600d5488610dbc90919063ffffffff16565b83906114ca565b905060006113fa600d54836114be90919063ffffffff16565b9050801561140c5761140c8682611843565b600e54600090611421906108508560026114be565b90508015611465576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611463573d6000803e3d6000fd5b505b4780156114a8576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114a6573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106dc8284611cfc565b60006106dc8284611d13565b60006106dc8284611ce9565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561151d5750600754600160a81b900460ff165b80156115325750600754600160a01b900460ff165b801561153b5750815b801561156057506001600160a01b03861660009081526004602052604090205460ff16155b801561157957506007546001600160a01b038681169116145b80156115895750600a5460085410155b80156115925750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106dc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806115ef85856118f7565b11156116e257600061161261160486866118f7565b6014546108509086906114ca565b3060009081526002602052604090205490915061162f90826114d6565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116809085815260200190565b60405180910390a360006010541180156116a457506010546116a286866118f7565b115b156116d0576116d03061dead6116cb601054610850601454896114ca90919063ffffffff16565b610dc8565b6116da8382610dbc565b9150506106dc565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061171e5761171e611c5b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b9190611d35565b816001815181106117ae576117ae611c5b565b6001600160a01b0392831660209182029290920101526006546117d49130911684610c98565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061180d908590600090869030904290600401611d52565b600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050505050565b60065461185b9030906001600160a01b031684610c98565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118f09190611dc3565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061193657506001600160a01b03821660009081526005602052604090205460ff165b1561195057601454611949906064610dbc565b9050610558565b6007546001600160a01b039081169083160361196f5750601254610558565b6007546001600160a01b039081169084160361198e5750601154610558565b5060135492915050565b600060208083528351808285015260005b818110156119c5578581018301518582016040015282016119a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fb57600080fd5b50565b60008060408385031215611a1157600080fd5b8235611a1c816119e6565b946020939093013593505050565b80151581146119fb57600080fd5b600080600060408486031215611a4d57600080fd5b833567ffffffffffffffff80821115611a6557600080fd5b818601915086601f830112611a7957600080fd5b813581811115611a8857600080fd5b8760208260051b8501011115611a9d57600080fd5b60209283019550935050840135611ab381611a2a565b809150509250925092565b600080600060608486031215611ad357600080fd5b8335611ade816119e6565b92506020840135611aee816119e6565b929592945050506040919091013590565b600060208284031215611b1157600080fd5b81356106dc816119e6565b60008060408385031215611b2f57600080fd5b8235611b3a816119e6565b91506020830135611b4a81611a2a565b809150509250929050565b600080600060608486031215611b6a57600080fd5b8335611b75816119e6565b92506020840135611b85816119e6565b91506040840135611ab3816119e6565b600080600060608486031215611baa57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bdc57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c2057600080fd5b8235611c2b816119e6565b91506020830135611b4a816119e6565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c9957611c99611c71565b5060010190565b600060208284031215611cb257600080fd5b5051919050565b600060208284031215611ccb57600080fd5b81516106dc81611a2a565b8181038181111561055857610558611c71565b8082018082111561055857610558611c71565b808202811582820484141761055857610558611c71565b600082611d3057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d4757600080fd5b81516106dc816119e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611da25784516001600160a01b031683529383019391830191600101611d7d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611dd857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200412b6a030acae2be9065c1e2a27695673335d780699baed367047f18e79d7b464736f6c63430008130033

Deployed Bytecode Sourcemap

4911:11356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7347:67;;;;;;;;;;-1:-1:-1;7407:5:0;;;;;;;;;;;;-1:-1:-1;;;7407:5:0;;;;7347:67;;;;;;;:::i;:::-;;;;;;;;8228:133;;;;;;;;;;-1:-1:-1;8228:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8228:133:0;1023:187:1;8367:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8367:132:0;1215:177:1;10687:184:0;;;;;;;;;;-1:-1:-1;10687:184:0;;;;;:::i;:::-;;:::i;:::-;;15610:309;;;;;;;;;;-1:-1:-1;15610:309:0;;;;;:::i;:::-;;:::i;7570:67::-;;;;;;;;;;;;;:::i;3815:87::-;;;;;;;;;;-1:-1:-1;3815:87:0;;;;;:::i;:::-;3870:4;3895:5;-1:-1:-1;;;;;3884:16:0;;;3895:5;;3884:16;;3815:87;7497:67;;;;;;;;;;-1:-1:-1;7497:67:0;;5113:1;3130:36:1;;3118:2;3103:18;7497:67:0;2988:184:1;5314:44:0;;;;;;;;;;-1:-1:-1;5314:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8114:108;;;;;;;;;;-1:-1:-1;8114:108:0;;;;;:::i;:::-;;:::i;10879:89::-;;;;;;;;;;;;;:::i;7727:103::-;;;;;;;;;;-1:-1:-1;7727:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7810:18:0;7793:7;7810:18;;;:9;:18;;;;;;;7727:103;6630:63;;;;;;;;;;;;;;;;6561:62;;;;;;;;;;;;;;;;6494:60;;;;;;;;;;;;;;;;7643:78;;;;;;;;;;-1:-1:-1;7695:7:0;7713:5;-1:-1:-1;;;;;7713:5:0;7643:78;;;-1:-1:-1;;;;;3728:32:1;;;3710:51;;3698:2;3683:18;7643:78:0;3564:203:1;10976:242:0;;;;;;;;;;-1:-1:-1;10976:242:0;;;;;:::i;:::-;;:::i;10341:338::-;;;;;;;;;;-1:-1:-1;10341:338:0;;;;;:::i;:::-;;:::i;7420:71::-;;;;;;;;;;-1:-1:-1;7482:7:0;;;;;;;;;;;;-1:-1:-1;;;7482:7:0;;;;7420:71;;9777:556;;;;;;;;;;-1:-1:-1;9777:556:0;;;;;:::i;:::-;;:::i;8918:319::-;;;;;;;;;;-1:-1:-1;8918:319:0;;;;;:::i;:::-;;:::i;5432:19::-;;;;;;;;;;-1:-1:-1;5432:19:0;;;;-1:-1:-1;;;;;5432:19:0;;;7836:139;;;;;;;;;;-1:-1:-1;7836:139:0;;;;;:::i;:::-;;:::i;9245:524::-;;;;;;;;;;-1:-1:-1;9245:524:0;;;;;:::i;:::-;;:::i;7981:127::-;;;;;;;;;;-1:-1:-1;7981:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8079:18:0;;;8062:7;8079:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7981:127;3908:111;;;;;;;;;;-1:-1:-1;3908:111:0;;;;;:::i;:::-;;:::i;8228:133::-;8303:4;8310:37;8319:10;8331:7;8340:6;8310:8;:37::i;:::-;-1:-1:-1;8355:4:0;8228:133;;;;;:::o;8367:132::-;7810:9;:18;;;;6181:42;8420:7;7810:18;;;;;8437:12;;8420:7;;8437:60;;7810:18;;8437:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8430:67;;8367:132;:::o;10687:184::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;;;;;;;;;10784:6:::1;10780:84;10794:20:::0;;::::1;10780:84;;;10853:8;10831:5;:19;10837:9;;10847:1;10837:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10831:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10831:19:0;:30;;-1:-1:-1;;10831:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10816:3;::::1;::::0;::::1;:::i;:::-;;;;10780:84;;;;10687:184:::0;;;:::o;15610:309::-;15708:4;15725:36;15735:6;15743:9;15754:6;15725:9;:36::i;:::-;15772:117;15781:6;15789:10;15801:87;15837:6;15801:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15801:19:0;;;;;;:11;:19;;;;;;;;15821:10;15801:31;;;;;;;;;:87;:35;:87::i;:::-;15772:8;:117::i;:::-;-1:-1:-1;15907:4:0;15610:309;;;;;;:::o;7570:67::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;7614:14:::1;:21:::0;;-1:-1:-1;;;;7614:21:0::1;-1:-1:-1::0;;;7614:21:0::1;::::0;;7570:67::o;8114:108::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8188:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8188:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8114:108::o;10879:89::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;10931:29:::1;10946:13;;10931:14;:29::i;:::-;10879:89::o:0;10976:242::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;11080:41:::1;::::0;-1:-1:-1;;;11080:41:0;;11115:4:::1;11080:41;::::0;::::1;3710:51:1::0;11062:15:0::1;::::0;11080:63:::1;::::0;11139:3:::1;::::0;11080:54:::1;::::0;11126:7;;-1:-1:-1;;;;;11080:26:0;::::1;::::0;::::1;::::0;3683:18:1;;11080:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;11180:20;::::0;11154:56:::1;::::0;-1:-1:-1;;;11154:56:0;;-1:-1:-1;;;;;11180:20:0;;::::1;11154:56;::::0;::::1;6978:51:1::0;7045:18;;;7038:34;;;11062:81:0;;-1:-1:-1;11154:25:0;::::1;::::0;::::1;::::0;6951:18:1;;11154:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10341:338::-:0;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;10463:18:::1;:31:::0;;-1:-1:-1;;;;;10463:31:0;;::::1;-1:-1:-1::0;;;;;;10463:31:0;;::::1;::::0;::::1;::::0;;;10496:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10529:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10463:18:::1;10575:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10575:30:0;;::::1;10463:31:::0;10575:30;;::::1;::::0;;;10607:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10639:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10341:338::o;9777:556::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;9883:13:::1;9899:33;9926:5;9899:22;9916:4;9899:12;;:16;;:22;;;;:::i;:33::-;9883:49;;9934:19;9956:34;9984:5;9956:23;9973:5;9956:12;;:16;;:23;;;;:::i;:34::-;9934:56;;9992:17;10012:36;10042:5;10012:25;10029:7;10012:12;;:16;;:25;;;;:::i;:36::-;10059:12;:20:::0;;;10081:14:::1;:28:::0;;;10111:15:::1;:27:::0;;;9992:56;-1:-1:-1;;10165:30:0::1;10190:4;10165:20;10183:1;10165:13;:11;:13::i;:30::-;10149:46;;10223:5;10214;:14;;:38;;;;;10247:5;10232:11;:20;;10214:38;:60;;;;;10269:5;10256:9;:18;;10214:60;10206:119;;;::::0;-1:-1:-1;;;10206:119:0;;7535:2:1;10206:119:0::1;::::0;::::1;7517:21:1::0;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;-1:-1:-1;;;7664:18:1;;;7657:44;7718:19;;10206:119:0::1;7333:410:1::0;10206:119:0::1;9872:461;;;;9777:556:::0;;;:::o;8918:319::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;9051:10:::1;:24:::0;;;9093:12:::1;::::0;:53:::1;::::0;9138:6:::1;::::0;9093:32:::1;::::0;9110:14;9093:16:::1;:32::i;:53::-;9077:13;:69:::0;9175:12:::1;::::0;:54:::1;::::0;9221:6:::1;::::0;9175:33:::1;::::0;9192:15;9175:16:::1;:33::i;:54::-;9158:14;:71:::0;-1:-1:-1;;;8918:319:0:o;7836:139::-;7914:4;7921:40;7931:10;7943:9;7954:6;7921:9;:40::i;9245:524::-;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;9435:12:::1;:25:::0;;;9462:12:::1;:25:::0;;;9489:7:::1;:15:::0;;;9506:14:::1;:29:::0;;;9537:8:::1;:17:::0;;;9556:7:::1;:15:::0;;;9573:11:::1;:20:::0;;;9624:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9624:15:0::1;:18::i;:::-;9612:8;;:30;;:63;;;;-1:-1:-1::0;9657:11:0::1;::::0;:18:::1;::::0;9673:1:::1;9657:15;:18::i;:::-;9646:7;;:29;;9612:63;:100;;;;-1:-1:-1::0;9694:11:0::1;::::0;:18:::1;::::0;9710:1:::1;9694:15;:18::i;:::-;9679:11;;:33;;9612:100;9604:157;;;::::0;-1:-1:-1;;;9604:157:0;;7950:2:1;9604:157:0::1;::::0;::::1;7932:21:1::0;7989:2;7969:18;;;7962:30;8028:34;8008:18;;;8001:62;-1:-1:-1;;;8079:18:1;;;8072:42;8131:19;;9604:157:0::1;7748:408:1::0;3908:111:0;3870:4;3895:5;-1:-1:-1;;;;;3895:5:0;3782:10;3884:16;3766:38;;;;-1:-1:-1;;;3766:38:0;;;;;;;:::i;:::-;3974:5:::1;:11:::0;;-1:-1:-1;;;;;;3974:11:0::1;-1:-1:-1::0;;;;;3974:11:0;::::1;::::0;;::::1;::::0;;;3992:25:::1;::::0;3710:51:1;;;3992:25:0::1;::::0;3698:2:1;3683:18;3992:25:0::1;;;;;;;3908:111:::0;:::o;15927:335::-;-1:-1:-1;;;;;16020:19:0;;16012:68;;;;-1:-1:-1;;;16012:68:0;;8579:2:1;16012:68:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:34;8752:19;;16012:68:0;8377:400:1;16012:68:0;-1:-1:-1;;;;;16099:21:0;;16091:68;;;;-1:-1:-1;;;16091:68:0;;8984:2:1;16091:68:0;;;8966:21:1;9023:2;9003:18;;;8996:30;9062:34;9042:18;;;9035:62;-1:-1:-1;;;9113:18:1;;;9106:32;9155:19;;16091:68:0;8782:398:1;16091:68:0;-1:-1:-1;;;;;16170:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16222:32;;1361:25:1;;;16222:32:0;;1334:18:1;16222:32:0;;;;;;;15927:335;;;:::o;1554:98::-;1612:7;1639:5;1643:1;1639;:5;:::i;14169:1433::-;-1:-1:-1;;;;;14266:20:0;;14258:70;;;;-1:-1:-1;;;14258:70:0;;9520:2:1;14258:70:0;;;9502:21:1;9559:2;9539:18;;;9532:30;9598:34;9578:18;;;9571:62;-1:-1:-1;;;9649:18:1;;;9642:35;9694:19;;14258:70:0;9318:401:1;14258:70:0;-1:-1:-1;;;;;14347:23:0;;14339:71;;;;-1:-1:-1;;;14339:71:0;;9926:2:1;14339:71:0;;;9908:21:1;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;-1:-1:-1;;;10055:18:1;;;10048:33;10098:19;;14339:71:0;9724:399:1;14339:71:0;-1:-1:-1;;;;;7810:18:0;;7793:7;7810:18;;;:9;:18;;;;;;14429:6;:27;;14421:88;;;;-1:-1:-1;;;14421:88:0;;10330:2:1;14421:88:0;;;10312:21:1;10369:2;10349:18;;;10342:30;10408:34;10388:18;;;10381:62;-1:-1:-1;;;10459:18:1;;;10452:47;10516:19;;14421:88:0;10128:413:1;14421:88:0;-1:-1:-1;;;;;14524:19:0;;;;;;:11;:19;;;;;;;;14523:20;:47;;;;-1:-1:-1;;;;;;14548:22:0;;;;;;:11;:22;;;;;;;;14547:23;14523:47;14520:95;;;14580:14;;-1:-1:-1;;;14580:14:0;;;;14572:41;;;;-1:-1:-1;;;14572:41:0;;10748:2:1;14572:41:0;;;10730:21:1;10787:2;10767:18;;;10760:30;-1:-1:-1;;;10806:18:1;;;10799:44;10860:18;;14572:41:0;10546:338:1;14572:41:0;-1:-1:-1;;;;;14629:19:0;;;;;;:11;:19;;;;;;;;14628:20;:47;;;;-1:-1:-1;;;;;;14653:22:0;;;;;;:11;:22;;;;;;;;14652:23;14628:47;:77;;;;-1:-1:-1;14700:4:0;;-1:-1:-1;;;;;14679:26:0;;;14700:4;;14679:26;;14628:77;:107;;;;-1:-1:-1;;;;;;14709:26:0;;6181:42;14709:26;;14628:107;14625:220;;;14793:15;;-1:-1:-1;;;;;14756:20:0;;;;;;:9;:20;;;;;;:32;;14781:6;14756:24;:32::i;:::-;14755:53;;14747:96;;;;-1:-1:-1;;;14747:96:0;;11091:2:1;14747:96:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:32;11149:18;;;11142:60;11219:18;;14747:96:0;10889:354:1;14747:96:0;14868:4;;-1:-1:-1;;;;;14858:14:0;;;14868:4;;14858:14;14855:124;;14892:14;;14882:6;:24;;:47;;;-1:-1:-1;;;;;;14910:19:0;;;;;;:11;:19;;;;;;;;14882:47;:73;;;-1:-1:-1;;;;;;14933:22:0;;;;;;:11;:22;;;;;;;;14882:73;14874:103;;;;-1:-1:-1;;;14874:103:0;;11450:2:1;14874:103:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;14874:103:0;11248:341:1;14874:103:0;15007:12;;14997:6;:22;;:45;;;-1:-1:-1;;;;;;15023:19:0;;;;;;:11;:19;;;;;;;;14997:45;:71;;;-1:-1:-1;;;;;;15046:22:0;;;;;;:11;:22;;;;;;;;14997:71;14989:101;;;;-1:-1:-1;;;14989:101:0;;11450:2:1;14989:101:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;14989:101:0;11248:341:1;14989:101:0;15118:4;;-1:-1:-1;;;;;15105:17:0;;;15118:4;;15105:17;:41;;;;-1:-1:-1;;;;;;15127:19:0;;;;;;:11;:19;;;;;;;;15126:20;15105:41;15102:71;;;15169:1;15148:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15102:71:0;15186:45;15205:6;15213:9;15224:6;15186:18;:45::i;:::-;15183:105;;;15233:29;15248:13;;15233:14;:29::i;:::-;15284:1;15264:9;:22;15183:105;-1:-1:-1;;;;;15318:17:0;;;;;;:9;:17;;;;;;:29;;15340:6;15318:21;:29::i;:::-;-1:-1:-1;;;;;15298:17:0;;;;;;:9;:17;;;;;:49;;;;15383:32;15308:6;15405:9;15383:13;:32::i;:::-;:78;;15455:6;15383:78;;;15418:34;15426:6;15434:9;15445:6;15418:7;:34::i;:::-;-1:-1:-1;;;;;15495:20:0;;;;;;:9;:20;;;;;;15358:103;;-1:-1:-1;15495:40:0;;15358:103;15495:24;:40::i;:::-;-1:-1:-1;;;;;15472:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15551:43;;;;;;;;;;15579:14;1361:25:1;;1349:2;1334:18;;1215:177;15551:43:0;;;;;;;;14247:1355;14169:1433;;;:::o;1978:240::-;2098:7;2159:12;2151:6;;;;2143:29;;;;-1:-1:-1;;;2143:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2194:5:0;;;1978:240::o;11226:1063::-;5790:8;:15;;-1:-1:-1;;5790:15:0;5801:4;5790:15;;;;;;11363:14:::1;::::0;11345:12:::1;::::0;11321::::1;::::0;5790:8;;11320:66:::1;::::0;11384:1:::1;::::0;11321:57:::1;::::0;11363:14;;11321:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11320:66::-;11297:89;;11397:32;11432:42;11461:12;11432:24;11443:12;;11432:6;:10;;:24;;;;:::i;:42::-;11397:77:::0;-1:-1:-1;11485:14:0::1;11502:36;:6:::0;11397:77;11502:10:::1;:36::i;:::-;11485:53:::0;-1:-1:-1;11574:21:0::1;11606:24;11485:53:::0;11606:16:::1;:24::i;:::-;11641:20;11664:41;:21;11690:14:::0;11664:25:::1;:41::i;:::-;11641:64;;11716:19;11737:48;11754:30;11771:12;;11754;:16;;:30;;;;:::i;:::-;11737:12:::0;;:16:::1;:48::i;:::-;11716:69;;11796:29;11828;11844:12;;11828:11;:15;;:29;;;;:::i;:::-;11796:61:::0;-1:-1:-1;11871:34:0;;11868:103:::1;;11907:61;11920:24;11946:21;11907:12;:61::i;:::-;12027:12;::::0;11981:20:::1;::::0;12004:36:::1;::::0;:18:::1;:11:::0;12020:1:::1;12004:15;:18::i;:36::-;11981:59:::0;-1:-1:-1;12054:16:0;;12051:73:::1;;12080:18;::::0;12072:50:::1;::::0;-1:-1:-1;;;;;12080:18:0;;::::1;::::0;12072:50;::::1;;;::::0;12109:12;;12080:18:::1;12072:50:::0;12080:18;12072:50;12109:12;12080:18;12072:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12051:73;12160:21;12195:28:::0;;12192:90:::1;;12233:20;::::0;12225:55:::1;::::0;-1:-1:-1;;;;;12233:20:0;;::::1;::::0;12225:55;::::1;;;::::0;12264:15;;12233:20:::1;12225:55:::0;12233:20;12225:55;12264:15;12233:20;12225:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12192:90;-1:-1:-1::0;;5810:8:0;:16;;-1:-1:-1;;5810:16:0;;;-1:-1:-1;;;;;;;;11226:1063:0:o;1660:98::-;1718:7;1745:5;1749:1;1745;:5;:::i;1766:98::-;1824:7;1851:5;1855:1;1851;:5;:::i;1448:98::-;1506:7;1533:5;1537:1;1533;:5;:::i;8507:403::-;8652:14;;8727:13;;8717:4;8609;7810:18;;;:9;:18;;;;;;8759:8;;8609:4;;8642:24;;;;-1:-1:-1;8699:41:0;;8759:8;;8758:9;:24;;;;-1:-1:-1;8771:11:0;;-1:-1:-1;;;8771:11:0;;;;8758:24;:42;;;;-1:-1:-1;8786:14:0;;-1:-1:-1;;;8786:14:0;;;;8758:42;:54;;;;;8804:8;8758:54;:78;;;;-1:-1:-1;;;;;;8817:19:0;;;;;;:11;:19;;;;;;;;8816:20;8758:78;:99;;;;-1:-1:-1;8853:4:0;;-1:-1:-1;;;;;8840:17:0;;;8853:4;;8840:17;8758:99;:126;;;;;8874:10;;8861:9;;:23;;8758:126;:144;;;;;8888:14;8758:144;8751:151;8507:403;-1:-1:-1;;;;;;8507:403:0:o;13090:160::-;-1:-1:-1;;;;;13196:19:0;;13171:4;13196:19;;;:11;:19;;;;;;;;13195:20;:47;;;;-1:-1:-1;;;;;;;13220:22:0;;;;;:11;:22;;;;;;;;13219:23;;13090:160;-1:-1:-1;13090:160:0:o;13571:590::-;13657:7;13713:1;13680:30;13692:6;13700:9;13680:11;:30::i;:::-;:34;13677:462;;;13726:17;13746:59;13774:30;13786:6;13794:9;13774:11;:30::i;:::-;13757:11;;13746:23;;:6;;:10;:23::i;:59::-;13861:4;13843:24;;;;:9;:24;;;;;;13726:79;;-1:-1:-1;13843:39:0;;13726:79;13843:28;:39::i;:::-;13834:4;13816:24;;;;:9;:24;;;;;;;:66;;;;13898:42;;-1:-1:-1;;;;;13898:42:0;;;;;;;13930:9;1361:25:1;;1349:2;1334:18;;1215:177;13898:42:0;;;;;;;;13972:1;13954:7;;:20;:64;;;;;14011:7;;13978:30;13990:6;13998:9;13978:11;:30::i;:::-;:40;13954:64;13951:148;;;14020:77;14038:4;6181:42;14060:36;14088:7;;14060:23;14071:11;;14060:6;:10;;:23;;;;:::i;:36::-;14020:9;:77::i;:::-;14116:21;:6;14127:9;14116:10;:21::i;:::-;14109:28;;;;;13677:462;-1:-1:-1;14147:6:0;13571:590;-1:-1:-1;;13571:590:0:o;12648:434::-;12738:16;;;12752:1;12738:16;;;;;;;;12714:21;;12738:16;;;;;;;;;;-1:-1:-1;12738:16:0;12714:40;;12783:4;12765;12770:1;12765:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12765:23:0;;;:7;;;;;;;;;;:23;;;;12809:6;;:13;;;-1:-1:-1;;;12809:13:0;;;;:6;;;;;:11;;:13;;;;;12765:7;;12809:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12799:4;12804:1;12799:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12799:23:0;;;:7;;;;;;;;;:23;12865:6;;12833:53;;12850:4;;12865:6;12874:11;12833:8;:53::i;:::-;12897:6;;:177;;-1:-1:-1;;;12897:177:0;;-1:-1:-1;;;;;12897:6:0;;;;:57;;:177;;12969:11;;12897:6;;13011:4;;13038;;13058:15;;12897:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12703:379;12648:434;:::o;12297:343::-;12410:6;;12378:53;;12395:4;;-1:-1:-1;;;;;12410:6:0;12419:11;12378:8;:53::i;:::-;12442:6;;12583:18;;12442:190;;-1:-1:-1;;;12442:190:0;;12505:4;12442:190;;;13833:34:1;13883:18;;;13876:34;;;12442:6:0;13926:18:1;;;13919:34;;;13969:18;;;13962:34;-1:-1:-1;;;;;12583:18:0;;;14012:19:1;;;14005:44;12616:15:0;14065:19:1;;;14058:35;12442:6:0;;;:22;;12472:9;;13767:19:1;;12442:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12297:343;;:::o;13258:305::-;-1:-1:-1;;;;;13360:13:0;;13337:7;13360:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;13377:16:0;;;;;;:5;:16;;;;;;;;13360:33;13357:76;;;13402:11;;:29;;13426:3;13402:15;:29::i;:::-;13395:36;;;;13357:76;13459:4;;-1:-1:-1;;;;;13459:4:0;;;13446:17;;;;13443:38;;-1:-1:-1;13472:7:0;;13465:14;;13443:38;13504:4;;-1:-1:-1;;;;;13504:4:0;;;13494:14;;;;13491:36;;-1:-1:-1;13517:8:0;;13510:15;;13491:36;-1:-1:-1;13544:11:0;;13258:305;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:750;1612:6;1620;1628;1681:2;1669:9;1660:7;1656:23;1652:32;1649:52;;;1697:1;1694;1687:12;1649:52;1737:9;1724:23;1766:18;1807:2;1799:6;1796:14;1793:34;;;1823:1;1820;1813:12;1793:34;1861:6;1850:9;1846:22;1836:32;;1906:7;1899:4;1895:2;1891:13;1887:27;1877:55;;1928:1;1925;1918:12;1877:55;1968:2;1955:16;1994:2;1986:6;1983:14;1980:34;;;2010:1;2007;2000:12;1980:34;2065:7;2058:4;2048:6;2045:1;2041:14;2037:2;2033:23;2029:34;2026:47;2023:67;;;2086:1;2083;2076:12;2023:67;2117:4;2109:13;;;;-1:-1:-1;2141:6:1;-1:-1:-1;;2182:20:1;;2169:34;2212:28;2169:34;2212:28;:::i;:::-;2259:5;2249:15;;;1520:750;;;;;:::o;2275:456::-;2352:6;2360;2368;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2476:9;2463:23;2495:31;2520:5;2495:31;:::i;:::-;2545:5;-1:-1:-1;2602:2:1;2587:18;;2574:32;2615:33;2574:32;2615:33;:::i;:::-;2275:456;;2667:7;;-1:-1:-1;;;2721:2:1;2706:18;;;;2693:32;;2275:456::o;2736:247::-;2795:6;2848:2;2836:9;2827:7;2823:23;2819:32;2816:52;;;2864:1;2861;2854:12;2816:52;2903:9;2890:23;2922:31;2947:5;2922:31;:::i;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;:::-;3546:7;3536:17;;;3177:382;;;;;:::o;3772:529::-;3849:6;3857;3865;3918:2;3906:9;3897:7;3893:23;3889:32;3886:52;;;3934:1;3931;3924:12;3886:52;3973:9;3960:23;3992:31;4017:5;3992:31;:::i;:::-;4042:5;-1:-1:-1;4099:2:1;4084:18;;4071:32;4112:33;4071:32;4112:33;:::i;:::-;4164:7;-1:-1:-1;4223:2:1;4208:18;;4195:32;4236:33;4195:32;4236:33;:::i;4306:316::-;4383:6;4391;4399;4452:2;4440:9;4431:7;4427:23;4423:32;4420:52;;;4468:1;4465;4458:12;4420:52;-1:-1:-1;;4491:23:1;;;4561:2;4546:18;;4533:32;;-1:-1:-1;4612:2:1;4597:18;;;4584:32;;4306:316;-1:-1:-1;4306:316:1:o;4627:592::-;4740:6;4748;4756;4764;4772;4780;4788;4841:3;4829:9;4820:7;4816:23;4812:33;4809:53;;;4858:1;4855;4848:12;4809:53;-1:-1:-1;;4881:23:1;;;4951:2;4936:18;;4923:32;;-1:-1:-1;5002:2:1;4987:18;;4974:32;;5053:2;5038:18;;5025:32;;-1:-1:-1;5104:3:1;5089:19;;5076:33;;-1:-1:-1;5156:3:1;5141:19;;5128:33;;-1:-1:-1;5208:3:1;5193:19;5180:33;;-1:-1:-1;4627:592:1;-1:-1:-1;4627:592:1:o;5224:388::-;5292:6;5300;5353:2;5341:9;5332:7;5328:23;5324:32;5321:52;;;5369:1;5366;5359:12;5321:52;5408:9;5395:23;5427:31;5452:5;5427:31;:::i;:::-;5477:5;-1:-1:-1;5534:2:1;5519:18;;5506:32;5547:33;5506:32;5547:33;:::i;5877:329::-;6079:2;6061:21;;;6118:1;6098:18;;;6091:29;-1:-1:-1;;;6151:2:1;6136:18;;6129:36;6197:2;6182:18;;5877:329::o;6211:127::-;6272:10;6267:3;6263:20;6260:1;6253:31;6303:4;6300:1;6293:15;6327:4;6324:1;6317:15;6343:127;6404:10;6399:3;6395:20;6392:1;6385:31;6435:4;6432:1;6425:15;6459:4;6456:1;6449:15;6475:135;6514:3;6535:17;;;6532:43;;6555:18;;:::i;:::-;-1:-1:-1;6602:1:1;6591:13;;6475:135::o;6615:184::-;6685:6;6738:2;6726:9;6717:7;6713:23;6709:32;6706:52;;;6754:1;6751;6744:12;6706:52;-1:-1:-1;6777:16:1;;6615:184;-1:-1:-1;6615:184:1:o;7083:245::-;7150:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:52;;;7219:1;7216;7209:12;7171:52;7251:9;7245:16;7270:28;7292:5;7270:28;:::i;9185:128::-;9252:9;;;9273:11;;;9270:37;;;9287:18;;:::i;11594:125::-;11659:9;;;11680:10;;;11677:36;;;11693:18;;:::i;11724:168::-;11797:9;;;11828;;11845:15;;;11839:22;;11825:37;11815:71;;11866:18;;:::i;11897:217::-;11937:1;11963;11953:132;;12007:10;12002:3;11998:20;11995:1;11988:31;12042:4;12039:1;12032:15;12070:4;12067:1;12060:15;11953:132;-1:-1:-1;12099:9:1;;11897:217::o;12251:251::-;12321:6;12374:2;12362:9;12353:7;12349:23;12345:32;12342:52;;;12390:1;12387;12380:12;12342:52;12422:9;12416:16;12441:31;12466:5;12441:31;:::i;12507:980::-;12769:4;12817:3;12806:9;12802:19;12848:6;12837:9;12830:25;12874:2;12912:6;12907:2;12896:9;12892:18;12885:34;12955:3;12950:2;12939:9;12935:18;12928:31;12979:6;13014;13008:13;13045:6;13037;13030:22;13083:3;13072:9;13068:19;13061:26;;13122:2;13114:6;13110:15;13096:29;;13143:1;13153:195;13167:6;13164:1;13161:13;13153:195;;;13232:13;;-1:-1:-1;;;;;13228:39:1;13216:52;;13323:15;;;;13288:12;;;;13264:1;13182:9;13153:195;;;-1:-1:-1;;;;;;;13404:32:1;;;;13399:2;13384:18;;13377:60;-1:-1:-1;;;13468:3:1;13453:19;13446:35;13365:3;12507:980;-1:-1:-1;;;12507:980:1:o;14104:306::-;14192:6;14200;14208;14261:2;14249:9;14240:7;14236:23;14232:32;14229:52;;;14277:1;14274;14267:12;14229:52;14306:9;14300:16;14290:26;;14356:2;14345:9;14341:18;14335:25;14325:35;;14400:2;14389:9;14385:18;14379:25;14369:35;;14104:306;;;;;:::o

Swarm Source

ipfs://0412b6a030acae2be9065c1e2a27695673335d780699baed367047f18e79d7b4

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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