ETH Price: $2,504.12 (-0.83%)

Contract

0xDf936284279907597e245D939C65908CD08Aa623
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer182759772023-10-04 8:30:47335 days ago1696408247IN
0xDf936284...CD08Aa623
0 ETH0.000466377.29383833
Transfer182759582023-10-04 8:26:59335 days ago1696408019IN
0xDf936284...CD08Aa623
0 ETH0.0012788220
Transfer182757792023-10-04 7:50:59335 days ago1696405859IN
0xDf936284...CD08Aa623
0 ETH0.000507287.93222439
Toggle Swap182757532023-10-04 7:45:47335 days ago1696405547IN
0xDf936284...CD08Aa623
0 ETH0.000201787.00687217
Transfer182757032023-10-04 7:35:47335 days ago1696404947IN
0xDf936284...CD08Aa623
0 ETH0.001420
Transfer182756612023-10-04 7:27:23335 days ago1696404443IN
0xDf936284...CD08Aa623
0 ETH0.000444847.15032286
Transfer182756582023-10-04 7:26:47335 days ago1696404407IN
0xDf936284...CD08Aa623
0 ETH0.000361515.81098282
Set Max Txn Amou...182711172023-10-03 16:12:35335 days ago1696349555IN
0xDf936284...CD08Aa623
0 ETH0.0006872223.91027509
Set Max Wallet S...182711152023-10-03 16:12:11335 days ago1696349531IN
0xDf936284...CD08Aa623
0 ETH0.0006462822.47005299
Approve182315622023-09-28 3:27:35341 days ago1695871655IN
0xDf936284...CD08Aa623
0 ETH0.0005452211.69658325
Approve182315622023-09-28 3:27:35341 days ago1695871655IN
0xDf936284...CD08Aa623
0 ETH0.0005452211.69658325
Approve182315622023-09-28 3:27:35341 days ago1695871655IN
0xDf936284...CD08Aa623
0 ETH0.0005452211.69658325
Set Trading182315612023-09-28 3:27:23341 days ago1695871643IN
0xDf936284...CD08Aa623
0 ETH0.000196796.8361309
Approve182315182023-09-28 3:18:35341 days ago1695871115IN
0xDf936284...CD08Aa623
0 ETH0.000356127.63782902
Init Uni Swap182315102023-09-28 3:16:59341 days ago1695871019IN
0xDf936284...CD08Aa623
0 ETH0.01971617.74595043
0x60806040182271302023-09-27 12:35:35341 days ago1695818135IN
 Create: SailBot
0 ETH0.0306326713.94929154

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00010588 ETH
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00010588 ETH
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00011042 ETH
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00011042 ETH
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00036483 ETH
182397932023-09-29 7:09:35340 days ago1695971375
0xDf936284...CD08Aa623
0.00036483 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SailBot

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion, MIT license

