ETH Price: $3,234.79 (-1.53%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer162003872022-12-16 22:58:23768 days ago1671231503IN
0x312683FB...4CDCa399e
0 ETH0.00103924.58322252
Transfer162003762022-12-16 22:56:11768 days ago1671231371IN
0x312683FB...4CDCa399e
0 ETH0.0011183726.46100199
Transfer157655022022-10-17 4:38:59829 days ago1665981539IN
0x312683FB...4CDCa399e
0 ETH0.0011480611.8373798
Transfer157654992022-10-17 4:38:23829 days ago1665981503IN
0x312683FB...4CDCa399e
0 ETH0.0010274912.86201906
Transfer157654962022-10-17 4:37:47829 days ago1665981467IN
0x312683FB...4CDCa399e
0 ETH0.0011317711.6694639
Transfer157654932022-10-17 4:37:11829 days ago1665981431IN
0x312683FB...4CDCa399e
0 ETH0.0010990613.75790437
Transfer157654912022-10-17 4:36:47829 days ago1665981407IN
0x312683FB...4CDCa399e
0 ETH0.0013925414.35816397
Transfer157654792022-10-17 4:34:23829 days ago1665981263IN
0x312683FB...4CDCa399e
0 ETH0.0010887113.62830092
Transfer157654772022-10-17 4:33:59829 days ago1665981239IN
0x312683FB...4CDCa399e
0 ETH0.001359814.02059484
Transfer157654752022-10-17 4:33:35829 days ago1665981215IN
0x312683FB...4CDCa399e
0 ETH0.0013853614.28413974
Transfer157654722022-10-17 4:32:59829 days ago1665981179IN
0x312683FB...4CDCa399e
0 ETH0.0013007716.28283667
Transfer157654692022-10-17 4:32:23829 days ago1665981143IN
0x312683FB...4CDCa399e
0 ETH0.0012870513.27053422
Transfer157654652022-10-17 4:31:35829 days ago1665981095IN
0x312683FB...4CDCa399e
0 ETH0.0011541514.44758183
Transfer157654632022-10-17 4:31:11829 days ago1665981071IN
0x312683FB...4CDCa399e
0 ETH0.001367814.10315604
Transfer157654602022-10-17 4:30:35829 days ago1665981035IN
0x312683FB...4CDCa399e
0 ETH0.0011275614.11466192
Transfer157654582022-10-17 4:30:11829 days ago1665981011IN
0x312683FB...4CDCa399e
0 ETH0.0013196213.60633186
Transfer157654542022-10-17 4:29:23829 days ago1665980963IN
0x312683FB...4CDCa399e
0 ETH0.0013809314.23849279
Transfer157654502022-10-17 4:28:35829 days ago1665980915IN
0x312683FB...4CDCa399e
0 ETH0.0010563313.22304274
Transfer157654472022-10-17 4:27:59829 days ago1665980879IN
0x312683FB...4CDCa399e
0 ETH0.0013222813.6337677
Transfer157654442022-10-17 4:27:23829 days ago1665980843IN
0x312683FB...4CDCa399e
0 ETH0.0011716412.08060466
Transfer157654392022-10-17 4:26:23829 days ago1665980783IN
0x312683FB...4CDCa399e
0 ETH0.0009904412.3982098
Transfer157654362022-10-17 4:25:47829 days ago1665980747IN
0x312683FB...4CDCa399e
0 ETH0.0011457911.81405726
Transfer157654322022-10-17 4:24:59829 days ago1665980699IN
0x312683FB...4CDCa399e
0 ETH0.0024246525
Transfer157654292022-10-17 4:24:23829 days ago1665980663IN
0x312683FB...4CDCa399e
0 ETH0.0011767611.56113057
Transfer157654252022-10-17 4:23:35829 days ago1665980615IN
0x312683FB...4CDCa399e
0 ETH0.0009474611.86021437
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SUAVE

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-17
*/

// SPDX-License-Identifier: Unlicensed


// ... the next step for Flashbots
// ... SUAVE: The Single Unifying Auction for Value Expression
// ... encrypted mempool for users and wallets and decentralized block builder for rollups
// ... the future of MEV

pragma solidity ^0.8.9;

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(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        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, "SafeMath: addition overflow");
        return c;
    }

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

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = 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, "SafeMath: multiplication overflow");
        return c;
    }

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        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 SUAVE is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "SUAVE";
    string private constant _symbol = "SUAVE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xA924445a371094469e48010e271f09B94C50A72f);
    address payable private _marketingAddress = payable(0xA924445a371094469e48010e271f09B94C50A72f);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal * 1 / 100;
    uint256 public _maxWalletSize = _maxTxAmount * 2;
    uint256 public _swapTokensAtAmount = 10000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            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(address(this).balance);
                }
            }
        }

        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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _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(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    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 blockSingleBot(address bot) public onlyOwner {
        bots[bot] = true;
    }

    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 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy + taxFeeOnBuy <= 15, "buy fees below 10");
        require(redisFeeOnSell + taxFeeOnSell <= 15, "sell fees below 10");
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount * 10**_decimals;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize * 10**_decimals;
    }

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

}

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":"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":"bot","type":"address"}],"name":"blockSingleBot","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":"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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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"}]

