ETH Price: $2,506.54 (-0.89%)

Contract

0x70D09Fc7A03Ab603fE2Da434bC4fcbf7c4B9FC73
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve183079202023-10-08 19:43:59327 days ago1696794239IN
0x70D09Fc7...7c4B9FC73
0 ETH0.000293086.3
Approve181427562023-09-15 16:19:47350 days ago1694794787IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0009575120.58236319
Approve180911932023-09-08 10:46:47357 days ago1694170007IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005173511.12079934
Approve180843422023-09-07 11:46:47358 days ago1694087207IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0007104415.25184956
Approve180521192023-09-02 23:32:59362 days ago1693697579IN
0x70D09Fc7...7c4B9FC73
0 ETH0.000453849.75568676
Approve180395112023-09-01 5:07:23364 days ago1693544843IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005005810.82740258
Approve180380702023-09-01 0:16:47364 days ago1693527407IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005608512.13111504
Approve180374932023-08-31 22:20:23364 days ago1693520423IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0009891421.39487526
Approve180361802023-08-31 17:54:35365 days ago1693504475IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0016241934.91316033
Transfer180353482023-08-31 15:07:11365 days ago1693494431IN
0x70D09Fc7...7c4B9FC73
0 ETH0.001878530.72861481
Transfer180353442023-08-31 15:06:23365 days ago1693494383IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0016033426.2276251
Transfer180353412023-08-31 15:05:47365 days ago1693494347IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0014686324.02395492
Transfer180353372023-08-31 15:04:59365 days ago1693494299IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0014937724.43526652
Transfer180353342023-08-31 15:04:23365 days ago1693494263IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0015752225.76768114
Transfer180353312023-08-31 15:03:47365 days ago1693494227IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0015976826.13507165
Approve180342112023-08-31 11:18:35365 days ago1693480715IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0006820514.64226586
Approve180341432023-08-31 11:04:59365 days ago1693479899IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0007582816.38006402
Approve180340742023-08-31 10:51:11365 days ago1693479071IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005966712.82583262
Approve180340472023-08-31 10:45:47365 days ago1693478747IN
0x70D09Fc7...7c4B9FC73
0 ETH0.000732715.75
Approve180339252023-08-31 10:21:11365 days ago1693477271IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0006595514.17755584
Approve180338722023-08-31 10:10:35365 days ago1693476635IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0009195119.7402099
Approve180338002023-08-31 9:56:11365 days ago1693475771IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0006213.3274392
Approve180336482023-08-31 9:25:47365 days ago1693473947IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0007697516.52499026
Approve180336142023-08-31 9:18:59365 days ago1693473539IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005796612.46028074
Approve180335392023-08-31 9:03:59365 days ago1693472639IN
0x70D09Fc7...7c4B9FC73
0 ETH0.0005846512.63275674
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
180334832023-08-31 8:52:47365 days ago1693471967
0x70D09Fc7...7c4B9FC73
0.01946297 ETH
180334832023-08-31 8:52:47365 days ago1693471967
0x70D09Fc7...7c4B9FC73
0.01927026 ETH
180334832023-08-31 8:52:47365 days ago1693471967
0x70D09Fc7...7c4B9FC73
0.03873323 ETH
180331142023-08-31 7:38:59365 days ago1693467539
0x70D09Fc7...7c4B9FC73
0.01606959 ETH
180331142023-08-31 7:38:59365 days ago1693467539
0x70D09Fc7...7c4B9FC73
0.01591048 ETH
180331142023-08-31 7:38:59365 days ago1693467539
0x70D09Fc7...7c4B9FC73
0.03198008 ETH
180330082023-08-31 7:17:35365 days ago1693466255
0x70D09Fc7...7c4B9FC73
0.01814862 ETH
180330082023-08-31 7:17:35365 days ago1693466255
0x70D09Fc7...7c4B9FC73
0.01796893 ETH
180330082023-08-31 7:17:35365 days ago1693466255
0x70D09Fc7...7c4B9FC73
0.03611755 ETH
180329152023-08-31 6:58:47365 days ago1693465127
0x70D09Fc7...7c4B9FC73
0.07107846 ETH
180329152023-08-31 6:58:47365 days ago1693465127
0x70D09Fc7...7c4B9FC73
0.07037472 ETH
180329152023-08-31 6:58:47365 days ago1693465127
0x70D09Fc7...7c4B9FC73
0.14145318 ETH
180328232023-08-31 6:40:11365 days ago1693464011
0x70D09Fc7...7c4B9FC73
0.05378447 ETH
180328232023-08-31 6:40:11365 days ago1693464011
0x70D09Fc7...7c4B9FC73
0.05325195 ETH
180328232023-08-31 6:40:11365 days ago1693464011
0x70D09Fc7...7c4B9FC73
0.10703642 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.05127464 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.05076697 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.10204161 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.05127464 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.05076697 ETH
180328222023-08-31 6:39:59365 days ago1693463999
0x70D09Fc7...7c4B9FC73
0.10204161 ETH
180327292023-08-31 6:21:11365 days ago1693462871
0x70D09Fc7...7c4B9FC73
0.11778619 ETH
180327292023-08-31 6:21:11365 days ago1693462871
0x70D09Fc7...7c4B9FC73
0.11661999 ETH
180327292023-08-31 6:21:11365 days ago1693462871
0x70D09Fc7...7c4B9FC73
0.23440619 ETH
180326002023-08-31 5:55:11365 days ago1693461311
0x70D09Fc7...7c4B9FC73
0.12544315 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PEPE2

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-08-31
*/

/**
Pepe 2.0 - $PEPE2  

Pepe 2.0, a project made by community for community. 
Feels good man, to make a project that is safe as ever for us meme enthusiasts! 

Website: https://pepe2community.org/
Telegram: https://t.me/pepe2community
Twitter: https://twitter.com/pepe2community_

*/