Contract Source Code (Solidity)

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

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.20;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "E0");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "E1");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "E2");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "E3");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "E4");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "E5");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract SailBot is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _balances;
    string private constant _name = "STEST";
    string private constant _symbol = "STEST";
    uint8 private constant _decimals = 18;
 

    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant _totalSupply = 10000000 * 10**18;
    uint256 private _feeTotal;
    uint256 private _feeOnBuy = 5;  
    uint256 private _feeOnSell = 5;
 
    //Original Fee
    uint256 private _fee = _feeOnSell;
 
    uint256 private _previousFee = _fee;
 
    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    
    address payable private _marketingAddress = payable(0xf1898720c0718b63D4feB452355Ee0E3EE82c4cE);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 150000 * 10**18; 
    uint256 public _maxWalletSize = 150000 * 10**18; 
    uint256 public _swapTokensAtAmount = 100 * 10**18;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
        _balances[owner()] = _totalSupply;
        // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // uniswapV2Router = _uniswapV2Router;
        // uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        //     .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function initUniSwap() public onlyOwner {
        if (uniswapV2Pair != address(0)) {
            return;
        }
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        address tmp = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        if (tmp != address(0)) {
            uniswapV2Pair = tmp;
        } else {
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        }
        
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "E6"
            )
        );
        return true;
    }
 

 
    function removeAllFee() private {
        if (_fee == 0) return;
 
        _previousFee = _fee;
 
        _fee = 0;
    }
 
    function restoreAllFee() private {
        _fee = _previousFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "E7");
        require(spender != address(0), "E8");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "E9");
        require(to != address(0), "E10");
        require(amount > 0, "E11");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "E12");
            }
            require(amount <= _maxTxAmount, "E13");
            require(!bots[from] && !bots[to], "E14");
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "E15");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee();
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _fee = _feeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _fee = _feeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee() private {
        bool success;
        (success, ) = address(_marketingAddress).call{
            value: address(this).balance
        }("");
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee();
        }
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function isBot(address addr) public view returns (bool) {
        return bots[addr];
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {

        uint256 fee = amount.mul(_fee).div(100);
        uint256 transferAmount = amount.sub(fee);

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(transferAmount);
        if (fee > 0) {
            _feeTotal = _feeTotal.add(fee);
            _balances[address(this)] =  _balances[address(this)].add(fee);
        }
       
        
        emit Transfer(sender, recipient, transferAmount);
    }
 
 
    receive() external payable {}
 
    function setFee(uint256 feeOnBuy, uint256 feeOnSell) public onlyOwner {
        require(feeOnBuy >= 0 && feeOnBuy <= 20, "E16");
        require(feeOnSell >= 0 && feeOnSell <= 20, "E17");

        _feeOnBuy = feeOnBuy;
        _feeOnSell = feeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function isExcludedFromFee(address addr) public view returns (bool) {
        return _isExcludedFromFee[addr];
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10**18));
        }
    }

    function getInfo() public view returns(bool[2] memory, uint256[8] memory, address) {
        bool[2] memory bargs;
        uint256[8] memory uargs;
        bargs[0] = tradingOpen;
        bargs[1] = swapEnabled;
        uargs[0] = _feeOnBuy;
        uargs[1] = _feeOnSell;
        uargs[2] = _maxTxAmount;
        uargs[3] = _maxWalletSize;
        uargs[4] = _feeTotal;
        uargs[5] = _swapTokensAtAmount;

        uint256 ethBalance = address(this).balance;
        uargs[6] = ethBalance;
        uint256 contractTokenBalance = balanceOf(address(this));
        uargs[7] = contractTokenBalance;

        
        return (bargs,uargs,_marketingAddress);
    }

     function setMarketAddr(address payable addr) public onlyOwner {
        if (_marketingAddress == addr) {
            return;
        }

        _marketingAddress = addr;
        _isExcludedFromFee[_marketingAddress] = true;
    }

}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"internalType":"bool[2]","name":"","type":"bool[2]"},{"internalType":"uint256[8]","name":"","type":"uint256[8]"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initUniSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"}],"name":"setMarketAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600681905560078190556008819055600955600c80546001600160a01b03191673f1898720c0718b63d4feb452355ee0e3ee82c4ce179055600e805461ffff60a81b1916600160b01b179055691fc3842bd1f071c00000600f81905560105568056bc75e2d631000006011553480156200007f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506a084595161401484a00000060036000620000e46000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600460006200011e620001dc60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600c549091168352912080549092161790556200017d3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a000000604051620001ce91815260200190565b60405180910390a3620001eb565b6000546001600160a01b031690565b6120f280620001fb6000396000f3fe6080604052600436106102125760003560e01c806370a082311161011857806398a5c315116100a0578063c492f0461161006f578063c492f04614610651578063cb7dc8bf14610671578063dd62ed3e14610686578063ea1644d5146106cc578063f2fde38b146106ec57600080fd5b806398a5c315146105cc578063a9059cbb146105ec578063bfd792841461060c578063c3c8cd801461063c57600080fd5b80637f2feddc116100e75780637f2feddc1461054b5780638da5cb5b146105785780638f70ccf7146105965780638f9a55c0146105b657806395d89b411461024057600080fd5b806370a08231146104ca578063715018a61461050057806374010ece146105155780637d1db4a51461053557600080fd5b806349bd5a5e1161019b5780635a9b0b891161016a5780635a9b0b891461043157806367243482146104555780636b999053146104755780636d8aa8f8146104955780636fc3eaec146104b557600080fd5b806349bd5a5e1461039857806351d31822146103b857806352f7c988146103d85780635342acb4146103f857600080fd5b806318160ddd116101e257806318160ddd146102e557806323b872dd1461030d5780632fd689e31461032d578063313ce567146103435780633bbac5791461035f57600080fd5b8062b8cf2a1461021e57806306fdde0314610240578063095ea7b31461027d5780631694505e146102ad57600080fd5b3661021957005b600080fd5b34801561022a57600080fd5b5061023e610239366004611bb4565b61070c565b005b34801561024c57600080fd5b50604080518082018252600581526414d51154d560da1b602082015290516102749190611c79565b60405180910390f35b34801561028957600080fd5b5061029d610298366004611cc7565b6107ab565b6040519015158152602001610274565b3480156102b957600080fd5b50600d546102cd906001600160a01b031681565b6040516001600160a01b039091168152602001610274565b3480156102f157600080fd5b506a084595161401484a0000005b604051908152602001610274565b34801561031957600080fd5b5061029d610328366004611cf3565b6107c2565b34801561033957600080fd5b506102ff60115481565b34801561034f57600080fd5b5060405160128152602001610274565b34801561036b57600080fd5b5061029d61037a366004611d34565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156103a457600080fd5b50600e546102cd906001600160a01b031681565b3480156103c457600080fd5b5061023e6103d3366004611d34565b610851565b3480156103e457600080fd5b5061023e6103f3366004611d51565b6108cb565b34801561040457600080fd5b5061029d610413366004611d34565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561043d57600080fd5b5061044661096e565b60405161027493929190611d73565b34801561046157600080fd5b5061023e610470366004611e31565b610a18565b34801561048157600080fd5b5061023e610490366004611d34565b610ab1565b3480156104a157600080fd5b5061023e6104b0366004611ead565b610afc565b3480156104c157600080fd5b5061023e610b44565b3480156104d657600080fd5b506102ff6104e5366004611d34565b6001600160a01b031660009081526003602052604090205490565b34801561050c57600080fd5b5061023e610b73565b34801561052157600080fd5b5061023e610530366004611ec8565b610be7565b34801561054157600080fd5b506102ff600f5481565b34801561055757600080fd5b506102ff610566366004611d34565b600b6020526000908152604090205481565b34801561058457600080fd5b506000546001600160a01b03166102cd565b3480156105a257600080fd5b5061023e6105b1366004611ead565b610c16565b3480156105c257600080fd5b506102ff60105481565b3480156105d857600080fd5b5061023e6105e7366004611ec8565b610c5e565b3480156105f857600080fd5b5061029d610607366004611cc7565b610c8d565b34801561061857600080fd5b5061029d610627366004611d34565b600a6020526000908152604090205460ff1681565b34801561064857600080fd5b5061023e610c9a565b34801561065d57600080fd5b5061023e61066c366004611ee1565b610cd3565b34801561067d57600080fd5b5061023e610d74565b34801561069257600080fd5b506102ff6106a1366004611f35565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106d857600080fd5b5061023e6106e7366004611ec8565b6110b6565b3480156106f857600080fd5b5061023e610707366004611d34565b6110e5565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161073690611f6e565b60405180910390fd5b60005b81518110156107a7576001600a600084848151811061076357610763611f8a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061079f81611fb6565b915050610742565b5050565b60006107b83384846111a5565b5060015b92915050565b60006107cf84848461127c565b61084784336108428560405180604001604052806002815260200161229b60f11b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006108213390565b6001600160a01b0316815260208101919091526040016000205491906116a3565b6111a5565b5060019392505050565b6000546001600160a01b0316331461087b5760405162461bcd60e51b815260040161073690611f6e565b600c546001600160a01b038281169116146108c857600c80546001600160a01b0319166001600160a01b0383169081179091556000908152600460205260409020805460ff191660011790555b50565b6000546001600160a01b031633146108f55760405162461bcd60e51b815260040161073690611f6e565b601482111561092c5760405162461bcd60e51b815260206004820152600360248201526222989b60e91b6044820152606401610736565b60148111156109635760405162461bcd60e51b815260206004820152600360248201526245313760e81b6044820152606401610736565b600691909155600755565b610976611b3c565b61097e611b5a565b6000610988611b3c565b610990611b5a565b600e5460ff600160a01b8204811615158452600160b01b909104161515602080840191909152600654825260075482820152600f546040808401919091526010546060840152600554608084015260115460a08401524760c0840152306000908152600390925290205460e0820152600c5491959094506001600160a01b0390911692509050565b8215801590610a2657508083145b610a2f57600080fd5b3360005b84811015610aa957610a9782878784818110610a5157610a51611f8a565b9050602002016020810190610a669190611d34565b868685818110610a7857610a78611f8a565b90506020020135670de0b6b3a7640000610a929190611fcf565b61127c565b80610aa181611fb6565b915050610a33565b505050505050565b6000546001600160a01b03163314610adb5760405162461bcd60e51b815260040161073690611f6e565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b03163314610b265760405162461bcd60e51b815260040161073690611f6e565b600e8054911515600160b01b0260ff60b01b19909216919091179055565b600c546001600160a01b0316336001600160a01b031614610b6457600080fd5b4780156108c8576108c86116dd565b6000546001600160a01b03163314610b9d5760405162461bcd60e51b815260040161073690611f6e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c115760405162461bcd60e51b815260040161073690611f6e565b600f55565b6000546001600160a01b03163314610c405760405162461bcd60e51b815260040161073690611f6e565b600e8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161073690611f6e565b601155565b60006107b833848461127c565b600c546001600160a01b0316336001600160a01b031614610cba57600080fd5b306000908152600360205260409020546108c88161172a565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b815260040161073690611f6e565b60005b82811015610d6e578160046000868685818110610d1f57610d1f611f8a565b9050602002016020810190610d349190611d34565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6681611fb6565b915050610d00565b50505050565b6000546001600160a01b03163314610d9e5760405162461bcd60e51b815260040161073690611f6e565b600e546001600160a01b03166110b457600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051600091839163c45a0155916004808201926020929091908290030181865afa158015610e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3b9190611fe6565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611fe6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190611fe6565b90506001600160a01b03811615610f4d57600e80546001600160a01b0383166001600160a01b03199091161790555050565b816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf9190611fe6565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611fe6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190611fe6565b600e80546001600160a01b0319166001600160a01b039290921691909117905550505b565b6000546001600160a01b031633146110e05760405162461bcd60e51b815260040161073690611f6e565b601055565b6000546001600160a01b0316331461110f5760405162461bcd60e51b815260040161073690611f6e565b6001600160a01b03811661114a5760405162461bcd60e51b8152602060048201526002602482015261453160f01b6044820152606401610736565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111e05760405162461bcd60e51b8152602060048201526002602482015261453760f01b6044820152606401610736565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152600260248201526108a760f31b6044820152606401610736565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112b75760405162461bcd60e51b8152602060048201526002602482015261453960f01b6044820152606401610736565b6001600160a01b0382166112f35760405162461bcd60e51b815260206004820152600360248201526204531360ec1b6044820152606401610736565b600081116113295760405162461bcd60e51b815260206004820152600360248201526245313160e81b6044820152606401610736565b6000546001600160a01b0384811691161480159061135557506000546001600160a01b03838116911614155b156115a857600e54600160a01b900460ff166113ae576000546001600160a01b038481169116146113ae5760405162461bcd60e51b815260206004820152600360248201526222989960e91b6044820152606401610736565b600f548111156113e65760405162461bcd60e51b815260206004820152600360248201526245313360e81b6044820152606401610736565b6001600160a01b0383166000908152600a602052604090205460ff1615801561142857506001600160a01b0382166000908152600a602052604090205460ff16155b61145a5760405162461bcd60e51b8152602060048201526003602482015262114c4d60ea1b6044820152606401610736565b600e546001600160a01b038381169116146114cf5760105481611492846001600160a01b031660009081526003602052604090205490565b61149c9190612003565b106114cf5760405162461bcd60e51b815260206004820152600360248201526245313560e81b6044820152606401610736565b30600090815260036020526040902054601154600f54908210159082106114f657600f5491505b80801561150d5750600e54600160a81b900460ff16155b80156115275750600e546001600160a01b03868116911614155b801561153c5750600e54600160b01b900460ff165b801561156157506001600160a01b03851660009081526004602052604090205460ff16155b801561158657506001600160a01b03841660009081526004602052604090205460ff16155b156115a5576115948261172a565b4780156115a3576115a36116dd565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff16806115ea57506001600160a01b03831660009081526004602052604090205460ff165b8061161c5750600e546001600160a01b0385811691161480159061161c5750600e546001600160a01b03848116911614155b1561162957506000611697565b600e546001600160a01b0385811691161480156116545750600d546001600160a01b03848116911614155b15611660576006546008555b600e546001600160a01b03848116911614801561168b5750600d546001600160a01b03858116911614155b15611697576007546008555b610d6e848484846118a4565b600081848411156116c75760405162461bcd60e51b81526004016107369190611c79565b5060006116d48486612016565b95945050505050565b600c546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610d6e576040519150601f19603f3d011682016040523d82523d6000602084013e610d6e565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061177257611772611f8a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190611fe6565b8160018151811061180257611802611f8a565b6001600160a01b039283166020918202929092010152600d5461182891309116846111a5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611861908590600090869030904290600401612029565b600060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b806118b1576118b16118cc565b6118bc8484846118e5565b80610d6e57610d6e600954600855565b6008546000036118d857565b6008805460095560009055565b6000611907606461190160085485611a1890919063ffffffff16565b90611a7c565b905060006119158383611aa3565b6001600160a01b03861660009081526003602052604090205490915061193b9084611aa3565b6001600160a01b03808716600090815260036020526040808220939093559086168152205461196a9082611aca565b6001600160a01b03851660009081526003602052604090205581156119c4576005546119969083611aca565b600555306000908152600360205260409020546119b39083611aca565b306000908152600360205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0991815260200190565b60405180910390a35050505050565b600082600003611a2a575060006107bc565b6000611a368385611fcf565b905082611a43858361209a565b14611a755760405162461bcd60e51b8152602060048201526002602482015261114d60f21b6044820152606401610736565b9392505050565b6000611a75838360405180604001604052806002815260200161453560f01b815250611b0e565b6000611a75838360405180604001604052806002815260200161453360f01b8152506116a3565b600080611ad78385612003565b905083811015611a755760405162461bcd60e51b8152602060048201526002602482015261229960f11b6044820152606401610736565b60008183611b2f5760405162461bcd60e51b81526004016107369190611c79565b5060006116d4848661209a565b60405180604001604052806002906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108c857600080fd5b8035611baf81611b8f565b919050565b60006020808385031215611bc757600080fd5b823567ffffffffffffffff80821115611bdf57600080fd5b818501915085601f830112611bf357600080fd5b813581811115611c0557611c05611b79565b8060051b604051601f19603f83011681018181108582111715611c2a57611c2a611b79565b604052918252848201925083810185019188831115611c4857600080fd5b938501935b82851015611c6d57611c5e85611ba4565b84529385019392850192611c4d565b98975050505050505050565b600060208083528351808285015260005b81811015611ca657858101830151858201604001528201611c8a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611cda57600080fd5b8235611ce581611b8f565b946020939093013593505050565b600080600060608486031215611d0857600080fd5b8335611d1381611b8f565b92506020840135611d2381611b8f565b929592945050506040919091013590565b600060208284031215611d4657600080fd5b8135611a7581611b8f565b60008060408385031215611d6457600080fd5b50508035926020909101359150565b6101608101818560005b6002811015611d9e5781511515835260209283019290910190600101611d7d565b505050604082018460005b6008811015611dc8578151835260209283019290910190600101611da9565b5050506001600160a01b0392909216610140919091015292915050565b60008083601f840112611df757600080fd5b50813567ffffffffffffffff811115611e0f57600080fd5b6020830191508360208260051b8501011115611e2a57600080fd5b9250929050565b60008060008060408587031215611e4757600080fd5b843567ffffffffffffffff80821115611e5f57600080fd5b611e6b88838901611de5565b90965094506020870135915080821115611e8457600080fd5b50611e9187828801611de5565b95989497509550505050565b80358015158114611baf57600080fd5b600060208284031215611ebf57600080fd5b611a7582611e9d565b600060208284031215611eda57600080fd5b5035919050565b600080600060408486031215611ef657600080fd5b833567ffffffffffffffff811115611f0d57600080fd5b611f1986828701611de5565b9094509250611f2c905060208501611e9d565b90509250925092565b60008060408385031215611f4857600080fd5b8235611f5381611b8f565b91506020830135611f6381611b8f565b809150509250929050565b602080825260029082015261045360f41b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fc857611fc8611fa0565b5060010190565b80820281158282048414176107bc576107bc611fa0565b600060208284031215611ff857600080fd5b8151611a7581611b8f565b808201808211156107bc576107bc611fa0565b818103818111156107bc576107bc611fa0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120795784516001600160a01b031683529383019391830191600101612054565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826120b757634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f6236db6b86f4bd15b608d7b9aa2d231ef9984443016b212fc244a3a22a83deb64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102125760003560e01c806370a082311161011857806398a5c315116100a0578063c492f0461161006f578063c492f04614610651578063cb7dc8bf14610671578063dd62ed3e14610686578063ea1644d5146106cc578063f2fde38b146106ec57600080fd5b806398a5c315146105cc578063a9059cbb146105ec578063bfd792841461060c578063c3c8cd801461063c57600080fd5b80637f2feddc116100e75780637f2feddc1461054b5780638da5cb5b146105785780638f70ccf7146105965780638f9a55c0146105b657806395d89b411461024057600080fd5b806370a08231146104ca578063715018a61461050057806374010ece146105155780637d1db4a51461053557600080fd5b806349bd5a5e1161019b5780635a9b0b891161016a5780635a9b0b891461043157806367243482146104555780636b999053146104755780636d8aa8f8146104955780636fc3eaec146104b557600080fd5b806349bd5a5e1461039857806351d31822146103b857806352f7c988146103d85780635342acb4146103f857600080fd5b806318160ddd116101e257806318160ddd146102e557806323b872dd1461030d5780632fd689e31461032d578063313ce567146103435780633bbac5791461035f57600080fd5b8062b8cf2a1461021e57806306fdde0314610240578063095ea7b31461027d5780631694505e146102ad57600080fd5b3661021957005b600080fd5b34801561022a57600080fd5b5061023e610239366004611bb4565b61070c565b005b34801561024c57600080fd5b50604080518082018252600581526414d51154d560da1b602082015290516102749190611c79565b60405180910390f35b34801561028957600080fd5b5061029d610298366004611cc7565b6107ab565b6040519015158152602001610274565b3480156102b957600080fd5b50600d546102cd906001600160a01b031681565b6040516001600160a01b039091168152602001610274565b3480156102f157600080fd5b506a084595161401484a0000005b604051908152602001610274565b34801561031957600080fd5b5061029d610328366004611cf3565b6107c2565b34801561033957600080fd5b506102ff60115481565b34801561034f57600080fd5b5060405160128152602001610274565b34801561036b57600080fd5b5061029d61037a366004611d34565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156103a457600080fd5b50600e546102cd906001600160a01b031681565b3480156103c457600080fd5b5061023e6103d3366004611d34565b610851565b3480156103e457600080fd5b5061023e6103f3366004611d51565b6108cb565b34801561040457600080fd5b5061029d610413366004611d34565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561043d57600080fd5b5061044661096e565b60405161027493929190611d73565b34801561046157600080fd5b5061023e610470366004611e31565b610a18565b34801561048157600080fd5b5061023e610490366004611d34565b610ab1565b3480156104a157600080fd5b5061023e6104b0366004611ead565b610afc565b3480156104c157600080fd5b5061023e610b44565b3480156104d657600080fd5b506102ff6104e5366004611d34565b6001600160a01b031660009081526003602052604090205490565b34801561050c57600080fd5b5061023e610b73565b34801561052157600080fd5b5061023e610530366004611ec8565b610be7565b34801561054157600080fd5b506102ff600f5481565b34801561055757600080fd5b506102ff610566366004611d34565b600b6020526000908152604090205481565b34801561058457600080fd5b506000546001600160a01b03166102cd565b3480156105a257600080fd5b5061023e6105b1366004611ead565b610c16565b3480156105c257600080fd5b506102ff60105481565b3480156105d857600080fd5b5061023e6105e7366004611ec8565b610c5e565b3480156105f857600080fd5b5061029d610607366004611cc7565b610c8d565b34801561061857600080fd5b5061029d610627366004611d34565b600a6020526000908152604090205460ff1681565b34801561064857600080fd5b5061023e610c9a565b34801561065d57600080fd5b5061023e61066c366004611ee1565b610cd3565b34801561067d57600080fd5b5061023e610d74565b34801561069257600080fd5b506102ff6106a1366004611f35565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106d857600080fd5b5061023e6106e7366004611ec8565b6110b6565b3480156106f857600080fd5b5061023e610707366004611d34565b6110e5565b6000546001600160a01b0316331461073f5760405162461bcd60e51b815260040161073690611f6e565b60405180910390fd5b60005b81518110156107a7576001600a600084848151811061076357610763611f8a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061079f81611fb6565b915050610742565b5050565b60006107b83384846111a5565b5060015b92915050565b60006107cf84848461127c565b61084784336108428560405180604001604052806002815260200161229b60f11b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006108213390565b6001600160a01b0316815260208101919091526040016000205491906116a3565b6111a5565b5060019392505050565b6000546001600160a01b0316331461087b5760405162461bcd60e51b815260040161073690611f6e565b600c546001600160a01b038281169116146108c857600c80546001600160a01b0319166001600160a01b0383169081179091556000908152600460205260409020805460ff191660011790555b50565b6000546001600160a01b031633146108f55760405162461bcd60e51b815260040161073690611f6e565b601482111561092c5760405162461bcd60e51b815260206004820152600360248201526222989b60e91b6044820152606401610736565b60148111156109635760405162461bcd60e51b815260206004820152600360248201526245313760e81b6044820152606401610736565b600691909155600755565b610976611b3c565b61097e611b5a565b6000610988611b3c565b610990611b5a565b600e5460ff600160a01b8204811615158452600160b01b909104161515602080840191909152600654825260075482820152600f546040808401919091526010546060840152600554608084015260115460a08401524760c0840152306000908152600390925290205460e0820152600c5491959094506001600160a01b0390911692509050565b8215801590610a2657508083145b610a2f57600080fd5b3360005b84811015610aa957610a9782878784818110610a5157610a51611f8a565b9050602002016020810190610a669190611d34565b868685818110610a7857610a78611f8a565b90506020020135670de0b6b3a7640000610a929190611fcf565b61127c565b80610aa181611fb6565b915050610a33565b505050505050565b6000546001600160a01b03163314610adb5760405162461bcd60e51b815260040161073690611f6e565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b03163314610b265760405162461bcd60e51b815260040161073690611f6e565b600e8054911515600160b01b0260ff60b01b19909216919091179055565b600c546001600160a01b0316336001600160a01b031614610b6457600080fd5b4780156108c8576108c86116dd565b6000546001600160a01b03163314610b9d5760405162461bcd60e51b815260040161073690611f6e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c115760405162461bcd60e51b815260040161073690611f6e565b600f55565b6000546001600160a01b03163314610c405760405162461bcd60e51b815260040161073690611f6e565b600e8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161073690611f6e565b601155565b60006107b833848461127c565b600c546001600160a01b0316336001600160a01b031614610cba57600080fd5b306000908152600360205260409020546108c88161172a565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b815260040161073690611f6e565b60005b82811015610d6e578160046000868685818110610d1f57610d1f611f8a565b9050602002016020810190610d349190611d34565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6681611fb6565b915050610d00565b50505050565b6000546001600160a01b03163314610d9e5760405162461bcd60e51b815260040161073690611f6e565b600e546001600160a01b03166110b457600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051600091839163c45a0155916004808201926020929091908290030181865afa158015610e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3b9190611fe6565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611fe6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190611fe6565b90506001600160a01b03811615610f4d57600e80546001600160a01b0383166001600160a01b03199091161790555050565b816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf9190611fe6565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611fe6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190611fe6565b600e80546001600160a01b0319166001600160a01b039290921691909117905550505b565b6000546001600160a01b031633146110e05760405162461bcd60e51b815260040161073690611f6e565b601055565b6000546001600160a01b0316331461110f5760405162461bcd60e51b815260040161073690611f6e565b6001600160a01b03811661114a5760405162461bcd60e51b8152602060048201526002602482015261453160f01b6044820152606401610736565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111e05760405162461bcd60e51b8152602060048201526002602482015261453760f01b6044820152606401610736565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152600260248201526108a760f31b6044820152606401610736565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112b75760405162461bcd60e51b8152602060048201526002602482015261453960f01b6044820152606401610736565b6001600160a01b0382166112f35760405162461bcd60e51b815260206004820152600360248201526204531360ec1b6044820152606401610736565b600081116113295760405162461bcd60e51b815260206004820152600360248201526245313160e81b6044820152606401610736565b6000546001600160a01b0384811691161480159061135557506000546001600160a01b03838116911614155b156115a857600e54600160a01b900460ff166113ae576000546001600160a01b038481169116146113ae5760405162461bcd60e51b815260206004820152600360248201526222989960e91b6044820152606401610736565b600f548111156113e65760405162461bcd60e51b815260206004820152600360248201526245313360e81b6044820152606401610736565b6001600160a01b0383166000908152600a602052604090205460ff1615801561142857506001600160a01b0382166000908152600a602052604090205460ff16155b61145a5760405162461bcd60e51b8152602060048201526003602482015262114c4d60ea1b6044820152606401610736565b600e546001600160a01b038381169116146114cf5760105481611492846001600160a01b031660009081526003602052604090205490565b61149c9190612003565b106114cf5760405162461bcd60e51b815260206004820152600360248201526245313560e81b6044820152606401610736565b30600090815260036020526040902054601154600f54908210159082106114f657600f5491505b80801561150d5750600e54600160a81b900460ff16155b80156115275750600e546001600160a01b03868116911614155b801561153c5750600e54600160b01b900460ff165b801561156157506001600160a01b03851660009081526004602052604090205460ff16155b801561158657506001600160a01b03841660009081526004602052604090205460ff16155b156115a5576115948261172a565b4780156115a3576115a36116dd565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff16806115ea57506001600160a01b03831660009081526004602052604090205460ff165b8061161c5750600e546001600160a01b0385811691161480159061161c5750600e546001600160a01b03848116911614155b1561162957506000611697565b600e546001600160a01b0385811691161480156116545750600d546001600160a01b03848116911614155b15611660576006546008555b600e546001600160a01b03848116911614801561168b5750600d546001600160a01b03858116911614155b15611697576007546008555b610d6e848484846118a4565b600081848411156116c75760405162461bcd60e51b81526004016107369190611c79565b5060006116d48486612016565b95945050505050565b600c546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610d6e576040519150601f19603f3d011682016040523d82523d6000602084013e610d6e565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061177257611772611f8a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190611fe6565b8160018151811061180257611802611f8a565b6001600160a01b039283166020918202929092010152600d5461182891309116846111a5565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611861908590600090869030904290600401612029565b600060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b806118b1576118b16118cc565b6118bc8484846118e5565b80610d6e57610d6e600954600855565b6008546000036118d857565b6008805460095560009055565b6000611907606461190160085485611a1890919063ffffffff16565b90611a7c565b905060006119158383611aa3565b6001600160a01b03861660009081526003602052604090205490915061193b9084611aa3565b6001600160a01b03808716600090815260036020526040808220939093559086168152205461196a9082611aca565b6001600160a01b03851660009081526003602052604090205581156119c4576005546119969083611aca565b600555306000908152600360205260409020546119b39083611aca565b306000908152600360205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0991815260200190565b60405180910390a35050505050565b600082600003611a2a575060006107bc565b6000611a368385611fcf565b905082611a43858361209a565b14611a755760405162461bcd60e51b8152602060048201526002602482015261114d60f21b6044820152606401610736565b9392505050565b6000611a75838360405180604001604052806002815260200161453560f01b815250611b0e565b6000611a75838360405180604001604052806002815260200161453360f01b8152506116a3565b600080611ad78385612003565b905083811015611a755760405162461bcd60e51b8152602060048201526002602482015261229960f11b6044820152606401610736565b60008183611b2f5760405162461bcd60e51b81526004016107369190611c79565b5060006116d4848661209a565b60405180604001604052806002906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108c857600080fd5b8035611baf81611b8f565b919050565b60006020808385031215611bc757600080fd5b823567ffffffffffffffff80821115611bdf57600080fd5b818501915085601f830112611bf357600080fd5b813581811115611c0557611c05611b79565b8060051b604051601f19603f83011681018181108582111715611c2a57611c2a611b79565b604052918252848201925083810185019188831115611c4857600080fd5b938501935b82851015611c6d57611c5e85611ba4565b84529385019392850192611c4d565b98975050505050505050565b600060208083528351808285015260005b81811015611ca657858101830151858201604001528201611c8a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611cda57600080fd5b8235611ce581611b8f565b946020939093013593505050565b600080600060608486031215611d0857600080fd5b8335611d1381611b8f565b92506020840135611d2381611b8f565b929592945050506040919091013590565b600060208284031215611d4657600080fd5b8135611a7581611b8f565b60008060408385031215611d6457600080fd5b50508035926020909101359150565b6101608101818560005b6002811015611d9e5781511515835260209283019290910190600101611d7d565b505050604082018460005b6008811015611dc8578151835260209283019290910190600101611da9565b5050506001600160a01b0392909216610140919091015292915050565b60008083601f840112611df757600080fd5b50813567ffffffffffffffff811115611e0f57600080fd5b6020830191508360208260051b8501011115611e2a57600080fd5b9250929050565b60008060008060408587031215611e4757600080fd5b843567ffffffffffffffff80821115611e5f57600080fd5b611e6b88838901611de5565b90965094506020870135915080821115611e8457600080fd5b50611e9187828801611de5565b95989497509550505050565b80358015158114611baf57600080fd5b600060208284031215611ebf57600080fd5b611a7582611e9d565b600060208284031215611eda57600080fd5b5035919050565b600080600060408486031215611ef657600080fd5b833567ffffffffffffffff811115611f0d57600080fd5b611f1986828701611de5565b9094509250611f2c905060208501611e9d565b90509250925092565b60008060408385031215611f4857600080fd5b8235611f5381611b8f565b91506020830135611f6381611b8f565b809150509250929050565b602080825260029082015261045360f41b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fc857611fc8611fa0565b5060010190565b80820281158282048414176107bc576107bc611fa0565b600060208284031215611ff857600080fd5b8151611a7581611b8f565b808201808211156107bc576107bc611fa0565b818103818111156107bc576107bc611fa0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120795784516001600160a01b031683529383019391830191600101612054565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826120b757634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f6236db6b86f4bd15b608d7b9aa2d231ef9984443016b212fc244a3a22a83deb64736f6c63430008140033

Deployed Bytecode Sourcemap

4064:11758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11991:169;;;;;;;;;;-1:-1:-1;11991:169:0;;;;;:::i;:::-;;:::i;:::-;;6718:83;;;;;;;;;;-1:-1:-1;6788:5:0;;;;;;;;;;;-1:-1:-1;;;6788:5:0;;;;6718:83;;;;6788:5;6718:83;:::i;:::-;;;;;;;;7636:193;;;;;;;;;;-1:-1:-1;7636:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;7636:193:0;2420:187:1;4966:41:0;;;;;;;;;;-1:-1:-1;4966:41:0;;;;-1:-1:-1;;;;;4966:41:0;;;;;;-1:-1:-1;;;;;2802:32:1;;;2784:51;;2772:2;2757:18;4966:41:0;2612:229:1;6998:100:0;;;;;;;;;;-1:-1:-1;4519:17:0;6998:100;;;2992:25:1;;;2980:2;2965:18;6998:100:0;2846:177:1;7838:408:0;;;;;;;;;;-1:-1:-1;7838:408:0;;;;;:::i;:::-;;:::i;5266:49::-;;;;;;;;;;;;;;;;6906:83;;;;;;;;;;-1:-1:-1;6906:83:0;;4407:2;3631:36:1;;3619:2;3604:18;6906:83:0;3489:184:1;12269:92:0;;;;;;;;;;-1:-1:-1;12269:92:0;;;;;:::i;:::-;-1:-1:-1;;;;;12343:10:0;12319:4;12343:10;;;:4;:10;;;;;;;;;12269:92;5014:28;;;;;;;;;;-1:-1:-1;5014:28:0;;;;-1:-1:-1;;;;;5014:28:0;;;15581:236;;;;;;;;;;-1:-1:-1;15581:236:0;;;;;:::i;:::-;;:::i;13312:262::-;;;;;;;;;;-1:-1:-1;13312:262:0;;;;;:::i;:::-;;:::i;14171:118::-;;;;;;;;;;-1:-1:-1;14171:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;14257:24:0;14233:4;14257:24;;;:18;:24;;;;;;;;;14171:118;14889:683;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;14540:341::-;;;;;;;;;;-1:-1:-1;14540:341:0;;;;;:::i;:::-;;:::i;12169:92::-;;;;;;;;;;-1:-1:-1;12169:92:0;;;;;:::i;:::-;;:::i;13777:101::-;;;;;;;;;;-1:-1:-1;13777:101:0;;;;;:::i;:::-;;:::i;11750:232::-;;;;;;;;;;;;;:::i;7107:119::-;;;;;;;;;;-1:-1:-1;7107:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7200:18:0;7173:7;7200:18;;;:9;:18;;;;;;;7107:119;1610:148;;;;;;;;;;;;;:::i;13918:121::-;;;;;;;;;;-1:-1:-1;13918:121:0;;;;;:::i;:::-;;:::i;5158:45::-;;;;;;;;;;;;;;;;4805:43;;;;;;;;;;-1:-1:-1;4805:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1424:79;;;;;;;;;;-1:-1:-1;1462:7:0;1489:6;-1:-1:-1;;;;;1489:6:0;1424:79;;11434:101;;;;;;;;;;-1:-1:-1;11434:101:0;;;;;:::i;:::-;;:::i;5211:47::-;;;;;;;;;;;;;;;;13627:139;;;;;;;;;;-1:-1:-1;13627:139:0;;;;;:::i;:::-;;:::i;7235:199::-;;;;;;;;;;-1:-1:-1;7235:199:0;;;;;:::i;:::-;;:::i;4761:36::-;;;;;;;;;;-1:-1:-1;4761:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11544:197;;;;;;;;;;;;;:::i;14298:234::-;;;;;;;;;;-1:-1:-1;14298:234:0;;;;;:::i;:::-;;:::i;6077:632::-;;;;;;;;;;;;;:::i;7443:184::-;;;;;;;;;;-1:-1:-1;7443:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7592:18:0;;;7560:7;7592:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7443:184;14048:115;;;;;;;;;;-1:-1:-1;14048:115:0;;;;;:::i;:::-;;:::i;1767:208::-;;;;;;;;;;-1:-1:-1;1767:208:0;;;;;:::i;:::-;;:::i;11991:169::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;;;;;;;;;12067:9:::1;12062:91;12086:5;:12;12082:1;:16;12062:91;;;12137:4;12120;:14;12125:5;12131:1;12125:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12120:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12120:14:0;:21;;-1:-1:-1;;12120:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12100:3;::::1;::::0;::::1;:::i;:::-;;;;12062:91;;;;11991:169:::0;:::o;7636:193::-;7738:4;7760:39;253:10;7783:7;7792:6;7760:8;:39::i;:::-;-1:-1:-1;7817:4:0;7636:193;;;;;:::o;7838:408::-;7970:4;7987:36;7997:6;8005:9;8016:6;7987:9;:36::i;:::-;8034:182;8057:6;253:10;8105:100;8161:6;8105:100;;;;;;;;;;;;;-1:-1:-1;;;8105:100:0;;;:11;:19;8117:6;-1:-1:-1;;;;;8105:19:0;-1:-1:-1;;;;;8105:19:0;;;;;;;;;;;;:33;8125:12;253:10;;173:98;8125:12;-1:-1:-1;;;;;8105:33:0;;;;;;;;;;;;-1:-1:-1;8105:33:0;;;:100;:37;:100::i;:::-;8034:8;:182::i;:::-;-1:-1:-1;8234:4:0;7838:408;;;;;:::o;15581:236::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;15658:17:::1;::::0;-1:-1:-1;;;;;15658:25:0;;::::1;:17:::0;::::1;15654:64:::0;15700:7:::1;15654:64;15730:17;:24:::0;;-1:-1:-1;;;;;;15730:24:0::1;-1:-1:-1::0;;;;;15730:24:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;15765:37:0;;;:18:::1;:37;::::0;;;;:44;;-1:-1:-1;;15765:44:0::1;-1:-1:-1::0;15765:44:0::1;::::0;;1592:1:::1;15581:236:::0;:::o;13312:262::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;13430:2:::1;13418:8;:14;;13393:47;;;::::0;-1:-1:-1;;;13393:47:0;;9193:2:1;13393:47:0::1;::::0;::::1;9175:21:1::0;9232:1;9212:18;;;9205:29;-1:-1:-1;;;9250:18:1;;;9243:33;9293:18;;13393:47:0::1;8991:326:1::0;13393:47:0::1;13490:2;13477:9;:15;;13451:49;;;::::0;-1:-1:-1;;;13451:49:0;;9524:2:1;13451:49:0::1;::::0;::::1;9506:21:1::0;9563:1;9543:18;;;9536:29;-1:-1:-1;;;9581:18:1;;;9574:33;9624:18;;13451:49:0::1;9322:326:1::0;13451:49:0::1;13513:9;:20:::0;;;;13544:10:::1;:22:::0;13312:262::o;14889:683::-;14928:14;;:::i;:::-;14944:17;;:::i;:::-;14963:7;14983:20;;:::i;:::-;15014:23;;:::i;:::-;15059:11;;;-1:-1:-1;;;15059:11:0;;;;15048:22;;;;-1:-1:-1;;;15092:11:0;;;;15081:22;;15048:8;15081;;;:22;;;;15125:9;;15114:20;;15156:10;;15145:8;;;:21;15188:12;;15177:8;;;;:23;;;;15222:14;;15211:8;;;:25;15258:9;;15247:8;;;:20;15289:19;;15278:8;;;:30;15342:21;15374:8;;;:21;15455:4;-1:-1:-1;7200:18:0;;;15217:1;7200:18;;;;;;15472:8;;;:31;15546:17;;15048:22;;15114:20;;-1:-1:-1;;;;;;15546:17:0;;;;-1:-1:-1;15048:22:0;-1:-1:-1;14889:683:0:o;14540:341::-;14643:20;;;;;:58;;-1:-1:-1;14667:34:0;;;14643:58;14635:67;;;;;;14728:10;14713:12;14751:123;14768:20;;;14751:123;;;14810:52;14820:4;14826:9;;14836:1;14826:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14840:7;;14848:1;14840:10;;;;;;;:::i;:::-;;;;;;;14854:6;14840:21;;;;:::i;:::-;14810:9;:52::i;:::-;14790:3;;;;:::i;:::-;;;;14751:123;;;;14624:257;14540:341;;;;:::o;12169:92::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12233:12:0::1;12248:5;12233:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;12233:20:0::1;::::0;;12169:92::o;13777:101::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;13844:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13844:26:0::1;-1:-1:-1::0;;;;13844:26:0;;::::1;::::0;;;::::1;::::0;;13777:101::o;11750:232::-;11816:17;;-1:-1:-1;;;;;11816:17:0;253:10;-1:-1:-1;;;;;11800:33:0;;11792:42;;;;;;11874:21;11910:22;;11906:69;;11949:14;:12;:14::i;1610:148::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;1717:1:::1;1701:6:::0;;1680:40:::1;::::0;-1:-1:-1;;;;;1701:6:0;;::::1;::::0;1680:40:::1;::::0;1717:1;;1680:40:::1;1748:1;1731:19:::0;;-1:-1:-1;;;;;;1731:19:0::1;::::0;;1610:148::o;13918:121::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;13995:12:::1;:26:::0;13918:121::o;11434:101::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;11501:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;11501:26:0::1;-1:-1:-1::0;;;;11501:26:0;;::::1;::::0;;;::::1;::::0;;11434:101::o;13627:139::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;13718:19:::1;:40:::0;13627:139::o;7235:199::-;7340:4;7362:42;253:10;7386:9;7397:6;7362:9;:42::i;11544:197::-;11610:17;;-1:-1:-1;;;;;11610:17:0;253:10;-1:-1:-1;;;;;11594:33:0;;11586:42;;;;;;11683:4;11639:23;7200:18;;;:9;:18;;;;;;11700:33;7200:18;11700:16;:33::i;14298:234::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;14415:9:::1;14411:114;14430:19:::0;;::::1;14411:114;;;14505:8;14471:18;:31;14490:8;;14499:1;14490:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14471:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14471:31:0;:42;;-1:-1:-1;;14471:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14451:3;::::1;::::0;::::1;:::i;:::-;;;;14411:114;;;;14298:234:::0;;;:::o;6077:632::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;6132:13:::1;::::0;-1:-1:-1;;;;;6132:13:0::1;6176:7;6128:66;6315:15;:34:::0;;-1:-1:-1;;;;;;6315:34:0::1;6261:42;6315:34:::0;;::::1;::::0;;;6392:26:::1;::::0;;-1:-1:-1;;;6392:26:0;;;;6204:35:::1;::::0;6261:42;;6392:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;6261:42;6392:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6374:53:0::1;;6436:4;6443:16;-1:-1:-1::0;;;;;6443:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6374:93;::::0;-1:-1:-1;;;;;;6374:93:0::1;::::0;;;;;;-1:-1:-1;;;;;10312:15:1;;;6374:93:0::1;::::0;::::1;10294:34:1::0;10364:15;;10344:18;;;10337:43;10229:18;;6374:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6360:107:::0;-1:-1:-1;;;;;;6482:17:0;::::1;::::0;6478:214:::1;;6516:13;:19:::0;;-1:-1:-1;;;;;6516:19:0;::::1;-1:-1:-1::0;;;;;;6516:19:0;;::::1;;::::0;;12062:91:::1;11991:169:::0;:::o;6478:214::-:1;6602:16;-1:-1:-1::0;;;;;6602:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6584:56:0::1;;6649:4;6656:16;-1:-1:-1::0;;;;;6656:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6584:96;::::0;-1:-1:-1;;;;;;6584:96:0::1;::::0;;;;;;-1:-1:-1;;;;;10312:15:1;;;6584:96:0::1;::::0;::::1;10294:34:1::0;10364:15;;10344:18;;;10337:43;10229:18;;6584:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6568:13;:112:::0;;-1:-1:-1;;;;;;6568:112:0::1;-1:-1:-1::0;;;;;6568:112:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;1592:1:0::1;6077:632::o:0;14048:115::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;14125:14:::1;:30:::0;14048:115::o;1767:208::-;1552:6;;-1:-1:-1;;;;;1552:6:0;253:10;1552:22;1544:37;;;;-1:-1:-1;;;1544:37:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1856:22:0;::::1;1848:37;;;::::0;-1:-1:-1;;;1848:37:0;;10593:2:1;1848:37:0::1;::::0;::::1;10575:21:1::0;10632:1;10612:18;;;10605:29;-1:-1:-1;;;10650:18:1;;;10643:32;10692:18;;1848:37:0::1;10391:325:1::0;1848:37:0::1;1922:6;::::0;;1901:38:::1;::::0;-1:-1:-1;;;;;1901:38:0;;::::1;::::0;1922:6;::::1;::::0;1901:38:::1;::::0;::::1;1950:6;:17:::0;;-1:-1:-1;;;;;;1950:17:0::1;-1:-1:-1::0;;;;;1950:17:0;;;::::1;::::0;;;::::1;::::0;;1767:208::o;8476:303::-;-1:-1:-1;;;;;8603:19:0;;8595:34;;;;-1:-1:-1;;;8595:34:0;;10923:2:1;8595:34:0;;;10905:21:1;10962:1;10942:18;;;10935:29;-1:-1:-1;;;10980:18:1;;;10973:32;11022:18;;8595:34:0;10721:325:1;8595:34:0;-1:-1:-1;;;;;8648:21:0;;8640:36;;;;-1:-1:-1;;;8640:36:0;;11253:2:1;8640:36:0;;;11235:21:1;11292:1;11272:18;;;11265:29;-1:-1:-1;;;11310:18:1;;;11303:32;11352:18;;8640:36:0;11051:325:1;8640:36:0;-1:-1:-1;;;;;8687:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8739:32;;2992:25:1;;;8739:32:0;;2965:18:1;8739:32:0;;;;;;;8476:303;;;:::o;8788:1959::-;-1:-1:-1;;;;;8910:18:0;;8902:33;;;;-1:-1:-1;;;8902:33:0;;11583:2:1;8902:33:0;;;11565:21:1;11622:1;11602:18;;;11595:29;-1:-1:-1;;;11640:18:1;;;11633:32;11682:18;;8902:33:0;11381:325:1;8902:33:0;-1:-1:-1;;;;;8954:16:0;;8946:32;;;;-1:-1:-1;;;8946:32:0;;11913:2:1;8946:32:0;;;11895:21:1;11952:1;11932:18;;;11925:29;-1:-1:-1;;;11970:18:1;;;11963:33;12013:18;;8946:32:0;11711:326:1;8946:32:0;9006:1;8997:6;:10;8989:26;;;;-1:-1:-1;;;8989:26:0;;12244:2:1;8989:26:0;;;12226:21:1;12283:1;12263:18;;;12256:29;-1:-1:-1;;;12301:18:1;;;12294:33;12344:18;;8989:26:0;12042:326:1;8989:26:0;1462:7;1489:6;-1:-1:-1;;;;;9033:15:0;;;1489:6;;9033:15;;;;:32;;-1:-1:-1;1462:7:0;1489:6;-1:-1:-1;;;;;9052:13:0;;;1489:6;;9052:13;;9033:32;9029:1089;;;9123:11;;-1:-1:-1;;;9123:11:0;;;;9118:84;;1462:7;1489:6;-1:-1:-1;;;;;9163:15:0;;;1489:6;;9163:15;9155:31;;;;-1:-1:-1;;;9155:31:0;;12575:2:1;9155:31:0;;;12557:21:1;12614:1;12594:18;;;12587:29;-1:-1:-1;;;12632:18:1;;;12625:33;12675:18;;9155:31:0;12373:326:1;9155:31:0;9234:12;;9224:6;:22;;9216:38;;;;-1:-1:-1;;;9216:38:0;;12906:2:1;9216:38:0;;;12888:21:1;12945:1;12925:18;;;12918:29;-1:-1:-1;;;12963:18:1;;;12956:33;13006:18;;9216:38:0;12704:326:1;9216:38:0;-1:-1:-1;;;;;9278:10:0;;;;;;:4;:10;;;;;;;;9277:11;:24;;;;-1:-1:-1;;;;;;9293:8:0;;;;;;:4;:8;;;;;;;;9292:9;9277:24;9269:40;;;;-1:-1:-1;;;9269:40:0;;13237:2:1;9269:40:0;;;13219:21:1;13276:1;13256:18;;;13249:29;-1:-1:-1;;;13294:18:1;;;13287:33;13337:18;;9269:40:0;13035:326:1;9269:40:0;9333:13;;-1:-1:-1;;;;;9327:19:0;;;9333:13;;9327:19;9324:114;;9400:14;;9391:6;9375:13;9385:2;-1:-1:-1;;;;;7200:18:0;7173:7;7200:18;;;:9;:18;;;;;;;7107:119;9375:13;:22;;;;:::i;:::-;:39;9367:55;;;;-1:-1:-1;;;9367:55:0;;13698:2:1;9367:55:0;;;13680:21:1;13737:1;13717:18;;;13710:29;-1:-1:-1;;;13755:18:1;;;13748:33;13798:18;;9367:55:0;13496:326:1;9367:55:0;9504:4;9455:28;7200:18;;;:9;:18;;;;;;9564:19;;9628:12;;9540:43;;;;;9604:36;;9601:124;;9697:12;;9674:35;;9601:124;9746:7;:18;;;;-1:-1:-1;9758:6:0;;-1:-1:-1;;;9758:6:0;;;;9757:7;9746:18;:43;;;;-1:-1:-1;9776:13:0;;-1:-1:-1;;;;;9768:21:0;;;9776:13;;9768:21;;9746:43;:58;;;;-1:-1:-1;9793:11:0;;-1:-1:-1;;;9793:11:0;;;;9746:58;:87;;;;-1:-1:-1;;;;;;9809:24:0;;;;;;:18;:24;;;;;;;;9808:25;9746:87;:114;;;;-1:-1:-1;;;;;;9838:22:0;;;;;;:18;:22;;;;;;;;9837:23;9746:114;9742:365;;;9881:38;9898:20;9881:16;:38::i;:::-;9967:21;10011:22;;10007:85;;10058:14;:12;:14::i;:::-;9862:245;9742:365;9067:1051;;9029:1089;-1:-1:-1;;;;;10196:24:0;;10131:12;10196:24;;;:18;:24;;;;;;10146:4;;10196:24;;;:50;;-1:-1:-1;;;;;;10224:22:0;;;;;;:18;:22;;;;;;;;10196:50;10195:102;;;-1:-1:-1;10260:13:0;;-1:-1:-1;;;;;10252:21:0;;;10260:13;;10252:21;;;;:44;;-1:-1:-1;10283:13:0;;-1:-1:-1;;;;;10277:19:0;;;10283:13;;10277:19;;10252:44;10191:494;;;-1:-1:-1;10324:5:0;10191:494;;;10408:13;;-1:-1:-1;;;;;10400:21:0;;;10408:13;;10400:21;:55;;;;-1:-1:-1;10439:15:0;;-1:-1:-1;;;;;10425:30:0;;;10439:15;;10425:30;;10400:55;10397:111;;;10483:9;;10476:4;:16;10397:111;10568:13;;-1:-1:-1;;;;;10562:19:0;;;10568:13;;10562:19;:55;;;;-1:-1:-1;10601:15:0;;-1:-1:-1;;;;;10585:32:0;;;10601:15;;10585:32;;10562:55;10558:113;;;10645:10;;10638:4;:17;10558:113;10698:41;10713:4;10719:2;10723:6;10731:7;10698:14;:41::i;2290:224::-;2410:7;2446:12;2438:6;;;;2430:29;;;;-1:-1:-1;;;2430:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2470:9:0;2482:5;2486:1;2482;:5;:::i;:::-;2470:17;2290:224;-1:-1:-1;;;;;2290:224:0:o;11248:177::-;11336:17;;11328:89;;11291:12;;-1:-1:-1;;;;;11336:17:0;;11381:21;;11291:12;11328:89;11291:12;11328:89;11381:21;11336:17;11328:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10756:483;5410:6;:13;;-1:-1:-1;;;;5410:13:0;-1:-1:-1;;;5410:13:0;;;10858:16:::1;::::0;;10872:1:::1;10858:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10858:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10858:16:0::1;10834:40;;10903:4;10885;10890:1;10885:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10885:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10929:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10929:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10885:7;;10929:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10919:4;10924:1;10919:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10919:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10994:15:::1;::::0;10962:62:::1;::::0;10979:4:::1;::::0;10994:15:::1;11012:11:::0;10962:8:::1;:62::i;:::-;11035:15;::::0;:196:::1;::::0;-1:-1:-1;;;11035:196:0;;-1:-1:-1;;;;;11035:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11116:11;;11035:15:::1;::::0;11158:4;;11185::::1;::::0;11205:15:::1;::::0;11035:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5446:6:0;:14;;-1:-1:-1;;;;5446:14:0;;;-1:-1:-1;;;;10756:483:0:o;12370:282::-;12526:7;12521:28;;12535:14;:12;:14::i;:::-;12560:44;12578:6;12586:9;12597:6;12560:17;:44::i;:::-;12620:7;12615:29;;12629:15;8447:12;;8440:4;:19;8396:71;8260:127;8307:4;;8315:1;8307:9;8303:22;;8260:127::o;8303:22::-;8353:4;;;8338:12;:19;-1:-1:-1;8371:8:0;;8260:127::o;12661:601::-;12794:11;12808:25;12829:3;12808:16;12819:4;;12808:6;:10;;:16;;;;:::i;:::-;:20;;:25::i;:::-;12794:39;-1:-1:-1;12844:22:0;12869:15;:6;12794:39;12869:10;:15::i;:::-;-1:-1:-1;;;;;12917:17:0;;;;;;:9;:17;;;;;;12844:40;;-1:-1:-1;12917:29:0;;12939:6;12917:21;:29::i;:::-;-1:-1:-1;;;;;12897:17:0;;;;;;;:9;:17;;;;;;:49;;;;12980:20;;;;;;;:40;;13005:14;12980:24;:40::i;:::-;-1:-1:-1;;;;;12957:20:0;;;;;;:9;:20;;;;;:63;13035:7;;13031:146;;13071:9;;:18;;13085:3;13071:13;:18::i;:::-;13059:9;:30;13150:4;13132:24;;;;:9;:24;;;;;;:33;;13161:3;13132:28;:33::i;:::-;13122:4;13104:24;;;;:9;:24;;;;;:61;13031:146;13228:9;-1:-1:-1;;;;;13211:43:0;13220:6;-1:-1:-1;;;;;13211:43:0;;13239:14;13211:43;;;;2992:25:1;;2980:2;2965:18;;2846:177;13211:43:0;;;;;;;;12781:481;;12661:601;;;:::o;2523:215::-;2581:7;2605:1;2610;2605:6;2601:47;;-1:-1:-1;2635:1:0;2628:8;;2601:47;2658:9;2670:5;2674:1;2670;:5;:::i;:::-;2658:17;-1:-1:-1;2703:1:0;2694:5;2698:1;2658:17;2694:5;:::i;:::-;:10;2686:25;;;;-1:-1:-1;;;2686:25:0;;15579:2:1;2686:25:0;;;15561:21:1;15618:1;15598:18;;;15591:29;-1:-1:-1;;;15636:18:1;;;15629:32;15678:18;;2686:25:0;15377:325:1;2686:25:0;2729:1;2523:215;-1:-1:-1;;;2523:215:0:o;2747:108::-;2805:7;2832:15;2836:1;2839;2832:15;;;;;;;;;;;;;-1:-1:-1;;;2832:15:0;;;:3;:15::i;2173:108::-;2231:7;2258:15;2262:1;2265;2258:15;;;;;;;;;;;;;-1:-1:-1;;;2258:15:0;;;:3;:15::i;2010:154::-;2068:7;;2100:5;2104:1;2100;:5;:::i;:::-;2088:17;;2129:1;2124;:6;;2116:21;;;;-1:-1:-1;;;2116:21:0;;15909:2:1;2116:21:0;;;15891::1;15948:1;15928:18;;;15921:29;-1:-1:-1;;;15966:18:1;;;15959:32;16008:18;;2116:21:0;15707:325:1;2864:223:0;2984:7;3019:12;3012:5;3004:28;;;;-1:-1:-1;;;3004:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3043:9:0;3055:5;3059:1;3055;:5;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;3028:456::-;3105:6;3113;3121;3174:2;3162:9;3153:7;3149:23;3145:32;3142:52;;;3190:1;3187;3180:12;3142:52;3229:9;3216:23;3248:31;3273:5;3248:31;:::i;:::-;3298:5;-1:-1:-1;3355:2:1;3340:18;;3327:32;3368:33;3327:32;3368:33;:::i;:::-;3028:456;;3420:7;;-1:-1:-1;;;3474:2:1;3459:18;;;;3446:32;;3028:456::o;3678:247::-;3737:6;3790:2;3778:9;3769:7;3765:23;3761:32;3758:52;;;3806:1;3803;3796:12;3758:52;3845:9;3832:23;3864:31;3889:5;3864:31;:::i;4398:248::-;4466:6;4474;4527:2;4515:9;4506:7;4502:23;4498:32;4495:52;;;4543:1;4540;4533:12;4495:52;-1:-1:-1;;4566:23:1;;;4636:2;4621:18;;;4608:32;;-1:-1:-1;4398:248:1:o;4651:1013::-;4927:3;4912:19;;4916:9;5008:6;4885:4;5042:210;5056:4;5053:1;5050:11;5042:210;;;5129:13;;5122:21;5115:29;5103:42;;5168:4;5192:12;;;;5227:15;;;;5076:1;5069:9;5042:210;;;5046:3;;;5289:2;5278:9;5274:18;5340:6;5366:1;5376:212;5392:4;5387:3;5384:13;5376:212;;;5457:15;;5443:30;;5496:4;5522:14;;;;5561:17;;;;5416:1;5407:11;5376:212;;;-1:-1:-1;;;;;;;;5625:32:1;;;;5619:3;5604:19;;;;5597:61;4651:1013;;-1:-1:-1;;4651:1013:1:o;5669:367::-;5732:8;5742:6;5796:3;5789:4;5781:6;5777:17;5773:27;5763:55;;5814:1;5811;5804:12;5763:55;-1:-1:-1;5837:20:1;;5880:18;5869:30;;5866:50;;;5912:1;5909;5902:12;5866:50;5949:4;5941:6;5937:17;5925:29;;6009:3;6002:4;5992:6;5989:1;5985:14;5977:6;5973:27;5969:38;5966:47;5963:67;;;6026:1;6023;6016:12;5963:67;5669:367;;;;;:::o;6041:773::-;6163:6;6171;6179;6187;6240:2;6228:9;6219:7;6215:23;6211:32;6208:52;;;6256:1;6253;6246:12;6208:52;6296:9;6283:23;6325:18;6366:2;6358:6;6355:14;6352:34;;;6382:1;6379;6372:12;6352:34;6421:70;6483:7;6474:6;6463:9;6459:22;6421:70;:::i;:::-;6510:8;;-1:-1:-1;6395:96:1;-1:-1:-1;6598:2:1;6583:18;;6570:32;;-1:-1:-1;6614:16:1;;;6611:36;;;6643:1;6640;6633:12;6611:36;;6682:72;6746:7;6735:8;6724:9;6720:24;6682:72;:::i;:::-;6041:773;;;;-1:-1:-1;6773:8:1;-1:-1:-1;;;;6041:773:1:o;6819:160::-;6884:20;;6940:13;;6933:21;6923:32;;6913:60;;6969:1;6966;6959:12;6984:180;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7132:26;7148:9;7132:26;:::i;7169:180::-;7228:6;7281:2;7269:9;7260:7;7256:23;7252:32;7249:52;;;7297:1;7294;7287:12;7249:52;-1:-1:-1;7320:23:1;;7169:180;-1:-1:-1;7169:180:1:o;7354:505::-;7446:6;7454;7462;7515:2;7503:9;7494:7;7490:23;7486:32;7483:52;;;7531:1;7528;7521:12;7483:52;7571:9;7558:23;7604:18;7596:6;7593:30;7590:50;;;7636:1;7633;7626:12;7590:50;7675:70;7737:7;7728:6;7717:9;7713:22;7675:70;:::i;:::-;7764:8;;-1:-1:-1;7649:96:1;-1:-1:-1;7818:35:1;;-1:-1:-1;7849:2:1;7834:18;;7818:35;:::i;:::-;7808:45;;7354:505;;;;;:::o;7864:388::-;7932:6;7940;7993:2;7981:9;7972:7;7968:23;7964:32;7961:52;;;8009:1;8006;7999:12;7961:52;8048:9;8035:23;8067:31;8092:5;8067:31;:::i;:::-;8117:5;-1:-1:-1;8174:2:1;8159:18;;8146:32;8187:33;8146:32;8187:33;:::i;:::-;8239:7;8229:17;;;7864:388;;;;;:::o;8257:325::-;8459:2;8441:21;;;8498:1;8478:18;;;8471:29;-1:-1:-1;;;8531:2:1;8516:18;;8509:32;8573:2;8558:18;;8257:325::o;8587:127::-;8648:10;8643:3;8639:20;8636:1;8629:31;8679:4;8676:1;8669:15;8703:4;8700:1;8693:15;8719:127;8780:10;8775:3;8771:20;8768:1;8761:31;8811:4;8808:1;8801:15;8835:4;8832:1;8825:15;8851:135;8890:3;8911:17;;;8908:43;;8931:18;;:::i;:::-;-1:-1:-1;8978:1:1;8967:13;;8851:135::o;9653:168::-;9726:9;;;9757;;9774:15;;;9768:22;;9754:37;9744:71;;9795:18;;:::i;9826:251::-;9896:6;9949:2;9937:9;9928:7;9924:23;9920:32;9917:52;;;9965:1;9962;9955:12;9917:52;9997:9;9991:16;10016:31;10041:5;10016:31;:::i;13366:125::-;13431:9;;;13452:10;;;13449:36;;;13465:18;;:::i;13827:128::-;13894:9;;;13915:11;;;13912:37;;;13929:18;;:::i;14170:980::-;14432:4;14480:3;14469:9;14465:19;14511:6;14500:9;14493:25;14537:2;14575:6;14570:2;14559:9;14555:18;14548:34;14618:3;14613:2;14602:9;14598:18;14591:31;14642:6;14677;14671:13;14708:6;14700;14693:22;14746:3;14735:9;14731:19;14724:26;;14785:2;14777:6;14773:15;14759:29;;14806:1;14816:195;14830:6;14827:1;14824:13;14816:195;;;14895:13;;-1:-1:-1;;;;;14891:39:1;14879:52;;14986:15;;;;14951:12;;;;14927:1;14845:9;14816:195;;;-1:-1:-1;;;;;;;15067:32:1;;;;15062:2;15047:18;;15040:60;-1:-1:-1;;;15131:3:1;15116:19;15109:35;15028:3;14170:980;-1:-1:-1;;;14170:980:1:o;15155:217::-;15195:1;15221;15211:132;;15265:10;15260:3;15256:20;15253:1;15246:31;15300:4;15297:1;15290:15;15328:4;15325:1;15318:15;15211:132;-1:-1:-1;15357:9:1;;15155:217::o

Swarm Source

ipfs://f6236db6b86f4bd15b608d7b9aa2d231ef9984443016b212fc244a3a22a83deb

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.