ETH Price: $3,871.32 (-3.47%)

Contract

0x1FeAAe506876790b185A51768b9f1c904595a976
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Approve213045662024-12-01 2:06:3517 days ago1733018795IN
0x1FeAAe50...04595a976
0 ETH0.0004839810.40367797
Approve212921872024-11-29 8:34:1118 days ago1732869251IN
0x1FeAAe50...04595a976
0 ETH0.000383468.23211712
Transfer212052832024-11-17 5:17:2330 days ago1731820643IN
0x1FeAAe50...04595a976
0 ETH0.000746339.53714692
Approve211484822024-11-09 7:04:1138 days ago1731135851IN
0x1FeAAe50...04595a976
0 ETH0.0006989915.09545852
Approve211484762024-11-09 7:02:5938 days ago1731135779IN
0x1FeAAe50...04595a976
0 ETH0.0006896614.89404105
Approve211436162024-11-08 14:47:4739 days ago1731077267IN
0x1FeAAe50...04595a976
0 ETH0.0014565831.31020788
Approve210735712024-10-29 20:05:4749 days ago1730232347IN
0x1FeAAe50...04595a976
0 ETH0.0006098213.16981282
Approve210623962024-10-28 6:39:2350 days ago1730097563IN
0x1FeAAe50...04595a976
0 ETH0.000318366.83475121
Approve210620412024-10-28 5:27:3550 days ago1730093255IN
0x1FeAAe50...04595a976
0 ETH0.000264435.67682856
Approve210493222024-10-26 10:52:3552 days ago1729939955IN
0x1FeAAe50...04595a976
0 ETH0.000126825.21991676
Approve210493132024-10-26 10:50:4752 days ago1729939847IN
0x1FeAAe50...04595a976
0 ETH0.000231854.97744455
Approve210256522024-10-23 3:39:5955 days ago1729654799IN
0x1FeAAe50...04595a976
0 ETH0.000330317.09116772
Approve210018832024-10-19 20:03:4759 days ago1729368227IN
0x1FeAAe50...04595a976
0 ETH0.000206668.50564681
Approve209966842024-10-19 2:39:1159 days ago1729305551IN
0x1FeAAe50...04595a976
0 ETH0.0006257113.43275187
Approve209966652024-10-19 2:35:2359 days ago1729305323IN
0x1FeAAe50...04595a976
0 ETH0.0006302313.52977661
Approve209966072024-10-19 2:23:4759 days ago1729304627IN
0x1FeAAe50...04595a976
0 ETH0.0004804110.32684054
Approve209839682024-10-17 8:03:4761 days ago1729152227IN
0x1FeAAe50...04595a976
0 ETH0.0012333350.88643605
Approve209121372024-10-07 7:18:1171 days ago1728285491IN
0x1FeAAe50...04595a976
0 ETH0.000444979.62472245
Approve208465442024-09-28 3:48:1180 days ago1727495291IN
0x1FeAAe50...04595a976
0 ETH0.000189197.78689839
Approve208414112024-09-27 10:37:5981 days ago1727433479IN
0x1FeAAe50...04595a976
0 ETH0.0005960512.87235108
Approve208352102024-09-26 13:52:3582 days ago1727358755IN
0x1FeAAe50...04595a976
0 ETH0.0015275332.80154788
Approve206914032024-09-06 11:58:11102 days ago1725623891IN
0x1FeAAe50...04595a976
0 ETH0.000088833.65609194
Approve206774472024-09-04 13:13:59104 days ago1725455639IN
0x1FeAAe50...04595a976
0 ETH0.000297666.3984666
Approve206357902024-08-29 17:40:23110 days ago1724953223IN
0x1FeAAe50...04595a976
0 ETH0.000117042.51592036
Approve206062942024-08-25 14:46:59114 days ago1724597219IN
0x1FeAAe50...04595a976
0 ETH0.00005491.18569379
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
210493192024-10-26 10:51:5952 days ago1729939919
0x1FeAAe50...04595a976
0.01703256 ETH
210493192024-10-26 10:51:5952 days ago1729939919
0x1FeAAe50...04595a976
0.01686392 ETH
210493192024-10-26 10:51:5952 days ago1729939919
0x1FeAAe50...04595a976
0.03389648 ETH
202204192024-07-02 17:48:23168 days ago1719942503
0x1FeAAe50...04595a976
0.0275745 ETH
202204192024-07-02 17:48:23168 days ago1719942503
0x1FeAAe50...04595a976
0.02730148 ETH
202204192024-07-02 17:48:23168 days ago1719942503
0x1FeAAe50...04595a976
0.05487599 ETH
201123082024-06-17 15:09:23183 days ago1718636963
0x1FeAAe50...04595a976
0.02103824 ETH
201123082024-06-17 15:09:23183 days ago1718636963
0x1FeAAe50...04595a976
0.02082994 ETH
201123082024-06-17 15:09:23183 days ago1718636963
0x1FeAAe50...04595a976
0.04186818 ETH
199021022024-05-19 6:09:23212 days ago1716098963
0x1FeAAe50...04595a976
0.01094684 ETH
199021022024-05-19 6:09:23212 days ago1716098963
0x1FeAAe50...04595a976
0.01083845 ETH
199021022024-05-19 6:09:23212 days ago1716098963
0x1FeAAe50...04595a976
0.02178529 ETH
197069652024-04-21 23:08:35240 days ago1713740915
0x1FeAAe50...04595a976
0.02084538 ETH
197069652024-04-21 23:08:35240 days ago1713740915
0x1FeAAe50...04595a976
0.02063899 ETH
197069652024-04-21 23:08:35240 days ago1713740915
0x1FeAAe50...04595a976
0.04148437 ETH
196441772024-04-13 4:08:47248 days ago1712981327
0x1FeAAe50...04595a976
0.01925982 ETH
196441772024-04-13 4:08:47248 days ago1712981327
0x1FeAAe50...04595a976
0.01906913 ETH
196441772024-04-13 4:08:47248 days ago1712981327
0x1FeAAe50...04595a976
0.03832896 ETH
196370122024-04-12 4:01:47249 days ago1712894507
0x1FeAAe50...04595a976
0.01723987 ETH
196370122024-04-12 4:01:47249 days ago1712894507
0x1FeAAe50...04595a976
0.01706918 ETH
196370122024-04-12 4:01:47249 days ago1712894507
0x1FeAAe50...04595a976
0.03430905 ETH
196369682024-04-12 3:52:59249 days ago1712893979
0x1FeAAe50...04595a976
0.01848672 ETH
196369682024-04-12 3:52:59249 days ago1712893979
0x1FeAAe50...04595a976
0.01830368 ETH
196369682024-04-12 3:52:59249 days ago1712893979
0x1FeAAe50...04595a976
0.0367904 ETH
196369362024-04-12 3:46:35249 days ago1712893595
0x1FeAAe50...04595a976
0.02066807 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RATTY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