6080604052670de0b6b3a76400006000196200001c919062000764565b6000196200002b9190620007cb565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f5573a924445a371094469e48010e271f09b94c50a72f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a924445a371094469e48010e271f09b94c50a72f601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555060646001670de0b6b3a764000062000152919062000806565b6200015e919062000867565b601655600260165462000172919062000806565b6017556509184e72a0006018553480156200018c57600080fd5b5060006200019f620006fa60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000254620006fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033357600080fd5b505afa15801562000348573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036e919062000909565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d157600080fd5b505afa158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c919062000909565b6040518363ffffffff1660e01b81526004016200042b9291906200094c565b602060405180830381600087803b1580156200044657600080fd5b505af11580156200045b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000481919062000909565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d76200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000684620006fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006eb91906200098a565b60405180910390a350620009a7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000771826200072b565b91506200077e836200072b565b92508262000791576200079062000735565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d8826200072b565b9150620007e5836200072b565b925082821015620007fb57620007fa6200079c565b5b828203905092915050565b600062000813826200072b565b915062000820836200072b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200085c576200085b6200079c565b5b828202905092915050565b600062000874826200072b565b915062000881836200072b565b92508262000894576200089362000735565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008d182620008a4565b9050919050565b620008e381620008c4565b8114620008ef57600080fd5b50565b6000815190506200090381620008d8565b92915050565b6000602082840312156200092257620009216200089f565b5b60006200093284828501620008f2565b91505092915050565b6200094681620008c4565b82525050565b60006040820190506200096360008301856200093b565b6200097260208301846200093b565b9392505050565b62000984816200072b565b82525050565b6000602082019050620009a1600083018462000979565b92915050565b61422880620009b76000396000f3fe6080604052600436106101db5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105d6578063be1aa3cd14610613578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a2a957bb146105ad576101e2565b80637d1db4a5146104725780637f2feddc1461049d5780638da5cb5b146104da5780638f70ccf714610505576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f5e565b610748565b005b34801561021c57600080fd5b50610225610872565b604051610232919061302f565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613087565b6108af565b60405161026f91906130e2565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a919061315c565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613186565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906131a1565b610903565b60405161030291906130e2565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d9190613186565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b6040516103589190613210565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b604051610383919061323a565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613255565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906132ae565b610b01565b005b3480156103ea57600080fd5b506103f3610bb3565b005b34801561040157600080fd5b5061041c60048036038101906104179190613255565b610c84565b6040516104299190613186565b60405180910390f35b34801561043e57600080fd5b50610447610cd5565b005b34801561045557600080fd5b50610470600480360381019061046b91906132db565b610e28565b005b34801561047e57600080fd5b50610487610edf565b6040516104949190613186565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf9190613255565b610ee5565b6040516104d19190613186565b60405180910390f35b3480156104e657600080fd5b506104ef610efd565b6040516104fc919061323a565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906132ae565b610f26565b005b34801561053a57600080fd5b50610543610fd8565b6040516105509190613186565b60405180910390f35b34801561056557600080fd5b5061056e610fde565b60405161057b919061302f565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906132db565b61101b565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613308565b6110ba565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613087565b61120f565b60405161060a91906130e2565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613255565b61122d565b005b34801561064857600080fd5b50610663600480360381019061065e9190613255565b61131d565b60405161067091906130e2565b60405180910390f35b34801561068557600080fd5b5061068e61133d565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133ca565b611416565b005b3480156106c557600080fd5b506106e060048036038101906106db919061342a565b611550565b6040516106ed9190613186565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906132db565b6115d7565b005b34801561072b57600080fd5b5061074660048036038101906107419190613255565b61168e565b005b610750611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134b6565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613534565b9150506107e0565b5050565b60606040518060400160405280600581526020017f5355415645000000000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611850565b8484611858565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610910848484611a23565b6109d18461091c611850565b6109cc856040518060600160405280602881526020016141cb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610982611850565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a89092919063ffffffff16565b611858565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d906134b6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b09611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d906134b6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf4611850565b73ffffffffffffffffffffffffffffffffffffffff161480610c6a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c52611850565b73ffffffffffffffffffffffffffffffffffffffff16145b610c7357600080fd5b6000479050610c818161230c565b50565b6000610cce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612378565b9050919050565b610cdd611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906134b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e30611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb4906134b6565b60405180910390fd5b6009600a610ecb91906136b0565b81610ed691906136fb565b60168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f2e611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906134b6565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f5355415645000000000000000000000000000000000000000000000000000000815250905090565b611023611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906134b6565b60405180910390fd5b8060188190555050565b6110c2611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611146906134b6565b60405180910390fd5b600f828561115d9190613755565b111561119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906137f7565b60405180910390fd5b600f81846111ac9190613755565b11156111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490613863565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061122361121c611850565b8484611a23565b6001905092915050565b611235611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906134b6565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137e611850565b73ffffffffffffffffffffffffffffffffffffffff1614806113f45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113dc611850565b73ffffffffffffffffffffffffffffffffffffffff16145b6113fd57600080fd5b600061140830610c84565b9050611413816123e6565b50565b61141e611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a2906134b6565b60405180910390fd5b60005b8383905081101561154a5781600560008686858181106114d1576114d06134d6565b5b90506020020160208101906114e69190613255565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061154290613534565b9150506114ae565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115df611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611663906134b6565b60405180910390fd5b6009600a61167a91906136b0565b8161168591906136fb565b60178190555050565b611696611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906134b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a906138f5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613987565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f90613a19565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a169190613186565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a90613aab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa90613b3d565b60405180910390fd5b60008111611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613bcf565b60405180910390fd5b611b4e610efd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bbc5750611b8c610efd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fa757601560149054906101000a900460ff16611c4b57611bdd610efd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190613c61565b60405180910390fd5b5b601654811115611c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8790613ccd565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d345750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a90613d5f565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e205760175481611dd584610c84565b611ddf9190613755565b10611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613df1565b60405180910390fd5b5b6000611e2b30610c84565b9050600060185482101590506016548210611e465760165491505b808015611e5e575060158054906101000a900460ff16155b8015611eb85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed05750601560169054906101000a900460ff165b8015611f265750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f7c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fa457611f8a826123e6565b60004790506000811115611fa257611fa14761230c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061204e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121015750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561210f5760009050612296565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121ba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121d257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561227d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561229557600a54600c81905550600b54600d819055505b5b6122a28484848461266c565b50505050565b60008383111582906122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e7919061302f565b60405180910390fd5b50600083856122ff9190613e11565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612374573d6000803e3d6000fd5b5050565b60006006548211156123bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b690613eb7565b60405180910390fd5b60006123c9612699565b90506123de81846126c490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561241d5761241c612dbd565b5b60405190808252806020026020018201604052801561244b5781602001602082028036833780820191505090505b5090503081600081518110612463576124626134d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561250557600080fd5b505afa158015612519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253d9190613eec565b81600181518110612551576125506134d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611858565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161261c959493929190614012565b600060405180830381600087803b15801561263657600080fd5b505af115801561264a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061267a5761267961270e565b5b612685848484612751565b806126935761269261291c565b5b50505050565b60008060006126a6612930565b915091506126bd81836126c490919063ffffffff16565b9250505090565b600061270683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061298f565b905092915050565b6000600c5414801561272257506000600d54145b1561272c5761274f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612763876129f2565b9550955095509550955095506127c186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128a281612b02565b6128ac8483612bbf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129099190613186565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612964670de0b6b3a76400006006546126c490919063ffffffff16565b82101561298257600654670de0b6b3a764000093509350505061298b565b81819350935050505b9091565b600080831182906129d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cd919061302f565b60405180910390fd5b50600083856129e5919061409b565b9050809150509392505050565b6000806000806000806000806000612a0f8a600c54600d54612bf9565b9250925092506000612a1f612699565b90506000806000612a328e878787612c8f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122a8565b905092915050565b6000808284612ab39190613755565b905083811015612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90614118565b60405180910390fd5b8091505092915050565b6000612b0c612699565b90506000612b238284612d1890919063ffffffff16565b9050612b7781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bd482600654612a5a90919063ffffffff16565b600681905550612bef81600754612aa490919063ffffffff16565b6007819055505050565b600080600080612c256064612c17888a612d1890919063ffffffff16565b6126c490919063ffffffff16565b90506000612c4f6064612c41888b612d1890919063ffffffff16565b6126c490919063ffffffff16565b90506000612c7882612c6a858c612a5a90919063ffffffff16565b612a5a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ca88589612d1890919063ffffffff16565b90506000612cbf8689612d1890919063ffffffff16565b90506000612cd68789612d1890919063ffffffff16565b90506000612cff82612cf18587612a5a90919063ffffffff16565b612a5a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d2b5760009050612d8d565b60008284612d3991906136fb565b9050828482612d48919061409b565b14612d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7f906141aa565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df582612dac565b810181811067ffffffffffffffff82111715612e1457612e13612dbd565b5b80604052505050565b6000612e27612d93565b9050612e338282612dec565b919050565b600067ffffffffffffffff821115612e5357612e52612dbd565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9482612e69565b9050919050565b612ea481612e89565b8114612eaf57600080fd5b50565b600081359050612ec181612e9b565b92915050565b6000612eda612ed584612e38565b612e1d565b90508083825260208201905060208402830185811115612efd57612efc612e64565b5b835b81811015612f265780612f128882612eb2565b845260208401935050602081019050612eff565b5050509392505050565b600082601f830112612f4557612f44612da7565b5b8135612f55848260208601612ec7565b91505092915050565b600060208284031215612f7457612f73612d9d565b5b600082013567ffffffffffffffff811115612f9257612f91612da2565b5b612f9e84828501612f30565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe1578082015181840152602081019050612fc6565b83811115612ff0576000848401525b50505050565b600061300182612fa7565b61300b8185612fb2565b935061301b818560208601612fc3565b61302481612dac565b840191505092915050565b600060208201905081810360008301526130498184612ff6565b905092915050565b6000819050919050565b61306481613051565b811461306f57600080fd5b50565b6000813590506130818161305b565b92915050565b6000806040838503121561309e5761309d612d9d565b5b60006130ac85828601612eb2565b92505060206130bd85828601613072565b9150509250929050565b60008115159050919050565b6130dc816130c7565b82525050565b60006020820190506130f760008301846130d3565b92915050565b6000819050919050565b600061312261311d61311884612e69565b6130fd565b612e69565b9050919050565b600061313482613107565b9050919050565b600061314682613129565b9050919050565b6131568161313b565b82525050565b6000602082019050613171600083018461314d565b92915050565b61318081613051565b82525050565b600060208201905061319b6000830184613177565b92915050565b6000806000606084860312156131ba576131b9612d9d565b5b60006131c886828701612eb2565b93505060206131d986828701612eb2565b92505060406131ea86828701613072565b9150509250925092565b600060ff82169050919050565b61320a816131f4565b82525050565b60006020820190506132256000830184613201565b92915050565b61323481612e89565b82525050565b600060208201905061324f600083018461322b565b92915050565b60006020828403121561326b5761326a612d9d565b5b600061327984828501612eb2565b91505092915050565b61328b816130c7565b811461329657600080fd5b50565b6000813590506132a881613282565b92915050565b6000602082840312156132c4576132c3612d9d565b5b60006132d284828501613299565b91505092915050565b6000602082840312156132f1576132f0612d9d565b5b60006132ff84828501613072565b91505092915050565b6000806000806080858703121561332257613321612d9d565b5b600061333087828801613072565b945050602061334187828801613072565b935050604061335287828801613072565b925050606061336387828801613072565b91505092959194509250565b600080fd5b60008083601f84011261338a57613389612da7565b5b8235905067ffffffffffffffff8111156133a7576133a661336f565b5b6020830191508360208202830111156133c3576133c2612e64565b5b9250929050565b6000806000604084860312156133e3576133e2612d9d565b5b600084013567ffffffffffffffff81111561340157613400612da2565b5b61340d86828701613374565b9350935050602061342086828701613299565b9150509250925092565b6000806040838503121561344157613440612d9d565b5b600061344f85828601612eb2565b925050602061346085828601612eb2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134a0602083612fb2565b91506134ab8261346a565b602082019050919050565b600060208201905081810360008301526134cf81613493565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061353f82613051565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561357257613571613505565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156135d4578086048111156135b0576135af613505565b5b60018516156135bf5780820291505b80810290506135cd8561357d565b9450613594565b94509492505050565b6000826135ed57600190506136a9565b816135fb57600090506136a9565b8160018114613611576002811461361b5761364a565b60019150506136a9565b60ff84111561362d5761362c613505565b5b8360020a91508482111561364457613643613505565b5b506136a9565b5060208310610133831016604e8410600b841016171561367f5782820a90508381111561367a57613679613505565b5b6136a9565b61368c848484600161358a565b925090508184048111156136a3576136a2613505565b5b81810290505b9392505050565b60006136bb82613051565b91506136c6836131f4565b92506136f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135dd565b905092915050565b600061370682613051565b915061371183613051565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561374a57613749613505565b5b828202905092915050565b600061376082613051565b915061376b83613051565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137a05761379f613505565b5b828201905092915050565b7f62757920666565732062656c6f77203130000000000000000000000000000000600082015250565b60006137e1601183612fb2565b91506137ec826137ab565b602082019050919050565b60006020820190508181036000830152613810816137d4565b9050919050565b7f73656c6c20666565732062656c6f772031300000000000000000000000000000600082015250565b600061384d601283612fb2565b915061385882613817565b602082019050919050565b6000602082019050818103600083015261387c81613840565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138df602683612fb2565b91506138ea82613883565b604082019050919050565b6000602082019050818103600083015261390e816138d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613971602483612fb2565b915061397c82613915565b604082019050919050565b600060208201905081810360008301526139a081613964565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a03602283612fb2565b9150613a0e826139a7565b604082019050919050565b60006020820190508181036000830152613a32816139f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a95602583612fb2565b9150613aa082613a39565b604082019050919050565b60006020820190508181036000830152613ac481613a88565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602383612fb2565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bb9602983612fb2565b9150613bc482613b5d565b604082019050919050565b60006020820190508181036000830152613be881613bac565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c4b603f83612fb2565b9150613c5682613bef565b604082019050919050565b60006020820190508181036000830152613c7a81613c3e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613cb7601c83612fb2565b9150613cc282613c81565b602082019050919050565b60006020820190508181036000830152613ce681613caa565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d49602383612fb2565b9150613d5482613ced565b604082019050919050565b60006020820190508181036000830152613d7881613d3c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ddb602383612fb2565b9150613de682613d7f565b604082019050919050565b60006020820190508181036000830152613e0a81613dce565b9050919050565b6000613e1c82613051565b9150613e2783613051565b925082821015613e3a57613e39613505565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ea1602a83612fb2565b9150613eac82613e45565b604082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b600081519050613ee681612e9b565b92915050565b600060208284031215613f0257613f01612d9d565b5b6000613f1084828501613ed7565b91505092915050565b6000819050919050565b6000613f3e613f39613f3484613f19565b6130fd565b613051565b9050919050565b613f4e81613f23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8981612e89565b82525050565b6000613f9b8383613f80565b60208301905092915050565b6000602082019050919050565b6000613fbf82613f54565b613fc98185613f5f565b9350613fd483613f70565b8060005b83811015614005578151613fec8882613f8f565b9750613ff783613fa7565b925050600181019050613fd8565b5085935050505092915050565b600060a0820190506140276000830188613177565b6140346020830187613f45565b81810360408301526140468186613fb4565b9050614055606083018561322b565b6140626080830184613177565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140a682613051565b91506140b183613051565b9250826140c1576140c061406c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614102601b83612fb2565b915061410d826140cc565b602082019050919050565b60006020820190508181036000830152614131816140f5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614194602183612fb2565b915061419f82614138565b604082019050919050565b600060208201905081810360008301526141c381614187565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b4c83382ba0c00fe3740fd2d1946aa4388c2127fb9816058efddaba6ba64b1a64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105d6578063be1aa3cd14610613578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a2a957bb146105ad576101e2565b80637d1db4a5146104725780637f2feddc1461049d5780638da5cb5b146104da5780638f70ccf714610505576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f5e565b610748565b005b34801561021c57600080fd5b50610225610872565b604051610232919061302f565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613087565b6108af565b60405161026f91906130e2565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a919061315c565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613186565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906131a1565b610903565b60405161030291906130e2565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d9190613186565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b6040516103589190613210565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b604051610383919061323a565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613255565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906132ae565b610b01565b005b3480156103ea57600080fd5b506103f3610bb3565b005b34801561040157600080fd5b5061041c60048036038101906104179190613255565b610c84565b6040516104299190613186565b60405180910390f35b34801561043e57600080fd5b50610447610cd5565b005b34801561045557600080fd5b50610470600480360381019061046b91906132db565b610e28565b005b34801561047e57600080fd5b50610487610edf565b6040516104949190613186565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf9190613255565b610ee5565b6040516104d19190613186565b60405180910390f35b3480156104e657600080fd5b506104ef610efd565b6040516104fc919061323a565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906132ae565b610f26565b005b34801561053a57600080fd5b50610543610fd8565b6040516105509190613186565b60405180910390f35b34801561056557600080fd5b5061056e610fde565b60405161057b919061302f565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906132db565b61101b565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613308565b6110ba565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613087565b61120f565b60405161060a91906130e2565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613255565b61122d565b005b34801561064857600080fd5b50610663600480360381019061065e9190613255565b61131d565b60405161067091906130e2565b60405180910390f35b34801561068557600080fd5b5061068e61133d565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133ca565b611416565b005b3480156106c557600080fd5b506106e060048036038101906106db919061342a565b611550565b6040516106ed9190613186565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906132db565b6115d7565b005b34801561072b57600080fd5b5061074660048036038101906107419190613255565b61168e565b005b610750611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134b6565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134d6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613534565b9150506107e0565b5050565b60606040518060400160405280600581526020017f5355415645000000000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611850565b8484611858565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610910848484611a23565b6109d18461091c611850565b6109cc856040518060600160405280602881526020016141cb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610982611850565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a89092919063ffffffff16565b611858565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a19611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d906134b6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b09611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d906134b6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf4611850565b73ffffffffffffffffffffffffffffffffffffffff161480610c6a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c52611850565b73ffffffffffffffffffffffffffffffffffffffff16145b610c7357600080fd5b6000479050610c818161230c565b50565b6000610cce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612378565b9050919050565b610cdd611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906134b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e30611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb4906134b6565b60405180910390fd5b6009600a610ecb91906136b0565b81610ed691906136fb565b60168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f2e611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906134b6565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f5355415645000000000000000000000000000000000000000000000000000000815250905090565b611023611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906134b6565b60405180910390fd5b8060188190555050565b6110c2611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611146906134b6565b60405180910390fd5b600f828561115d9190613755565b111561119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906137f7565b60405180910390fd5b600f81846111ac9190613755565b11156111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490613863565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061122361121c611850565b8484611a23565b6001905092915050565b611235611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906134b6565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137e611850565b73ffffffffffffffffffffffffffffffffffffffff1614806113f45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113dc611850565b73ffffffffffffffffffffffffffffffffffffffff16145b6113fd57600080fd5b600061140830610c84565b9050611413816123e6565b50565b61141e611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a2906134b6565b60405180910390fd5b60005b8383905081101561154a5781600560008686858181106114d1576114d06134d6565b5b90506020020160208101906114e69190613255565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061154290613534565b9150506114ae565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115df611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611663906134b6565b60405180910390fd5b6009600a61167a91906136b0565b8161168591906136fb565b60178190555050565b611696611850565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906134b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a906138f5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613987565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f90613a19565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a169190613186565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a90613aab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa90613b3d565b60405180910390fd5b60008111611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90613bcf565b60405180910390fd5b611b4e610efd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bbc5750611b8c610efd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fa757601560149054906101000a900460ff16611c4b57611bdd610efd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190613c61565b60405180910390fd5b5b601654811115611c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8790613ccd565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d345750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a90613d5f565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e205760175481611dd584610c84565b611ddf9190613755565b10611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613df1565b60405180910390fd5b5b6000611e2b30610c84565b9050600060185482101590506016548210611e465760165491505b808015611e5e575060158054906101000a900460ff16155b8015611eb85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed05750601560169054906101000a900460ff165b8015611f265750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f7c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fa457611f8a826123e6565b60004790506000811115611fa257611fa14761230c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061204e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121015750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561210f5760009050612296565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121ba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121d257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561227d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561229557600a54600c81905550600b54600d819055505b5b6122a28484848461266c565b50505050565b60008383111582906122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e7919061302f565b60405180910390fd5b50600083856122ff9190613e11565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612374573d6000803e3d6000fd5b5050565b60006006548211156123bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b690613eb7565b60405180910390fd5b60006123c9612699565b90506123de81846126c490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561241d5761241c612dbd565b5b60405190808252806020026020018201604052801561244b5781602001602082028036833780820191505090505b5090503081600081518110612463576124626134d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561250557600080fd5b505afa158015612519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253d9190613eec565b81600181518110612551576125506134d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611858565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161261c959493929190614012565b600060405180830381600087803b15801561263657600080fd5b505af115801561264a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061267a5761267961270e565b5b612685848484612751565b806126935761269261291c565b5b50505050565b60008060006126a6612930565b915091506126bd81836126c490919063ffffffff16565b9250505090565b600061270683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061298f565b905092915050565b6000600c5414801561272257506000600d54145b1561272c5761274f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612763876129f2565b9550955095509550955095506127c186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128a281612b02565b6128ac8483612bbf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129099190613186565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612964670de0b6b3a76400006006546126c490919063ffffffff16565b82101561298257600654670de0b6b3a764000093509350505061298b565b81819350935050505b9091565b600080831182906129d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cd919061302f565b60405180910390fd5b50600083856129e5919061409b565b9050809150509392505050565b6000806000806000806000806000612a0f8a600c54600d54612bf9565b9250925092506000612a1f612699565b90506000806000612a328e878787612c8f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122a8565b905092915050565b6000808284612ab39190613755565b905083811015612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90614118565b60405180910390fd5b8091505092915050565b6000612b0c612699565b90506000612b238284612d1890919063ffffffff16565b9050612b7781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bd482600654612a5a90919063ffffffff16565b600681905550612bef81600754612aa490919063ffffffff16565b6007819055505050565b600080600080612c256064612c17888a612d1890919063ffffffff16565b6126c490919063ffffffff16565b90506000612c4f6064612c41888b612d1890919063ffffffff16565b6126c490919063ffffffff16565b90506000612c7882612c6a858c612a5a90919063ffffffff16565b612a5a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ca88589612d1890919063ffffffff16565b90506000612cbf8689612d1890919063ffffffff16565b90506000612cd68789612d1890919063ffffffff16565b90506000612cff82612cf18587612a5a90919063ffffffff16565b612a5a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d2b5760009050612d8d565b60008284612d3991906136fb565b9050828482612d48919061409b565b14612d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7f906141aa565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df582612dac565b810181811067ffffffffffffffff82111715612e1457612e13612dbd565b5b80604052505050565b6000612e27612d93565b9050612e338282612dec565b919050565b600067ffffffffffffffff821115612e5357612e52612dbd565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9482612e69565b9050919050565b612ea481612e89565b8114612eaf57600080fd5b50565b600081359050612ec181612e9b565b92915050565b6000612eda612ed584612e38565b612e1d565b90508083825260208201905060208402830185811115612efd57612efc612e64565b5b835b81811015612f265780612f128882612eb2565b845260208401935050602081019050612eff565b5050509392505050565b600082601f830112612f4557612f44612da7565b5b8135612f55848260208601612ec7565b91505092915050565b600060208284031215612f7457612f73612d9d565b5b600082013567ffffffffffffffff811115612f9257612f91612da2565b5b612f9e84828501612f30565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe1578082015181840152602081019050612fc6565b83811115612ff0576000848401525b50505050565b600061300182612fa7565b61300b8185612fb2565b935061301b818560208601612fc3565b61302481612dac565b840191505092915050565b600060208201905081810360008301526130498184612ff6565b905092915050565b6000819050919050565b61306481613051565b811461306f57600080fd5b50565b6000813590506130818161305b565b92915050565b6000806040838503121561309e5761309d612d9d565b5b60006130ac85828601612eb2565b92505060206130bd85828601613072565b9150509250929050565b60008115159050919050565b6130dc816130c7565b82525050565b60006020820190506130f760008301846130d3565b92915050565b6000819050919050565b600061312261311d61311884612e69565b6130fd565b612e69565b9050919050565b600061313482613107565b9050919050565b600061314682613129565b9050919050565b6131568161313b565b82525050565b6000602082019050613171600083018461314d565b92915050565b61318081613051565b82525050565b600060208201905061319b6000830184613177565b92915050565b6000806000606084860312156131ba576131b9612d9d565b5b60006131c886828701612eb2565b93505060206131d986828701612eb2565b92505060406131ea86828701613072565b9150509250925092565b600060ff82169050919050565b61320a816131f4565b82525050565b60006020820190506132256000830184613201565b92915050565b61323481612e89565b82525050565b600060208201905061324f600083018461322b565b92915050565b60006020828403121561326b5761326a612d9d565b5b600061327984828501612eb2565b91505092915050565b61328b816130c7565b811461329657600080fd5b50565b6000813590506132a881613282565b92915050565b6000602082840312156132c4576132c3612d9d565b5b60006132d284828501613299565b91505092915050565b6000602082840312156132f1576132f0612d9d565b5b60006132ff84828501613072565b91505092915050565b6000806000806080858703121561332257613321612d9d565b5b600061333087828801613072565b945050602061334187828801613072565b935050604061335287828801613072565b925050606061336387828801613072565b91505092959194509250565b600080fd5b60008083601f84011261338a57613389612da7565b5b8235905067ffffffffffffffff8111156133a7576133a661336f565b5b6020830191508360208202830111156133c3576133c2612e64565b5b9250929050565b6000806000604084860312156133e3576133e2612d9d565b5b600084013567ffffffffffffffff81111561340157613400612da2565b5b61340d86828701613374565b9350935050602061342086828701613299565b9150509250925092565b6000806040838503121561344157613440612d9d565b5b600061344f85828601612eb2565b925050602061346085828601612eb2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134a0602083612fb2565b91506134ab8261346a565b602082019050919050565b600060208201905081810360008301526134cf81613493565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061353f82613051565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561357257613571613505565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156135d4578086048111156135b0576135af613505565b5b60018516156135bf5780820291505b80810290506135cd8561357d565b9450613594565b94509492505050565b6000826135ed57600190506136a9565b816135fb57600090506136a9565b8160018114613611576002811461361b5761364a565b60019150506136a9565b60ff84111561362d5761362c613505565b5b8360020a91508482111561364457613643613505565b5b506136a9565b5060208310610133831016604e8410600b841016171561367f5782820a90508381111561367a57613679613505565b5b6136a9565b61368c848484600161358a565b925090508184048111156136a3576136a2613505565b5b81810290505b9392505050565b60006136bb82613051565b91506136c6836131f4565b92506136f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135dd565b905092915050565b600061370682613051565b915061371183613051565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561374a57613749613505565b5b828202905092915050565b600061376082613051565b915061376b83613051565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137a05761379f613505565b5b828201905092915050565b7f62757920666565732062656c6f77203130000000000000000000000000000000600082015250565b60006137e1601183612fb2565b91506137ec826137ab565b602082019050919050565b60006020820190508181036000830152613810816137d4565b9050919050565b7f73656c6c20666565732062656c6f772031300000000000000000000000000000600082015250565b600061384d601283612fb2565b915061385882613817565b602082019050919050565b6000602082019050818103600083015261387c81613840565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138df602683612fb2565b91506138ea82613883565b604082019050919050565b6000602082019050818103600083015261390e816138d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613971602483612fb2565b915061397c82613915565b604082019050919050565b600060208201905081810360008301526139a081613964565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a03602283612fb2565b9150613a0e826139a7565b604082019050919050565b60006020820190508181036000830152613a32816139f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a95602583612fb2565b9150613aa082613a39565b604082019050919050565b60006020820190508181036000830152613ac481613a88565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602383612fb2565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bb9602983612fb2565b9150613bc482613b5d565b604082019050919050565b60006020820190508181036000830152613be881613bac565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c4b603f83612fb2565b9150613c5682613bef565b604082019050919050565b60006020820190508181036000830152613c7a81613c3e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613cb7601c83612fb2565b9150613cc282613c81565b602082019050919050565b60006020820190508181036000830152613ce681613caa565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d49602383612fb2565b9150613d5482613ced565b604082019050919050565b60006020820190508181036000830152613d7881613d3c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ddb602383612fb2565b9150613de682613d7f565b604082019050919050565b60006020820190508181036000830152613e0a81613dce565b9050919050565b6000613e1c82613051565b9150613e2783613051565b925082821015613e3a57613e39613505565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ea1602a83612fb2565b9150613eac82613e45565b604082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b600081519050613ee681612e9b565b92915050565b600060208284031215613f0257613f01612d9d565b5b6000613f1084828501613ed7565b91505092915050565b6000819050919050565b6000613f3e613f39613f3484613f19565b6130fd565b613051565b9050919050565b613f4e81613f23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8981612e89565b82525050565b6000613f9b8383613f80565b60208301905092915050565b6000602082019050919050565b6000613fbf82613f54565b613fc98185613f5f565b9350613fd483613f70565b8060005b83811015614005578151613fec8882613f8f565b9750613ff783613fa7565b925050600181019050613fd8565b5085935050505092915050565b600060a0820190506140276000830188613177565b6140346020830187613f45565b81810360408301526140468186613fb4565b9050614055606083018561322b565b6140626080830184613177565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140a682613051565b91506140b183613051565b9250826140c1576140c061406c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614102601b83612fb2565b915061410d826140cc565b602082019050919050565b60006020820190508181036000830152614131816140f5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614194602183612fb2565b915061419f82614138565b604082019050919050565b600060208201905081810360008301526141c381614187565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b4c83382ba0c00fe3740fd2d1946aa4388c2127fb9816058efddaba6ba64b1a64736f6c63430008090033

