ETH Price: $3,343.57 (+0.67%)

Contract

0x8190a1f401B54725F62795d28F2569d0FdfbC695
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,343.57/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve163742812023-01-10 5:21:47718 days ago1673328107IN
0x8190a1f4...0FdfbC695
0 ETH0.0007687216.26757533
Approve163733792023-01-10 2:20:47718 days ago1673317247IN
0x8190a1f4...0FdfbC695
0 ETH0.0008356417.68379933
Renounce Ownersh...163726442023-01-09 23:53:11718 days ago1673308391IN
0x8190a1f4...0FdfbC695
0 ETH0.0007688332.7332414
Transfer163726352023-01-09 23:51:23718 days ago1673308283IN
0x8190a1f4...0FdfbC695
0 ETH0.0025246730.53509075
Approve163725102023-01-09 23:26:23718 days ago1673306783IN
0x8190a1f4...0FdfbC695
0 ETH0.0012016425.4289143
Set Max Wallet S...163724982023-01-09 23:23:59718 days ago1673306639IN
0x8190a1f4...0FdfbC695
0 ETH0.0008796730.25026285
Set Max Txn Amou...163724892023-01-09 23:22:11718 days ago1673306531IN
0x8190a1f4...0FdfbC695
0 ETH0.0008438529.08231715
Approve163724802023-01-09 23:20:23718 days ago1673306423IN
0x8190a1f4...0FdfbC695
0 ETH0.0012965127.43666261
Approve163724632023-01-09 23:16:59718 days ago1673306219IN
0x8190a1f4...0FdfbC695
0 ETH0.0015715633.25705958
Approve163724602023-01-09 23:16:23718 days ago1673306183IN
0x8190a1f4...0FdfbC695
0 ETH0.0014806431.3330589
Approve163723232023-01-09 22:48:35718 days ago1673304515IN
0x8190a1f4...0FdfbC695
0 ETH0.0020301643.24746681
Approve163723102023-01-09 22:45:59718 days ago1673304359IN
0x8190a1f4...0FdfbC695
0 ETH0.0021196945.15461286
Approve163722972023-01-09 22:43:11718 days ago1673304191IN
0x8190a1f4...0FdfbC695
0 ETH0.0022261347.42212059
Set Distribution163700652023-01-09 15:13:23718 days ago1673277203IN
0x8190a1f4...0FdfbC695
0 ETH0.0006695321.16715568
Set Fee163700092023-01-09 15:02:11718 days ago1673276531IN
0x8190a1f4...0FdfbC695
0 ETH0.0012517523.34666181
Approve163449452023-01-06 3:05:23722 days ago1672974323IN
0x8190a1f4...0FdfbC695
0 ETH0.000772716.35190011
Approve163419712023-01-05 17:06:11722 days ago1672938371IN
0x8190a1f4...0FdfbC695
0 ETH0.0010895923.05782468
Approve163351792023-01-04 18:20:59723 days ago1672856459IN
0x8190a1f4...0FdfbC695
0 ETH0.0010096621.36620741
Approve163261952023-01-03 12:15:47724 days ago1672748147IN
0x8190a1f4...0FdfbC695
0 ETH0.0007037314.89228443
Approve163260702023-01-03 11:50:35724 days ago1672746635IN
0x8190a1f4...0FdfbC695
0 ETH0.0007031514.87990953
Approve163201952023-01-02 16:10:11725 days ago1672675811IN
0x8190a1f4...0FdfbC695
0 ETH0.0008507918.00426307
Approve163197722023-01-02 14:45:35725 days ago1672670735IN
0x8190a1f4...0FdfbC695
0 ETH0.0007915916.75160873
Transfer163196602023-01-02 14:23:11725 days ago1672669391IN
0x8190a1f4...0FdfbC695
0 ETH0.0018834616.39020043
Approve163179292023-01-02 8:34:59725 days ago1672648499IN
0x8190a1f4...0FdfbC695
0 ETH0.0007033514.8843153
Transfer163169932023-01-02 5:27:11726 days ago1672637231IN
0x8190a1f4...0FdfbC695
0 ETH0.0011248212.34632805
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
163725132023-01-09 23:26:59718 days ago1673306819
0x8190a1f4...0FdfbC695
0.008697 ETH
163725132023-01-09 23:26:59718 days ago1673306819
0x8190a1f4...0FdfbC695
0.008697 ETH
163725132023-01-09 23:26:59718 days ago1673306819
0x8190a1f4...0FdfbC695
0.01739401 ETH
163724472023-01-09 23:13:47718 days ago1673306027
0x8190a1f4...0FdfbC695
0.03633589 ETH
163724472023-01-09 23:13:47718 days ago1673306027
0x8190a1f4...0FdfbC695
0.03633589 ETH
163724472023-01-09 23:13:47718 days ago1673306027
0x8190a1f4...0FdfbC695
0.07267179 ETH
163260732023-01-03 11:51:11724 days ago1672746671
0x8190a1f4...0FdfbC695
0.01094264 ETH
163260732023-01-03 11:51:11724 days ago1672746671
0x8190a1f4...0FdfbC695
0.00369684 ETH
163260732023-01-03 11:51:11724 days ago1672746671
0x8190a1f4...0FdfbC695
0.00369684 ETH
163260732023-01-03 11:51:11724 days ago1672746671
0x8190a1f4...0FdfbC695
0.01123839 ETH
163260732023-01-03 11:51:11724 days ago1672746671
0x8190a1f4...0FdfbC695
0.02957472 ETH
163161352023-01-02 2:34:59726 days ago1672626899
0x8190a1f4...0FdfbC695
0.01197252 ETH
163161352023-01-02 2:34:59726 days ago1672626899
0x8190a1f4...0FdfbC695
0.00404477 ETH
163161352023-01-02 2:34:59726 days ago1672626899
0x8190a1f4...0FdfbC695
0.00404477 ETH
163161352023-01-02 2:34:59726 days ago1672626899
0x8190a1f4...0FdfbC695
0.0122961 ETH
163161352023-01-02 2:34:59726 days ago1672626899
0x8190a1f4...0FdfbC695
0.03235817 ETH
163101772023-01-01 6:38:47727 days ago1672555127
0x8190a1f4...0FdfbC695
0.02414294 ETH
163101772023-01-01 6:38:47727 days ago1672555127
0x8190a1f4...0FdfbC695
0.0081564 ETH
163101772023-01-01 6:38:47727 days ago1672555127
0x8190a1f4...0FdfbC695
0.0081564 ETH
163101772023-01-01 6:38:47727 days ago1672555127
0x8190a1f4...0FdfbC695
0.02479545 ETH
163101772023-01-01 6:38:47727 days ago1672555127
0x8190a1f4...0FdfbC695
0.0652512 ETH
163050742022-12-31 13:34:23727 days ago1672493663
0x8190a1f4...0FdfbC695
0.03839599 ETH
163050742022-12-31 13:34:23727 days ago1672493663
0x8190a1f4...0FdfbC695
0.01297161 ETH
163050742022-12-31 13:34:23727 days ago1672493663
0x8190a1f4...0FdfbC695
0.01297161 ETH
163050742022-12-31 13:34:23727 days ago1672493663
0x8190a1f4...0FdfbC695
0.03943372 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SHUFFLERELIEF

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-30
*/

/**
*
*
People>Profits
--------------
为了文化.
--------------
People>Profits
*
*
-Everything you think you know about defi is a lie. You live in chains. Those you worship are the very ones who betray you. 
-R'hllor Inu will show you the light.
-To honor the Lord of Light, we will shine the greatest larp defi has ever seen. We remember the darkness. Now, the light has set us free. 
-It purifies all and everything burns.
-Even members of the BAYC are within our reach. 
*
*
Yes the above is intentional...DM @Das_Game_Master for smart contract/launch services. 
*
Join my telegram for early CA on SAFU launches. https://t.me/full_send_gems_chat
*
*

-Twitter-  https://twitter.com/ShuffleRelief
-Telegram- https://t.me/Shuffle_Relief
-Website-  http://shufflerelief.org 

*
*
*/

pragma solidity ^0.8.14;
// SPDX-License-Identifier: Unlicensed
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 SHUFFLERELIEF is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Shuffle Relief";
    string private constant _symbol = "SHUFFLER";
    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 = 200000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 15;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;

    //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;
    mapping (address => bool) public preTrader;
    address private developmentAddress;
    address private marketingAddress;
    address private devFeeAddress1;
    address private devFeeAddress2;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 550000 * 10**_decimals;

    struct Distribution {
        uint256 development;
        uint256 marketing;
        uint256 devFee;
    }

    Distribution public distribution;

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

    constructor(address developmentAddr, address marketingAddr, address devFeeAddr1, address devFeeAddr2) {
        developmentAddress = developmentAddr;
        marketingAddress = marketingAddr;
        devFeeAddress1 = devFeeAddr1;
        devFeeAddress2 = devFeeAddr2;
        _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[devFeeAddress1] = true;
        _isExcludedFromFee[devFeeAddress2] = true;
        _isExcludedFromFee[marketingAddress] = true;
        _isExcludedFromFee[developmentAddress] = true;

        distribution = Distribution(37, 38, 25);

        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() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "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 lockTheSwap {
        uint256 distributionEth = amount;
        uint256 marketingShare = distributionEth.mul(distribution.marketing).div(100);
        uint256 devFeeShare = distributionEth.mul(distribution.devFee).div(100).div(2);
        uint256 developmentShare = distributionEth.mul(distribution.development).div(100);
        payable(marketingAddress).transfer(marketingShare);
        payable(devFeeAddress1).transfer(devFeeShare);
        payable(devFeeAddress2).transfer(devFeeShare);
        payable(developmentAddress).transfer(developmentShare);
    }

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

    function manualswap() external {
        require(_msgSender() == developmentAddress || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == developmentAddress || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        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 _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 setDistribution(uint256 development, uint256 marketing, uint256 devFee) external onlyOwner {        
        distribution.development = development;
        distribution.marketing = marketing;
        distribution.devFee = devFee;
    }

    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 {
        _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;
    }

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

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

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 delete preTrader[accounts[i]];
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"developmentAddr","type":"address"},{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"devFeeAddr1","type":"address"},{"internalType":"address","name":"devFeeAddr2","type":"address"}],"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":"accounts","type":"address[]"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDistribution","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"}]