/**
The First Friend and Best Friend of Hoppy in the Series "The Night Riders" by Matt Furie

Ratty - $RATTY

Telegram: https://t.me/rattycoin
Website: https://rattycoin.com/
Twitter: https://twitter.com/rattycoinerc

*/

// 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 RATTY is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Ratty';
    string private constant _symbol = 'RATTY';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 420690000000000 * (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 = 4;
    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 = 500;
    uint256 private developmentFee = 500;
    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 = 0x3C07Fe4e9e7bc27Dba89d1740829751cF72F26FD; 
    address internal marketing_receiver = 0x3C07Fe4e9e7bc27Dba89d1740829751cF72F26FD;
    address internal liquidity_receiver = 0x3C07Fe4e9e7bc27Dba89d1740829751cF72F26FD;
    uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 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 {
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify(amount);
    }

    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"}]

6080604052620000126009600a620004d6565b620000259066017e9d8602b400620004ee565b60018190556007805461ffff60a01b1916600160a81b1790556004600a55620186a09062000056906103e8620004ee565b62000062919062000508565b600b55620186a0600154600a6200007a9190620004ee565b62000086919062000508565b600c556000600d8190556101f4600e819055600f55601055610bb8601155611b586012819055601355612710601481905560158054733c07fe4e9e7bc27dba89d1740829751cf72f26fd6001600160a01b0319918216811790925560168054821683179055601780549091169091179055600154620001079060c8620004ee565b62000113919062000508565b60185561271060015460c86200012a9190620004ee565b62000136919062000508565b60195561271060015460c86200014d9190620004ee565b62000159919062000508565b601a553480156200016957600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f791906200052b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b91906200052b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df91906200052b565b600680546001600160a01b038581166001600160a01b031992831617909255600780548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560175486168552828520805482168317905560165486168552828520805482168317905560155490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000556565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000418578160001904821115620003fc57620003fc620003c1565b808516156200040a57918102915b93841c9390800290620003dc565b509250929050565b6000826200043157506001620004d0565b816200044057506000620004d0565b8160018114620004595760028114620004645762000484565b6001915050620004d0565b60ff841115620004785762000478620003c1565b50506001821b620004d0565b5060208310610133831016604e8410600b8410161715620004a9575081810a620004d0565b620004b58383620003d7565b8060001904821115620004cc57620004cc620003c1565b0290505b92915050565b6000620004e760ff84168362000420565b9392505050565b8082028115828204841417620004d057620004d0620003c1565b6000826200052657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053e57600080fd5b81516001600160a01b0381168114620004e757600080fd5b611e6c80620005666000396000f3fe6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a3578063cb7f97d7146104c3578063dd62ed3e146104e3578063f2fde38b1461052957600080fd5b80639cc35351146104435780639d8740cb14610463578063a8aa1b311461048357600080fd5b80637cca52fe146103775780637d1db4a51461038d578063893d20e8146103a35780638cd4426d146103d55780639213c358146103f557806395d89b411461041557600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f657806351bc3c851461031657806370a082311461032b57806378109e541461036157600080fd5b80632f54bf6e1461027b578063313ce567146102aa5780633f4218e0146102c657600080fd5b806306fdde0314610191578063095ea7b3146101d157806318160ddd14610201578063229b6a5e1461022457806323b872dd14610246578063293230b81461026657600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b50604080518082019091526005815264526174747960d81b60208201525b6040516101c891906119b8565b60405180910390f35b3480156101dd57600080fd5b506101f16101ec366004611a1b565b610549565b60405190151581526020016101c8565b34801561020d57600080fd5b50610216610560565b6040519081526020016101c8565b34801561023057600080fd5b5061024461023f366004611a55565b6105d1565b005b34801561025257600080fd5b506101f1610261366004611adb565b61067b565b34801561027257600080fd5b506102446106e5565b34801561028757600080fd5b506101f1610296366004611b1c565b6000546001600160a01b0391821691161490565b3480156102b657600080fd5b50604051600981526020016101c8565b3480156102d257600080fd5b506101f16102e1366004611b1c565b60046020526000908152604090205460ff1681565b34801561030257600080fd5b50610244610311366004611b39565b610724565b34801561032257600080fd5b50610244610779565b34801561033757600080fd5b50610216610346366004611b1c565b6001600160a01b031660009081526002602052604090205490565b34801561036d57600080fd5b50610216601a5481565b34801561038357600080fd5b5061021660195481565b34801561039957600080fd5b5061021660185481565b3480156103af57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c8565b3480156103e157600080fd5b506102446103f0366004611a1b565b6107ce565b34801561040157600080fd5b50610244610410366004611b72565b6108f5565b34801561042157600080fd5b50604080518082019091526005815264524154545960d81b60208201526101bb565b34801561044f57600080fd5b5061024461045e366004611bb2565b61099b565b34801561046f57600080fd5b5061024461047e366004611bb2565b610ad0565b34801561048f57600080fd5b506007546103bd906001600160a01b031681565b3480156104af57600080fd5b506101f16104be366004611a1b565b610b36565b3480156104cf57600080fd5b506102446104de366004611bde565b610b43565b3480156104ef57600080fd5b506102166104fe366004611c2a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053557600080fd5b50610244610544366004611b1c565b610c3a565b6000610556338484610cb8565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105cc9290916105c69190610ddc565b90610ddc565b905090565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016105fb90611c58565b60405180910390fd5b60005b8281101561067557816005600086868581811061062657610626611c78565b905060200201602081019061063b9190611b1c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061066d81611ca4565b915050610607565b50505050565b6000610688848484610de8565b6106da84336106d585604051806060016040528060288152602001611e0f602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611335565b610cb8565b5060015b9392505050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016105fb90611c58565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461074e5760405162461bcd60e51b81526004016105fb90611c58565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a35760405162461bcd60e51b81526004016105fb90611c58565b30600090815260026020526040902054600b548111156107c25750600b545b6107cb81611361565b50565b6000546001600160a01b031633146107f85760405162461bcd60e51b81526004016105fb90611c58565b6040516370a0823160e01b815230600482015260009061087c906064906108769085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108709190611cbd565b906114de565b906114ea565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611cd6565b6000546001600160a01b0316331461091f5760405162461bcd60e51b81526004016105fb90611c58565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109c55760405162461bcd60e51b81526004016105fb90611c58565b60006109e2612710610876866001546114de90919063ffffffff16565b90506000610a01612710610876866001546114de90919063ffffffff16565b90506000610a20612710610876866001546114de90919063ffffffff16565b60188490556019839055601a81905590506000610a466103e86108766005610870610560565b9050808410158015610a585750808310155b8015610a645750808210155b610ac75760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105fb565b50505050505050565b6000546001600160a01b03163314610afa5760405162461bcd60e51b81526004016105fb90611c58565b600a839055600154610b1590620186a09061087690856114de565b600b55600154610b2e90620186a09061087690846114de565b600c55505050565b6000610556338484610de8565b6000546001600160a01b03163314610b6d5760405162461bcd60e51b81526004016105fb90611c58565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b9e9060016114ea565b60115411158015610bbe5750601454610bb89060016114ea565b60125411155b8015610bd95750601454610bd39060016114ea565b60135411155b610ac75760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105fb565b6000546001600160a01b03163314610c645760405162461bcd60e51b81526004016105fb90611c58565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105fb565b6001600160a01b038216610d7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105fb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106de8284611cf3565b6001600160a01b038316610e4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105fb565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105fb565b6001600160a01b038316600090815260026020526040902054811115610f305760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105fb565b6001600160a01b03831660009081526004602052604090205460ff16158015610f7257506001600160a01b03821660009081526004602052604090205460ff16155b15610fc157600754600160a01b900460ff16610fc15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105fb565b6001600160a01b03831660009081526004602052604090205460ff1615801561100357506001600160a01b03821660009081526004602052604090205460ff16155b801561101d57506007546001600160a01b03838116911614155b801561103457506001600160a01b03821661dead14155b156110ad57601a546001600160a01b03831660009081526002602052604090205461105f90836114f6565b11156110ad5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105fb565b6007546001600160a01b0384811691161461114e57601954811115806110eb57506001600160a01b03831660009081526004602052604090205460ff165b8061110e57506001600160a01b03821660009081526004602052604090205460ff165b61114e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fb565b6018548111158061117757506001600160a01b03831660009081526004602052604090205460ff165b8061119a57506001600160a01b03821660009081526004602052604090205460ff165b6111da5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fb565b6007546001600160a01b03838116911614801561121057506001600160a01b03831660009081526004602052604090205460ff16155b1561122e576001600860008282546112289190611d06565b90915550505b611239838383611502565b1561124f57611249600b54611361565b60006008555b6001600160a01b0383166000908152600260205260409020546112729082610ddc565b6001600160a01b03841660009081526002602052604081209190915561129884846115bc565b6112a257816112ad565b6112ad848484611602565b6001600160a01b0384166000908152600260205260409020549091506112d390826114f6565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113279085815260200190565b60405180910390a350505050565b600081848411156113595760405162461bcd60e51b81526004016105fb91906119b8565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361139b936002936108709391926113959283916114f6565b906114f6565b905060006113b882610876600d54866114de90919063ffffffff16565b905060006113c68483610ddc565b9050476113d282611709565b60006113de4783610ddc565b905060006114016113fa600d5488610ddc90919063ffffffff16565b83906114ea565b9050600061141a600d54836114de90919063ffffffff16565b9050801561142c5761142c8682611863565b600e54600090611441906108708560026114de565b90508015611485576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611483573d6000803e3d6000fd5b505b4780156114c8576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114c6573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106de8284611d19565b60006106de8284611d30565b60006106de8284611d06565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561153d5750600754600160a81b900460ff165b80156115525750600754600160a01b900460ff165b801561155b5750815b801561158057506001600160a01b03861660009081526004602052604090205460ff16155b801561159957506007546001600160a01b038681169116145b80156115a95750600a5460085410155b80156115b25750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106de5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061160f8585611917565b11156117025760006116326116248686611917565b6014546108709086906114ea565b3060009081526002602052604090205490915061164f90826114f6565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116a09085815260200190565b60405180910390a360006010541180156116c457506010546116c28686611917565b115b156116f0576116f03061dead6116eb601054610870601454896114ea90919063ffffffff16565b610de8565b6116fa8382610ddc565b9150506106de565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061173e5761173e611c78565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bb9190611d52565b816001815181106117ce576117ce611c78565b6001600160a01b0392831660209182029290920101526006546117f49130911684610cb8565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061182d908590600090869030904290600401611d6f565b600060405180830381600087803b15801561184757600080fd5b505af115801561185b573d6000803e3d6000fd5b505050505050565b60065461187b9030906001600160a01b031684610cb8565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118eb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119109190611de0565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061195657506001600160a01b03821660009081526005602052604090205460ff165b1561197057601454611969906064610ddc565b905061055a565b6007546001600160a01b039081169083160361198f575060125461055a565b6007546001600160a01b03908116908416036119ae575060115461055a565b5060135492915050565b600060208083528351808285015260005b818110156119e5578581018301518582016040015282016119c9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107cb57600080fd5b60008060408385031215611a2e57600080fd5b8235611a3981611a06565b946020939093013593505050565b80151581146107cb57600080fd5b600080600060408486031215611a6a57600080fd5b833567ffffffffffffffff80821115611a8257600080fd5b818601915086601f830112611a9657600080fd5b813581811115611aa557600080fd5b8760208260051b8501011115611aba57600080fd5b60209283019550935050840135611ad081611a47565b809150509250925092565b600080600060608486031215611af057600080fd5b8335611afb81611a06565b92506020840135611b0b81611a06565b929592945050506040919091013590565b600060208284031215611b2e57600080fd5b81356106de81611a06565b60008060408385031215611b4c57600080fd5b8235611b5781611a06565b91506020830135611b6781611a47565b809150509250929050565b600080600060608486031215611b8757600080fd5b8335611b9281611a06565b92506020840135611ba281611a06565b91506040840135611ad081611a06565b600080600060608486031215611bc757600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bf957600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c3d57600080fd5b8235611c4881611a06565b91506020830135611b6781611a06565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cb657611cb6611c8e565b5060010190565b600060208284031215611ccf57600080fd5b5051919050565b600060208284031215611ce857600080fd5b81516106de81611a47565b8181038181111561055a5761055a611c8e565b8082018082111561055a5761055a611c8e565b808202811582820484141761055a5761055a611c8e565b600082611d4d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d6457600080fd5b81516106de81611a06565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dbf5784516001600160a01b031683529383019391830191600101611d9a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611df557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f588916a616d2b96cd16a8336f6b1392c3c79451b6a846eab3dff1c9fba6003764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a3578063cb7f97d7146104c3578063dd62ed3e146104e3578063f2fde38b1461052957600080fd5b80639cc35351146104435780639d8740cb14610463578063a8aa1b311461048357600080fd5b80637cca52fe146103775780637d1db4a51461038d578063893d20e8146103a35780638cd4426d146103d55780639213c358146103f557806395d89b411461041557600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f657806351bc3c851461031657806370a082311461032b57806378109e541461036157600080fd5b80632f54bf6e1461027b578063313ce567146102aa5780633f4218e0146102c657600080fd5b806306fdde0314610191578063095ea7b3146101d157806318160ddd14610201578063229b6a5e1461022457806323b872dd14610246578063293230b81461026657600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b50604080518082019091526005815264526174747960d81b60208201525b6040516101c891906119b8565b60405180910390f35b3480156101dd57600080fd5b506101f16101ec366004611a1b565b610549565b60405190151581526020016101c8565b34801561020d57600080fd5b50610216610560565b6040519081526020016101c8565b34801561023057600080fd5b5061024461023f366004611a55565b6105d1565b005b34801561025257600080fd5b506101f1610261366004611adb565b61067b565b34801561027257600080fd5b506102446106e5565b34801561028757600080fd5b506101f1610296366004611b1c565b6000546001600160a01b0391821691161490565b3480156102b657600080fd5b50604051600981526020016101c8565b3480156102d257600080fd5b506101f16102e1366004611b1c565b60046020526000908152604090205460ff1681565b34801561030257600080fd5b50610244610311366004611b39565b610724565b34801561032257600080fd5b50610244610779565b34801561033757600080fd5b50610216610346366004611b1c565b6001600160a01b031660009081526002602052604090205490565b34801561036d57600080fd5b50610216601a5481565b34801561038357600080fd5b5061021660195481565b34801561039957600080fd5b5061021660185481565b3480156103af57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c8565b3480156103e157600080fd5b506102446103f0366004611a1b565b6107ce565b34801561040157600080fd5b50610244610410366004611b72565b6108f5565b34801561042157600080fd5b50604080518082019091526005815264524154545960d81b60208201526101bb565b34801561044f57600080fd5b5061024461045e366004611bb2565b61099b565b34801561046f57600080fd5b5061024461047e366004611bb2565b610ad0565b34801561048f57600080fd5b506007546103bd906001600160a01b031681565b3480156104af57600080fd5b506101f16104be366004611a1b565b610b36565b3480156104cf57600080fd5b506102446104de366004611bde565b610b43565b3480156104ef57600080fd5b506102166104fe366004611c2a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053557600080fd5b50610244610544366004611b1c565b610c3a565b6000610556338484610cb8565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105cc9290916105c69190610ddc565b90610ddc565b905090565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016105fb90611c58565b60405180910390fd5b60005b8281101561067557816005600086868581811061062657610626611c78565b905060200201602081019061063b9190611b1c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061066d81611ca4565b915050610607565b50505050565b6000610688848484610de8565b6106da84336106d585604051806060016040528060288152602001611e0f602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611335565b610cb8565b5060015b9392505050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016105fb90611c58565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461074e5760405162461bcd60e51b81526004016105fb90611c58565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a35760405162461bcd60e51b81526004016105fb90611c58565b30600090815260026020526040902054600b548111156107c25750600b545b6107cb81611361565b50565b6000546001600160a01b031633146107f85760405162461bcd60e51b81526004016105fb90611c58565b6040516370a0823160e01b815230600482015260009061087c906064906108769085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108709190611cbd565b906114de565b906114ea565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190611cd6565b6000546001600160a01b0316331461091f5760405162461bcd60e51b81526004016105fb90611c58565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109c55760405162461bcd60e51b81526004016105fb90611c58565b60006109e2612710610876866001546114de90919063ffffffff16565b90506000610a01612710610876866001546114de90919063ffffffff16565b90506000610a20612710610876866001546114de90919063ffffffff16565b60188490556019839055601a81905590506000610a466103e86108766005610870610560565b9050808410158015610a585750808310155b8015610a645750808210155b610ac75760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105fb565b50505050505050565b6000546001600160a01b03163314610afa5760405162461bcd60e51b81526004016105fb90611c58565b600a839055600154610b1590620186a09061087690856114de565b600b55600154610b2e90620186a09061087690846114de565b600c55505050565b6000610556338484610de8565b6000546001600160a01b03163314610b6d5760405162461bcd60e51b81526004016105fb90611c58565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610b9e9060016114ea565b60115411158015610bbe5750601454610bb89060016114ea565b60125411155b8015610bd95750601454610bd39060016114ea565b60135411155b610ac75760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105fb565b6000546001600160a01b03163314610c645760405162461bcd60e51b81526004016105fb90611c58565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105fb565b6001600160a01b038216610d7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105fb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106de8284611cf3565b6001600160a01b038316610e4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105fb565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105fb565b6001600160a01b038316600090815260026020526040902054811115610f305760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105fb565b6001600160a01b03831660009081526004602052604090205460ff16158015610f7257506001600160a01b03821660009081526004602052604090205460ff16155b15610fc157600754600160a01b900460ff16610fc15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105fb565b6001600160a01b03831660009081526004602052604090205460ff1615801561100357506001600160a01b03821660009081526004602052604090205460ff16155b801561101d57506007546001600160a01b03838116911614155b801561103457506001600160a01b03821661dead14155b156110ad57601a546001600160a01b03831660009081526002602052604090205461105f90836114f6565b11156110ad5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105fb565b6007546001600160a01b0384811691161461114e57601954811115806110eb57506001600160a01b03831660009081526004602052604090205460ff165b8061110e57506001600160a01b03821660009081526004602052604090205460ff165b61114e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fb565b6018548111158061117757506001600160a01b03831660009081526004602052604090205460ff165b8061119a57506001600160a01b03821660009081526004602052604090205460ff165b6111da5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fb565b6007546001600160a01b03838116911614801561121057506001600160a01b03831660009081526004602052604090205460ff16155b1561122e576001600860008282546112289190611d06565b90915550505b611239838383611502565b1561124f57611249600b54611361565b60006008555b6001600160a01b0383166000908152600260205260409020546112729082610ddc565b6001600160a01b03841660009081526002602052604081209190915561129884846115bc565b6112a257816112ad565b6112ad848484611602565b6001600160a01b0384166000908152600260205260409020549091506112d390826114f6565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113279085815260200190565b60405180910390a350505050565b600081848411156113595760405162461bcd60e51b81526004016105fb91906119b8565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361139b936002936108709391926113959283916114f6565b906114f6565b905060006113b882610876600d54866114de90919063ffffffff16565b905060006113c68483610ddc565b9050476113d282611709565b60006113de4783610ddc565b905060006114016113fa600d5488610ddc90919063ffffffff16565b83906114ea565b9050600061141a600d54836114de90919063ffffffff16565b9050801561142c5761142c8682611863565b600e54600090611441906108708560026114de565b90508015611485576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611483573d6000803e3d6000fd5b505b4780156114c8576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114c6573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106de8284611d19565b60006106de8284611d30565b60006106de8284611d06565b600c54600b543060009081526002602052604081205460095491938510159211159060ff1615801561153d5750600754600160a81b900460ff165b80156115525750600754600160a01b900460ff165b801561155b5750815b801561158057506001600160a01b03861660009081526004602052604090205460ff16155b801561159957506007546001600160a01b038681169116145b80156115a95750600a5460085410155b80156115b25750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106de5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061160f8585611917565b11156117025760006116326116248686611917565b6014546108709086906114ea565b3060009081526002602052604090205490915061164f90826114f6565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116a09085815260200190565b60405180910390a360006010541180156116c457506010546116c28686611917565b115b156116f0576116f03061dead6116eb601054610870601454896114ea90919063ffffffff16565b610de8565b6116fa8382610ddc565b9150506106de565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061173e5761173e611c78565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bb9190611d52565b816001815181106117ce576117ce611c78565b6001600160a01b0392831660209182029290920101526006546117f49130911684610cb8565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061182d908590600090869030904290600401611d6f565b600060405180830381600087803b15801561184757600080fd5b505af115801561185b573d6000803e3d6000fd5b505050505050565b60065461187b9030906001600160a01b031684610cb8565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118eb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119109190611de0565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061195657506001600160a01b03821660009081526005602052604090205460ff165b1561197057601454611969906064610ddc565b905061055a565b6007546001600160a01b039081169083160361198f575060125461055a565b6007546001600160a01b03908116908416036119ae575060115461055a565b5060135492915050565b600060208083528351808285015260005b818110156119e5578581018301518582016040015282016119c9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107cb57600080fd5b60008060408385031215611a2e57600080fd5b8235611a3981611a06565b946020939093013593505050565b80151581146107cb57600080fd5b600080600060408486031215611a6a57600080fd5b833567ffffffffffffffff80821115611a8257600080fd5b818601915086601f830112611a9657600080fd5b813581811115611aa557600080fd5b8760208260051b8501011115611aba57600080fd5b60209283019550935050840135611ad081611a47565b809150509250925092565b600080600060608486031215611af057600080fd5b8335611afb81611a06565b92506020840135611b0b81611a06565b929592945050506040919091013590565b600060208284031215611b2e57600080fd5b81356106de81611a06565b60008060408385031215611b4c57600080fd5b8235611b5781611a06565b91506020830135611b6781611a47565b809150509250929050565b600080600060608486031215611b8757600080fd5b8335611b9281611a06565b92506020840135611ba281611a06565b91506040840135611ad081611a06565b600080600060608486031215611bc757600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bf957600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c3d57600080fd5b8235611c4881611a06565b91506020830135611b6781611a06565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cb657611cb6611c8e565b5060010190565b600060208284031215611ccf57600080fd5b5051919050565b600060208284031215611ce857600080fd5b81516106de81611a47565b8181038181111561055a5761055a611c8e565b8082018082111561055a5761055a611c8e565b808202811582820484141761055a5761055a611c8e565b600082611d4d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d6457600080fd5b81516106de81611a06565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dbf5784516001600160a01b031683529383019391830191600101611d9a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611df557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f588916a616d2b96cd16a8336f6b1392c3c79451b6a846eab3dff1c9fba6003764736f6c63430008130033

Deployed Bytecode Sourcemap

4902:11463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7341:67;;;;;;;;;;-1:-1:-1;7401:5:0;;;;;;;;;;;;-1:-1:-1;;;7401:5:0;;;;7341:67;;;;;;;:::i;:::-;;;;;;;;8222:133;;;;;;;;;;-1:-1:-1;8222:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8222:133:0;1023:187:1;8361:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8361:132:0;1215:177:1;10681:184:0;;;;;;;;;;-1:-1:-1;10681:184:0;;;;;:::i;:::-;;:::i;:::-;;15710:309;;;;;;;;;;-1:-1:-1;15710:309:0;;;;;:::i;:::-;;:::i;7564:67::-;;;;;;;;;;;;;:::i;3806:87::-;;;;;;;;;;-1:-1:-1;3806:87:0;;;;;:::i;:::-;3861:4;3886:5;-1:-1:-1;;;;;3875:16:0;;;3886:5;;3875:16;;3806:87;7491:67;;;;;;;;;;-1:-1:-1;7491:67:0;;5105:1;3130:36:1;;3118:2;3103:18;7491:67:0;2988:184:1;5307:44:0;;;;;;;;;;-1:-1:-1;5307:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8108:108;;;;;;;;;;-1:-1:-1;8108:108:0;;;;;:::i;:::-;;:::i;10873:195::-;;;;;;;;;;;;;:::i;7721:103::-;;;;;;;;;;-1:-1:-1;7721:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7804:18:0;7787:7;7804:18;;;:9;:18;;;;;;;7721:103;6624:63;;;;;;;;;;;;;;;;6555:62;;;;;;;;;;;;;;;;6488:60;;;;;;;;;;;;;;;;7637:78;;;;;;;;;;-1:-1:-1;7689:7:0;7707:5;-1:-1:-1;;;;;7707:5:0;7637:78;;;-1:-1:-1;;;;;3728:32:1;;;3710:51;;3698:2;3683:18;7637:78:0;3564:203:1;11076:242:0;;;;;;;;;;-1:-1:-1;11076:242:0;;;;;:::i;:::-;;:::i;10335:338::-;;;;;;;;;;-1:-1:-1;10335:338:0;;;;;:::i;:::-;;:::i;7414:71::-;;;;;;;;;;-1:-1:-1;7476:7:0;;;;;;;;;;;;-1:-1:-1;;;7476:7:0;;;;7414:71;;9771:556;;;;;;;;;;-1:-1:-1;9771:556:0;;;;;:::i;:::-;;:::i;8912:319::-;;;;;;;;;;-1:-1:-1;8912:319:0;;;;;:::i;:::-;;:::i;5425:19::-;;;;;;;;;;-1:-1:-1;5425:19:0;;;;-1:-1:-1;;;;;5425:19:0;;;7830:139;;;;;;;;;;-1:-1:-1;7830:139:0;;;;;:::i;:::-;;:::i;9239:524::-;;;;;;;;;;-1:-1:-1;9239:524:0;;;;;:::i;:::-;;:::i;7975:127::-;;;;;;;;;;-1:-1:-1;7975:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8073:18:0;;;8056:7;8073:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7975:127;3899:111;;;;;;;;;;-1:-1:-1;3899:111:0;;;;;:::i;:::-;;:::i;8222:133::-;8297:4;8304:37;8313:10;8325:7;8334:6;8304:8;:37::i;:::-;-1:-1:-1;8349:4:0;8222:133;;;;;:::o;8361:132::-;7804:9;:18;;;;6175:42;8414:7;7804:18;;;;;8431:12;;8414:7;;8431:60;;7804:18;;8431:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8424:67;;8361:132;:::o;10681:184::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;;;;;;;;;10778:6:::1;10774:84;10788:20:::0;;::::1;10774:84;;;10847:8;10825:5;:19;10831:9;;10841:1;10831:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10825:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10825:19:0;:30;;-1:-1:-1;;10825:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10810:3;::::1;::::0;::::1;:::i;:::-;;;;10774:84;;;;10681:184:::0;;;:::o;15710:309::-;15808:4;15825:36;15835:6;15843:9;15854:6;15825:9;:36::i;:::-;15872:117;15881:6;15889:10;15901:87;15937:6;15901:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15901:19:0;;;;;;:11;:19;;;;;;;;15921:10;15901:31;;;;;;;;;:87;:35;:87::i;:::-;15872:8;:117::i;:::-;-1:-1:-1;16007:4:0;15710:309;;;;;;:::o;7564:67::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;7608:14:::1;:21:::0;;-1:-1:-1;;;;7608:21:0::1;-1:-1:-1::0;;;7608:21:0::1;::::0;;7564:67::o;8108:108::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8182:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8182:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8108:108::o;10873:195::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;10960:4:::1;10925:14;7804:18:::0;;;:9;:18;;;;;;10989:13:::1;::::0;10980:22;::::1;10977:51;;;-1:-1:-1::0;11013:13:0::1;::::0;10977:51:::1;11038:22;11053:6;11038:14;:22::i;:::-;10914:154;10873:195::o:0;11076:242::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;11180:41:::1;::::0;-1:-1:-1;;;11180:41:0;;11215:4:::1;11180:41;::::0;::::1;3710:51:1::0;11162:15:0::1;::::0;11180:63:::1;::::0;11239:3:::1;::::0;11180:54:::1;::::0;11226:7;;-1:-1:-1;;;;;11180:26:0;::::1;::::0;::::1;::::0;3683:18:1;;11180:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;11280:20;::::0;11254:56:::1;::::0;-1:-1:-1;;;11254:56:0;;-1:-1:-1;;;;;11280:20:0;;::::1;11254:56;::::0;::::1;6978:51:1::0;7045:18;;;7038:34;;;11162:81:0;;-1:-1:-1;11254:25:0;::::1;::::0;::::1;::::0;6951:18:1;;11254:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10335:338::-:0;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;10457:18:::1;:31:::0;;-1:-1:-1;;;;;10457:31:0;;::::1;-1:-1:-1::0;;;;;;10457:31:0;;::::1;::::0;::::1;::::0;;;10490:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10523:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10457:18:::1;10569:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10569:30:0;;::::1;10457:31:::0;10569:30;;::::1;::::0;;;10601:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10633:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10335:338::o;9771:556::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;9877:13:::1;9893:33;9920:5;9893:22;9910:4;9893:12;;:16;;:22;;;;:::i;:33::-;9877:49;;9928:19;9950:34;9978:5;9950:23;9967:5;9950:12;;:16;;:23;;;;:::i;:34::-;9928:56;;9986:17;10006:36;10036:5;10006:25;10023:7;10006:12;;:16;;:25;;;;:::i;:36::-;10053:12;:20:::0;;;10075:14:::1;:28:::0;;;10105:15:::1;:27:::0;;;9986:56;-1:-1:-1;;10159:30:0::1;10184:4;10159:20;10177:1;10159:13;:11;:13::i;:30::-;10143:46;;10217:5;10208;:14;;:38;;;;;10241:5;10226:11;:20;;10208:38;:60;;;;;10263:5;10250:9;:18;;10208:60;10200:119;;;::::0;-1:-1:-1;;;10200:119:0;;7535:2:1;10200: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;;10200:119:0::1;7333:410:1::0;10200:119:0::1;9866:461;;;;9771:556:::0;;;:::o;8912:319::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;9045:10:::1;:24:::0;;;9087:12:::1;::::0;:53:::1;::::0;9132:6:::1;::::0;9087:32:::1;::::0;9104:14;9087:16:::1;:32::i;:53::-;9071:13;:69:::0;9169:12:::1;::::0;:54:::1;::::0;9215:6:::1;::::0;9169:33:::1;::::0;9186:15;9169:16:::1;:33::i;:54::-;9152:14;:71:::0;-1:-1:-1;;;8912:319:0:o;7830:139::-;7908:4;7915:40;7925:10;7937:9;7948:6;7915:9;:40::i;9239:524::-;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;9429:12:::1;:25:::0;;;9456:12:::1;:25:::0;;;9483:7:::1;:15:::0;;;9500:14:::1;:29:::0;;;9531:8:::1;:17:::0;;;9550:7:::1;:15:::0;;;9567:11:::1;:20:::0;;;9618:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9618:15:0::1;:18::i;:::-;9606:8;;:30;;:63;;;;-1:-1:-1::0;9651:11:0::1;::::0;:18:::1;::::0;9667:1:::1;9651:15;:18::i;:::-;9640:7;;:29;;9606:63;:100;;;;-1:-1:-1::0;9688:11:0::1;::::0;:18:::1;::::0;9704:1:::1;9688:15;:18::i;:::-;9673:11;;:33;;9606:100;9598:157;;;::::0;-1:-1:-1;;;9598:157:0;;7950:2:1;9598: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;;9598:157:0::1;7748:408:1::0;3899:111:0;3861:4;3886:5;-1:-1:-1;;;;;3886:5:0;3773:10;3875:16;3757:38;;;;-1:-1:-1;;;3757:38:0;;;;;;;:::i;:::-;3965:5:::1;:11:::0;;-1:-1:-1;;;;;;3965:11:0::1;-1:-1:-1::0;;;;;3965:11:0;::::1;::::0;;::::1;::::0;;;3983:25:::1;::::0;3710:51:1;;;3983:25:0::1;::::0;3698:2:1;3683:18;3983:25:0::1;;;;;;;3899:111:::0;:::o;16027:335::-;-1:-1:-1;;;;;16120:19:0;;16112:68;;;;-1:-1:-1;;;16112:68:0;;8579:2:1;16112: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;;16112:68:0;8377:400:1;16112:68:0;-1:-1:-1;;;;;16199:21:0;;16191:68;;;;-1:-1:-1;;;16191:68:0;;8984:2:1;16191: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;;16191:68:0;8782:398:1;16191:68:0;-1:-1:-1;;;;;16270:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16322:32;;1361:25:1;;;16322:32:0;;1334:18:1;16322:32:0;;;;;;;16027:335;;;:::o;1545:98::-;1603:7;1630:5;1634:1;1630;:5;:::i;14269:1433::-;-1:-1:-1;;;;;14366:20:0;;14358:70;;;;-1:-1:-1;;;14358:70:0;;9520:2:1;14358: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;;14358:70:0;9318:401:1;14358:70:0;-1:-1:-1;;;;;14447:23:0;;14439:71;;;;-1:-1:-1;;;14439:71:0;;9926:2:1;14439: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;;14439:71:0;9724:399:1;14439:71:0;-1:-1:-1;;;;;7804:18:0;;7787:7;7804:18;;;:9;:18;;;;;;14529:6;:27;;14521:88;;;;-1:-1:-1;;;14521:88:0;;10330:2:1;14521: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;;14521:88:0;10128:413:1;14521:88:0;-1:-1:-1;;;;;14624:19:0;;;;;;:11;:19;;;;;;;;14623:20;:47;;;;-1:-1:-1;;;;;;14648:22:0;;;;;;:11;:22;;;;;;;;14647:23;14623:47;14620:95;;;14680:14;;-1:-1:-1;;;14680:14:0;;;;14672:41;;;;-1:-1:-1;;;14672:41:0;;10748:2:1;14672:41:0;;;10730:21:1;10787:2;10767:18;;;10760:30;-1:-1:-1;;;10806:18:1;;;10799:44;10860:18;;14672:41:0;10546:338:1;14672:41:0;-1:-1:-1;;;;;14729:19:0;;;;;;:11;:19;;;;;;;;14728:20;:47;;;;-1:-1:-1;;;;;;14753:22:0;;;;;;:11;:22;;;;;;;;14752:23;14728:47;:77;;;;-1:-1:-1;14800:4:0;;-1:-1:-1;;;;;14779:26:0;;;14800:4;;14779:26;;14728:77;:107;;;;-1:-1:-1;;;;;;14809:26:0;;6175:42;14809:26;;14728:107;14725:220;;;14893:15;;-1:-1:-1;;;;;14856:20:0;;;;;;:9;:20;;;;;;:32;;14881:6;14856:24;:32::i;:::-;14855:53;;14847:96;;;;-1:-1:-1;;;14847:96:0;;11091:2:1;14847:96:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:32;11149:18;;;11142:60;11219:18;;14847:96:0;10889:354:1;14847:96:0;14968:4;;-1:-1:-1;;;;;14958:14:0;;;14968:4;;14958:14;14955:124;;14992:14;;14982:6;:24;;:47;;;-1:-1:-1;;;;;;15010:19:0;;;;;;:11;:19;;;;;;;;14982:47;:73;;;-1:-1:-1;;;;;;15033:22:0;;;;;;:11;:22;;;;;;;;14982:73;14974:103;;;;-1:-1:-1;;;14974:103:0;;11450:2:1;14974:103:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;14974:103:0;11248:341:1;14974:103:0;15107:12;;15097:6;:22;;:45;;;-1:-1:-1;;;;;;15123:19:0;;;;;;:11;:19;;;;;;;;15097:45;:71;;;-1:-1:-1;;;;;;15146:22:0;;;;;;:11;:22;;;;;;;;15097:71;15089:101;;;;-1:-1:-1;;;15089:101:0;;11450:2:1;15089:101:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;15089:101:0;11248:341:1;15089:101:0;15218:4;;-1:-1:-1;;;;;15205:17:0;;;15218:4;;15205:17;:41;;;;-1:-1:-1;;;;;;15227:19:0;;;;;;:11;:19;;;;;;;;15226:20;15205:41;15202:71;;;15269:1;15248:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15202:71:0;15286:45;15305:6;15313:9;15324:6;15286:18;:45::i;:::-;15283:105;;;15333:29;15348:13;;15333:14;:29::i;:::-;15384:1;15364:9;:22;15283:105;-1:-1:-1;;;;;15418:17:0;;;;;;:9;:17;;;;;;:29;;15440:6;15418:21;:29::i;:::-;-1:-1:-1;;;;;15398:17:0;;;;;;:9;:17;;;;;:49;;;;15483:32;15408:6;15505:9;15483:13;:32::i;:::-;:78;;15555:6;15483:78;;;15518:34;15526:6;15534:9;15545:6;15518:7;:34::i;:::-;-1:-1:-1;;;;;15595:20:0;;;;;;:9;:20;;;;;;15458:103;;-1:-1:-1;15595:40:0;;15458:103;15595:24;:40::i;:::-;-1:-1:-1;;;;;15572:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15651:43;;;;;;;;;;15679:14;1361:25:1;;1349:2;1334:18;;1215:177;15651:43:0;;;;;;;;14347:1355;14269:1433;;;:::o;1969:240::-;2089:7;2150:12;2142:6;;;;2134:29;;;;-1:-1:-1;;;2134:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2185:5:0;;;1969:240::o;11326:1063::-;5783:8;:15;;-1:-1:-1;;5783:15:0;5794:4;5783:15;;;;;;11463:14:::1;::::0;11445:12:::1;::::0;11421::::1;::::0;5783:8;;11420:66:::1;::::0;11484:1:::1;::::0;11421:57:::1;::::0;11463:14;;11421:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11420:66::-;11397:89;;11497:32;11532:42;11561:12;11532:24;11543:12;;11532:6;:10;;:24;;;;:::i;:42::-;11497:77:::0;-1:-1:-1;11585:14:0::1;11602:36;:6:::0;11497:77;11602:10:::1;:36::i;:::-;11585:53:::0;-1:-1:-1;11674:21:0::1;11706:24;11585:53:::0;11706:16:::1;:24::i;:::-;11741:20;11764:41;:21;11790:14:::0;11764:25:::1;:41::i;:::-;11741:64;;11816:19;11837:48;11854:30;11871:12;;11854;:16;;:30;;;;:::i;:::-;11837:12:::0;;:16:::1;:48::i;:::-;11816:69;;11896:29;11928;11944:12;;11928:11;:15;;:29;;;;:::i;:::-;11896:61:::0;-1:-1:-1;11971:34:0;;11968:103:::1;;12007:61;12020:24;12046:21;12007:12;:61::i;:::-;12127:12;::::0;12081:20:::1;::::0;12104:36:::1;::::0;:18:::1;:11:::0;12120:1:::1;12104:15;:18::i;:36::-;12081:59:::0;-1:-1:-1;12154:16:0;;12151:73:::1;;12180:18;::::0;12172:50:::1;::::0;-1:-1:-1;;;;;12180:18:0;;::::1;::::0;12172:50;::::1;;;::::0;12209:12;;12180:18:::1;12172:50:::0;12180:18;12172:50;12209:12;12180:18;12172:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12151:73;12260:21;12295:28:::0;;12292:90:::1;;12333:20;::::0;12325:55:::1;::::0;-1:-1:-1;;;;;12333:20:0;;::::1;::::0;12325:55;::::1;;;::::0;12364:15;;12333:20:::1;12325:55:::0;12333:20;12325:55;12364:15;12333:20;12325:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12292:90;-1:-1:-1::0;;5803:8:0;:16;;-1:-1:-1;;5803:16:0;;;-1:-1:-1;;;;;;;;11326:1063:0:o;1651:98::-;1709:7;1736:5;1740:1;1736;:5;:::i;1757:98::-;1815:7;1842:5;1846:1;1842;:5;:::i;1439:98::-;1497:7;1524:5;1528:1;1524;:5;:::i;8501:403::-;8646:14;;8721:13;;8711:4;8603;7804:18;;;:9;:18;;;;;;8753:8;;8603:4;;8636:24;;;;-1:-1:-1;8693:41:0;;8753:8;;8752:9;:24;;;;-1:-1:-1;8765:11:0;;-1:-1:-1;;;8765:11:0;;;;8752:24;:42;;;;-1:-1:-1;8780:14:0;;-1:-1:-1;;;8780:14:0;;;;8752:42;:54;;;;;8798:8;8752:54;:78;;;;-1:-1:-1;;;;;;8811:19:0;;;;;;:11;:19;;;;;;;;8810:20;8752:78;:99;;;;-1:-1:-1;8847:4:0;;-1:-1:-1;;;;;8834:17:0;;;8847:4;;8834:17;8752:99;:126;;;;;8868:10;;8855:9;;:23;;8752:126;:144;;;;;8882:14;8752:144;8745:151;8501:403;-1:-1:-1;;;;;;8501:403:0:o;13190:160::-;-1:-1:-1;;;;;13296:19:0;;13271:4;13296:19;;;:11;:19;;;;;;;;13295:20;:47;;;;-1:-1:-1;;;;;;;13320:22:0;;;;;:11;:22;;;;;;;;13319:23;;13190:160;-1:-1:-1;13190:160:0:o;13671:590::-;13757:7;13813:1;13780:30;13792:6;13800:9;13780:11;:30::i;:::-;:34;13777:462;;;13826:17;13846:59;13874:30;13886:6;13894:9;13874:11;:30::i;:::-;13857:11;;13846:23;;:6;;:10;:23::i;:59::-;13961:4;13943:24;;;;:9;:24;;;;;;13826:79;;-1:-1:-1;13943:39:0;;13826:79;13943:28;:39::i;:::-;13934:4;13916:24;;;;:9;:24;;;;;;;:66;;;;13998:42;;-1:-1:-1;;;;;13998:42:0;;;;;;;14030:9;1361:25:1;;1349:2;1334:18;;1215:177;13998:42:0;;;;;;;;14072:1;14054:7;;:20;:64;;;;;14111:7;;14078:30;14090:6;14098:9;14078:11;:30::i;:::-;:40;14054:64;14051:148;;;14120:77;14138:4;6175:42;14160:36;14188:7;;14160:23;14171:11;;14160:6;:10;;:23;;;;:::i;:36::-;14120:9;:77::i;:::-;14216:21;:6;14227:9;14216:10;:21::i;:::-;14209:28;;;;;13777:462;-1:-1:-1;14247:6:0;13671:590;-1:-1:-1;;13671:590:0:o;12748:434::-;12838:16;;;12852:1;12838:16;;;;;;;;12814:21;;12838:16;;;;;;;;;;-1:-1:-1;12838:16:0;12814:40;;12883:4;12865;12870:1;12865:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12865:23:0;;;:7;;;;;;;;;;:23;;;;12909:6;;:13;;;-1:-1:-1;;;12909:13:0;;;;:6;;;;;:11;;:13;;;;;12865:7;;12909:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12899:4;12904:1;12899:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12899:23:0;;;:7;;;;;;;;;:23;12965:6;;12933:53;;12950:4;;12965:6;12974:11;12933:8;:53::i;:::-;12997:6;;:177;;-1:-1:-1;;;12997:177:0;;-1:-1:-1;;;;;12997:6:0;;;;:57;;:177;;13069:11;;12997:6;;13111:4;;13138;;13158:15;;12997:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12803:379;12748:434;:::o;12397:343::-;12510:6;;12478:53;;12495:4;;-1:-1:-1;;;;;12510:6:0;12519:11;12478:8;:53::i;:::-;12542:6;;12683:18;;12542:190;;-1:-1:-1;;;12542:190:0;;12605:4;12542:190;;;13833:34:1;13883:18;;;13876:34;;;12542:6:0;13926:18:1;;;13919:34;;;13969:18;;;13962:34;-1:-1:-1;;;;;12683:18:0;;;14012:19:1;;;14005:44;12716:15:0;14065:19:1;;;14058:35;12542:6:0;;;:22;;12572:9;;13767:19:1;;12542:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12397:343;;:::o;13358:305::-;-1:-1:-1;;;;;13460:13:0;;13437:7;13460:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;13477:16:0;;;;;;:5;:16;;;;;;;;13460:33;13457:76;;;13502:11;;:29;;13526:3;13502:15;:29::i;:::-;13495:36;;;;13457:76;13559:4;;-1:-1:-1;;;;;13559:4:0;;;13546:17;;;;13543:38;;-1:-1:-1;13572:7:0;;13565:14;;13543:38;13604:4;;-1:-1:-1;;;;;13604:4:0;;;13594:14;;;;13591:36;;-1:-1:-1;13617:8:0;;13610:15;;13591:36;-1:-1:-1;13644:11:0;;13358: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;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://f588916a616d2b96cd16a8336f6b1392c3c79451b6a846eab3dff1c9fba60037

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.