// 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 PEPE2 is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Pepe 2.0';
    string private constant _symbol = 'PEPE2';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 69000000000 * (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 = 6000;
    uint256 private transferFee = 6000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xA3B57283796BEf65A6d809b8aB59f3fcCd9A41b1; 
    address internal marketing_receiver = 0xA3B57283796BEf65A6d809b8aB59f3fcCd9A41b1;
    address internal liquidity_receiver = 0xA3B57283796BEf65A6d809b8aB59f3fcCd9A41b1;
    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"}]

6080604052620000126009600a620004d4565b6200002390641010b87200620004ec565b60018190556007805461ffff60a01b1916600160a81b1790556004600a55620186a09062000054906103e8620004ec565b62000060919062000506565b600b55620186a0600154600a620000789190620004ec565b62000084919062000506565b600c556000600d8190556101f4600e819055600f55601055610bb8601155611770601281905560135561271060148190556015805473a3b57283796bef65a6d809b8ab59f3fccd9a41b16001600160a01b0319918216811790925560168054821683179055601780549091169091179055600154620001059060c8620004ec565b62000111919062000506565b60185561271060015460c8620001289190620004ec565b62000134919062000506565b60195561271060015460c86200014b9190620004ec565b62000157919062000506565b601a553480156200016757600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000529565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000269919062000529565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000529565b600680546001600160a01b038581166001600160a01b031992831617909255600780548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560175486168552828520805482168317905560165486168552828520805482168317905560155490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000554565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000416578160001904821115620003fa57620003fa620003bf565b808516156200040857918102915b93841c9390800290620003da565b509250929050565b6000826200042f57506001620004ce565b816200043e57506000620004ce565b8160018114620004575760028114620004625762000482565b6001915050620004ce565b60ff841115620004765762000476620003bf565b50506001821b620004ce565b5060208310610133831016604e8410600b8410161715620004a7575081810a620004ce565b620004b38383620003d5565b8060001904821115620004ca57620004ca620003bf565b0290505b92915050565b6000620004e560ff8416836200041e565b9392505050565b8082028115828204841417620004ce57620004ce620003bf565b6000826200052457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053c57600080fd5b81516001600160a01b0381168114620004e557600080fd5b611e6f80620005646000396000f3fe6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a6578063cb7f97d7146104c6578063dd62ed3e146104e6578063f2fde38b1461052c57600080fd5b80639cc35351146104465780639d8740cb14610466578063a8aa1b311461048657600080fd5b80637cca52fe1461037a5780637d1db4a514610390578063893d20e8146103a65780638cd4426d146103d85780639213c358146103f857806395d89b411461041857600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f957806351bc3c851461031957806370a082311461032e57806378109e541461036457600080fd5b80632f54bf6e1461027e578063313ce567146102ad5780633f4218e0146102c957600080fd5b806306fdde0314610191578063095ea7b3146101d457806318160ddd14610204578063229b6a5e1461022757806323b872dd14610249578063293230b81461026957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600881526705065706520322e360c41b60208201525b6040516101cb91906119bb565b60405180910390f35b3480156101e057600080fd5b506101f46101ef366004611a1e565b61054c565b60405190151581526020016101cb565b34801561021057600080fd5b50610219610563565b6040519081526020016101cb565b34801561023357600080fd5b50610247610242366004611a58565b6105d4565b005b34801561025557600080fd5b506101f4610264366004611ade565b61067e565b34801561027557600080fd5b506102476106e8565b34801561028a57600080fd5b506101f4610299366004611b1f565b6000546001600160a01b0391821691161490565b3480156102b957600080fd5b50604051600981526020016101cb565b3480156102d557600080fd5b506101f46102e4366004611b1f565b60046020526000908152604090205460ff1681565b34801561030557600080fd5b50610247610314366004611b3c565b610727565b34801561032557600080fd5b5061024761077c565b34801561033a57600080fd5b50610219610349366004611b1f565b6001600160a01b031660009081526002602052604090205490565b34801561037057600080fd5b50610219601a5481565b34801561038657600080fd5b5061021960195481565b34801561039c57600080fd5b5061021960185481565b3480156103b257600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101cb565b3480156103e457600080fd5b506102476103f3366004611a1e565b6107d1565b34801561040457600080fd5b50610247610413366004611b75565b6108f8565b34801561042457600080fd5b506040805180820190915260058152642822a8229960d91b60208201526101be565b34801561045257600080fd5b50610247610461366004611bb5565b61099e565b34801561047257600080fd5b50610247610481366004611bb5565b610ad3565b34801561049257600080fd5b506007546103c0906001600160a01b031681565b3480156104b257600080fd5b506101f46104c1366004611a1e565b610b39565b3480156104d257600080fd5b506102476104e1366004611be1565b610b46565b3480156104f257600080fd5b50610219610501366004611c2d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053857600080fd5b50610247610547366004611b1f565b610c3d565b6000610559338484610cbb565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105cf9290916105c99190610ddf565b90610ddf565b905090565b6000546001600160a01b031633146106075760405162461bcd60e51b81526004016105fe90611c5b565b60405180910390fd5b60005b8281101561067857816005600086868581811061062957610629611c7b565b905060200201602081019061063e9190611b1f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061067081611ca7565b91505061060a565b50505050565b600061068b848484610deb565b6106dd84336106d885604051806060016040528060288152602001611e12602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611338565b610cbb565b5060015b9392505050565b6000546001600160a01b031633146107125760405162461bcd60e51b81526004016105fe90611c5b565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107515760405162461bcd60e51b81526004016105fe90611c5b565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a65760405162461bcd60e51b81526004016105fe90611c5b565b30600090815260026020526040902054600b548111156107c55750600b545b6107ce81611364565b50565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016105fe90611c5b565b6040516370a0823160e01b815230600482015260009061087f906064906108799085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190611cc0565b906114e1565b906114ed565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190611cd9565b6000546001600160a01b031633146109225760405162461bcd60e51b81526004016105fe90611c5b565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109c85760405162461bcd60e51b81526004016105fe90611c5b565b60006109e5612710610879866001546114e190919063ffffffff16565b90506000610a04612710610879866001546114e190919063ffffffff16565b90506000610a23612710610879866001546114e190919063ffffffff16565b60188490556019839055601a81905590506000610a496103e86108796005610873610563565b9050808410158015610a5b5750808310155b8015610a675750808210155b610aca5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105fe565b50505050505050565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016105fe90611c5b565b600a839055600154610b1890620186a09061087990856114e1565b600b55600154610b3190620186a09061087990846114e1565b600c55505050565b6000610559338484610deb565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016105fe90611c5b565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610ba19060016114ed565b60115411158015610bc15750601454610bbb9060016114ed565b60125411155b8015610bdc5750601454610bd69060016114ed565b60135411155b610aca5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105fe565b6000546001600160a01b03163314610c675760405162461bcd60e51b81526004016105fe90611c5b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d1d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105fe565b6001600160a01b038216610d7e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105fe565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106e18284611cf6565b6001600160a01b038316610e4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105fe565b6001600160a01b038216610eb15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105fe565b6001600160a01b038316600090815260026020526040902054811115610f335760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105fe565b6001600160a01b03831660009081526004602052604090205460ff16158015610f7557506001600160a01b03821660009081526004602052604090205460ff16155b15610fc457600754600160a01b900460ff16610fc45760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105fe565b6001600160a01b03831660009081526004602052604090205460ff1615801561100657506001600160a01b03821660009081526004602052604090205460ff16155b801561102057506007546001600160a01b03838116911614155b801561103757506001600160a01b03821661dead14155b156110b057601a546001600160a01b03831660009081526002602052604090205461106290836114f9565b11156110b05760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105fe565b6007546001600160a01b0384811691161461115157601954811115806110ee57506001600160a01b03831660009081526004602052604090205460ff165b8061111157506001600160a01b03821660009081526004602052604090205460ff165b6111515760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fe565b6018548111158061117a57506001600160a01b03831660009081526004602052604090205460ff165b8061119d57506001600160a01b03821660009081526004602052604090205460ff165b6111dd5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fe565b6007546001600160a01b03838116911614801561121357506001600160a01b03831660009081526004602052604090205460ff16155b156112315760016008600082825461122b9190611d09565b90915550505b61123c838383611505565b156112525761124c600b54611364565b60006008555b6001600160a01b0383166000908152600260205260409020546112759082610ddf565b6001600160a01b03841660009081526002602052604081209190915561129b84846115bf565b6112a557816112b0565b6112b0848484611605565b6001600160a01b0384166000908152600260205260409020549091506112d690826114f9565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061132a9085815260200190565b60405180910390a350505050565b6000818484111561135c5760405162461bcd60e51b81526004016105fe91906119bb565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361139e936002936108739391926113989283916114f9565b906114f9565b905060006113bb82610879600d54866114e190919063ffffffff16565b905060006113c98483610ddf565b9050476113d58261170c565b60006113e14783610ddf565b905060006114046113fd600d5488610ddf90919063ffffffff16565b83906114ed565b9050600061141d600d54836114e190919063ffffffff16565b9050801561142f5761142f8682611866565b600e54600090611444906108738560026114e1565b90508015611488576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611486573d6000803e3d6000fd5b505b4780156114cb576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114c9573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106e18284611d1c565b60006106e18284611d33565b60006106e18284611d09565b600c54600b543060009081526002602052604081205460095491938510159211159060ff161580156115405750600754600160a81b900460ff165b80156115555750600754600160a01b900460ff165b801561155e5750815b801561158357506001600160a01b03861660009081526004602052604090205460ff16155b801561159c57506007546001600160a01b038681169116145b80156115ac5750600a5460085410155b80156115b55750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106e15750506001600160a01b031660009081526004602052604090205460ff1615919050565b600080611612858561191a565b1115611705576000611635611627868661191a565b6014546108739086906114ed565b3060009081526002602052604090205490915061165290826114f9565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116a39085815260200190565b60405180910390a360006010541180156116c757506010546116c5868661191a565b115b156116f3576116f33061dead6116ee601054610873601454896114ed90919063ffffffff16565b610deb565b6116fd8382610ddf565b9150506106e1565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061174157611741611c7b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561179a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117be9190611d55565b816001815181106117d1576117d1611c7b565b6001600160a01b0392831660209182029290920101526006546117f79130911684610cbb565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611830908590600090869030904290600401611d72565b600060405180830381600087803b15801561184a57600080fd5b505af115801561185e573d6000803e3d6000fd5b505050505050565b60065461187e9030906001600160a01b031684610cbb565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119139190611de3565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061195957506001600160a01b03821660009081526005602052604090205460ff165b156119735760145461196c906064610ddf565b905061055d565b6007546001600160a01b0390811690831603611992575060125461055d565b6007546001600160a01b03908116908416036119b1575060115461055d565b5060135492915050565b600060208083528351808285015260005b818110156119e8578581018301518582016040015282016119cc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ce57600080fd5b60008060408385031215611a3157600080fd5b8235611a3c81611a09565b946020939093013593505050565b80151581146107ce57600080fd5b600080600060408486031215611a6d57600080fd5b833567ffffffffffffffff80821115611a8557600080fd5b818601915086601f830112611a9957600080fd5b813581811115611aa857600080fd5b8760208260051b8501011115611abd57600080fd5b60209283019550935050840135611ad381611a4a565b809150509250925092565b600080600060608486031215611af357600080fd5b8335611afe81611a09565b92506020840135611b0e81611a09565b929592945050506040919091013590565b600060208284031215611b3157600080fd5b81356106e181611a09565b60008060408385031215611b4f57600080fd5b8235611b5a81611a09565b91506020830135611b6a81611a4a565b809150509250929050565b600080600060608486031215611b8a57600080fd5b8335611b9581611a09565b92506020840135611ba581611a09565b91506040840135611ad381611a09565b600080600060608486031215611bca57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bfc57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c4057600080fd5b8235611c4b81611a09565b91506020830135611b6a81611a09565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cb957611cb9611c91565b5060010190565b600060208284031215611cd257600080fd5b5051919050565b600060208284031215611ceb57600080fd5b81516106e181611a4a565b8181038181111561055d5761055d611c91565b8082018082111561055d5761055d611c91565b808202811582820484141761055d5761055d611c91565b600082611d5057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d6757600080fd5b81516106e181611a09565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dc25784516001600160a01b031683529383019391830191600101611d9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611df857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202549b1dda70e41b0ffa0624453288b778baa448f72269f4483303f4b3aa99f4764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637cca52fe116100d15780639cc353511161008a578063a9059cbb11610064578063a9059cbb146104a6578063cb7f97d7146104c6578063dd62ed3e146104e6578063f2fde38b1461052c57600080fd5b80639cc35351146104465780639d8740cb14610466578063a8aa1b311461048657600080fd5b80637cca52fe1461037a5780637d1db4a514610390578063893d20e8146103a65780638cd4426d146103d85780639213c358146103f857806395d89b411461041857600080fd5b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b146102f957806351bc3c851461031957806370a082311461032e57806378109e541461036457600080fd5b80632f54bf6e1461027e578063313ce567146102ad5780633f4218e0146102c957600080fd5b806306fdde0314610191578063095ea7b3146101d457806318160ddd14610204578063229b6a5e1461022757806323b872dd14610249578063293230b81461026957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600881526705065706520322e360c41b60208201525b6040516101cb91906119bb565b60405180910390f35b3480156101e057600080fd5b506101f46101ef366004611a1e565b61054c565b60405190151581526020016101cb565b34801561021057600080fd5b50610219610563565b6040519081526020016101cb565b34801561023357600080fd5b50610247610242366004611a58565b6105d4565b005b34801561025557600080fd5b506101f4610264366004611ade565b61067e565b34801561027557600080fd5b506102476106e8565b34801561028a57600080fd5b506101f4610299366004611b1f565b6000546001600160a01b0391821691161490565b3480156102b957600080fd5b50604051600981526020016101cb565b3480156102d557600080fd5b506101f46102e4366004611b1f565b60046020526000908152604090205460ff1681565b34801561030557600080fd5b50610247610314366004611b3c565b610727565b34801561032557600080fd5b5061024761077c565b34801561033a57600080fd5b50610219610349366004611b1f565b6001600160a01b031660009081526002602052604090205490565b34801561037057600080fd5b50610219601a5481565b34801561038657600080fd5b5061021960195481565b34801561039c57600080fd5b5061021960185481565b3480156103b257600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101cb565b3480156103e457600080fd5b506102476103f3366004611a1e565b6107d1565b34801561040457600080fd5b50610247610413366004611b75565b6108f8565b34801561042457600080fd5b506040805180820190915260058152642822a8229960d91b60208201526101be565b34801561045257600080fd5b50610247610461366004611bb5565b61099e565b34801561047257600080fd5b50610247610481366004611bb5565b610ad3565b34801561049257600080fd5b506007546103c0906001600160a01b031681565b3480156104b257600080fd5b506101f46104c1366004611a1e565b610b39565b3480156104d257600080fd5b506102476104e1366004611be1565b610b46565b3480156104f257600080fd5b50610219610501366004611c2d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053857600080fd5b50610247610547366004611b1f565b610c3d565b6000610559338484610cbb565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105cf9290916105c99190610ddf565b90610ddf565b905090565b6000546001600160a01b031633146106075760405162461bcd60e51b81526004016105fe90611c5b565b60405180910390fd5b60005b8281101561067857816005600086868581811061062957610629611c7b565b905060200201602081019061063e9190611b1f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061067081611ca7565b91505061060a565b50505050565b600061068b848484610deb565b6106dd84336106d885604051806060016040528060288152602001611e12602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611338565b610cbb565b5060015b9392505050565b6000546001600160a01b031633146107125760405162461bcd60e51b81526004016105fe90611c5b565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107515760405162461bcd60e51b81526004016105fe90611c5b565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107a65760405162461bcd60e51b81526004016105fe90611c5b565b30600090815260026020526040902054600b548111156107c55750600b545b6107ce81611364565b50565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016105fe90611c5b565b6040516370a0823160e01b815230600482015260009061087f906064906108799085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190611cc0565b906114e1565b906114ed565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190611cd9565b6000546001600160a01b031633146109225760405162461bcd60e51b81526004016105fe90611c5b565b601680546001600160a01b039485166001600160a01b031991821681179092556017805494861694821685179055601580549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109c85760405162461bcd60e51b81526004016105fe90611c5b565b60006109e5612710610879866001546114e190919063ffffffff16565b90506000610a04612710610879866001546114e190919063ffffffff16565b90506000610a23612710610879866001546114e190919063ffffffff16565b60188490556019839055601a81905590506000610a496103e86108796005610873610563565b9050808410158015610a5b5750808310155b8015610a675750808210155b610aca5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105fe565b50505050505050565b6000546001600160a01b03163314610afd5760405162461bcd60e51b81526004016105fe90611c5b565b600a839055600154610b1890620186a09061087990856114e1565b600b55600154610b3190620186a09061087990846114e1565b600c55505050565b6000610559338484610deb565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016105fe90611c5b565b600d879055600e8690556010859055600f849055601183905560128290556013819055601454610ba19060016114ed565b60115411158015610bc15750601454610bbb9060016114ed565b60125411155b8015610bdc5750601454610bd69060016114ed565b60135411155b610aca5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105fe565b6000546001600160a01b03163314610c675760405162461bcd60e51b81526004016105fe90611c5b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d1d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105fe565b6001600160a01b038216610d7e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105fe565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106e18284611cf6565b6001600160a01b038316610e4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105fe565b6001600160a01b038216610eb15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105fe565b6001600160a01b038316600090815260026020526040902054811115610f335760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105fe565b6001600160a01b03831660009081526004602052604090205460ff16158015610f7557506001600160a01b03821660009081526004602052604090205460ff16155b15610fc457600754600160a01b900460ff16610fc45760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105fe565b6001600160a01b03831660009081526004602052604090205460ff1615801561100657506001600160a01b03821660009081526004602052604090205460ff16155b801561102057506007546001600160a01b03838116911614155b801561103757506001600160a01b03821661dead14155b156110b057601a546001600160a01b03831660009081526002602052604090205461106290836114f9565b11156110b05760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105fe565b6007546001600160a01b0384811691161461115157601954811115806110ee57506001600160a01b03831660009081526004602052604090205460ff165b8061111157506001600160a01b03821660009081526004602052604090205460ff165b6111515760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fe565b6018548111158061117a57506001600160a01b03831660009081526004602052604090205460ff165b8061119d57506001600160a01b03821660009081526004602052604090205460ff165b6111dd5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105fe565b6007546001600160a01b03838116911614801561121357506001600160a01b03831660009081526004602052604090205460ff16155b156112315760016008600082825461122b9190611d09565b90915550505b61123c838383611505565b156112525761124c600b54611364565b60006008555b6001600160a01b0383166000908152600260205260409020546112759082610ddf565b6001600160a01b03841660009081526002602052604081209190915561129b84846115bf565b6112a557816112b0565b6112b0848484611605565b6001600160a01b0384166000908152600260205260409020549091506112d690826114f9565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061132a9085815260200190565b60405180910390a350505050565b6000818484111561135c5760405162461bcd60e51b81526004016105fe91906119bb565b505050900390565b6009805460ff19166001908117909155600f54600e54600d5460009361139e936002936108739391926113989283916114f9565b906114f9565b905060006113bb82610879600d54866114e190919063ffffffff16565b905060006113c98483610ddf565b9050476113d58261170c565b60006113e14783610ddf565b905060006114046113fd600d5488610ddf90919063ffffffff16565b83906114ed565b9050600061141d600d54836114e190919063ffffffff16565b9050801561142f5761142f8682611866565b600e54600090611444906108738560026114e1565b90508015611488576016546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611486573d6000803e3d6000fd5b505b4780156114cb576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114c9573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b60006106e18284611d1c565b60006106e18284611d33565b60006106e18284611d09565b600c54600b543060009081526002602052604081205460095491938510159211159060ff161580156115405750600754600160a81b900460ff165b80156115555750600754600160a01b900460ff165b801561155e5750815b801561158357506001600160a01b03861660009081526004602052604090205460ff16155b801561159c57506007546001600160a01b038681169116145b80156115ac5750600a5460085410155b80156115b55750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156106e15750506001600160a01b031660009081526004602052604090205460ff1615919050565b600080611612858561191a565b1115611705576000611635611627868661191a565b6014546108739086906114ed565b3060009081526002602052604090205490915061165290826114f9565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116a39085815260200190565b60405180910390a360006010541180156116c757506010546116c5868661191a565b115b156116f3576116f33061dead6116ee601054610873601454896114ed90919063ffffffff16565b610deb565b6116fd8382610ddf565b9150506106e1565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061174157611741611c7b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561179a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117be9190611d55565b816001815181106117d1576117d1611c7b565b6001600160a01b0392831660209182029290920101526006546117f79130911684610cbb565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611830908590600090869030904290600401611d72565b600060405180830381600087803b15801561184a57600080fd5b505af115801561185e573d6000803e3d6000fd5b505050505050565b60065461187e9030906001600160a01b031684610cbb565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119139190611de3565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff168061195957506001600160a01b03821660009081526005602052604090205460ff165b156119735760145461196c906064610ddf565b905061055d565b6007546001600160a01b0390811690831603611992575060125461055d565b6007546001600160a01b03908116908416036119b1575060115461055d565b5060135492915050565b600060208083528351808285015260005b818110156119e8578581018301518582016040015282016119cc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ce57600080fd5b60008060408385031215611a3157600080fd5b8235611a3c81611a09565b946020939093013593505050565b80151581146107ce57600080fd5b600080600060408486031215611a6d57600080fd5b833567ffffffffffffffff80821115611a8557600080fd5b818601915086601f830112611a9957600080fd5b813581811115611aa857600080fd5b8760208260051b8501011115611abd57600080fd5b60209283019550935050840135611ad381611a4a565b809150509250925092565b600080600060608486031215611af357600080fd5b8335611afe81611a09565b92506020840135611b0e81611a09565b929592945050506040919091013590565b600060208284031215611b3157600080fd5b81356106e181611a09565b60008060408385031215611b4f57600080fd5b8235611b5a81611a09565b91506020830135611b6a81611a4a565b809150509250929050565b600080600060608486031215611b8a57600080fd5b8335611b9581611a09565b92506020840135611ba581611a09565b91506040840135611ad381611a09565b600080600060608486031215611bca57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215611bfc57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611c4057600080fd5b8235611c4b81611a09565b91506020830135611b6a81611a09565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cb957611cb9611c91565b5060010190565b600060208284031215611cd257600080fd5b5051919050565b600060208284031215611ceb57600080fd5b81516106e181611a4a565b8181038181111561055d5761055d611c91565b8082018082111561055d5761055d611c91565b808202811582820484141761055d5761055d611c91565b600082611d5057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d6757600080fd5b81516106e181611a09565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dc25784516001600160a01b031683529383019391830191600101611d9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611df857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202549b1dda70e41b0ffa0624453288b778baa448f72269f4483303f4b3aa99f4764736f6c63430008130033

Deployed Bytecode Sourcemap

4967:11462:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:67;;;;;;;;;;-1:-1:-1;7465:5:0;;;;;;;;;;;;-1:-1:-1;;;7465:5:0;;;;7405:67;;;;;;;:::i;:::-;;;;;;;;8286:133;;;;;;;;;;-1:-1:-1;8286:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8286:133:0;1023:187:1;8425:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8425:132:0;1215:177:1;10745:184:0;;;;;;;;;;-1:-1:-1;10745:184:0;;;;;:::i;:::-;;:::i;:::-;;15774:309;;;;;;;;;;-1:-1:-1;15774:309:0;;;;;:::i;:::-;;:::i;7628:67::-;;;;;;;;;;;;;:::i;3871:87::-;;;;;;;;;;-1:-1:-1;3871:87:0;;;;;:::i;:::-;3926:4;3951:5;-1:-1:-1;;;;;3940:16:0;;;3951:5;;3940:16;;3871:87;7555:67;;;;;;;;;;-1:-1:-1;7555:67:0;;5173:1;3130:36:1;;3118:2;3103:18;7555:67:0;2988:184:1;5371:44:0;;;;;;;;;;-1:-1:-1;5371:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8172:108;;;;;;;;;;-1:-1:-1;8172:108:0;;;;;:::i;:::-;;:::i;10937:195::-;;;;;;;;;;;;;:::i;7785:103::-;;;;;;;;;;-1:-1:-1;7785:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7868:18:0;7851:7;7868:18;;;:9;:18;;;;;;;7785:103;6688:63;;;;;;;;;;;;;;;;6619:62;;;;;;;;;;;;;;;;6552:60;;;;;;;;;;;;;;;;7701:78;;;;;;;;;;-1:-1:-1;7753:7:0;7771:5;-1:-1:-1;;;;;7771:5:0;7701:78;;;-1:-1:-1;;;;;3728:32:1;;;3710:51;;3698:2;3683:18;7701:78:0;3564:203:1;11140:242:0;;;;;;;;;;-1:-1:-1;11140:242:0;;;;;:::i;:::-;;:::i;10399:338::-;;;;;;;;;;-1:-1:-1;10399:338:0;;;;;:::i;:::-;;:::i;7478:71::-;;;;;;;;;;-1:-1:-1;7540:7:0;;;;;;;;;;;;-1:-1:-1;;;7540:7:0;;;;7478:71;;9835:556;;;;;;;;;;-1:-1:-1;9835:556:0;;;;;:::i;:::-;;:::i;8976:319::-;;;;;;;;;;-1:-1:-1;8976:319:0;;;;;:::i;:::-;;:::i;5489:19::-;;;;;;;;;;-1:-1:-1;5489:19:0;;;;-1:-1:-1;;;;;5489:19:0;;;7894:139;;;;;;;;;;-1:-1:-1;7894:139:0;;;;;:::i;:::-;;:::i;9303:524::-;;;;;;;;;;-1:-1:-1;9303:524:0;;;;;:::i;:::-;;:::i;8039:127::-;;;;;;;;;;-1:-1:-1;8039:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8137:18:0;;;8120:7;8137:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8039:127;3964:111;;;;;;;;;;-1:-1:-1;3964:111:0;;;;;:::i;:::-;;:::i;8286:133::-;8361:4;8368:37;8377:10;8389:7;8398:6;8368:8;:37::i;:::-;-1:-1:-1;8413:4:0;8286:133;;;;;:::o;8425:132::-;7868:9;:18;;;;6239:42;8478:7;7868:18;;;;;8495:12;;8478:7;;8495:60;;7868:18;;8495:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8488:67;;8425:132;:::o;10745:184::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;;;;;;;;;10842:6:::1;10838:84;10852:20:::0;;::::1;10838:84;;;10911:8;10889:5;:19;10895:9;;10905:1;10895:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10889:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10889:19:0;:30;;-1:-1:-1;;10889:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10874:3;::::1;::::0;::::1;:::i;:::-;;;;10838:84;;;;10745:184:::0;;;:::o;15774:309::-;15872:4;15889:36;15899:6;15907:9;15918:6;15889:9;:36::i;:::-;15936:117;15945:6;15953:10;15965:87;16001:6;15965:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15965:19:0;;;;;;:11;:19;;;;;;;;15985:10;15965:31;;;;;;;;;:87;:35;:87::i;:::-;15936:8;:117::i;:::-;-1:-1:-1;16071:4:0;15774:309;;;;;;:::o;7628:67::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;7672:14:::1;:21:::0;;-1:-1:-1;;;;7672:21:0::1;-1:-1:-1::0;;;7672:21:0::1;::::0;;7628:67::o;8172:108::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8246:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8246:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8172:108::o;10937:195::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;11024:4:::1;10989:14;7868:18:::0;;;:9;:18;;;;;;11053:13:::1;::::0;11044:22;::::1;11041:51;;;-1:-1:-1::0;11077:13:0::1;::::0;11041:51:::1;11102:22;11117:6;11102:14;:22::i;:::-;10978:154;10937:195::o:0;11140:242::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;11244:41:::1;::::0;-1:-1:-1;;;11244:41:0;;11279:4:::1;11244:41;::::0;::::1;3710:51:1::0;11226:15:0::1;::::0;11244:63:::1;::::0;11303:3:::1;::::0;11244:54:::1;::::0;11290:7;;-1:-1:-1;;;;;11244:26:0;::::1;::::0;::::1;::::0;3683:18:1;;11244:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;11344:20;::::0;11318:56:::1;::::0;-1:-1:-1;;;11318:56:0;;-1:-1:-1;;;;;11344:20:0;;::::1;11318:56;::::0;::::1;6978:51:1::0;7045:18;;;7038:34;;;11226:81:0;;-1:-1:-1;11318:25:0;::::1;::::0;::::1;::::0;6951:18:1;;11318:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10399:338::-:0;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;10521:18:::1;:31:::0;;-1:-1:-1;;;;;10521:31:0;;::::1;-1:-1:-1::0;;;;;;10521:31:0;;::::1;::::0;::::1;::::0;;;10554:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10587:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10521:18:::1;10633:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10633:30:0;;::::1;10521:31:::0;10633:30;;::::1;::::0;;;10665:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10697:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10399:338::o;9835:556::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;9941:13:::1;9957:33;9984:5;9957:22;9974:4;9957:12;;:16;;:22;;;;:::i;:33::-;9941:49;;9992:19;10014:34;10042:5;10014:23;10031:5;10014:12;;:16;;:23;;;;:::i;:34::-;9992:56;;10050:17;10070:36;10100:5;10070:25;10087:7;10070:12;;:16;;:25;;;;:::i;:36::-;10117:12;:20:::0;;;10139:14:::1;:28:::0;;;10169:15:::1;:27:::0;;;10050:56;-1:-1:-1;;10223:30:0::1;10248:4;10223:20;10241:1;10223:13;:11;:13::i;:30::-;10207:46;;10281:5;10272;:14;;:38;;;;;10305:5;10290:11;:20;;10272:38;:60;;;;;10327:5;10314:9;:18;;10272:60;10264:119;;;::::0;-1:-1:-1;;;10264:119:0;;7535:2:1;10264: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;;10264:119:0::1;7333:410:1::0;10264:119:0::1;9930:461;;;;9835:556:::0;;;:::o;8976:319::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;9109:10:::1;:24:::0;;;9151:12:::1;::::0;:53:::1;::::0;9196:6:::1;::::0;9151:32:::1;::::0;9168:14;9151:16:::1;:32::i;:53::-;9135:13;:69:::0;9233:12:::1;::::0;:54:::1;::::0;9279:6:::1;::::0;9233:33:::1;::::0;9250:15;9233:16:::1;:33::i;:54::-;9216:14;:71:::0;-1:-1:-1;;;8976:319:0:o;7894:139::-;7972:4;7979:40;7989:10;8001:9;8012:6;7979:9;:40::i;9303:524::-;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;9493:12:::1;:25:::0;;;9520:12:::1;:25:::0;;;9547:7:::1;:15:::0;;;9564:14:::1;:29:::0;;;9595:8:::1;:17:::0;;;9614:7:::1;:15:::0;;;9631:11:::1;:20:::0;;;9682:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9682:15:0::1;:18::i;:::-;9670:8;;:30;;:63;;;;-1:-1:-1::0;9715:11:0::1;::::0;:18:::1;::::0;9731:1:::1;9715:15;:18::i;:::-;9704:7;;:29;;9670:63;:100;;;;-1:-1:-1::0;9752:11:0::1;::::0;:18:::1;::::0;9768:1:::1;9752:15;:18::i;:::-;9737:11;;:33;;9670:100;9662:157;;;::::0;-1:-1:-1;;;9662:157:0;;7950:2:1;9662: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;;9662:157:0::1;7748:408:1::0;3964:111:0;3926:4;3951:5;-1:-1:-1;;;;;3951:5:0;3838:10;3940:16;3822:38;;;;-1:-1:-1;;;3822:38:0;;;;;;;:::i;:::-;4030:5:::1;:11:::0;;-1:-1:-1;;;;;;4030:11:0::1;-1:-1:-1::0;;;;;4030:11:0;::::1;::::0;;::::1;::::0;;;4048:25:::1;::::0;3710:51:1;;;4048:25:0::1;::::0;3698:2:1;3683:18;4048:25:0::1;;;;;;;3964:111:::0;:::o;16091:335::-;-1:-1:-1;;;;;16184:19:0;;16176:68;;;;-1:-1:-1;;;16176:68:0;;8579:2:1;16176: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;;16176:68:0;8377:400:1;16176:68:0;-1:-1:-1;;;;;16263:21:0;;16255:68;;;;-1:-1:-1;;;16255:68:0;;8984:2:1;16255: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;;16255:68:0;8782:398:1;16255:68:0;-1:-1:-1;;;;;16334:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16386:32;;1361:25:1;;;16386:32:0;;1334:18:1;16386:32:0;;;;;;;16091:335;;;:::o;1610:98::-;1668:7;1695:5;1699:1;1695;:5;:::i;14333:1433::-;-1:-1:-1;;;;;14430:20:0;;14422:70;;;;-1:-1:-1;;;14422:70:0;;9520:2:1;14422: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;;14422:70:0;9318:401:1;14422:70:0;-1:-1:-1;;;;;14511:23:0;;14503:71;;;;-1:-1:-1;;;14503:71:0;;9926:2:1;14503: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;;14503:71:0;9724:399:1;14503:71:0;-1:-1:-1;;;;;7868:18:0;;7851:7;7868:18;;;:9;:18;;;;;;14593:6;:27;;14585:88;;;;-1:-1:-1;;;14585:88:0;;10330:2:1;14585: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;;14585:88:0;10128:413:1;14585:88:0;-1:-1:-1;;;;;14688:19:0;;;;;;:11;:19;;;;;;;;14687:20;:47;;;;-1:-1:-1;;;;;;14712:22:0;;;;;;:11;:22;;;;;;;;14711:23;14687:47;14684:95;;;14744:14;;-1:-1:-1;;;14744:14:0;;;;14736:41;;;;-1:-1:-1;;;14736:41:0;;10748:2:1;14736:41:0;;;10730:21:1;10787:2;10767:18;;;10760:30;-1:-1:-1;;;10806:18:1;;;10799:44;10860:18;;14736:41:0;10546:338:1;14736:41:0;-1:-1:-1;;;;;14793:19:0;;;;;;:11;:19;;;;;;;;14792:20;:47;;;;-1:-1:-1;;;;;;14817:22:0;;;;;;:11;:22;;;;;;;;14816:23;14792:47;:77;;;;-1:-1:-1;14864:4:0;;-1:-1:-1;;;;;14843:26:0;;;14864:4;;14843:26;;14792:77;:107;;;;-1:-1:-1;;;;;;14873:26:0;;6239:42;14873:26;;14792:107;14789:220;;;14957:15;;-1:-1:-1;;;;;14920:20:0;;;;;;:9;:20;;;;;;:32;;14945:6;14920:24;:32::i;:::-;14919:53;;14911:96;;;;-1:-1:-1;;;14911:96:0;;11091:2:1;14911:96:0;;;11073:21:1;11130:2;11110:18;;;11103:30;11169:32;11149:18;;;11142:60;11219:18;;14911:96:0;10889:354:1;14911:96:0;15032:4;;-1:-1:-1;;;;;15022:14:0;;;15032:4;;15022:14;15019:124;;15056:14;;15046:6;:24;;:47;;;-1:-1:-1;;;;;;15074:19:0;;;;;;:11;:19;;;;;;;;15046:47;:73;;;-1:-1:-1;;;;;;15097:22:0;;;;;;:11;:22;;;;;;;;15046:73;15038:103;;;;-1:-1:-1;;;15038:103:0;;11450:2:1;15038:103:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;15038:103:0;11248:341:1;15038:103:0;15171:12;;15161:6;:22;;:45;;;-1:-1:-1;;;;;;15187:19:0;;;;;;:11;:19;;;;;;;;15161:45;:71;;;-1:-1:-1;;;;;;15210:22:0;;;;;;:11;:22;;;;;;;;15161:71;15153:101;;;;-1:-1:-1;;;15153:101:0;;11450:2:1;15153:101:0;;;11432:21:1;11489:2;11469:18;;;11462:30;-1:-1:-1;;;11508:18:1;;;11501:47;11565:18;;15153:101:0;11248:341:1;15153:101:0;15282:4;;-1:-1:-1;;;;;15269:17:0;;;15282:4;;15269:17;:41;;;;-1:-1:-1;;;;;;15291:19:0;;;;;;:11;:19;;;;;;;;15290:20;15269:41;15266:71;;;15333:1;15312:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15266:71:0;15350:45;15369:6;15377:9;15388:6;15350:18;:45::i;:::-;15347:105;;;15397:29;15412:13;;15397:14;:29::i;:::-;15448:1;15428:9;:22;15347:105;-1:-1:-1;;;;;15482:17:0;;;;;;:9;:17;;;;;;:29;;15504:6;15482:21;:29::i;:::-;-1:-1:-1;;;;;15462:17:0;;;;;;:9;:17;;;;;:49;;;;15547:32;15472:6;15569:9;15547:13;:32::i;:::-;:78;;15619:6;15547:78;;;15582:34;15590:6;15598:9;15609:6;15582:7;:34::i;:::-;-1:-1:-1;;;;;15659:20:0;;;;;;:9;:20;;;;;;15522:103;;-1:-1:-1;15659:40:0;;15522:103;15659:24;:40::i;:::-;-1:-1:-1;;;;;15636:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15715:43;;;;;;;;;;15743:14;1361:25:1;;1349:2;1334:18;;1215:177;15715:43:0;;;;;;;;14411:1355;14333:1433;;;:::o;2034:240::-;2154:7;2215:12;2207:6;;;;2199:29;;;;-1:-1:-1;;;2199:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2250:5:0;;;2034:240::o;11390:1063::-;5847:8;:15;;-1:-1:-1;;5847:15:0;5858:4;5847:15;;;;;;11527:14:::1;::::0;11509:12:::1;::::0;11485::::1;::::0;5847:8;;11484:66:::1;::::0;11548:1:::1;::::0;11485:57:::1;::::0;11527:14;;11485:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11484:66::-;11461:89;;11561:32;11596:42;11625:12;11596:24;11607:12;;11596:6;:10;;:24;;;;:::i;:42::-;11561:77:::0;-1:-1:-1;11649:14:0::1;11666:36;:6:::0;11561:77;11666:10:::1;:36::i;:::-;11649:53:::0;-1:-1:-1;11738:21:0::1;11770:24;11649:53:::0;11770:16:::1;:24::i;:::-;11805:20;11828:41;:21;11854:14:::0;11828:25:::1;:41::i;:::-;11805:64;;11880:19;11901:48;11918:30;11935:12;;11918;:16;;:30;;;;:::i;:::-;11901:12:::0;;:16:::1;:48::i;:::-;11880:69;;11960:29;11992;12008:12;;11992:11;:15;;:29;;;;:::i;:::-;11960:61:::0;-1:-1:-1;12035:34:0;;12032:103:::1;;12071:61;12084:24;12110:21;12071:12;:61::i;:::-;12191:12;::::0;12145:20:::1;::::0;12168:36:::1;::::0;:18:::1;:11:::0;12184:1:::1;12168:15;:18::i;:36::-;12145:59:::0;-1:-1:-1;12218:16:0;;12215:73:::1;;12244:18;::::0;12236:50:::1;::::0;-1:-1:-1;;;;;12244:18:0;;::::1;::::0;12236:50;::::1;;;::::0;12273:12;;12244:18:::1;12236:50:::0;12244:18;12236:50;12273:12;12244:18;12236:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12215:73;12324:21;12359:28:::0;;12356:90:::1;;12397:20;::::0;12389:55:::1;::::0;-1:-1:-1;;;;;12397:20:0;;::::1;::::0;12389:55;::::1;;;::::0;12428:15;;12397:20:::1;12389:55:::0;12397:20;12389:55;12428:15;12397:20;12389:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12356:90;-1:-1:-1::0;;5867:8:0;:16;;-1:-1:-1;;5867:16:0;;;-1:-1:-1;;;;;;;;11390:1063:0:o;1716:98::-;1774:7;1801:5;1805:1;1801;:5;:::i;1822:98::-;1880:7;1907:5;1911:1;1907;:5;:::i;1504:98::-;1562:7;1589:5;1593:1;1589;:5;:::i;8565:403::-;8710:14;;8785:13;;8775:4;8667;7868:18;;;:9;:18;;;;;;8817:8;;8667:4;;8700:24;;;;-1:-1:-1;8757:41:0;;8817:8;;8816:9;:24;;;;-1:-1:-1;8829:11:0;;-1:-1:-1;;;8829:11:0;;;;8816:24;:42;;;;-1:-1:-1;8844:14:0;;-1:-1:-1;;;8844:14:0;;;;8816:42;:54;;;;;8862:8;8816:54;:78;;;;-1:-1:-1;;;;;;8875:19:0;;;;;;:11;:19;;;;;;;;8874:20;8816:78;:99;;;;-1:-1:-1;8911:4:0;;-1:-1:-1;;;;;8898:17:0;;;8911:4;;8898:17;8816:99;:126;;;;;8932:10;;8919:9;;:23;;8816:126;:144;;;;;8946:14;8816:144;8809:151;8565:403;-1:-1:-1;;;;;;8565:403:0:o;13254:160::-;-1:-1:-1;;;;;13360:19:0;;13335:4;13360:19;;;:11;:19;;;;;;;;13359:20;:47;;;;-1:-1:-1;;;;;;;13384:22:0;;;;;:11;:22;;;;;;;;13383:23;;13254:160;-1:-1:-1;13254:160:0:o;13735:590::-;13821:7;13877:1;13844:30;13856:6;13864:9;13844:11;:30::i;:::-;:34;13841:462;;;13890:17;13910:59;13938:30;13950:6;13958:9;13938:11;:30::i;:::-;13921:11;;13910:23;;:6;;:10;:23::i;:59::-;14025:4;14007:24;;;;:9;:24;;;;;;13890:79;;-1:-1:-1;14007:39:0;;13890:79;14007:28;:39::i;:::-;13998:4;13980:24;;;;:9;:24;;;;;;;:66;;;;14062:42;;-1:-1:-1;;;;;14062:42:0;;;;;;;14094:9;1361:25:1;;1349:2;1334:18;;1215:177;14062:42:0;;;;;;;;14136:1;14118:7;;:20;:64;;;;;14175:7;;14142:30;14154:6;14162:9;14142:11;:30::i;:::-;:40;14118:64;14115:148;;;14184:77;14202:4;6239:42;14224:36;14252:7;;14224:23;14235:11;;14224:6;:10;;:23;;;;:::i;:36::-;14184:9;:77::i;:::-;14280:21;:6;14291:9;14280:10;:21::i;:::-;14273:28;;;;;13841:462;-1:-1:-1;14311:6:0;13735:590;-1:-1:-1;;13735:590:0:o;12812:434::-;12902:16;;;12916:1;12902:16;;;;;;;;12878:21;;12902:16;;;;;;;;;;-1:-1:-1;12902:16:0;12878:40;;12947:4;12929;12934:1;12929:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12929:23:0;;;:7;;;;;;;;;;:23;;;;12973:6;;:13;;;-1:-1:-1;;;12973:13:0;;;;:6;;;;;:11;;:13;;;;;12929:7;;12973:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12963:4;12968:1;12963:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12963:23:0;;;:7;;;;;;;;;:23;13029:6;;12997:53;;13014:4;;13029:6;13038:11;12997:8;:53::i;:::-;13061:6;;:177;;-1:-1:-1;;;13061:177:0;;-1:-1:-1;;;;;13061:6:0;;;;:57;;:177;;13133:11;;13061:6;;13175:4;;13202;;13222:15;;13061:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12867:379;12812:434;:::o;12461:343::-;12574:6;;12542:53;;12559:4;;-1:-1:-1;;;;;12574:6:0;12583:11;12542:8;:53::i;:::-;12606:6;;12747:18;;12606:190;;-1:-1:-1;;;12606:190:0;;12669:4;12606:190;;;13833:34:1;13883:18;;;13876:34;;;12606:6:0;13926:18:1;;;13919:34;;;13969:18;;;13962:34;-1:-1:-1;;;;;12747:18:0;;;14012:19:1;;;14005:44;12780:15:0;14065:19:1;;;14058:35;12606:6:0;;;:22;;12636:9;;13767:19:1;;12606:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12461:343;;:::o;13422:305::-;-1:-1:-1;;;;;13524:13:0;;13501:7;13524:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;13541:16:0;;;;;;:5;:16;;;;;;;;13524:33;13521:76;;;13566:11;;:29;;13590:3;13566:15;:29::i;:::-;13559:36;;;;13521:76;13623:4;;-1:-1:-1;;;;;13623:4:0;;;13610:17;;;;13607:38;;-1:-1:-1;13636:7:0;;13629:14;;13607:38;13668:4;;-1:-1:-1;;;;;13668:4:0;;;13658:14;;;;13655:36;;-1:-1:-1;13681:8:0;;13674:15;;13655:36;-1:-1:-1;13708:11:0;;13422: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://2549b1dda70e41b0ffa0624453288b778baa448f72269f4483303f4b3aa99f47

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.