60806040526009600a62000014919062000aa1565b630bebc20062000025919062000af2565b60001962000034919062000b6c565b60001962000043919062000ba4565b6006556000600855600f6009556000600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f556000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff0219169083151502179055506009600a620000b8919062000aa1565b621e8480620000c8919062000af2565b6019556009600a620000db919062000aa1565b621e8480620000eb919062000af2565b601a556009600a620000fe919062000aa1565b620864706200010e919062000af2565b601b553480156200011e57600080fd5b506040516200566338038062005663833981810160405281019062000144919062000c49565b600062000156620008d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200030f620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000cbb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000cbb565b6040518363ffffffff1660e01b8152600401620004c692919062000cfe565b6020604051808303816000875af1158015620004e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050c919062000cbb565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000562620008de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060258152602001602681526020016019815250601c60008201518160000155602082015181600101556040820151816002015590505062000844620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620008a3919062000aa1565b630bebc200620008b4919062000af2565b604051620008c3919062000d3c565b60405180910390a3505050505062000d59565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000995578086048111156200096d576200096c62000907565b5b60018516156200097d5780820291505b80810290506200098d8562000936565b94506200094d565b94509492505050565b600082620009b0576001905062000a83565b81620009c0576000905062000a83565b8160018114620009d95760028114620009e45762000a1a565b600191505062000a83565b60ff841115620009f957620009f862000907565b5b8360020a91508482111562000a135762000a1262000907565b5b5062000a83565b5060208310610133831016604e8410600b841016171562000a545782820a90508381111562000a4e5762000a4d62000907565b5b62000a83565b62000a63848484600162000943565b9250905081840481111562000a7d5762000a7c62000907565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aae8262000a8a565b915062000abb8362000a94565b925062000aea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200099e565b905092915050565b600062000aff8262000a8a565b915062000b0c8362000a8a565b925082820262000b1c8162000a8a565b9150828204841483151762000b365762000b3562000907565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b798262000a8a565b915062000b868362000a8a565b92508262000b995762000b9862000b3d565b5b828206905092915050565b600062000bb18262000a8a565b915062000bbe8362000a8a565b925082820390508181111562000bd95762000bd862000907565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c118262000be4565b9050919050565b62000c238162000c04565b811462000c2f57600080fd5b50565b60008151905062000c438162000c18565b92915050565b6000806000806080858703121562000c665762000c6562000bdf565b5b600062000c768782880162000c32565b945050602062000c898782880162000c32565b935050604062000c9c8782880162000c32565b925050606062000caf8782880162000c32565b91505092959194509250565b60006020828403121562000cd45762000cd362000bdf565b5b600062000ce48482850162000c32565b91505092915050565b62000cf88162000c04565b82525050565b600060408201905062000d15600083018562000ced565b62000d24602083018462000ced565b9392505050565b62000d368162000a8a565b82525050565b600060208201905062000d53600083018462000d2b565b92915050565b6148fa8062000d696000396000f3fe6080604052600436106102075760003560e01c806374010ece11610118578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd8014610761578063c492f04614610778578063dd62ed3e146107a1578063ea1644d5146107de578063f2fde38b146108075761020e565b8063a9059cbb14610681578063b5a65223146106be578063bdd795ef146106e7578063bfd79284146107245761020e565b80638f70ccf7116100e75780638f70ccf7146105b05780638f9a55c0146105d957806395d89b411461060457806398a5c3151461062f578063a2a957bb146106585761020e565b806374010ece146104f45780637d1db4a51461051d5780637f2feddc146105485780638da5cb5b146105855761020e565b806349bd5a5e1161019b5780636d8aa8f81161016a5780636d8aa8f8146104375780636f343052146104605780636fc3eaec1461048957806370a08231146104a0578063715018a6146104dd5761020e565b806349bd5a5e1461038d5780635ee58efc146103b857806367aadb7e146103e55780636b9990531461040e5761020e565b806318160ddd116101d757806318160ddd146102cf57806323b872dd146102fa5780632fd689e314610337578063313ce567146103625761020e565b8062b8cf2a1461021357806306fdde031461023c578063095ea7b3146102675780631694505e146102a45761020e565b3661020e57005b600080fd5b34801561021f57600080fd5b5061023a60048036038101906102359190613675565b610830565b005b34801561024857600080fd5b5061025161095a565b60405161025e919061373d565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190613795565b610997565b60405161029b91906137f0565b60405180910390f35b3480156102b057600080fd5b506102b96109b5565b6040516102c6919061386a565b60405180910390f35b3480156102db57600080fd5b506102e46109db565b6040516102f19190613894565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c91906138af565b6109ff565b60405161032e91906137f0565b60405180910390f35b34801561034357600080fd5b5061034c610ad8565b6040516103599190613894565b60405180910390f35b34801561036e57600080fd5b50610377610ade565b604051610384919061391e565b60405180910390f35b34801561039957600080fd5b506103a2610ae7565b6040516103af9190613948565b60405180910390f35b3480156103c457600080fd5b506103cd610b0d565b6040516103dc93929190613963565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906139f5565b610b25565b005b34801561041a57600080fd5b5061043560048036038101906104309190613a42565b610c56565b005b34801561044357600080fd5b5061045e60048036038101906104599190613a9b565b610d46565b005b34801561046c57600080fd5b5061048760048036038101906104829190613ac8565b610df8565b005b34801561049557600080fd5b5061049e610eb0565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190613a42565b61103f565b6040516104d49190613894565b60405180910390f35b3480156104e957600080fd5b506104f2611090565b005b34801561050057600080fd5b5061051b60048036038101906105169190613b1b565b6111e3565b005b34801561052957600080fd5b50610532611282565b60405161053f9190613894565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a9190613a42565b611288565b60405161057c9190613894565b60405180910390f35b34801561059157600080fd5b5061059a6112a0565b6040516105a79190613948565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190613a9b565b6112c9565b005b3480156105e557600080fd5b506105ee61137b565b6040516105fb9190613894565b60405180910390f35b34801561061057600080fd5b50610619611381565b604051610626919061373d565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613b1b565b6113be565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613b48565b61145d565b005b34801561068d57600080fd5b506106a860048036038101906106a39190613795565b611514565b6040516106b591906137f0565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e091906139f5565b611532565b005b3480156106f357600080fd5b5061070e60048036038101906107099190613a42565b61166c565b60405161071b91906137f0565b60405180910390f35b34801561073057600080fd5b5061074b60048036038101906107469190613a42565b61168c565b60405161075891906137f0565b60405180910390f35b34801561076d57600080fd5b506107766116ac565b005b34801561078457600080fd5b5061079f600480360381019061079a9190613baf565b611843565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c0f565b61197d565b6040516107d59190613894565b60405180910390f35b3480156107ea57600080fd5b5061080560048036038101906108009190613b1b565b611a04565b005b34801561081357600080fd5b5061082e60048036038101906108299190613a42565b611aa3565b005b610838611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc90613c9b565b60405180910390fd5b60005b8151811015610956576001601060008484815181106108ea576108e9613cbb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094e90613d19565b9150506108c8565b5050565b60606040518060400160405280600e81526020017f53687566666c652052656c696566000000000000000000000000000000000000815250905090565b60006109ab6109a4611c64565b8484611c6c565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109eb9190613e94565b630bebc2006109fa9190613edf565b905090565b6000610a0c848484611e35565b610acd84610a18611c64565b610ac88560405180606001604052806028815260200161489d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7e611c64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277d9092919063ffffffff16565b611c6c565b600190509392505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154908060020154905083565b610b2d611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190613c9b565b60405180910390fd5b60005b82829050811015610c515760126000848484818110610bdf57610bde613cbb565b5b9050602002016020810190610bf49190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c4990613d19565b915050610bbd565b505050565b610c5e611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290613c9b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d4e611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290613c9b565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b610e00611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490613c9b565b60405180910390fd5b82601c6000018190555081601c6001018190555080601c60020181905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef1611c64565b73ffffffffffffffffffffffffffffffffffffffff161480610f675750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4f611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b80610fc65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fae611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806110255750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661100d611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b61102e57600080fd5b600047905061103c816127e1565b50565b6000611089600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a67565b9050919050565b611098611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90613c9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111eb611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613c9b565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112d1611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590613c9b565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600881526020017f53485546464c4552000000000000000000000000000000000000000000000000815250905090565b6113c6611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90613c9b565b60405180910390fd5b80601b8190555050565b611465611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990613c9b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611528611521611c64565b8484611e35565b6001905092915050565b61153a611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613c9b565b60405180910390fd5b60005b82829050811015611667576001601260008585858181106115ee576115ed613cbb565b5b90506020020160208101906116039190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061165f90613d19565b9150506115ca565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ed611c64565b73ffffffffffffffffffffffffffffffffffffffff1614806117635750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174b611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806117c25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117aa611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806118215750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611809611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b61182a57600080fd5b60006118353061103f565b905061184081612ad5565b50565b61184b611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613c9b565b60405180910390fd5b60005b838390508110156119775781600560008686858181106118fe576118fd613cbb565b5b90506020020160208101906119139190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196f90613d19565b9150506118db565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a0c611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090613c9b565b60405180910390fd5b80601a8190555050565b611aab611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f90613c9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613f93565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290614025565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d41906140b7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e289190613894565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b90614149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a906141db565b60405180910390fd5b60008111611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d9061426d565b60405180910390fd5b611f5e6112a0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fcc5750611f9c6112a0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120225750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120785750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247c57601860149054906101000a900460ff1661211e57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661211d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612114906142ff565b60405180910390fd5b5b601954811115612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9061436b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122075750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906143fd565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122f357601a54816122a88461103f565b6122b2919061441d565b106122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e9906144c3565b60405180910390fd5b5b60006122fe3061103f565b90506000601b54821015905060195482106123195760195491505b8080156123335750601860159054906101000a900460ff16155b801561238d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123a55750601860169054906101000a900460ff165b80156123fb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124515750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124795761245f82612ad5565b6000479050600081111561247757612476476127e1565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125235750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125d65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125d55750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125e4576000905061276b565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561268f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126a757600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127525750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561276a57600a54600c81905550600b54600d819055505b5b61277784848484612d4e565b50505050565b60008383111582906127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc919061373d565b60405180910390fd5b50600083856127d491906144e3565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061282e6064612820601c6001015485612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050600061287060026128626064612854601c6002015488612d7b90919063ffffffff16565b612df590919063ffffffff16565b612df590919063ffffffff16565b9050600061289f6064612891601c6000015487612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612909573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612972573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156129db573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a44573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa590614589565b60405180910390fd5b6000612ab8612e3f565b9050612acd8184612df590919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b0d57612b0c6134d4565b5b604051908082528060200260200182016040528015612b3b5781602001602082028036833780820191505090505b5090503081600081518110612b5357612b52613cbb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e91906145be565b81600181518110612c3257612c31613cbb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c6c565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cfd9594939291906146e4565b600060405180830381600087803b158015612d1757600080fd5b505af1158015612d2b573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612d5c57612d5b612e6a565b5b612d67848484612ea7565b80612d7557612d74613072565b5b50505050565b6000808303612d8d5760009050612def565b60008284612d9b9190613edf565b9050828482612daa919061476d565b14612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de190614810565b60405180910390fd5b809150505b92915050565b6000612e3783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613086565b905092915050565b6000806000612e4c6130e9565b91509150612e638183612df590919063ffffffff16565b9250505090565b6000600c54148015612e7e57506000600d54145b612ea557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612eb987613184565b955095509550955095509550612f1786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131ec90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fac85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff881613294565b6130028483613351565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161305f9190613894565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c4919061373d565b60405180910390fd5b50600083856130dc919061476d565b9050809150509392505050565b6000806000600654905060006009600a6131039190613e94565b630bebc2006131129190613edf565b90506131456009600a6131259190613e94565b630bebc2006131349190613edf565b600654612df590919063ffffffff16565b821015613177576006546009600a61315d9190613e94565b630bebc20061316c9190613edf565b935093505050613180565b81819350935050505b9091565b60008060008060008060008060006131a18a600c54600d5461338b565b92509250925060006131b1612e3f565b905060008060006131c48e878787613421565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061322e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061277d565b905092915050565b6000808284613245919061441d565b90508381101561328a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132819061487c565b60405180910390fd5b8091505092915050565b600061329e612e3f565b905060006132b58284612d7b90919063ffffffff16565b905061330981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613366826006546131ec90919063ffffffff16565b6006819055506133818160075461323690919063ffffffff16565b6007819055505050565b6000806000806133b760646133a9888a612d7b90919063ffffffff16565b612df590919063ffffffff16565b905060006133e160646133d3888b612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050600061340a826133fc858c6131ec90919063ffffffff16565b6131ec90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061343a8589612d7b90919063ffffffff16565b905060006134518689612d7b90919063ffffffff16565b905060006134688789612d7b90919063ffffffff16565b905060006134918261348385876131ec90919063ffffffff16565b6131ec90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61350c826134c3565b810181811067ffffffffffffffff8211171561352b5761352a6134d4565b5b80604052505050565b600061353e6134aa565b905061354a8282613503565b919050565b600067ffffffffffffffff82111561356a576135696134d4565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135ab82613580565b9050919050565b6135bb816135a0565b81146135c657600080fd5b50565b6000813590506135d8816135b2565b92915050565b60006135f16135ec8461354f565b613534565b905080838252602082019050602084028301858111156136145761361361357b565b5b835b8181101561363d578061362988826135c9565b845260208401935050602081019050613616565b5050509392505050565b600082601f83011261365c5761365b6134be565b5b813561366c8482602086016135de565b91505092915050565b60006020828403121561368b5761368a6134b4565b5b600082013567ffffffffffffffff8111156136a9576136a86134b9565b5b6136b584828501613647565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136f85780820151818401526020810190506136dd565b60008484015250505050565b600061370f826136be565b61371981856136c9565b93506137298185602086016136da565b613732816134c3565b840191505092915050565b600060208201905081810360008301526137578184613704565b905092915050565b6000819050919050565b6137728161375f565b811461377d57600080fd5b50565b60008135905061378f81613769565b92915050565b600080604083850312156137ac576137ab6134b4565b5b60006137ba858286016135c9565b92505060206137cb85828601613780565b9150509250929050565b60008115159050919050565b6137ea816137d5565b82525050565b600060208201905061380560008301846137e1565b92915050565b6000819050919050565b600061383061382b61382684613580565b61380b565b613580565b9050919050565b600061384282613815565b9050919050565b600061385482613837565b9050919050565b61386481613849565b82525050565b600060208201905061387f600083018461385b565b92915050565b61388e8161375f565b82525050565b60006020820190506138a96000830184613885565b92915050565b6000806000606084860312156138c8576138c76134b4565b5b60006138d6868287016135c9565b93505060206138e7868287016135c9565b92505060406138f886828701613780565b9150509250925092565b600060ff82169050919050565b61391881613902565b82525050565b6000602082019050613933600083018461390f565b92915050565b613942816135a0565b82525050565b600060208201905061395d6000830184613939565b92915050565b60006060820190506139786000830186613885565b6139856020830185613885565b6139926040830184613885565b949350505050565b600080fd5b60008083601f8401126139b5576139b46134be565b5b8235905067ffffffffffffffff8111156139d2576139d161399a565b5b6020830191508360208202830111156139ee576139ed61357b565b5b9250929050565b60008060208385031215613a0c57613a0b6134b4565b5b600083013567ffffffffffffffff811115613a2a57613a296134b9565b5b613a368582860161399f565b92509250509250929050565b600060208284031215613a5857613a576134b4565b5b6000613a66848285016135c9565b91505092915050565b613a78816137d5565b8114613a8357600080fd5b50565b600081359050613a9581613a6f565b92915050565b600060208284031215613ab157613ab06134b4565b5b6000613abf84828501613a86565b91505092915050565b600080600060608486031215613ae157613ae06134b4565b5b6000613aef86828701613780565b9350506020613b0086828701613780565b9250506040613b1186828701613780565b9150509250925092565b600060208284031215613b3157613b306134b4565b5b6000613b3f84828501613780565b91505092915050565b60008060008060808587031215613b6257613b616134b4565b5b6000613b7087828801613780565b9450506020613b8187828801613780565b9350506040613b9287828801613780565b9250506060613ba387828801613780565b91505092959194509250565b600080600060408486031215613bc857613bc76134b4565b5b600084013567ffffffffffffffff811115613be657613be56134b9565b5b613bf28682870161399f565b93509350506020613c0586828701613a86565b9150509250925092565b60008060408385031215613c2657613c256134b4565b5b6000613c34858286016135c9565b9250506020613c45858286016135c9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c856020836136c9565b9150613c9082613c4f565b602082019050919050565b60006020820190508181036000830152613cb481613c78565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d248261375f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d5657613d55613cea565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613db857808604811115613d9457613d93613cea565b5b6001851615613da35780820291505b8081029050613db185613d61565b9450613d78565b94509492505050565b600082613dd15760019050613e8d565b81613ddf5760009050613e8d565b8160018114613df55760028114613dff57613e2e565b6001915050613e8d565b60ff841115613e1157613e10613cea565b5b8360020a915084821115613e2857613e27613cea565b5b50613e8d565b5060208310610133831016604e8410600b8410161715613e635782820a905083811115613e5e57613e5d613cea565b5b613e8d565b613e708484846001613d6e565b92509050818404811115613e8757613e86613cea565b5b81810290505b9392505050565b6000613e9f8261375f565b9150613eaa83613902565b9250613ed77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dc1565b905092915050565b6000613eea8261375f565b9150613ef58361375f565b9250828202613f038161375f565b91508282048414831517613f1a57613f19613cea565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f7d6026836136c9565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061400f6024836136c9565b915061401a82613fb3565b604082019050919050565b6000602082019050818103600083015261403e81614002565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140a16022836136c9565b91506140ac82614045565b604082019050919050565b600060208201905081810360008301526140d081614094565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141336025836136c9565b915061413e826140d7565b604082019050919050565b6000602082019050818103600083015261416281614126565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141c56023836136c9565b91506141d082614169565b604082019050919050565b600060208201905081810360008301526141f4816141b8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142576029836136c9565b9150614262826141fb565b604082019050919050565b600060208201905081810360008301526142868161424a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006142e9603f836136c9565b91506142f48261428d565b604082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614355601c836136c9565b91506143608261431f565b602082019050919050565b6000602082019050818103600083015261438481614348565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006143e76023836136c9565b91506143f28261438b565b604082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b60006144288261375f565b91506144338361375f565b925082820190508082111561444b5761444a613cea565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006144ad6023836136c9565b91506144b882614451565b604082019050919050565b600060208201905081810360008301526144dc816144a0565b9050919050565b60006144ee8261375f565b91506144f98361375f565b925082820390508181111561451157614510613cea565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614573602a836136c9565b915061457e82614517565b604082019050919050565b600060208201905081810360008301526145a281614566565b9050919050565b6000815190506145b8816135b2565b92915050565b6000602082840312156145d4576145d36134b4565b5b60006145e2848285016145a9565b91505092915050565b6000819050919050565b600061461061460b614606846145eb565b61380b565b61375f565b9050919050565b614620816145f5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61465b816135a0565b82525050565b600061466d8383614652565b60208301905092915050565b6000602082019050919050565b600061469182614626565b61469b8185614631565b93506146a683614642565b8060005b838110156146d75781516146be8882614661565b97506146c983614679565b9250506001810190506146aa565b5085935050505092915050565b600060a0820190506146f96000830188613885565b6147066020830187614617565b81810360408301526147188186614686565b90506147276060830185613939565b6147346080830184613885565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147788261375f565b91506147838361375f565b9250826147935761479261473e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147fa6021836136c9565b91506148058261479e565b604082019050919050565b60006020820190508181036000830152614829816147ed565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614866601b836136c9565b915061487182614830565b602082019050919050565b6000602082019050818103600083015261489581614859565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1f585faa3c0aca3229a11eaeead44b93e1df0fb5f873b9ad8344dd482c221dd64736f6c63430008110033000000000000000000000000af4e252210e4b7fafd4e7f27c37037aaf98fdc580000000000000000000000000bda2b2f55e92be9c7fbffeb20b36b83cad97660000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59