Deployed Bytecode Sourcemap

4292:13766:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6779:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7704:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7056:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7905:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6965:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5676:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13128:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17408:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12708:235;;;;;;;;;;;;;:::i;:::-;;7159:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:148;;;;;;;;;;;;;:::i;:::-;;17548:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5818:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5370:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1565:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12355:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5872:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6870:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17217:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16723:442;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7305:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13228:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5332:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12464:236;;;;;;;;;;;;;:::i;:::-;;17819:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7512:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17680:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1935:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12951:169;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13027:9:::1;13022:91;13046:5;:12;13042:1;:16;13022:91;;;13097:4;13080;:14;13085:5;13091:1;13085:8;;;;;;;;:::i;:::-;;;;;;;;13080:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13060:3;;;;;:::i;:::-;;;;13022:91;;;;12951:169:::0;:::o;6779:83::-;6816:13;6849:5;;;;;;;;;;;;;;;;;6842:12;;6779:83;:::o;7704:193::-;7806:4;7828:39;7837:12;:10;:12::i;:::-;7851:7;7860:6;7828:8;:39::i;:::-;7885:4;7878:11;;7704:193;;;;:::o;5628:41::-;;;;;;;;;;;;;:::o;7056:95::-;7109:7;4834:18;7129:14;;7056:95;:::o;7905:446::-;8037:4;8054:36;8064:6;8072:9;8083:6;8054:9;:36::i;:::-;8101:220;8124:6;8145:12;:10;:12::i;:::-;8172:138;8228:6;8172:138;;;;;;;;;;;;;;;;;:11;:19;8184:6;8172:19;;;;;;;;;;;;;;;:33;8192:12;:10;:12::i;:::-;8172:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8101:8;:220::i;:::-;8339:4;8332:11;;7905:446;;;;;:::o;5927:50::-;;;;:::o;6965:83::-;7006:5;4508:1;7024:16;;6965:83;:::o;5676:28::-;;;;;;;;;;;;;:::o;13128:92::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13207:5:::1;13192:4;:12;13197:6;13192:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13128:92:::0;:::o;17408:101::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17489:12:::1;17475:11;;:26;;;;;;;;;;;;;;;;;;17408:101:::0;:::o;12708:235::-;12774:19;;;;;;;;;;;12758:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12813:17;;;;;;;;;;;12797:33;;:12;:10;:12::i;:::-;:33;;;12758:72;12750:81;;;;;;12842:26;12871:21;12842:50;;12903:32;12916:18;12903:12;:32::i;:::-;12739:204;12708:235::o;7159:138::-;7225:7;7252:37;7272:7;:16;7280:7;7272:16;;;;;;;;;;;;;;;;7252:19;:37::i;:::-;7245:44;;7159:138;;;:::o;1779:148::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1886:1:::1;1849:40;;1870:6;::::0;::::1;;;;;;;;1849:40;;;;;;;;;;;;1917:1;1900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1779:148::o:0;17548:124::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4508:1:::1;17651:2;:13;;;;:::i;:::-;17637:11;:27;;;;:::i;:::-;17622:12;:42;;;;17548:124:::0;:::o;5818:47::-;;;;:::o;5370:43::-;;;;;;;;;;;;;;;;;:::o;1565:79::-;1603:7;1630:6;;;;;;;;;;;1623:13;;1565:79;:::o;12355:101::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12436:12:::1;12422:11;;:26;;;;;;;;;;;;;;;;;;12355:101:::0;:::o;5872:48::-;;;;:::o;6870:87::-;6909:13;6942:7;;;;;;;;;;;;;;;;;6935:14;;6870:87;:::o;17217:139::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17330:18:::1;17308:19;:40;;;;17217:139:::0;:::o;16723:442::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16896:2:::1;16881:11;16865:13;:27;;;;:::i;:::-;:33;;16857:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16972:2;16956:12;16939:14;:29;;;;:::i;:::-;:35;;16931:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17025:13;17008:14;:30;;;;17067:14;17049:15;:32;;;;17107:11;17092:12;:26;;;;17145:12;17129:13;:28;;;;16723:442:::0;;;;:::o;7305:199::-;7410:4;7432:42;7442:12;:10;:12::i;:::-;7456:9;7467:6;7432:9;:42::i;:::-;7492:4;7485:11;;7305:199;;;;:::o;13228:89::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13305:4:::1;13293;:9;13298:3;13293:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;13228:89:::0;:::o;5332:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12464:236::-;12530:19;;;;;;;;;;;12514:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12569:17;;;;;;;;;;;12553:33;;:12;:10;:12::i;:::-;:33;;;12514:72;12506:81;;;;;;12598:23;12624:24;12642:4;12624:9;:24::i;:::-;12598:50;;12659:33;12676:15;12659:16;:33::i;:::-;12495:205;12464:236::o;17819:234::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17936:9:::1;17932:114;17955:8;;:15;;17951:1;:19;17932:114;;;18026:8;17992:18;:31;18011:8;;18020:1;18011:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17992:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17972:3;;;;;:::i;:::-;;;;17932:114;;;;17819:234:::0;;;:::o;7512:184::-;7629:7;7661:11;:18;7673:5;7661:18;;;;;;;;;;;;;;;:27;7680:7;7661:27;;;;;;;;;;;;;;;;7654:34;;7512:184;;;;:::o;17680:131::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4508:1:::1;17790:2;:13;;;;:::i;:::-;17774;:29;;;;:::i;:::-;17757:14;:46;;;;17680:131:::0;:::o;1935:244::-;1702:12;:10;:12::i;:::-;1692:22;;:6;;;;;;;;;;:22;;;1684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2044:1:::1;2024:22;;:8;:22;;;;2016:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2134:8;2105:38;;2126:6;::::0;::::1;;;;;;;;2105:38;;;;;;;;;;;;2163:8;2154:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1935:244:::0;:::o;324:98::-;377:7;404:10;397:17;;324:98;:::o;9042:369::-;9186:1;9169:19;;:5;:19;;;;9161:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9267:1;9248:21;;:7;:21;;;;9240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9349:6;9319:11;:18;9331:5;9319:18;;;;;;;;;;;;;;;:27;9338:7;9319:27;;;;;;;;;;;;;;;:36;;;;9387:7;9371:32;;9380:5;9371:32;;;9396:6;9371:32;;;;;;:::i;:::-;;;;;;;;9042:369;;;:::o;9419:2330::-;9557:1;9541:18;;:4;:18;;;;9533:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9634:1;9620:16;;:2;:16;;;;9612:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9704:1;9695:6;:10;9687:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9776:7;:5;:7::i;:::-;9768:15;;:4;:15;;;;:32;;;;;9793:7;:5;:7::i;:::-;9787:13;;:2;:13;;;;9768:32;9764:1259;;;9857:11;;;;;;;;;;;9852:144;;9905:7;:5;:7::i;:::-;9897:15;;:4;:15;;;9889:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9852:144;10030:12;;10020:6;:22;;10012:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10099:4;:10;10104:4;10099:10;;;;;;;;;;;;;;;;;;;;;;;;;10098:11;:24;;;;;10114:4;:8;10119:2;10114:8;;;;;;;;;;;;;;;;;;;;;;;;;10113:9;10098:24;10090:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10188:13;;;;;;;;;;;10182:19;;:2;:19;;;10179:146;;10255:14;;10246:6;10230:13;10240:2;10230:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10222:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10179:146;10341:28;10372:24;10390:4;10372:9;:24::i;:::-;10341:55;;10411:12;10450:19;;10426:20;:43;;10411:58;;10513:12;;10489:20;:36;10486:124;;10582:12;;10559:35;;10486:124;10630:7;:18;;;;;10642:6;;;;;;;;;;10641:7;10630:18;:43;;;;;10660:13;;;;;;;;;;;10652:21;;:4;:21;;;;10630:43;:58;;;;;10677:11;;;;;;;;;;;10630:58;:87;;;;;10693:18;:24;10712:4;10693:24;;;;;;;;;;;;;;;;;;;;;;;;;10692:25;10630:87;:114;;;;;10722:18;:22;10741:2;10722:22;;;;;;;;;;;;;;;;;;;;;;;;;10721:23;10630:114;10626:386;;;10765:38;10782:20;10765:16;:38::i;:::-;10822:26;10851:21;10822:50;;10916:1;10895:18;:22;10891:106;;;10942:35;10955:21;10942:12;:35::i;:::-;10891:106;10746:266;10626:386;9802:1221;;9764:1259;11035:12;11050:4;11035:19;;11099:18;:24;11118:4;11099:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11127:18;:22;11146:2;11127:22;;;;;;;;;;;;;;;;;;;;;;;;;11099:50;11098:102;;;;11163:13;;;;;;;;;;;11155:21;;:4;:21;;;;:44;;;;;11186:13;;;;;;;;;;;11180:19;;:2;:19;;;;11155:44;11098:102;11094:594;;;11227:5;11217:15;;11094:594;;;11310:13;;;;;;;;;;;11302:21;;:4;:21;;;:55;;;;;11341:15;;;;;;;;;;;11327:30;;:2;:30;;;;11302:55;11299:162;;;11390:14;;11378:9;:26;;;;11433:12;;11423:7;:22;;;;11299:162;11520:13;;;;;;;;;;;11514:19;;:2;:19;;;:55;;;;;11553:15;;;;;;;;;;;11537:32;;:4;:32;;;;11514:55;11510:165;;;11602:15;;11590:9;:27;;;;11646:13;;11636:7;:23;;;;11510:165;11094:594;11700:41;11715:4;11721:2;11725:6;11733:7;11700:14;:41::i;:::-;9522:2227;9419:2330;;;:::o;2543:224::-;2663:7;2696:1;2691;:6;;2699:12;2683:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2723:9;2739:1;2735;:5;;;;:::i;:::-;2723:17;;2758:1;2751:8;;;2543:224;;;;;:::o;12248:99::-;12305:17;;;;;;;;;;;:26;;:34;12332:6;12305:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:99;:::o;8359:323::-;8454:7;8512;;8501;:18;;8479:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8600:19;8622:10;:8;:10::i;:::-;8600:32;;8650:24;8662:11;8650:7;:11;;:24;;;;:::i;:::-;8643:31;;;8359:323;;;:::o;11757:483::-;6080:4;6071:6;;:13;;;;;;;;;;;;;;;;;;11835:21:::1;11873:1;11859:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11835:40;;11904:4;11886;11891:1;11886:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11930:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11920:4;11925:1;11920:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11963:62;11980:4;11995:15;;;;;;;;;;;12013:11;11963:8;:62::i;:::-;12036:15;;;;;;;;;;;:66;;;12117:11;12143:1;12159:4;12186;12206:15;12036:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11824:416;6116:5:::0;6107:6;;:14;;;;;;;;;;;;;;;;;;11757:483;:::o;13325:282::-;13481:7;13476:28;;13490:14;:12;:14::i;:::-;13476:28;13515:44;13533:6;13541:9;13552:6;13515:17;:44::i;:::-;13575:7;13570:29;;13584:15;:13;:15::i;:::-;13570:29;13325:282;;;;:::o;16286:164::-;16328:7;16349:15;16366;16385:19;:17;:19::i;:::-;16348:56;;;;16422:20;16434:7;16422;:11;;:20;;;;:::i;:::-;16415:27;;;;16286:164;:::o;3029:132::-;3087:7;3114:39;3118:1;3121;3114:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3107:46;;3029:132;;;;:::o;8690:219::-;8750:1;8737:9;;:14;:30;;;;;8766:1;8755:7;;:12;8737:30;8733:43;;;8769:7;;8733:43;8808:9;;8788:17;:29;;;;8846:7;;8828:15;:25;;;;8878:1;8866:9;:13;;;;8900:1;8890:7;:11;;;;8690:219;:::o;13615:610::-;13762:15;13792:23;13830:12;13857:23;13895:12;13922:13;13949:19;13960:7;13949:10;:19::i;:::-;13747:221;;;;;;;;;;;;13997:28;14017:7;13997;:15;14005:6;13997:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13979:7;:15;13987:6;13979:15;;;;;;;;;;;;;;;:46;;;;14057:39;14080:15;14057:7;:18;14065:9;14057:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14036:7;:18;14044:9;14036:18;;;;;;;;;;;;;;;:60;;;;14107:16;14117:5;14107:9;:16::i;:::-;14134:23;14146:4;14152;14134:11;:23::i;:::-;14190:9;14173:44;;14182:6;14173:44;;;14201:15;14173:44;;;;;;:::i;:::-;;;;;;;;13736:489;;;;;;13615:610;;;:::o;8917:117::-;8973:17;;8961:9;:29;;;;9011:15;;9001:7;:25;;;;8917:117::o;16458:257::-;16509:7;16518;16538:15;16556:7;;16538:25;;16574:15;4834:18;16574:25;;16624:20;4834:18;16624:7;;:11;;:20;;;;:::i;:::-;16614:7;:30;16610:61;;;16654:7;;4834:18;16646:25;;;;;;;;16610:61;16690:7;16699;16682:25;;;;;;16458:257;;;:::o;3169:223::-;3289:7;3321:1;3317;:5;3324:12;3309:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3348:9;3364:1;3360;:5;;;;:::i;:::-;3348:17;;3383:1;3376:8;;;3169:223;;;;;:::o;14644:615::-;14744:7;14766;14788;14810;14832;14854;14890:23;14915:12;14929:13;14959:40;14971:7;14980:9;;14991:7;;14959:11;:40::i;:::-;14889:110;;;;;;15010:19;15032:10;:8;:10::i;:::-;15010:32;;15054:15;15071:23;15096:12;15125:46;15137:7;15146:4;15152:5;15159:11;15125;:46::i;:::-;15053:118;;;;;;15190:7;15199:15;15216:4;15222:15;15239:4;15245:5;15182:69;;;;;;;;;;;;;;;;;;;14644:615;;;;;;;:::o;2399:136::-;2457:7;2484:43;2488:1;2491;2484:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2477:50;;2399:136;;;;:::o;2212:179::-;2270:7;2290:9;2306:1;2302;:5;;;;:::i;:::-;2290:17;;2331:1;2326;:6;;2318:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2382:1;2375:8;;;2212:179;;;;:::o;14233:211::-;14286:19;14308:10;:8;:10::i;:::-;14286:32;;14329:13;14345:22;14355:11;14345:5;:9;;:22;;;;:::i;:::-;14329:38;;14403:33;14430:5;14403:7;:22;14419:4;14403:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14378:7;:22;14394:4;14378:22;;;;;;;;;;;;;;;:58;;;;14275:169;;14233:211;:::o;14452:147::-;14530:17;14542:4;14530:7;;:11;;:17;;;;:::i;:::-;14520:7;:27;;;;14571:20;14586:4;14571:10;;:14;;:20;;;;:::i;:::-;14558:10;:33;;;;14452:147;;:::o;15267:469::-;15436:7;15458;15480;15515:12;15530:30;15556:3;15530:21;15542:8;15530:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15515:45;;15571:13;15587:28;15611:3;15587:19;15599:6;15587:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15571:44;;15626:23;15652:28;15674:5;15652:17;15664:4;15652:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15626:54;;15699:15;15716:4;15722:5;15691:37;;;;;;;;;15267:469;;;;;;;:::o;15744:534::-;15938:7;15960;15982;16017:15;16035:24;16047:11;16035:7;:11;;:24;;;;:::i;:::-;16017:42;;16070:12;16085:21;16094:11;16085:4;:8;;:21;;;;:::i;:::-;16070:36;;16117:13;16133:22;16143:11;16133:5;:9;;:22;;;;:::i;:::-;16117:38;;16166:23;16192:28;16214:5;16192:17;16204:4;16192:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16166:54;;16239:7;16248:15;16265:4;16231:39;;;;;;;;;;15744:534;;;;;;;;:::o;2775:246::-;2833:7;2862:1;2857;:6;2853:47;;;2887:1;2880:8;;;;2853:47;2910:9;2926:1;2922;:5;;;;:::i;:::-;2910:17;;2955:1;2950;2946;:5;;;;:::i;:::-;:10;2938:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3012:1;3005:8;;;2775:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:102::-;14635:8;14682:5;14679:1;14675:13;14654:34;;14593:102;;;:::o;14701:848::-;14762:5;14769:4;14793:6;14784:15;;14817:5;14808:14;;14831:712;14852:1;14842:8;14839:15;14831:712;;;14947:4;14942:3;14938:14;14932:4;14929:24;14926:50;;;14956:18;;:::i;:::-;14926:50;15006:1;14996:8;14992:16;14989:451;;;15421:4;15414:5;15410:16;15401:25;;14989:451;15471:4;15465;15461:15;15453:23;;15501:32;15524:8;15501:32;:::i;:::-;15489:44;;14831:712;;;14701:848;;;;;;;:::o;15555:1073::-;15609:5;15800:8;15790:40;;15821:1;15812:10;;15823:5;;15790:40;15849:4;15839:36;;15866:1;15857:10;;15868:5;;15839:36;15935:4;15983:1;15978:27;;;;16019:1;16014:191;;;;15928:277;;15978:27;15996:1;15987:10;;15998:5;;;16014:191;16059:3;16049:8;16046:17;16043:43;;;16066:18;;:::i;:::-;16043:43;16115:8;16112:1;16108:16;16099:25;;16150:3;16143:5;16140:14;16137:40;;;16157:18;;:::i;:::-;16137:40;16190:5;;;15928:277;;16314:2;16304:8;16301:16;16295:3;16289:4;16286:13;16282:36;16264:2;16254:8;16251:16;16246:2;16240:4;16237:12;16233:35;16217:111;16214:246;;;16370:8;16364:4;16360:19;16351:28;;16405:3;16398:5;16395:14;16392:40;;;16412:18;;:::i;:::-;16392:40;16445:5;;16214:246;16485:42;16523:3;16513:8;16507:4;16504:1;16485:42;:::i;:::-;16470:57;;;;16559:4;16554:3;16550:14;16543:5;16540:25;16537:51;;;16568:18;;:::i;:::-;16537:51;16617:4;16610:5;16606:16;16597:25;;15555:1073;;;;;;:::o;16634:281::-;16692:5;16716:23;16734:4;16716:23;:::i;:::-;16708:31;;16760:25;16776:8;16760:25;:::i;:::-;16748:37;;16804:104;16841:66;16831:8;16825:4;16804:104;:::i;:::-;16795:113;;16634:281;;;;:::o;16921:348::-;16961:7;16984:20;17002:1;16984:20;:::i;:::-;16979:25;;17018:20;17036:1;17018:20;:::i;:::-;17013:25;;17206:1;17138:66;17134:74;17131:1;17128:81;17123:1;17116:9;17109:17;17105:105;17102:131;;;17213:18;;:::i;:::-;17102:131;17261:1;17258;17254:9;17243:20;;16921:348;;;;:::o;17275:305::-;17315:3;17334:20;17352:1;17334:20;:::i;:::-;17329:25;;17368:20;17386:1;17368:20;:::i;:::-;17363:25;;17522:1;17454:66;17450:74;17447:1;17444:81;17441:107;;;17528:18;;:::i;:::-;17441:107;17572:1;17569;17565:9;17558:16;;17275:305;;;;:::o;17586:167::-;17726:19;17722:1;17714:6;17710:14;17703:43;17586:167;:::o;17759:366::-;17901:3;17922:67;17986:2;17981:3;17922:67;:::i;:::-;17915:74;;17998:93;18087:3;17998:93;:::i;:::-;18116:2;18111:3;18107:12;18100:19;;17759:366;;;:::o;18131:419::-;18297:4;18335:2;18324:9;18320:18;18312:26;;18384:9;18378:4;18374:20;18370:1;18359:9;18355:17;18348:47;18412:131;18538:4;18412:131;:::i;:::-;18404:139;;18131:419;;;:::o;18556:168::-;18696:20;18692:1;18684:6;18680:14;18673:44;18556:168;:::o;18730:366::-;18872:3;18893:67;18957:2;18952:3;18893:67;:::i;:::-;18886:74;;18969:93;19058:3;18969:93;:::i;:::-;19087:2;19082:3;19078:12;19071:19;;18730:366;;;:::o;19102:419::-;19268:4;19306:2;19295:9;19291:18;19283:26;;19355:9;19349:4;19345:20;19341:1;19330:9;19326:17;19319:47;19383:131;19509:4;19383:131;:::i;:::-;19375:139;;19102:419;;;:::o;19527:225::-;19667:34;19663:1;19655:6;19651:14;19644:58;19736:8;19731:2;19723:6;19719:15;19712:33;19527:225;:::o;19758:366::-;19900:3;19921:67;19985:2;19980:3;19921:67;:::i;:::-;19914:74;;19997:93;20086:3;19997:93;:::i;:::-;20115:2;20110:3;20106:12;20099:19;;19758:366;;;:::o;20130:419::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20383:9;20377:4;20373:20;20369:1;20358:9;20354:17;20347:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20130:419;;;:::o;20555:223::-;20695:34;20691:1;20683:6;20679:14;20672:58;20764:6;20759:2;20751:6;20747:15;20740:31;20555:223;:::o;20784:366::-;20926:3;20947:67;21011:2;21006:3;20947:67;:::i;:::-;20940:74;;21023:93;21112:3;21023:93;:::i;:::-;21141:2;21136:3;21132:12;21125:19;;20784:366;;;:::o;21156:419::-;21322:4;21360:2;21349:9;21345:18;21337:26;;21409:9;21403:4;21399:20;21395:1;21384:9;21380:17;21373:47;21437:131;21563:4;21437:131;:::i;:::-;21429:139;;21156:419;;;:::o;21581:221::-;21721:34;21717:1;21709:6;21705:14;21698:58;21790:4;21785:2;21777:6;21773:15;21766:29;21581:221;:::o;21808:366::-;21950:3;21971:67;22035:2;22030:3;21971:67;:::i;:::-;21964:74;;22047:93;22136:3;22047:93;:::i;:::-;22165:2;22160:3;22156:12;22149:19;;21808:366;;;:::o;22180:419::-;22346:4;22384:2;22373:9;22369:18;22361:26;;22433:9;22427:4;22423:20;22419:1;22408:9;22404:17;22397:47;22461:131;22587:4;22461:131;:::i;:::-;22453:139;;22180:419;;;:::o;22605:224::-;22745:34;22741:1;22733:6;22729:14;22722:58;22814:7;22809:2;22801:6;22797:15;22790:32;22605:224;:::o;22835:366::-;22977:3;22998:67;23062:2;23057:3;22998:67;:::i;:::-;22991:74;;23074:93;23163:3;23074:93;:::i;:::-;23192:2;23187:3;23183:12;23176:19;;22835:366;;;:::o;23207:419::-;23373:4;23411:2;23400:9;23396:18;23388:26;;23460:9;23454:4;23450:20;23446:1;23435:9;23431:17;23424:47;23488:131;23614:4;23488:131;:::i;:::-;23480:139;;23207:419;;;:::o;23632:222::-;23772:34;23768:1;23760:6;23756:14;23749:58;23841:5;23836:2;23828:6;23824:15;23817:30;23632:222;:::o;23860:366::-;24002:3;24023:67;24087:2;24082:3;24023:67;:::i;:::-;24016:74;;24099:93;24188:3;24099:93;:::i;:::-;24217:2;24212:3;24208:12;24201:19;;23860:366;;;:::o;24232:419::-;24398:4;24436:2;24425:9;24421:18;24413:26;;24485:9;24479:4;24475:20;24471:1;24460:9;24456:17;24449:47;24513:131;24639:4;24513:131;:::i;:::-;24505:139;;24232:419;;;:::o;24657:228::-;24797:34;24793:1;24785:6;24781:14;24774:58;24866:11;24861:2;24853:6;24849:15;24842:36;24657:228;:::o;24891:366::-;25033:3;25054:67;25118:2;25113:3;25054:67;:::i;:::-;25047:74;;25130:93;25219:3;25130:93;:::i;:::-;25248:2;25243:3;25239:12;25232:19;;24891:366;;;:::o;25263:419::-;25429:4;25467:2;25456:9;25452:18;25444:26;;25516:9;25510:4;25506:20;25502:1;25491:9;25487:17;25480:47;25544:131;25670:4;25544:131;:::i;:::-;25536:139;;25263:419;;;:::o;25688:250::-;25828:34;25824:1;25816:6;25812:14;25805:58;25897:33;25892:2;25884:6;25880:15;25873:58;25688:250;:::o;25944:366::-;26086:3;26107:67;26171:2;26166:3;26107:67;:::i;:::-;26100:74;;26183:93;26272:3;26183:93;:::i;:::-;26301:2;26296:3;26292:12;26285:19;;25944:366;;;:::o;26316:419::-;26482:4;26520:2;26509:9;26505:18;26497:26;;26569:9;26563:4;26559:20;26555:1;26544:9;26540:17;26533:47;26597:131;26723:4;26597:131;:::i;:::-;26589:139;;26316:419;;;:::o;26741:178::-;26881:30;26877:1;26869:6;26865:14;26858:54;26741:178;:::o;26925:366::-;27067:3;27088:67;27152:2;27147:3;27088:67;:::i;:::-;27081:74;;27164:93;27253:3;27164:93;:::i;:::-;27282:2;27277:3;27273:12;27266:19;;26925:366;;;:::o;27297:419::-;27463:4;27501:2;27490:9;27486:18;27478:26;;27550:9;27544:4;27540:20;27536:1;27525:9;27521:17;27514:47;27578:131;27704:4;27578:131;:::i;:::-;27570:139;;27297:419;;;:::o;27722:222::-;27862:34;27858:1;27850:6;27846:14;27839:58;27931:5;27926:2;27918:6;27914:15;27907:30;27722:222;:::o;27950:366::-;28092:3;28113:67;28177:2;28172:3;28113:67;:::i;:::-;28106:74;;28189:93;28278:3;28189:93;:::i;:::-;28307:2;28302:3;28298:12;28291:19;;27950:366;;;:::o;28322:419::-;28488:4;28526:2;28515:9;28511:18;28503:26;;28575:9;28569:4;28565:20;28561:1;28550:9;28546:17;28539:47;28603:131;28729:4;28603:131;:::i;:::-;28595:139;;28322:419;;;:::o;28747:222::-;28887:34;28883:1;28875:6;28871:14;28864:58;28956:5;28951:2;28943:6;28939:15;28932:30;28747:222;:::o;28975:366::-;29117:3;29138:67;29202:2;29197:3;29138:67;:::i;:::-;29131:74;;29214:93;29303:3;29214:93;:::i;:::-;29332:2;29327:3;29323:12;29316:19;;28975:366;;;:::o;29347:419::-;29513:4;29551:2;29540:9;29536:18;29528:26;;29600:9;29594:4;29590:20;29586:1;29575:9;29571:17;29564:47;29628:131;29754:4;29628:131;:::i;:::-;29620:139;;29347:419;;;:::o;29772:191::-;29812:4;29832:20;29850:1;29832:20;:::i;:::-;29827:25;;29866:20;29884:1;29866:20;:::i;:::-;29861:25;;29905:1;29902;29899:8;29896:34;;;29910:18;;:::i;:::-;29896:34;29955:1;29952;29948:9;29940:17;;29772:191;;;;:::o;29969:229::-;30109:34;30105:1;30097:6;30093:14;30086:58;30178:12;30173:2;30165:6;30161:15;30154:37;29969:229;:::o;30204:366::-;30346:3;30367:67;30431:2;30426:3;30367:67;:::i;:::-;30360:74;;30443:93;30532:3;30443:93;:::i;:::-;30561:2;30556:3;30552:12;30545:19;;30204:366;;;:::o;30576:419::-;30742:4;30780:2;30769:9;30765:18;30757:26;;30829:9;30823:4;30819:20;30815:1;30804:9;30800:17;30793:47;30857:131;30983:4;30857:131;:::i;:::-;30849:139;;30576:419;;;:::o;31001:143::-;31058:5;31089:6;31083:13;31074:22;;31105:33;31132:5;31105:33;:::i;:::-;31001:143;;;;:::o;31150:351::-;31220:6;31269:2;31257:9;31248:7;31244:23;31240:32;31237:119;;;31275:79;;:::i;:::-;31237:119;31395:1;31420:64;31476:7;31467:6;31456:9;31452:22;31420:64;:::i;:::-;31410:74;;31366:128;31150:351;;;;:::o;31507:85::-;31552:7;31581:5;31570:16;;31507:85;;;:::o;31598:158::-;31656:9;31689:61;31707:42;31716:32;31742:5;31716:32;:::i;:::-;31707:42;:::i;:::-;31689:61;:::i;:::-;31676:74;;31598:158;;;:::o;31762:147::-;31857:45;31896:5;31857:45;:::i;:::-;31852:3;31845:58;31762:147;;:::o;31915:114::-;31982:6;32016:5;32010:12;32000:22;;31915:114;;;:::o;32035:184::-;32134:11;32168:6;32163:3;32156:19;32208:4;32203:3;32199:14;32184:29;;32035:184;;;;:::o;32225:132::-;32292:4;32315:3;32307:11;;32345:4;32340:3;32336:14;32328:22;;32225:132;;;:::o;32363:108::-;32440:24;32458:5;32440:24;:::i;:::-;32435:3;32428:37;32363:108;;:::o;32477:179::-;32546:10;32567:46;32609:3;32601:6;32567:46;:::i;:::-;32645:4;32640:3;32636:14;32622:28;;32477:179;;;;:::o;32662:113::-;32732:4;32764;32759:3;32755:14;32747:22;;32662:113;;;:::o;32811:732::-;32930:3;32959:54;33007:5;32959:54;:::i;:::-;33029:86;33108:6;33103:3;33029:86;:::i;:::-;33022:93;;33139:56;33189:5;33139:56;:::i;:::-;33218:7;33249:1;33234:284;33259:6;33256:1;33253:13;33234:284;;;33335:6;33329:13;33362:63;33421:3;33406:13;33362:63;:::i;:::-;33355:70;;33448:60;33501:6;33448:60;:::i;:::-;33438:70;;33294:224;33281:1;33278;33274:9;33269:14;;33234:284;;;33238:14;33534:3;33527:10;;32935:608;;;32811:732;;;;:::o;33549:831::-;33812:4;33850:3;33839:9;33835:19;33827:27;;33864:71;33932:1;33921:9;33917:17;33908:6;33864:71;:::i;:::-;33945:80;34021:2;34010:9;34006:18;33997:6;33945:80;:::i;:::-;34072:9;34066:4;34062:20;34057:2;34046:9;34042:18;34035:48;34100:108;34203:4;34194:6;34100:108;:::i;:::-;34092:116;;34218:72;34286:2;34275:9;34271:18;34262:6;34218:72;:::i;:::-;34300:73;34368:3;34357:9;34353:19;34344:6;34300:73;:::i;:::-;33549:831;;;;;;;;:::o;34386:180::-;34434:77;34431:1;34424:88;34531:4;34528:1;34521:15;34555:4;34552:1;34545:15;34572:185;34612:1;34629:20;34647:1;34629:20;:::i;:::-;34624:25;;34663:20;34681:1;34663:20;:::i;:::-;34658:25;;34702:1;34692:35;;34707:18;;:::i;:::-;34692:35;34749:1;34746;34742:9;34737:14;;34572:185;;;;:::o;34763:177::-;34903:29;34899:1;34891:6;34887:14;34880:53;34763:177;:::o;34946:366::-;35088:3;35109:67;35173:2;35168:3;35109:67;:::i;:::-;35102:74;;35185:93;35274:3;35185:93;:::i;:::-;35303:2;35298:3;35294:12;35287:19;;34946:366;;;:::o;35318:419::-;35484:4;35522:2;35511:9;35507:18;35499:26;;35571:9;35565:4;35561:20;35557:1;35546:9;35542:17;35535:47;35599:131;35725:4;35599:131;:::i;:::-;35591:139;;35318:419;;;:::o;35743:220::-;35883:34;35879:1;35871:6;35867:14;35860:58;35952:3;35947:2;35939:6;35935:15;35928:28;35743:220;:::o;35969:366::-;36111:3;36132:67;36196:2;36191:3;36132:67;:::i;:::-;36125:74;;36208:93;36297:3;36208:93;:::i;:::-;36326:2;36321:3;36317:12;36310:19;;35969:366;;;:::o;36341:419::-;36507:4;36545:2;36534:9;36530:18;36522:26;;36594:9;36588:4;36584:20;36580:1;36569:9;36565:17;36558:47;36622:131;36748:4;36622:131;:::i;:::-;36614:139;;36341:419;;;:::o

Swarm Source

ipfs://4b4c83382ba0c00fe3740fd2d1946aa4388c2127fb9816058efddaba6ba64b1a

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  ]

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.