Deployed Bytecode

0x6080604052600436106102075760003560e01c806374010ece11610118578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd8014610761578063c492f04614610778578063dd62ed3e146107a1578063ea1644d5146107de578063f2fde38b146108075761020e565b8063a9059cbb14610681578063b5a65223146106be578063bdd795ef146106e7578063bfd79284146107245761020e565b80638f70ccf7116100e75780638f70ccf7146105b05780638f9a55c0146105d957806395d89b411461060457806398a5c3151461062f578063a2a957bb146106585761020e565b806374010ece146104f45780637d1db4a51461051d5780637f2feddc146105485780638da5cb5b146105855761020e565b806349bd5a5e1161019b5780636d8aa8f81161016a5780636d8aa8f8146104375780636f343052146104605780636fc3eaec1461048957806370a08231146104a0578063715018a6146104dd5761020e565b806349bd5a5e1461038d5780635ee58efc146103b857806367aadb7e146103e55780636b9990531461040e5761020e565b806318160ddd116101d757806318160ddd146102cf57806323b872dd146102fa5780632fd689e314610337578063313ce567146103625761020e565b8062b8cf2a1461021357806306fdde031461023c578063095ea7b3146102675780631694505e146102a45761020e565b3661020e57005b600080fd5b34801561021f57600080fd5b5061023a60048036038101906102359190613675565b610830565b005b34801561024857600080fd5b5061025161095a565b60405161025e919061373d565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190613795565b610997565b60405161029b91906137f0565b60405180910390f35b3480156102b057600080fd5b506102b96109b5565b6040516102c6919061386a565b60405180910390f35b3480156102db57600080fd5b506102e46109db565b6040516102f19190613894565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c91906138af565b6109ff565b60405161032e91906137f0565b60405180910390f35b34801561034357600080fd5b5061034c610ad8565b6040516103599190613894565b60405180910390f35b34801561036e57600080fd5b50610377610ade565b604051610384919061391e565b60405180910390f35b34801561039957600080fd5b506103a2610ae7565b6040516103af9190613948565b60405180910390f35b3480156103c457600080fd5b506103cd610b0d565b6040516103dc93929190613963565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906139f5565b610b25565b005b34801561041a57600080fd5b5061043560048036038101906104309190613a42565b610c56565b005b34801561044357600080fd5b5061045e60048036038101906104599190613a9b565b610d46565b005b34801561046c57600080fd5b5061048760048036038101906104829190613ac8565b610df8565b005b34801561049557600080fd5b5061049e610eb0565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190613a42565b61103f565b6040516104d49190613894565b60405180910390f35b3480156104e957600080fd5b506104f2611090565b005b34801561050057600080fd5b5061051b60048036038101906105169190613b1b565b6111e3565b005b34801561052957600080fd5b50610532611282565b60405161053f9190613894565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a9190613a42565b611288565b60405161057c9190613894565b60405180910390f35b34801561059157600080fd5b5061059a6112a0565b6040516105a79190613948565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190613a9b565b6112c9565b005b3480156105e557600080fd5b506105ee61137b565b6040516105fb9190613894565b60405180910390f35b34801561061057600080fd5b50610619611381565b604051610626919061373d565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613b1b565b6113be565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613b48565b61145d565b005b34801561068d57600080fd5b506106a860048036038101906106a39190613795565b611514565b6040516106b591906137f0565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e091906139f5565b611532565b005b3480156106f357600080fd5b5061070e60048036038101906107099190613a42565b61166c565b60405161071b91906137f0565b60405180910390f35b34801561073057600080fd5b5061074b60048036038101906107469190613a42565b61168c565b60405161075891906137f0565b60405180910390f35b34801561076d57600080fd5b506107766116ac565b005b34801561078457600080fd5b5061079f600480360381019061079a9190613baf565b611843565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c0f565b61197d565b6040516107d59190613894565b60405180910390f35b3480156107ea57600080fd5b5061080560048036038101906108009190613b1b565b611a04565b005b34801561081357600080fd5b5061082e60048036038101906108299190613a42565b611aa3565b005b610838611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc90613c9b565b60405180910390fd5b60005b8151811015610956576001601060008484815181106108ea576108e9613cbb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094e90613d19565b9150506108c8565b5050565b60606040518060400160405280600e81526020017f53687566666c652052656c696566000000000000000000000000000000000000815250905090565b60006109ab6109a4611c64565b8484611c6c565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109eb9190613e94565b630bebc2006109fa9190613edf565b905090565b6000610a0c848484611e35565b610acd84610a18611c64565b610ac88560405180606001604052806028815260200161489d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7e611c64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277d9092919063ffffffff16565b611c6c565b600190509392505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154908060020154905083565b610b2d611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190613c9b565b60405180910390fd5b60005b82829050811015610c515760126000848484818110610bdf57610bde613cbb565b5b9050602002016020810190610bf49190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c4990613d19565b915050610bbd565b505050565b610c5e611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290613c9b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d4e611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290613c9b565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b610e00611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490613c9b565b60405180910390fd5b82601c6000018190555081601c6001018190555080601c60020181905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef1611c64565b73ffffffffffffffffffffffffffffffffffffffff161480610f675750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4f611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b80610fc65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fae611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806110255750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661100d611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b61102e57600080fd5b600047905061103c816127e1565b50565b6000611089600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a67565b9050919050565b611098611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90613c9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111eb611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613c9b565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112d1611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590613c9b565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600881526020017f53485546464c4552000000000000000000000000000000000000000000000000815250905090565b6113c6611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90613c9b565b60405180910390fd5b80601b8190555050565b611465611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990613c9b565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611528611521611c64565b8484611e35565b6001905092915050565b61153a611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613c9b565b60405180910390fd5b60005b82829050811015611667576001601260008585858181106115ee576115ed613cbb565b5b90506020020160208101906116039190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061165f90613d19565b9150506115ca565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ed611c64565b73ffffffffffffffffffffffffffffffffffffffff1614806117635750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174b611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806117c25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117aa611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b806118215750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611809611c64565b73ffffffffffffffffffffffffffffffffffffffff16145b61182a57600080fd5b60006118353061103f565b905061184081612ad5565b50565b61184b611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613c9b565b60405180910390fd5b60005b838390508110156119775781600560008686858181106118fe576118fd613cbb565b5b90506020020160208101906119139190613a42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196f90613d19565b9150506118db565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a0c611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090613c9b565b60405180910390fd5b80601a8190555050565b611aab611c64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f90613c9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613f93565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290614025565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d41906140b7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e289190613894565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b90614149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a906141db565b60405180910390fd5b60008111611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d9061426d565b60405180910390fd5b611f5e6112a0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fcc5750611f9c6112a0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120225750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120785750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247c57601860149054906101000a900460ff1661211e57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661211d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612114906142ff565b60405180910390fd5b5b601954811115612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9061436b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122075750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906143fd565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122f357601a54816122a88461103f565b6122b2919061441d565b106122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e9906144c3565b60405180910390fd5b5b60006122fe3061103f565b90506000601b54821015905060195482106123195760195491505b8080156123335750601860159054906101000a900460ff16155b801561238d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123a55750601860169054906101000a900460ff165b80156123fb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124515750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124795761245f82612ad5565b6000479050600081111561247757612476476127e1565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125235750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125d65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125d55750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125e4576000905061276b565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561268f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156126a757600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127525750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561276a57600a54600c81905550600b54600d819055505b5b61277784848484612d4e565b50505050565b60008383111582906127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc919061373d565b60405180910390fd5b50600083856127d491906144e3565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061282e6064612820601c6001015485612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050600061287060026128626064612854601c6002015488612d7b90919063ffffffff16565b612df590919063ffffffff16565b612df590919063ffffffff16565b9050600061289f6064612891601c6000015487612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612909573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612972573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156129db573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a44573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa590614589565b60405180910390fd5b6000612ab8612e3f565b9050612acd8184612df590919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b0d57612b0c6134d4565b5b604051908082528060200260200182016040528015612b3b5781602001602082028036833780820191505090505b5090503081600081518110612b5357612b52613cbb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e91906145be565b81600181518110612c3257612c31613cbb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c6c565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cfd9594939291906146e4565b600060405180830381600087803b158015612d1757600080fd5b505af1158015612d2b573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612d5c57612d5b612e6a565b5b612d67848484612ea7565b80612d7557612d74613072565b5b50505050565b6000808303612d8d5760009050612def565b60008284612d9b9190613edf565b9050828482612daa919061476d565b14612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de190614810565b60405180910390fd5b809150505b92915050565b6000612e3783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613086565b905092915050565b6000806000612e4c6130e9565b91509150612e638183612df590919063ffffffff16565b9250505090565b6000600c54148015612e7e57506000600d54145b612ea557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612eb987613184565b955095509550955095509550612f1786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131ec90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fac85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff881613294565b6130028483613351565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161305f9190613894565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c4919061373d565b60405180910390fd5b50600083856130dc919061476d565b9050809150509392505050565b6000806000600654905060006009600a6131039190613e94565b630bebc2006131129190613edf565b90506131456009600a6131259190613e94565b630bebc2006131349190613edf565b600654612df590919063ffffffff16565b821015613177576006546009600a61315d9190613e94565b630bebc20061316c9190613edf565b935093505050613180565b81819350935050505b9091565b60008060008060008060008060006131a18a600c54600d5461338b565b92509250925060006131b1612e3f565b905060008060006131c48e878787613421565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061322e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061277d565b905092915050565b6000808284613245919061441d565b90508381101561328a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132819061487c565b60405180910390fd5b8091505092915050565b600061329e612e3f565b905060006132b58284612d7b90919063ffffffff16565b905061330981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613366826006546131ec90919063ffffffff16565b6006819055506133818160075461323690919063ffffffff16565b6007819055505050565b6000806000806133b760646133a9888a612d7b90919063ffffffff16565b612df590919063ffffffff16565b905060006133e160646133d3888b612d7b90919063ffffffff16565b612df590919063ffffffff16565b9050600061340a826133fc858c6131ec90919063ffffffff16565b6131ec90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061343a8589612d7b90919063ffffffff16565b905060006134518689612d7b90919063ffffffff16565b905060006134688789612d7b90919063ffffffff16565b905060006134918261348385876131ec90919063ffffffff16565b6131ec90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61350c826134c3565b810181811067ffffffffffffffff8211171561352b5761352a6134d4565b5b80604052505050565b600061353e6134aa565b905061354a8282613503565b919050565b600067ffffffffffffffff82111561356a576135696134d4565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135ab82613580565b9050919050565b6135bb816135a0565b81146135c657600080fd5b50565b6000813590506135d8816135b2565b92915050565b60006135f16135ec8461354f565b613534565b905080838252602082019050602084028301858111156136145761361361357b565b5b835b8181101561363d578061362988826135c9565b845260208401935050602081019050613616565b5050509392505050565b600082601f83011261365c5761365b6134be565b5b813561366c8482602086016135de565b91505092915050565b60006020828403121561368b5761368a6134b4565b5b600082013567ffffffffffffffff8111156136a9576136a86134b9565b5b6136b584828501613647565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136f85780820151818401526020810190506136dd565b60008484015250505050565b600061370f826136be565b61371981856136c9565b93506137298185602086016136da565b613732816134c3565b840191505092915050565b600060208201905081810360008301526137578184613704565b905092915050565b6000819050919050565b6137728161375f565b811461377d57600080fd5b50565b60008135905061378f81613769565b92915050565b600080604083850312156137ac576137ab6134b4565b5b60006137ba858286016135c9565b92505060206137cb85828601613780565b9150509250929050565b60008115159050919050565b6137ea816137d5565b82525050565b600060208201905061380560008301846137e1565b92915050565b6000819050919050565b600061383061382b61382684613580565b61380b565b613580565b9050919050565b600061384282613815565b9050919050565b600061385482613837565b9050919050565b61386481613849565b82525050565b600060208201905061387f600083018461385b565b92915050565b61388e8161375f565b82525050565b60006020820190506138a96000830184613885565b92915050565b6000806000606084860312156138c8576138c76134b4565b5b60006138d6868287016135c9565b93505060206138e7868287016135c9565b92505060406138f886828701613780565b9150509250925092565b600060ff82169050919050565b61391881613902565b82525050565b6000602082019050613933600083018461390f565b92915050565b613942816135a0565b82525050565b600060208201905061395d6000830184613939565b92915050565b60006060820190506139786000830186613885565b6139856020830185613885565b6139926040830184613885565b949350505050565b600080fd5b60008083601f8401126139b5576139b46134be565b5b8235905067ffffffffffffffff8111156139d2576139d161399a565b5b6020830191508360208202830111156139ee576139ed61357b565b5b9250929050565b60008060208385031215613a0c57613a0b6134b4565b5b600083013567ffffffffffffffff811115613a2a57613a296134b9565b5b613a368582860161399f565b92509250509250929050565b600060208284031215613a5857613a576134b4565b5b6000613a66848285016135c9565b91505092915050565b613a78816137d5565b8114613a8357600080fd5b50565b600081359050613a9581613a6f565b92915050565b600060208284031215613ab157613ab06134b4565b5b6000613abf84828501613a86565b91505092915050565b600080600060608486031215613ae157613ae06134b4565b5b6000613aef86828701613780565b9350506020613b0086828701613780565b9250506040613b1186828701613780565b9150509250925092565b600060208284031215613b3157613b306134b4565b5b6000613b3f84828501613780565b91505092915050565b60008060008060808587031215613b6257613b616134b4565b5b6000613b7087828801613780565b9450506020613b8187828801613780565b9350506040613b9287828801613780565b9250506060613ba387828801613780565b91505092959194509250565b600080600060408486031215613bc857613bc76134b4565b5b600084013567ffffffffffffffff811115613be657613be56134b9565b5b613bf28682870161399f565b93509350506020613c0586828701613a86565b9150509250925092565b60008060408385031215613c2657613c256134b4565b5b6000613c34858286016135c9565b9250506020613c45858286016135c9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c856020836136c9565b9150613c9082613c4f565b602082019050919050565b60006020820190508181036000830152613cb481613c78565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d248261375f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d5657613d55613cea565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613db857808604811115613d9457613d93613cea565b5b6001851615613da35780820291505b8081029050613db185613d61565b9450613d78565b94509492505050565b600082613dd15760019050613e8d565b81613ddf5760009050613e8d565b8160018114613df55760028114613dff57613e2e565b6001915050613e8d565b60ff841115613e1157613e10613cea565b5b8360020a915084821115613e2857613e27613cea565b5b50613e8d565b5060208310610133831016604e8410600b8410161715613e635782820a905083811115613e5e57613e5d613cea565b5b613e8d565b613e708484846001613d6e565b92509050818404811115613e8757613e86613cea565b5b81810290505b9392505050565b6000613e9f8261375f565b9150613eaa83613902565b9250613ed77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dc1565b905092915050565b6000613eea8261375f565b9150613ef58361375f565b9250828202613f038161375f565b91508282048414831517613f1a57613f19613cea565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f7d6026836136c9565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061400f6024836136c9565b915061401a82613fb3565b604082019050919050565b6000602082019050818103600083015261403e81614002565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140a16022836136c9565b91506140ac82614045565b604082019050919050565b600060208201905081810360008301526140d081614094565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141336025836136c9565b915061413e826140d7565b604082019050919050565b6000602082019050818103600083015261416281614126565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141c56023836136c9565b91506141d082614169565b604082019050919050565b600060208201905081810360008301526141f4816141b8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142576029836136c9565b9150614262826141fb565b604082019050919050565b600060208201905081810360008301526142868161424a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006142e9603f836136c9565b91506142f48261428d565b604082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614355601c836136c9565b91506143608261431f565b602082019050919050565b6000602082019050818103600083015261438481614348565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006143e76023836136c9565b91506143f28261438b565b604082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b60006144288261375f565b91506144338361375f565b925082820190508082111561444b5761444a613cea565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006144ad6023836136c9565b91506144b882614451565b604082019050919050565b600060208201905081810360008301526144dc816144a0565b9050919050565b60006144ee8261375f565b91506144f98361375f565b925082820390508181111561451157614510613cea565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614573602a836136c9565b915061457e82614517565b604082019050919050565b600060208201905081810360008301526145a281614566565b9050919050565b6000815190506145b8816135b2565b92915050565b6000602082840312156145d4576145d36134b4565b5b60006145e2848285016145a9565b91505092915050565b6000819050919050565b600061461061460b614606846145eb565b61380b565b61375f565b9050919050565b614620816145f5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61465b816135a0565b82525050565b600061466d8383614652565b60208301905092915050565b6000602082019050919050565b600061469182614626565b61469b8185614631565b93506146a683614642565b8060005b838110156146d75781516146be8882614661565b97506146c983614679565b9250506001810190506146aa565b5085935050505092915050565b600060a0820190506146f96000830188613885565b6147066020830187614617565b81810360408301526147188186614686565b90506147276060830185613939565b6147346080830184613885565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147788261375f565b91506147838361375f565b9250826147935761479261473e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147fa6021836136c9565b91506148058261479e565b604082019050919050565b60006020820190508181036000830152614829816147ed565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614866601b836136c9565b915061487182614830565b602082019050919050565b6000602082019050818103600083015261489581614859565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1f585faa3c0aca3229a11eaeead44b93e1df0fb5f873b9ad8344dd482c221dd64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000af4e252210e4b7fafd4e7f27c37037aaf98fdc580000000000000000000000000bda2b2f55e92be9c7fbffeb20b36b83cad97660000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59

-----Decoded View---------------
Arg [0] : developmentAddr (address): 0xAF4e252210e4B7fAfD4E7F27C37037AAF98fdc58
Arg [1] : marketingAddr (address): 0x0BdA2b2f55E92BE9C7fBFfEB20B36B83cAD97660
Arg [2] : devFeeAddr1 (address): 0xd270813eD663401d5B1Bf5be2f31bF31747e1A59
Arg [3] : devFeeAddr2 (address): 0xd270813eD663401d5B1Bf5be2f31bF31747e1A59

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000af4e252210e4b7fafd4e7f27c37037aaf98fdc58
Arg [1] : 0000000000000000000000000bda2b2f55e92be9c7fbffeb20b36b83cad97660
Arg [2] : 000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59
Arg [3] : 000000000000000000000000d270813ed663401d5b1bf5be2f31bf31747e1a59


Deployed Bytecode Sourcemap

4885:15463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14853:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7994:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8919:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6253:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8271:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9120:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6565:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8180:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6301:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6752:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;20149:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15030:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19325:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16038:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14544:301;;;;;;;;;;;;;:::i;:::-;;8374:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2372:148;;;;;;;;;;;;;:::i;:::-;;19465:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6443:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5998:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14125:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6503:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8085:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19134:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18791:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8520:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19946:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6048:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5954:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14234:302;;;;;;;;;;;;;:::i;:::-;;19704:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8727:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19581:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2528:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14853:169;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14929:9:::1;14924:91;14948:5;:12;14944:1;:16;14924:91;;;14999:4;14982;:14;14987:5;14993:1;14987:8;;;;;;;;:::i;:::-;;;;;;;;14982:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14962:3;;;;;:::i;:::-;;;;14924:91;;;;14853:169:::0;:::o;7994:83::-;8031:13;8064:5;;;;;;;;;;;;;;;;;8057:12;;7994:83;:::o;8919:193::-;9021:4;9043:39;9052:12;:10;:12::i;:::-;9066:7;9075:6;9043:8;:39::i;:::-;9100:4;9093:11;;8919:193;;;;:::o;6253:41::-;;;;;;;;;;;;;:::o;8271:95::-;8324:7;5121:1;5459:2;:13;;;;:::i;:::-;5447:9;:25;;;;:::i;:::-;8344:14;;8271:95;:::o;9120:446::-;9252:4;9269:36;9279:6;9287:9;9298:6;9269:9;:36::i;:::-;9316:220;9339:6;9360:12;:10;:12::i;:::-;9387:138;9443:6;9387:138;;;;;;;;;;;;;;;;;:11;:19;9399:6;9387:19;;;;;;;;;;;;;;;:33;9407:12;:10;:12::i;:::-;9387:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9316:8;:220::i;:::-;9554:4;9547:11;;9120:446;;;;;:::o;6565:59::-;;;;:::o;8180:83::-;8221:5;5121:1;8239:16;;8180:83;:::o;6301:28::-;;;;;;;;;;;;;:::o;6752:32::-;;;;;;;;;;;;;;;;;;;:::o;20149:196::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20236:9:::1;20232:106;20255:8;;:15;;20251:1;:19;20232:106;;;20304:9;:22;20314:8;;20323:1;20314:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20304:22;;;;;;;;;;;;;;;;20297:29;;;;;;;;;;;20272:3;;;;;:::i;:::-;;;;20232:106;;;;20149:196:::0;;:::o;15030:92::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15109:5:::1;15094:4;:12;15099:6;15094:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15030:92:::0;:::o;19325:101::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19406:12:::1;19392:11;;:26;;;;;;;;;;;;;;;;;;19325:101:::0;:::o;16038:249::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16184:11:::1;16157:12;:24;;:38;;;;16231:9;16206:12;:22;;:34;;;;16273:6;16251:12;:19;;:28;;;;16038:249:::0;;;:::o;14544:301::-;14610:18;;;;;;;;;;;14594:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;14648:16;;;;;;;;;;;14632:32;;:12;:10;:12::i;:::-;:32;;;14594:70;:104;;;;14684:14;;;;;;;;;;;14668:30;;:12;:10;:12::i;:::-;:30;;;14594:104;:138;;;;14718:14;;;;;;;;;;;14702:30;;:12;:10;:12::i;:::-;:30;;;14594:138;14586:147;;;;;;14744:26;14773:21;14744:50;;14805:32;14818:18;14805:12;:32::i;:::-;14575:270;14544:301::o;8374:138::-;8440:7;8467:37;8487:7;:16;8495:7;8487:16;;;;;;;;;;;;;;;;8467:19;:37::i;:::-;8460:44;;8374:138;;;:::o;2372:148::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2479:1:::1;2442:40;;2463:6;::::0;::::1;;;;;;;;2442:40;;;;;;;;;;;;2510:1;2493:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2372:148::o:0;19465:108::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19554:11:::1;19539:12;:26;;;;19465:108:::0;:::o;6443:53::-;;;;:::o;5998:43::-;;;;;;;;;;;;;;;;;:::o;2158:79::-;2196:7;2223:6;;;;;;;;;;;2216:13;;2158:79;:::o;14125:101::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14206:12:::1;14192:11;;:26;;;;;;;;;;;;;;;;;;14125:101:::0;:::o;6503:55::-;;;;:::o;8085:87::-;8124:13;8157:7;;;;;;;;;;;;;;;;;8150:14;;8085:87;:::o;19134:139::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19247:18:::1;19225:19;:40;;;;19134:139:::0;:::o;18791:291::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18942:13:::1;18925:14;:30;;;;18984:14;18966:15;:32;;;;19024:11;19009:12;:26;;;;19062:12;19046:13;:28;;;;18791:291:::0;;;;:::o;8520:199::-;8625:4;8647:42;8657:12;:10;:12::i;:::-;8671:9;8682:6;8647:9;:42::i;:::-;8707:4;8700:11;;8520:199;;;;:::o;19946:195::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20032:9:::1;20028:106;20051:8;;:15;;20047:1;:19;20028:106;;;20118:4;20093:9;:22;20103:8;;20112:1;20103:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20093:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20068:3;;;;;:::i;:::-;;;;20028:106;;;;19946:195:::0;;:::o;6048:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5954:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14234:302::-;14300:18;;;;;;;;;;;14284:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;14338:16;;;;;;;;;;;14322:32;;:12;:10;:12::i;:::-;:32;;;14284:70;:104;;;;14374:14;;;;;;;;;;;14358:30;;:12;:10;:12::i;:::-;:30;;;14284:104;:138;;;;14408:14;;;;;;;;;;;14392:30;;:12;:10;:12::i;:::-;:30;;;14284:138;14276:147;;;;;;14434:23;14460:24;14478:4;14460:9;:24::i;:::-;14434:50;;14495:33;14512:15;14495:16;:33::i;:::-;14265:271;14234:302::o;19704:234::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19821:9:::1;19817:114;19840:8;;:15;;19836:1;:19;19817:114;;;19911:8;19877:18;:31;19896:8;;19905:1;19896:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19877:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19857:3;;;;;:::i;:::-;;;;19817:114;;;;19704:234:::0;;;:::o;8727:184::-;8844:7;8876:11;:18;8888:5;8876:18;;;;;;;;;;;;;;;:27;8895:7;8876:27;;;;;;;;;;;;;;;;8869:34;;8727:184;;;;:::o;19581:115::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19675:13:::1;19658:14;:30;;;;19581:115:::0;:::o;2528:244::-;2295:12;:10;:12::i;:::-;2285:22;;:6;;;;;;;;;;:22;;;2277:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2637:1:::1;2617:22;;:8;:22;;::::0;2609:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2727:8;2698:38;;2719:6;::::0;::::1;;;;;;;;2698:38;;;;;;;;;;;;2756:8;2747:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2528:244:::0;:::o;917:98::-;970:7;997:10;990:17;;917:98;:::o;10257:369::-;10401:1;10384:19;;:5;:19;;;10376:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10482:1;10463:21;;:7;:21;;;10455:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10564:6;10534:11;:18;10546:5;10534:18;;;;;;;;;;;;;;;:27;10553:7;10534:27;;;;;;;;;;;;;;;:36;;;;10602:7;10586:32;;10595:5;10586:32;;;10611:6;10586:32;;;;;;:::i;:::-;;;;;;;;10257:369;;;:::o;10634:2368::-;10772:1;10756:18;;:4;:18;;;10748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10849:1;10835:16;;:2;:16;;;10827:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10919:1;10910:6;:10;10902:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10991:7;:5;:7::i;:::-;10983:15;;:4;:15;;;;:32;;;;;11008:7;:5;:7::i;:::-;11002:13;;:2;:13;;;;10983:32;:52;;;;;11020:9;:15;11030:4;11020:15;;;;;;;;;;;;;;;;;;;;;;;;;11019:16;10983:52;:70;;;;;11040:9;:13;11050:2;11040:13;;;;;;;;;;;;;;;;;;;;;;;;;11039:14;10983:70;10979:1297;;;11110:11;;;;;;;;;;;11105:144;;11150:9;:15;11160:4;11150:15;;;;;;;;;;;;;;;;;;;;;;;;;11142:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11105:144;11283:12;;11273:6;:22;;11265:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11352:4;:10;11357:4;11352:10;;;;;;;;;;;;;;;;;;;;;;;;;11351:11;:24;;;;;11367:4;:8;11372:2;11367:8;;;;;;;;;;;;;;;;;;;;;;;;;11366:9;11351:24;11343:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11441:13;;;;;;;;;;;11435:19;;:2;:19;;;11432:146;;11508:14;;11499:6;11483:13;11493:2;11483:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11475:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11432:146;11594:28;11625:24;11643:4;11625:9;:24::i;:::-;11594:55;;11664:12;11703:19;;11679:20;:43;;11664:58;;11766:12;;11742:20;:36;11739:124;;11835:12;;11812:35;;11739:124;11883:7;:18;;;;;11895:6;;;;;;;;;;;11894:7;11883:18;:43;;;;;11913:13;;;;;;;;;;;11905:21;;:4;:21;;;;11883:43;:58;;;;;11930:11;;;;;;;;;;;11883:58;:87;;;;;11946:18;:24;11965:4;11946:24;;;;;;;;;;;;;;;;;;;;;;;;;11945:25;11883:87;:114;;;;;11975:18;:22;11994:2;11975:22;;;;;;;;;;;;;;;;;;;;;;;;;11974:23;11883:114;11879:386;;;12018:38;12035:20;12018:16;:38::i;:::-;12075:26;12104:21;12075:50;;12169:1;12148:18;:22;12144:106;;;12195:35;12208:21;12195:12;:35::i;:::-;12144:106;11999:266;11879:386;11055:1221;;10979:1297;12288:12;12303:4;12288:19;;12352:18;:24;12371:4;12352:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12380:18;:22;12399:2;12380:22;;;;;;;;;;;;;;;;;;;;;;;;;12352:50;12351:102;;;;12416:13;;;;;;;;;;;12408:21;;:4;:21;;;;:44;;;;;12439:13;;;;;;;;;;;12433:19;;:2;:19;;;;12408:44;12351:102;12347:594;;;12480:5;12470:15;;12347:594;;;12563:13;;;;;;;;;;;12555:21;;:4;:21;;;:55;;;;;12594:15;;;;;;;;;;;12580:30;;:2;:30;;;;12555:55;12552:162;;;12643:14;;12631:9;:26;;;;12686:12;;12676:7;:22;;;;12552:162;12773:13;;;;;;;;;;;12767:19;;:2;:19;;;:55;;;;;12806:15;;;;;;;;;;;12790:32;;:4;:32;;;;12767:55;12763:165;;;12855:15;;12843:9;:27;;;;12899:13;;12889:7;:23;;;;12763:165;12347:594;12953:41;12968:4;12974:2;12978:6;12986:7;12953:14;:41::i;:::-;10737:2265;10634:2368;;;:::o;3136:224::-;3256:7;3289:1;3284;:6;;3292:12;3276:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3316:9;3332:1;3328;:5;;;;:::i;:::-;3316:17;;3351:1;3344:8;;;3136:224;;;;;:::o;13501:616::-;6887:4;6878:6;;:13;;;;;;;;;;;;;;;;;;13570:23:::1;13596:6;13570:32;;13613:22;13638:52;13686:3;13638:43;13658:12;:22;;;13638:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;13613:77;;13701:19;13723:56;13777:1;13723:49;13768:3;13723:40;13743:12;:19;;;13723:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;13701:78;;13790:24;13817:54;13867:3;13817:45;13837:12;:24;;;13817:15;:19;;:45;;;;:::i;:::-;:49;;:54;;;;:::i;:::-;13790:81;;13890:16;;;;;;;;;;;13882:34;;:50;13917:14;13882:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13951:14;;;;;;;;;;;13943:32;;:45;13976:11;13943:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14007:14;;;;;;;;;;;13999:32;;:45;14032:11;13999:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14063:18;;;;;;;;;;;14055:36;;:54;14092:16;14055:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13559:558;;;;6923:5:::0;6914:6;;:14;;;;;;;;;;;;;;;;;;13501:616;:::o;9574:323::-;9669:7;9727;;9716;:18;;9694:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9815:19;9837:10;:8;:10::i;:::-;9815:32;;9865:24;9877:11;9865:7;:11;;:24;;;;:::i;:::-;9858:31;;;9574:323;;;:::o;13010:483::-;6887:4;6878:6;;:13;;;;;;;;;;;;;;;;;;13088:21:::1;13126:1;13112:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13088:40;;13157:4;13139;13144:1;13139:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13183:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13173:4;13178:1;13173:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13216:62;13233:4;13248:15;;;;;;;;;;;13266:11;13216:8;:62::i;:::-;13289:15;;;;;;;;;;;:66;;;13370:11;13396:1;13412:4;13439;13459:15;13289:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13077:416;6923:5:::0;6914:6;;:14;;;;;;;;;;;;;;;;;;13010:483;:::o;15130:282::-;15286:7;15281:28;;15295:14;:12;:14::i;:::-;15281:28;15320:44;15338:6;15346:9;15357:6;15320:17;:44::i;:::-;15380:7;15375:29;;15389:15;:13;:15::i;:::-;15375:29;15130:282;;;;:::o;3368:246::-;3426:7;3455:1;3450;:6;3446:47;;3480:1;3473:8;;;;3446:47;3503:9;3519:1;3515;:5;;;;:::i;:::-;3503:17;;3548:1;3543;3539;:5;;;;:::i;:::-;:10;3531:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3605:1;3598:8;;;3368:246;;;;;:::o;3622:132::-;3680:7;3707:39;3711:1;3714;3707:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3700:46;;3622:132;;;;:::o;18354:164::-;18396:7;18417:15;18434;18453:19;:17;:19::i;:::-;18416:56;;;;18490:20;18502:7;18490;:11;;:20;;;;:::i;:::-;18483:27;;;;18354:164;:::o;9905:219::-;9965:1;9952:9;;:14;:30;;;;;9981:1;9970:7;;:12;9952:30;9984:7;9948:43;10023:9;;10003:17;:29;;;;10061:7;;10043:15;:25;;;;10093:1;10081:9;:13;;;;10115:1;10105:7;:11;;;;9905:219;:::o;15420:610::-;15567:15;15597:23;15635:12;15662:23;15700:12;15727:13;15754:19;15765:7;15754:10;:19::i;:::-;15552:221;;;;;;;;;;;;15802:28;15822:7;15802;:15;15810:6;15802:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15784:7;:15;15792:6;15784:15;;;;;;;;;;;;;;;:46;;;;15862:39;15885:15;15862:7;:18;15870:9;15862:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15841:7;:18;15849:9;15841:18;;;;;;;;;;;;;;;:60;;;;15912:16;15922:5;15912:9;:16::i;:::-;15939:23;15951:4;15957;15939:11;:23::i;:::-;15995:9;15978:44;;15987:6;15978:44;;;16006:15;15978:44;;;;;;:::i;:::-;;;;;;;;15541:489;;;;;;15420:610;;;:::o;10132:117::-;10188:17;;10176:9;:29;;;;10226:15;;10216:7;:25;;;;10132:117::o;3762:223::-;3882:7;3914:1;3910;:5;3917:12;3902:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3941:9;3957:1;3953;:5;;;;:::i;:::-;3941:17;;3976:1;3969:8;;;3762:223;;;;;:::o;18526:257::-;18577:7;18586;18606:15;18624:7;;18606:25;;18642:15;5121:1;5459:2;:13;;;;:::i;:::-;5447:9;:25;;;;:::i;:::-;18642;;18692:20;5121:1;5459:2;:13;;;;:::i;:::-;5447:9;:25;;;;:::i;:::-;18692:7;;:11;;:20;;;;:::i;:::-;18682:7;:30;18678:61;;;18722:7;;5121:1;5459:2;:13;;;;:::i;:::-;5447:9;:25;;;;:::i;:::-;18714;;;;;;;;18678:61;18758:7;18767;18750:25;;;;;;18526:257;;;:::o;16712:615::-;16812:7;16834;16856;16878;16900;16922;16958:23;16983:12;16997:13;17027:40;17039:7;17048:9;;17059:7;;17027:11;:40::i;:::-;16957:110;;;;;;17078:19;17100:10;:8;:10::i;:::-;17078:32;;17122:15;17139:23;17164:12;17193:46;17205:7;17214:4;17220:5;17227:11;17193;:46::i;:::-;17121:118;;;;;;17258:7;17267:15;17284:4;17290:15;17307:4;17313:5;17250:69;;;;;;;;;;;;;;;;;;;16712:615;;;;;;;:::o;2992:136::-;3050:7;3077:43;3081:1;3084;3077:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3070:50;;2992:136;;;;:::o;2805:179::-;2863:7;2883:9;2899:1;2895;:5;;;;:::i;:::-;2883:17;;2924:1;2919;:6;;2911:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2975:1;2968:8;;;2805:179;;;;:::o;16295:211::-;16348:19;16370:10;:8;:10::i;:::-;16348:32;;16391:13;16407:22;16417:11;16407:5;:9;;:22;;;;:::i;:::-;16391:38;;16465:33;16492:5;16465:7;:22;16481:4;16465:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16440:7;:22;16456:4;16440:22;;;;;;;;;;;;;;;:58;;;;16337:169;;16295:211;:::o;16514:147::-;16592:17;16604:4;16592:7;;:11;;:17;;;;:::i;:::-;16582:7;:27;;;;16633:20;16648:4;16633:10;;:14;;:20;;;;:::i;:::-;16620:10;:33;;;;16514:147;;:::o;17335:469::-;17504:7;17526;17548;17583:12;17598:30;17624:3;17598:21;17610:8;17598:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17583:45;;17639:13;17655:28;17679:3;17655:19;17667:6;17655:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17639:44;;17694:23;17720:28;17742:5;17720:17;17732:4;17720:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17694:54;;17767:15;17784:4;17790:5;17759:37;;;;;;;;;17335:469;;;;;;;:::o;17812:534::-;18006:7;18028;18050;18085:15;18103:24;18115:11;18103:7;:11;;:24;;;;:::i;:::-;18085:42;;18138:12;18153:21;18162:11;18153:4;:8;;:21;;;;:::i;:::-;18138:36;;18185:13;18201:22;18211:11;18201:5;:9;;:22;;;;:::i;:::-;18185:38;;18234:23;18260:28;18282:5;18260:17;18272:4;18260:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18234:54;;18307:7;18316:15;18333:4;18299:39;;;;;;;;;;17812:534;;;;;;;;:::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:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:442::-;9169:4;9207:2;9196:9;9192:18;9184:26;;9220:71;9288:1;9277:9;9273:17;9264:6;9220:71;:::i;:::-;9301:72;9369:2;9358:9;9354:18;9345:6;9301:72;:::i;:::-;9383;9451:2;9440:9;9436:18;9427:6;9383:72;:::i;:::-;9020:442;;;;;;:::o;9468:117::-;9577:1;9574;9567:12;9608:568;9681:8;9691:6;9741:3;9734:4;9726:6;9722:17;9718:27;9708:122;;9749:79;;:::i;:::-;9708:122;9862:6;9849:20;9839:30;;9892:18;9884:6;9881:30;9878:117;;;9914:79;;:::i;:::-;9878:117;10028:4;10020:6;10016:17;10004:29;;10082:3;10074:4;10066:6;10062:17;10052:8;10048:32;10045:41;10042:128;;;10089:79;;:::i;:::-;10042:128;9608:568;;;;;:::o;10182:559::-;10268:6;10276;10325:2;10313:9;10304:7;10300:23;10296:32;10293:119;;;10331:79;;:::i;:::-;10293:119;10479:1;10468:9;10464:17;10451:31;10509:18;10501:6;10498:30;10495:117;;;10531:79;;:::i;:::-;10495:117;10644:80;10716:7;10707:6;10696:9;10692:22;10644:80;:::i;:::-;10626:98;;;;10422:312;10182:559;;;;;:::o;10747:329::-;10806:6;10855:2;10843:9;10834:7;10830:23;10826:32;10823:119;;;10861:79;;:::i;:::-;10823:119;10981:1;11006:53;11051:7;11042:6;11031:9;11027:22;11006:53;:::i;:::-;10996:63;;10952:117;10747:329;;;;:::o;11082:116::-;11152:21;11167:5;11152:21;:::i;:::-;11145:5;11142:32;11132:60;;11188:1;11185;11178:12;11132:60;11082:116;:::o;11204:133::-;11247:5;11285:6;11272:20;11263:29;;11301:30;11325:5;11301:30;:::i;:::-;11204:133;;;;:::o;11343:323::-;11399:6;11448:2;11436:9;11427:7;11423:23;11419:32;11416:119;;;11454:79;;:::i;:::-;11416:119;11574:1;11599:50;11641:7;11632:6;11621:9;11617:22;11599:50;:::i;:::-;11589:60;;11545:114;11343:323;;;;:::o;11672:619::-;11749:6;11757;11765;11814:2;11802:9;11793:7;11789:23;11785:32;11782:119;;;11820:79;;:::i;:::-;11782:119;11940:1;11965:53;12010:7;12001:6;11990:9;11986:22;11965:53;:::i;:::-;11955:63;;11911:117;12067:2;12093:53;12138:7;12129:6;12118:9;12114:22;12093:53;:::i;:::-;12083:63;;12038:118;12195:2;12221:53;12266:7;12257:6;12246:9;12242:22;12221:53;:::i;:::-;12211:63;;12166:118;11672:619;;;;;:::o;12297:329::-;12356:6;12405:2;12393:9;12384:7;12380:23;12376:32;12373:119;;;12411:79;;:::i;:::-;12373:119;12531:1;12556:53;12601:7;12592:6;12581:9;12577:22;12556:53;:::i;:::-;12546:63;;12502:117;12297:329;;;;:::o;12632:765::-;12718:6;12726;12734;12742;12791:3;12779:9;12770:7;12766:23;12762:33;12759:120;;;12798:79;;:::i;:::-;12759:120;12918:1;12943:53;12988:7;12979:6;12968:9;12964:22;12943:53;:::i;:::-;12933:63;;12889:117;13045:2;13071:53;13116:7;13107:6;13096:9;13092:22;13071:53;:::i;:::-;13061:63;;13016:118;13173:2;13199:53;13244:7;13235:6;13224:9;13220:22;13199:53;:::i;:::-;13189:63;;13144:118;13301:2;13327:53;13372:7;13363:6;13352:9;13348:22;13327:53;:::i;:::-;13317:63;;13272:118;12632:765;;;;;;;:::o;13403:698::-;13495:6;13503;13511;13560:2;13548:9;13539:7;13535:23;13531:32;13528:119;;;13566:79;;:::i;:::-;13528:119;13714:1;13703:9;13699:17;13686:31;13744:18;13736:6;13733:30;13730:117;;;13766:79;;:::i;:::-;13730:117;13879:80;13951:7;13942:6;13931:9;13927:22;13879:80;:::i;:::-;13861:98;;;;13657:312;14008:2;14034:50;14076:7;14067:6;14056:9;14052:22;14034:50;:::i;:::-;14024:60;;13979:115;13403:698;;;;;:::o;14107:474::-;14175:6;14183;14232:2;14220:9;14211:7;14207:23;14203:32;14200:119;;;14238:79;;:::i;:::-;14200:119;14358:1;14383:53;14428:7;14419:6;14408:9;14404:22;14383:53;:::i;:::-;14373:63;;14329:117;14485:2;14511:53;14556:7;14547:6;14536:9;14532:22;14511:53;:::i;:::-;14501:63;;14456:118;14107:474;;;;;:::o;14587:182::-;14727:34;14723:1;14715:6;14711:14;14704:58;14587:182;:::o;14775:366::-;14917:3;14938:67;15002:2;14997:3;14938:67;:::i;:::-;14931:74;;15014:93;15103:3;15014:93;:::i;:::-;15132:2;15127:3;15123:12;15116:19;;14775:366;;;:::o;15147:419::-;15313:4;15351:2;15340:9;15336:18;15328:26;;15400:9;15394:4;15390:20;15386:1;15375:9;15371:17;15364:47;15428:131;15554:4;15428:131;:::i;:::-;15420:139;;15147:419;;;:::o;15572:180::-;15620:77;15617:1;15610:88;15717:4;15714:1;15707:15;15741:4;15738:1;15731:15;15758:180;15806:77;15803:1;15796:88;15903:4;15900:1;15893:15;15927:4;15924:1;15917:15;15944:233;15983:3;16006:24;16024:5;16006:24;:::i;:::-;15997:33;;16052:66;16045:5;16042:77;16039:103;;16122:18;;:::i;:::-;16039:103;16169:1;16162:5;16158:13;16151:20;;15944:233;;;:::o;16183:102::-;16225:8;16272:5;16269:1;16265:13;16244:34;;16183:102;;;:::o;16291:848::-;16352:5;16359:4;16383:6;16374:15;;16407:5;16398:14;;16421:712;16442:1;16432:8;16429:15;16421:712;;;16537:4;16532:3;16528:14;16522:4;16519:24;16516:50;;;16546:18;;:::i;:::-;16516:50;16596:1;16586:8;16582:16;16579:451;;;17011:4;17004:5;17000:16;16991:25;;16579:451;17061:4;17055;17051:15;17043:23;;17091:32;17114:8;17091:32;:::i;:::-;17079:44;;16421:712;;;16291:848;;;;;;;:::o;17145:1073::-;17199:5;17390:8;17380:40;;17411:1;17402:10;;17413:5;;17380:40;17439:4;17429:36;;17456:1;17447:10;;17458:5;;17429:36;17525:4;17573:1;17568:27;;;;17609:1;17604:191;;;;17518:277;;17568:27;17586:1;17577:10;;17588:5;;;17604:191;17649:3;17639:8;17636:17;17633:43;;;17656:18;;:::i;:::-;17633:43;17705:8;17702:1;17698:16;17689:25;;17740:3;17733:5;17730:14;17727:40;;;17747:18;;:::i;:::-;17727:40;17780:5;;;17518:277;;17904:2;17894:8;17891:16;17885:3;17879:4;17876:13;17872:36;17854:2;17844:8;17841:16;17836:2;17830:4;17827:12;17823:35;17807:111;17804:246;;;17960:8;17954:4;17950:19;17941:28;;17995:3;17988:5;17985:14;17982:40;;;18002:18;;:::i;:::-;17982:40;18035:5;;17804:246;18075:42;18113:3;18103:8;18097:4;18094:1;18075:42;:::i;:::-;18060:57;;;;18149:4;18144:3;18140:14;18133:5;18130:25;18127:51;;;18158:18;;:::i;:::-;18127:51;18207:4;18200:5;18196:16;18187:25;;17145:1073;;;;;;:::o;18224:281::-;18282:5;18306:23;18324:4;18306:23;:::i;:::-;18298:31;;18350:25;18366:8;18350:25;:::i;:::-;18338:37;;18394:104;18431:66;18421:8;18415:4;18394:104;:::i;:::-;18385:113;;18224:281;;;;:::o;18511:410::-;18551:7;18574:20;18592:1;18574:20;:::i;:::-;18569:25;;18608:20;18626:1;18608:20;:::i;:::-;18603:25;;18663:1;18660;18656:9;18685:30;18703:11;18685:30;:::i;:::-;18674:41;;18864:1;18855:7;18851:15;18848:1;18845:22;18825:1;18818:9;18798:83;18775:139;;18894:18;;:::i;:::-;18775:139;18559:362;18511:410;;;;:::o;18927:225::-;19067:34;19063:1;19055:6;19051:14;19044:58;19136:8;19131:2;19123:6;19119:15;19112:33;18927:225;:::o;19158:366::-;19300:3;19321:67;19385:2;19380:3;19321:67;:::i;:::-;19314:74;;19397:93;19486:3;19397:93;:::i;:::-;19515:2;19510:3;19506:12;19499:19;;19158:366;;;:::o;19530:419::-;19696:4;19734:2;19723:9;19719:18;19711:26;;19783:9;19777:4;19773:20;19769:1;19758:9;19754:17;19747:47;19811:131;19937:4;19811:131;:::i;:::-;19803:139;;19530:419;;;:::o;19955:223::-;20095:34;20091:1;20083:6;20079:14;20072:58;20164:6;20159:2;20151:6;20147:15;20140:31;19955:223;:::o;20184:366::-;20326:3;20347:67;20411:2;20406:3;20347:67;:::i;:::-;20340:74;;20423:93;20512:3;20423:93;:::i;:::-;20541:2;20536:3;20532:12;20525:19;;20184:366;;;:::o;20556:419::-;20722:4;20760:2;20749:9;20745:18;20737:26;;20809:9;20803:4;20799:20;20795:1;20784:9;20780:17;20773:47;20837:131;20963:4;20837:131;:::i;:::-;20829:139;;20556:419;;;:::o;20981:221::-;21121:34;21117:1;21109:6;21105:14;21098:58;21190:4;21185:2;21177:6;21173:15;21166:29;20981:221;:::o;21208:366::-;21350:3;21371:67;21435:2;21430:3;21371:67;:::i;:::-;21364:74;;21447:93;21536:3;21447:93;:::i;:::-;21565:2;21560:3;21556:12;21549:19;;21208:366;;;:::o;21580:419::-;21746:4;21784:2;21773:9;21769:18;21761:26;;21833:9;21827:4;21823:20;21819:1;21808:9;21804:17;21797:47;21861:131;21987:4;21861:131;:::i;:::-;21853:139;;21580:419;;;:::o;22005:224::-;22145:34;22141:1;22133:6;22129:14;22122:58;22214:7;22209:2;22201:6;22197:15;22190:32;22005:224;:::o;22235:366::-;22377:3;22398:67;22462:2;22457:3;22398:67;:::i;:::-;22391:74;;22474:93;22563:3;22474:93;:::i;:::-;22592:2;22587:3;22583:12;22576:19;;22235:366;;;:::o;22607:419::-;22773:4;22811:2;22800:9;22796:18;22788:26;;22860:9;22854:4;22850:20;22846:1;22835:9;22831:17;22824:47;22888:131;23014:4;22888:131;:::i;:::-;22880:139;;22607:419;;;:::o;23032:222::-;23172:34;23168:1;23160:6;23156:14;23149:58;23241:5;23236:2;23228:6;23224:15;23217:30;23032:222;:::o;23260:366::-;23402:3;23423:67;23487:2;23482:3;23423:67;:::i;:::-;23416:74;;23499:93;23588:3;23499:93;:::i;:::-;23617:2;23612:3;23608:12;23601:19;;23260:366;;;:::o;23632:419::-;23798:4;23836:2;23825:9;23821:18;23813:26;;23885:9;23879:4;23875:20;23871:1;23860:9;23856:17;23849:47;23913:131;24039:4;23913:131;:::i;:::-;23905:139;;23632:419;;;:::o;24057:228::-;24197:34;24193:1;24185:6;24181:14;24174:58;24266:11;24261:2;24253:6;24249:15;24242:36;24057:228;:::o;24291:366::-;24433:3;24454:67;24518:2;24513:3;24454:67;:::i;:::-;24447:74;;24530:93;24619:3;24530:93;:::i;:::-;24648:2;24643:3;24639:12;24632:19;;24291:366;;;:::o;24663:419::-;24829:4;24867:2;24856:9;24852:18;24844:26;;24916:9;24910:4;24906:20;24902:1;24891:9;24887:17;24880:47;24944:131;25070:4;24944:131;:::i;:::-;24936:139;;24663:419;;;:::o;25088:250::-;25228:34;25224:1;25216:6;25212:14;25205:58;25297:33;25292:2;25284:6;25280:15;25273:58;25088:250;:::o;25344:366::-;25486:3;25507:67;25571:2;25566:3;25507:67;:::i;:::-;25500:74;;25583:93;25672:3;25583:93;:::i;:::-;25701:2;25696:3;25692:12;25685:19;;25344:366;;;:::o;25716:419::-;25882:4;25920:2;25909:9;25905:18;25897:26;;25969:9;25963:4;25959:20;25955:1;25944:9;25940:17;25933:47;25997:131;26123:4;25997:131;:::i;:::-;25989:139;;25716:419;;;:::o;26141:178::-;26281:30;26277:1;26269:6;26265:14;26258:54;26141:178;:::o;26325:366::-;26467:3;26488:67;26552:2;26547:3;26488:67;:::i;:::-;26481:74;;26564:93;26653:3;26564:93;:::i;:::-;26682:2;26677:3;26673:12;26666:19;;26325:366;;;:::o;26697:419::-;26863:4;26901:2;26890:9;26886:18;26878:26;;26950:9;26944:4;26940:20;26936:1;26925:9;26921:17;26914:47;26978:131;27104:4;26978:131;:::i;:::-;26970:139;;26697:419;;;:::o;27122:222::-;27262:34;27258:1;27250:6;27246:14;27239:58;27331:5;27326:2;27318:6;27314:15;27307:30;27122:222;:::o;27350:366::-;27492:3;27513:67;27577:2;27572:3;27513:67;:::i;:::-;27506:74;;27589:93;27678:3;27589:93;:::i;:::-;27707:2;27702:3;27698:12;27691:19;;27350:366;;;:::o;27722:419::-;27888:4;27926:2;27915:9;27911:18;27903:26;;27975:9;27969:4;27965:20;27961:1;27950:9;27946:17;27939:47;28003:131;28129:4;28003:131;:::i;:::-;27995:139;;27722:419;;;:::o;28147:191::-;28187:3;28206:20;28224:1;28206:20;:::i;:::-;28201:25;;28240:20;28258:1;28240:20;:::i;:::-;28235:25;;28283:1;28280;28276:9;28269:16;;28304:3;28301:1;28298:10;28295:36;;;28311:18;;:::i;:::-;28295:36;28147:191;;;;:::o;28344:222::-;28484:34;28480:1;28472:6;28468:14;28461:58;28553:5;28548:2;28540:6;28536:15;28529:30;28344:222;:::o;28572:366::-;28714:3;28735:67;28799:2;28794:3;28735:67;:::i;:::-;28728:74;;28811:93;28900:3;28811:93;:::i;:::-;28929:2;28924:3;28920:12;28913:19;;28572:366;;;:::o;28944:419::-;29110:4;29148:2;29137:9;29133:18;29125:26;;29197:9;29191:4;29187:20;29183:1;29172:9;29168:17;29161:47;29225:131;29351:4;29225:131;:::i;:::-;29217:139;;28944:419;;;:::o;29369:194::-;29409:4;29429:20;29447:1;29429:20;:::i;:::-;29424:25;;29463:20;29481:1;29463:20;:::i;:::-;29458:25;;29507:1;29504;29500:9;29492:17;;29531:1;29525:4;29522:11;29519:37;;;29536:18;;:::i;:::-;29519:37;29369:194;;;;:::o;29569:229::-;29709:34;29705:1;29697:6;29693:14;29686:58;29778:12;29773:2;29765:6;29761:15;29754:37;29569:229;:::o;29804:366::-;29946:3;29967:67;30031:2;30026:3;29967:67;:::i;:::-;29960:74;;30043:93;30132:3;30043:93;:::i;:::-;30161:2;30156:3;30152:12;30145:19;;29804:366;;;:::o;30176:419::-;30342:4;30380:2;30369:9;30365:18;30357:26;;30429:9;30423:4;30419:20;30415:1;30404:9;30400:17;30393:47;30457:131;30583:4;30457:131;:::i;:::-;30449:139;;30176:419;;;:::o;30601:143::-;30658:5;30689:6;30683:13;30674:22;;30705:33;30732:5;30705:33;:::i;:::-;30601:143;;;;:::o;30750:351::-;30820:6;30869:2;30857:9;30848:7;30844:23;30840:32;30837:119;;;30875:79;;:::i;:::-;30837:119;30995:1;31020:64;31076:7;31067:6;31056:9;31052:22;31020:64;:::i;:::-;31010:74;;30966:128;30750:351;;;;:::o;31107:85::-;31152:7;31181:5;31170:16;;31107:85;;;:::o;31198:158::-;31256:9;31289:61;31307:42;31316:32;31342:5;31316:32;:::i;:::-;31307:42;:::i;:::-;31289:61;:::i;:::-;31276:74;;31198:158;;;:::o;31362:147::-;31457:45;31496:5;31457:45;:::i;:::-;31452:3;31445:58;31362:147;;:::o;31515:114::-;31582:6;31616:5;31610:12;31600:22;;31515:114;;;:::o;31635:184::-;31734:11;31768:6;31763:3;31756:19;31808:4;31803:3;31799:14;31784:29;;31635:184;;;;:::o;31825:132::-;31892:4;31915:3;31907:11;;31945:4;31940:3;31936:14;31928:22;;31825:132;;;:::o;31963:108::-;32040:24;32058:5;32040:24;:::i;:::-;32035:3;32028:37;31963:108;;:::o;32077:179::-;32146:10;32167:46;32209:3;32201:6;32167:46;:::i;:::-;32245:4;32240:3;32236:14;32222:28;;32077:179;;;;:::o;32262:113::-;32332:4;32364;32359:3;32355:14;32347:22;;32262:113;;;:::o;32411:732::-;32530:3;32559:54;32607:5;32559:54;:::i;:::-;32629:86;32708:6;32703:3;32629:86;:::i;:::-;32622:93;;32739:56;32789:5;32739:56;:::i;:::-;32818:7;32849:1;32834:284;32859:6;32856:1;32853:13;32834:284;;;32935:6;32929:13;32962:63;33021:3;33006:13;32962:63;:::i;:::-;32955:70;;33048:60;33101:6;33048:60;:::i;:::-;33038:70;;32894:224;32881:1;32878;32874:9;32869:14;;32834:284;;;32838:14;33134:3;33127:10;;32535:608;;;32411:732;;;;:::o;33149:831::-;33412:4;33450:3;33439:9;33435:19;33427:27;;33464:71;33532:1;33521:9;33517:17;33508:6;33464:71;:::i;:::-;33545:80;33621:2;33610:9;33606:18;33597:6;33545:80;:::i;:::-;33672:9;33666:4;33662:20;33657:2;33646:9;33642:18;33635:48;33700:108;33803:4;33794:6;33700:108;:::i;:::-;33692:116;;33818:72;33886:2;33875:9;33871:18;33862:6;33818:72;:::i;:::-;33900:73;33968:3;33957:9;33953:19;33944:6;33900:73;:::i;:::-;33149:831;;;;;;;;:::o;33986:180::-;34034:77;34031:1;34024:88;34131:4;34128:1;34121:15;34155:4;34152:1;34145:15;34172:185;34212:1;34229:20;34247:1;34229:20;:::i;:::-;34224:25;;34263:20;34281:1;34263:20;:::i;:::-;34258:25;;34302:1;34292:35;;34307:18;;:::i;:::-;34292:35;34349:1;34346;34342:9;34337:14;;34172:185;;;;:::o;34363:220::-;34503:34;34499:1;34491:6;34487:14;34480:58;34572:3;34567:2;34559:6;34555:15;34548:28;34363:220;:::o;34589:366::-;34731:3;34752:67;34816:2;34811:3;34752:67;:::i;:::-;34745:74;;34828:93;34917:3;34828:93;:::i;:::-;34946:2;34941:3;34937:12;34930:19;;34589:366;;;:::o;34961:419::-;35127:4;35165:2;35154:9;35150:18;35142:26;;35214:9;35208:4;35204:20;35200:1;35189:9;35185:17;35178:47;35242:131;35368:4;35242:131;:::i;:::-;35234:139;;34961:419;;;:::o;35386:177::-;35526:29;35522:1;35514:6;35510:14;35503:53;35386:177;:::o;35569:366::-;35711:3;35732:67;35796:2;35791:3;35732:67;:::i;:::-;35725:74;;35808:93;35897:3;35808:93;:::i;:::-;35926:2;35921:3;35917:12;35910:19;;35569:366;;;:::o;35941:419::-;36107:4;36145:2;36134:9;36130:18;36122:26;;36194:9;36188:4;36184:20;36180:1;36169:9;36165:17;36158:47;36222:131;36348:4;36222:131;:::i;:::-;36214:139;;35941:419;;;:::o

Swarm Source

ipfs://a1f585faa3c0aca3229a11eaeead44b93e1df0fb5f873b9ad8344dd482c221dd

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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