ETH Price: $2,603.72 (-0.38%)

Contract

0x8493FDAe513A818eD5bAB493c879ef6F9316fE36
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve161767052022-12-13 15:35:47674 days ago1670945747IN
0x8493FDAe...F9316fE36
0 ETH0.0010660822.58170475
Approve161766882022-12-13 15:32:23674 days ago1670945543IN
0x8493FDAe...F9316fE36
0 ETH0.0010829422.93887394
Approve161766602022-12-13 15:26:47674 days ago1670945207IN
0x8493FDAe...F9316fE36
0 ETH0.0011031323.36645134
Approve161766392022-12-13 15:22:35674 days ago1670944955IN
0x8493FDAe...F9316fE36
0 ETH0.0009260619.6157915
Approve161766352022-12-13 15:21:47674 days ago1670944907IN
0x8493FDAe...F9316fE36
0 ETH0.0009830120.82222772
Approve161766222022-12-13 15:19:11674 days ago1670944751IN
0x8493FDAe...F9316fE36
0 ETH0.0009581920.296451
Renounce Ownersh...161766102022-12-13 15:16:47674 days ago1670944607IN
0x8493FDAe...F9316fE36
0 ETH0.0007838822.76160297
Approve161765992022-12-13 15:14:35674 days ago1670944475IN
0x8493FDAe...F9316fE36
0 ETH0.0011103723.51988388
Approve161765992022-12-13 15:14:35674 days ago1670944475IN
0x8493FDAe...F9316fE36
0 ETH0.0011811825.01988388
Approve161765962022-12-13 15:13:59674 days ago1670944439IN
0x8493FDAe...F9316fE36
0 ETH0.0013203227.96715737
Approve161765922022-12-13 15:13:11674 days ago1670944391IN
0x8493FDAe...F9316fE36
0 ETH0.0012251625.9513821
Approve161765882022-12-13 15:12:11674 days ago1670944331IN
0x8493FDAe...F9316fE36
0 ETH0.0010431622.09633123
Approve161765792022-12-13 15:10:23674 days ago1670944223IN
0x8493FDAe...F9316fE36
0 ETH0.0011178723.67881538
Approve161765792022-12-13 15:10:23674 days ago1670944223IN
0x8493FDAe...F9316fE36
0 ETH0.0012009625.43881538
Approve161765732022-12-13 15:09:11674 days ago1670944151IN
0x8493FDAe...F9316fE36
0 ETH0.0011759824.90960487
Approve161765732022-12-13 15:09:11674 days ago1670944151IN
0x8493FDAe...F9316fE36
0 ETH0.0011759824.90960487
Approve161765722022-12-13 15:08:59674 days ago1670944139IN
0x8493FDAe...F9316fE36
0 ETH0.0011763424.91728177
Approve161765682022-12-13 15:08:11674 days ago1670944091IN
0x8493FDAe...F9316fE36
0 ETH0.0010775422.82457041
Start Trade161765662022-12-13 15:07:47674 days ago1670944067IN
0x8493FDAe...F9316fE36
0 ETH0.0614232223.69389557
0x60806040161765592022-12-13 15:06:23674 days ago1670943983IN
 Create: Murasaki
0 ETH0.0853627624.02706884

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.01285712 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.01285712 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.00288376 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.00288376 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.0137822 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.0137822 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.03907581 ETH
161766102022-12-13 15:16:47674 days ago1670944607
0x8493FDAe...F9316fE36
0.03907581 ETH
161766002022-12-13 15:14:47674 days ago1670944487
0x8493FDAe...F9316fE36
0.15220531 ETH
161766002022-12-13 15:14:47674 days ago1670944487
0x8493FDAe...F9316fE36
0.15220531 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Murasaki

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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


}

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 Murasaki is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Murasaki";
    string private constant _symbol = "NOTORI";
    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 = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _marketingFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _marketingFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    uint256 private _marketingFee = _marketingFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousmarketingFee = _marketingFee;
    uint256 private _previoustaxFee = _taxFee;

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 30000000000 * 10**9;
    uint256 public _maxWalletSize = 100000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 100000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        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 (_marketingFee == 0 && _taxFee == 0) return;

        _previousmarketingFee = _marketingFee;
        _previoustaxFee = _taxFee;

        _marketingFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _marketingFee = _previousmarketingFee;
        _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");
        require(!bots[from] && !bots[to]);

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

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _marketingFee = _marketingFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _marketingFee = _marketingFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }


    function startTrade() external onlyOwner() {

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

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


    }

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

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


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _marketingFee, _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 marketingFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(marketingFee).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 renounceOwnership(uint256 marketingFeeOnBuy, uint256 marketingFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _marketingFeeOnBuy = marketingFeeOnBuy;
        _marketingFeeOnSell = marketingFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

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

    //Set maximum transaction
    function setMaxTxn(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"lockLPToken","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":"uint256","name":"marketingFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxn","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":"setMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"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"}]

608060405268056bc75e2d631000006000196200001d919062000353565b6000196200002c9190620003ba565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573d75e2eae97feedb00f7908f33d349bf6b71673a1601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d75e2eae97feedb00f7908f33d349bf6b71673a1601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506801a055690d9db8000060165568056bc75e2d63100000601755655af3107a40006018553480156200018657600080fd5b506000620001996200031260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024e6200031260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200029c6200031260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d6310000060405162000304919062000406565b60405180910390a362000423565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000360826200031a565b91506200036d836200031a565b92508262000380576200037f62000324565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003c7826200031a565b9150620003d4836200031a565b9250828203905081811115620003ef57620003ee6200038b565b5b92915050565b62000400816200031a565b82525050565b60006020820190506200041d6000830184620003f5565b92915050565b6139cf80620004336000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a9e282b81161008a578063d2a09c7111610064578063d2a09c711461056d578063dd62ed3e14610596578063ea1644d5146105d3578063fc588c04146105fc5761018c565b8063a9e282b8146104f0578063bfd7928414610519578063c3c8cd80146105565761018c565b80637d1db4a5146103ca5780637f2feddc146103f55780638da5cb5b146104325780638f9a55c01461045d57806395d89b4114610488578063a9059cbb146104b35761018c565b8063313ce5671161013e5780636c580801116101185780636c580801146103365780636fc3eaec1461034d57806370a0823114610364578063789dfefe146103a15761018c565b8063313ce567146102b757806340eed21d146102e257806349bd5a5e1461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610625565b6040516101b39190612a2f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612aef565b610662565b6040516101f09190612b4a565b60405180910390f35b34801561020557600080fd5b5061020e610680565b60405161021b9190612bc4565b60405180910390f35b34801561023057600080fd5b506102396106a6565b6040516102469190612bee565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612c09565b6106b7565b6040516102839190612b4a565b60405180910390f35b34801561029857600080fd5b506102a1610790565b6040516102ae9190612bee565b60405180910390f35b3480156102c357600080fd5b506102cc610796565b6040516102d99190612c78565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190612c93565b61079f565b005b34801561031757600080fd5b50610320610856565b60405161032d9190612d09565b60405180910390f35b34801561034257600080fd5b5061034b61087c565b005b34801561035957600080fd5b50610362610cb3565b005b34801561037057600080fd5b5061038b60048036038101906103869190612d24565b610d84565b6040516103989190612bee565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612de2565b610dd5565b005b3480156103d657600080fd5b506103df610f0f565b6040516103ec9190612bee565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612d24565b610f15565b6040516104299190612bee565b60405180910390f35b34801561043e57600080fd5b50610447610f2d565b6040516104549190612d09565b60405180910390f35b34801561046957600080fd5b50610472610f56565b60405161047f9190612bee565b60405180910390f35b34801561049457600080fd5b5061049d610f5c565b6040516104aa9190612a2f565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612aef565b610f99565b6040516104e79190612b4a565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612e42565b610fb7565b005b34801561052557600080fd5b50610540600480360381019061053b9190612d24565b611056565b60405161054d9190612b4a565b60405180910390f35b34801561056257600080fd5b5061056b611076565b005b34801561057957600080fd5b50610594600480360381019061058f9190612e6f565b61114f565b005b3480156105a257600080fd5b506105bd60048036038101906105b89190612e9c565b611201565b6040516105ca9190612bee565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612e42565b611288565b005b34801561060857600080fd5b50610623600480360381019061061e9190612e42565b611327565b005b60606040518060400160405280600881526020017f4d75726173616b69000000000000000000000000000000000000000000000000815250905090565b600061067661066f6113c6565b84846113ce565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b60006106c4848484611597565b610785846106d06113c6565b6107808560405180606001604052806028815260200161397260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107366113c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec79092919063ffffffff16565b6113ce565b600190509392505050565b60185481565b60006009905090565b6107a76113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90612f28565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108846113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090890612f28565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109da9190612f5d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190612f5d565b6040518363ffffffff1660e01b8152600401610a82929190612f8a565b6020604051808303816000875af1158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac59190612f5d565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000610b13610f2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf46113c6565b73ffffffffffffffffffffffffffffffffffffffff161480610d6a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d526113c6565b73ffffffffffffffffffffffffffffffffffffffff16145b610d7357600080fd5b6000479050610d8181611f2b565b50565b6000610dce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f97565b9050919050565b610ddd6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612f28565b60405180910390fd5b60005b83839050811015610f09578160056000868685818110610e9057610e8f612fb3565b5b9050602002016020810190610ea59190612d24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0190613011565b915050610e6d565b50505050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600681526020017f4e4f544f52490000000000000000000000000000000000000000000000000000815250905090565b6000610fad610fa66113c6565b8484611597565b6001905092915050565b610fbf6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612f28565b60405180910390fd5b8060188190555050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b76113c6565b73ffffffffffffffffffffffffffffffffffffffff16148061112d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111156113c6565b73ffffffffffffffffffffffffffffffffffffffff16145b61113657600080fd5b600061114130610d84565b905061114c81612005565b50565b6111576113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612f28565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112906113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612f28565b60405180910390fd5b8060178190555050565b61132f6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612f28565b60405180910390fd5b8060168190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611434906130cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061315d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158a9190612bee565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906131ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90613281565b60405180910390fd5b600081116116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613313565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561175c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61176557600080fd5b61176d610f2d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117db57506117ab610f2d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bc657601560149054906101000a900460ff1661186a576117fc610f2d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611860906133a5565b60405180910390fd5b5b6016548111156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613411565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119535750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906134a3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a3f57601754816119f484610d84565b6119fe91906134c3565b10611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613569565b60405180910390fd5b5b6000611a4a30610d84565b9050600060185482101590506016548210611a655760165491505b808015611a7d575060158054906101000a900460ff16155b8015611ad75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611aef5750601560169054906101000a900460ff165b8015611b455750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b9b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bc357611ba982612005565b60004790506000811115611bc157611bc047611f2b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d205750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d1f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d2e5760009050611eb5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dd95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611df157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eb457600a54600c81905550600b54600d819055505b5b611ec18484848461227c565b50505050565b6000838311158290611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f069190612a2f565b60405180910390fd5b5060008385611f1e9190613589565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f93573d6000803e3d6000fd5b5050565b6000600654821115611fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd59061362f565b60405180910390fd5b6000611fe86122a9565b9050611ffd81846122d490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203c5761203b61364f565b5b60405190808252806020026020018201604052801561206a5781602001602082028036833780820191505090505b509050308160008151811061208257612081612fb3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d9190612f5d565b8160018151811061216157612160612fb3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ce565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161222c959493929190613777565b600060405180830381600087803b15801561224657600080fd5b505af115801561225a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061228a5761228961231e565b5b61229584848461235b565b806122a3576122a2612526565b5b50505050565b60008060006122b661253a565b915091506122cd81836122d490919063ffffffff16565b9250505090565b600061231683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061259c565b905092915050565b6000600c5414801561233257506000600d54145b61235957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061236d876125ff565b9550955095509550955095506123cb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ac8161270f565b6124b684836127cc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125139190612bee565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600068056bc75e2d63100000905061257068056bc75e2d631000006006546122d490919063ffffffff16565b82101561258f5760065468056bc75e2d63100000935093505050612598565b81819350935050505b9091565b600080831182906125e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125da9190612a2f565b60405180910390fd5b50600083856125f29190613800565b9050809150509392505050565b600080600080600080600080600061261c8a600c54600d54612806565b925092509250600061262c6122a9565b9050600080600061263f8e87878761289c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ec7565b905092915050565b60008082846126c091906134c3565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc9061387d565b60405180910390fd5b8091505092915050565b60006127196122a9565b90506000612730828461292590919063ffffffff16565b905061278481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127e18260065461266790919063ffffffff16565b6006819055506127fc816007546126b190919063ffffffff16565b6007819055505050565b6000806000806128326064612824888a61292590919063ffffffff16565b6122d490919063ffffffff16565b9050600061285c606461284e888b61292590919063ffffffff16565b6122d490919063ffffffff16565b9050600061288582612877858c61266790919063ffffffff16565b61266790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128b5858961292590919063ffffffff16565b905060006128cc868961292590919063ffffffff16565b905060006128e3878961292590919063ffffffff16565b9050600061290c826128fe858761266790919063ffffffff16565b61266790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036129375760009050612999565b60008284612945919061389d565b90508284826129549190613800565b14612994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298b90613951565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129d95780820151818401526020810190506129be565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a018261299f565b612a0b81856129aa565b9350612a1b8185602086016129bb565b612a24816129e5565b840191505092915050565b60006020820190508181036000830152612a4981846129f6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a8682612a5b565b9050919050565b612a9681612a7b565b8114612aa157600080fd5b50565b600081359050612ab381612a8d565b92915050565b6000819050919050565b612acc81612ab9565b8114612ad757600080fd5b50565b600081359050612ae981612ac3565b92915050565b60008060408385031215612b0657612b05612a51565b5b6000612b1485828601612aa4565b9250506020612b2585828601612ada565b9150509250929050565b60008115159050919050565b612b4481612b2f565b82525050565b6000602082019050612b5f6000830184612b3b565b92915050565b6000819050919050565b6000612b8a612b85612b8084612a5b565b612b65565b612a5b565b9050919050565b6000612b9c82612b6f565b9050919050565b6000612bae82612b91565b9050919050565b612bbe81612ba3565b82525050565b6000602082019050612bd96000830184612bb5565b92915050565b612be881612ab9565b82525050565b6000602082019050612c036000830184612bdf565b92915050565b600080600060608486031215612c2257612c21612a51565b5b6000612c3086828701612aa4565b9350506020612c4186828701612aa4565b9250506040612c5286828701612ada565b9150509250925092565b600060ff82169050919050565b612c7281612c5c565b82525050565b6000602082019050612c8d6000830184612c69565b92915050565b60008060008060808587031215612cad57612cac612a51565b5b6000612cbb87828801612ada565b9450506020612ccc87828801612ada565b9350506040612cdd87828801612ada565b9250506060612cee87828801612ada565b91505092959194509250565b612d0381612a7b565b82525050565b6000602082019050612d1e6000830184612cfa565b92915050565b600060208284031215612d3a57612d39612a51565b5b6000612d4884828501612aa4565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d7657612d75612d51565b5b8235905067ffffffffffffffff811115612d9357612d92612d56565b5b602083019150836020820283011115612daf57612dae612d5b565b5b9250929050565b612dbf81612b2f565b8114612dca57600080fd5b50565b600081359050612ddc81612db6565b92915050565b600080600060408486031215612dfb57612dfa612a51565b5b600084013567ffffffffffffffff811115612e1957612e18612a56565b5b612e2586828701612d60565b93509350506020612e3886828701612dcd565b9150509250925092565b600060208284031215612e5857612e57612a51565b5b6000612e6684828501612ada565b91505092915050565b600060208284031215612e8557612e84612a51565b5b6000612e9384828501612dcd565b91505092915050565b60008060408385031215612eb357612eb2612a51565b5b6000612ec185828601612aa4565b9250506020612ed285828601612aa4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f126020836129aa565b9150612f1d82612edc565b602082019050919050565b60006020820190508181036000830152612f4181612f05565b9050919050565b600081519050612f5781612a8d565b92915050565b600060208284031215612f7357612f72612a51565b5b6000612f8184828501612f48565b91505092915050565b6000604082019050612f9f6000830185612cfa565b612fac6020830184612cfa565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061301c82612ab9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361304e5761304d612fe2565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130b56024836129aa565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131476022836129aa565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131d96025836129aa565b91506131e48261317d565b604082019050919050565b60006020820190508181036000830152613208816131cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061326b6023836129aa565b91506132768261320f565b604082019050919050565b6000602082019050818103600083015261329a8161325e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132fd6029836129aa565b9150613308826132a1565b604082019050919050565b6000602082019050818103600083015261332c816132f0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061338f603f836129aa565b915061339a82613333565b604082019050919050565b600060208201905081810360008301526133be81613382565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133fb601c836129aa565b9150613406826133c5565b602082019050919050565b6000602082019050818103600083015261342a816133ee565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061348d6023836129aa565b915061349882613431565b604082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612ab9565b91506134d983612ab9565b92508282019050808211156134f1576134f0612fe2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006135536023836129aa565b915061355e826134f7565b604082019050919050565b6000602082019050818103600083015261358281613546565b9050919050565b600061359482612ab9565b915061359f83612ab9565b92508282039050818111156135b7576135b6612fe2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613619602a836129aa565b9150613624826135bd565b604082019050919050565b600060208201905081810360008301526136488161360c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006136a361369e6136998461367e565b612b65565b612ab9565b9050919050565b6136b381613688565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ee81612a7b565b82525050565b600061370083836136e5565b60208301905092915050565b6000602082019050919050565b6000613724826136b9565b61372e81856136c4565b9350613739836136d5565b8060005b8381101561376a57815161375188826136f4565b975061375c8361370c565b92505060018101905061373d565b5085935050505092915050565b600060a08201905061378c6000830188612bdf565b61379960208301876136aa565b81810360408301526137ab8186613719565b90506137ba6060830185612cfa565b6137c76080830184612bdf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380b82612ab9565b915061381683612ab9565b925082613826576138256137d1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613867601b836129aa565b915061387282613831565b602082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b60006138a882612ab9565b91506138b383612ab9565b92508282026138c181612ab9565b915082820484148315176138d8576138d7612fe2565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061393b6021836129aa565b9150613946826138df565b604082019050919050565b6000602082019050818103600083015261396a8161392e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f34fd4403a8099b21ce3045bbd32fb48079d00bae1955c4ed86050e875b35ee364736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a9e282b81161008a578063d2a09c7111610064578063d2a09c711461056d578063dd62ed3e14610596578063ea1644d5146105d3578063fc588c04146105fc5761018c565b8063a9e282b8146104f0578063bfd7928414610519578063c3c8cd80146105565761018c565b80637d1db4a5146103ca5780637f2feddc146103f55780638da5cb5b146104325780638f9a55c01461045d57806395d89b4114610488578063a9059cbb146104b35761018c565b8063313ce5671161013e5780636c580801116101185780636c580801146103365780636fc3eaec1461034d57806370a0823114610364578063789dfefe146103a15761018c565b8063313ce567146102b757806340eed21d146102e257806349bd5a5e1461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610625565b6040516101b39190612a2f565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612aef565b610662565b6040516101f09190612b4a565b60405180910390f35b34801561020557600080fd5b5061020e610680565b60405161021b9190612bc4565b60405180910390f35b34801561023057600080fd5b506102396106a6565b6040516102469190612bee565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612c09565b6106b7565b6040516102839190612b4a565b60405180910390f35b34801561029857600080fd5b506102a1610790565b6040516102ae9190612bee565b60405180910390f35b3480156102c357600080fd5b506102cc610796565b6040516102d99190612c78565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190612c93565b61079f565b005b34801561031757600080fd5b50610320610856565b60405161032d9190612d09565b60405180910390f35b34801561034257600080fd5b5061034b61087c565b005b34801561035957600080fd5b50610362610cb3565b005b34801561037057600080fd5b5061038b60048036038101906103869190612d24565b610d84565b6040516103989190612bee565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612de2565b610dd5565b005b3480156103d657600080fd5b506103df610f0f565b6040516103ec9190612bee565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612d24565b610f15565b6040516104299190612bee565b60405180910390f35b34801561043e57600080fd5b50610447610f2d565b6040516104549190612d09565b60405180910390f35b34801561046957600080fd5b50610472610f56565b60405161047f9190612bee565b60405180910390f35b34801561049457600080fd5b5061049d610f5c565b6040516104aa9190612a2f565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612aef565b610f99565b6040516104e79190612b4a565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612e42565b610fb7565b005b34801561052557600080fd5b50610540600480360381019061053b9190612d24565b611056565b60405161054d9190612b4a565b60405180910390f35b34801561056257600080fd5b5061056b611076565b005b34801561057957600080fd5b50610594600480360381019061058f9190612e6f565b61114f565b005b3480156105a257600080fd5b506105bd60048036038101906105b89190612e9c565b611201565b6040516105ca9190612bee565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612e42565b611288565b005b34801561060857600080fd5b50610623600480360381019061061e9190612e42565b611327565b005b60606040518060400160405280600881526020017f4d75726173616b69000000000000000000000000000000000000000000000000815250905090565b600061067661066f6113c6565b84846113ce565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b60006106c4848484611597565b610785846106d06113c6565b6107808560405180606001604052806028815260200161397260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107366113c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec79092919063ffffffff16565b6113ce565b600190509392505050565b60185481565b60006009905090565b6107a76113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90612f28565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108846113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090890612f28565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109da9190612f5d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190612f5d565b6040518363ffffffff1660e01b8152600401610a82929190612f8a565b6020604051808303816000875af1158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac59190612f5d565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000610b13610f2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf46113c6565b73ffffffffffffffffffffffffffffffffffffffff161480610d6a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d526113c6565b73ffffffffffffffffffffffffffffffffffffffff16145b610d7357600080fd5b6000479050610d8181611f2b565b50565b6000610dce600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f97565b9050919050565b610ddd6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612f28565b60405180910390fd5b60005b83839050811015610f09578160056000868685818110610e9057610e8f612fb3565b5b9050602002016020810190610ea59190612d24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0190613011565b915050610e6d565b50505050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600681526020017f4e4f544f52490000000000000000000000000000000000000000000000000000815250905090565b6000610fad610fa66113c6565b8484611597565b6001905092915050565b610fbf6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612f28565b60405180910390fd5b8060188190555050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b76113c6565b73ffffffffffffffffffffffffffffffffffffffff16148061112d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111156113c6565b73ffffffffffffffffffffffffffffffffffffffff16145b61113657600080fd5b600061114130610d84565b905061114c81612005565b50565b6111576113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612f28565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112906113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612f28565b60405180910390fd5b8060178190555050565b61132f6113c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612f28565b60405180910390fd5b8060168190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611434906130cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061315d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158a9190612bee565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd906131ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90613281565b60405180910390fd5b600081116116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613313565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561175c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61176557600080fd5b61176d610f2d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117db57506117ab610f2d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bc657601560149054906101000a900460ff1661186a576117fc610f2d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611860906133a5565b60405180910390fd5b5b6016548111156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613411565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119535750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906134a3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a3f57601754816119f484610d84565b6119fe91906134c3565b10611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613569565b60405180910390fd5b5b6000611a4a30610d84565b9050600060185482101590506016548210611a655760165491505b808015611a7d575060158054906101000a900460ff16155b8015611ad75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611aef5750601560169054906101000a900460ff165b8015611b455750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b9b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bc357611ba982612005565b60004790506000811115611bc157611bc047611f2b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d205750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d1f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d2e5760009050611eb5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dd95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611df157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eb457600a54600c81905550600b54600d819055505b5b611ec18484848461227c565b50505050565b6000838311158290611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f069190612a2f565b60405180910390fd5b5060008385611f1e9190613589565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f93573d6000803e3d6000fd5b5050565b6000600654821115611fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd59061362f565b60405180910390fd5b6000611fe86122a9565b9050611ffd81846122d490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203c5761203b61364f565b5b60405190808252806020026020018201604052801561206a5781602001602082028036833780820191505090505b509050308160008151811061208257612081612fb3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d9190612f5d565b8160018151811061216157612160612fb3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ce565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161222c959493929190613777565b600060405180830381600087803b15801561224657600080fd5b505af115801561225a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061228a5761228961231e565b5b61229584848461235b565b806122a3576122a2612526565b5b50505050565b60008060006122b661253a565b915091506122cd81836122d490919063ffffffff16565b9250505090565b600061231683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061259c565b905092915050565b6000600c5414801561233257506000600d54145b61235957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061236d876125ff565b9550955095509550955095506123cb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ac8161270f565b6124b684836127cc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125139190612bee565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600068056bc75e2d63100000905061257068056bc75e2d631000006006546122d490919063ffffffff16565b82101561258f5760065468056bc75e2d63100000935093505050612598565b81819350935050505b9091565b600080831182906125e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125da9190612a2f565b60405180910390fd5b50600083856125f29190613800565b9050809150509392505050565b600080600080600080600080600061261c8a600c54600d54612806565b925092509250600061262c6122a9565b9050600080600061263f8e87878761289c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ec7565b905092915050565b60008082846126c091906134c3565b905083811015612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc9061387d565b60405180910390fd5b8091505092915050565b60006127196122a9565b90506000612730828461292590919063ffffffff16565b905061278481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127e18260065461266790919063ffffffff16565b6006819055506127fc816007546126b190919063ffffffff16565b6007819055505050565b6000806000806128326064612824888a61292590919063ffffffff16565b6122d490919063ffffffff16565b9050600061285c606461284e888b61292590919063ffffffff16565b6122d490919063ffffffff16565b9050600061288582612877858c61266790919063ffffffff16565b61266790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128b5858961292590919063ffffffff16565b905060006128cc868961292590919063ffffffff16565b905060006128e3878961292590919063ffffffff16565b9050600061290c826128fe858761266790919063ffffffff16565b61266790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036129375760009050612999565b60008284612945919061389d565b90508284826129549190613800565b14612994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298b90613951565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129d95780820151818401526020810190506129be565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a018261299f565b612a0b81856129aa565b9350612a1b8185602086016129bb565b612a24816129e5565b840191505092915050565b60006020820190508181036000830152612a4981846129f6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a8682612a5b565b9050919050565b612a9681612a7b565b8114612aa157600080fd5b50565b600081359050612ab381612a8d565b92915050565b6000819050919050565b612acc81612ab9565b8114612ad757600080fd5b50565b600081359050612ae981612ac3565b92915050565b60008060408385031215612b0657612b05612a51565b5b6000612b1485828601612aa4565b9250506020612b2585828601612ada565b9150509250929050565b60008115159050919050565b612b4481612b2f565b82525050565b6000602082019050612b5f6000830184612b3b565b92915050565b6000819050919050565b6000612b8a612b85612b8084612a5b565b612b65565b612a5b565b9050919050565b6000612b9c82612b6f565b9050919050565b6000612bae82612b91565b9050919050565b612bbe81612ba3565b82525050565b6000602082019050612bd96000830184612bb5565b92915050565b612be881612ab9565b82525050565b6000602082019050612c036000830184612bdf565b92915050565b600080600060608486031215612c2257612c21612a51565b5b6000612c3086828701612aa4565b9350506020612c4186828701612aa4565b9250506040612c5286828701612ada565b9150509250925092565b600060ff82169050919050565b612c7281612c5c565b82525050565b6000602082019050612c8d6000830184612c69565b92915050565b60008060008060808587031215612cad57612cac612a51565b5b6000612cbb87828801612ada565b9450506020612ccc87828801612ada565b9350506040612cdd87828801612ada565b9250506060612cee87828801612ada565b91505092959194509250565b612d0381612a7b565b82525050565b6000602082019050612d1e6000830184612cfa565b92915050565b600060208284031215612d3a57612d39612a51565b5b6000612d4884828501612aa4565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d7657612d75612d51565b5b8235905067ffffffffffffffff811115612d9357612d92612d56565b5b602083019150836020820283011115612daf57612dae612d5b565b5b9250929050565b612dbf81612b2f565b8114612dca57600080fd5b50565b600081359050612ddc81612db6565b92915050565b600080600060408486031215612dfb57612dfa612a51565b5b600084013567ffffffffffffffff811115612e1957612e18612a56565b5b612e2586828701612d60565b93509350506020612e3886828701612dcd565b9150509250925092565b600060208284031215612e5857612e57612a51565b5b6000612e6684828501612ada565b91505092915050565b600060208284031215612e8557612e84612a51565b5b6000612e9384828501612dcd565b91505092915050565b60008060408385031215612eb357612eb2612a51565b5b6000612ec185828601612aa4565b9250506020612ed285828601612aa4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f126020836129aa565b9150612f1d82612edc565b602082019050919050565b60006020820190508181036000830152612f4181612f05565b9050919050565b600081519050612f5781612a8d565b92915050565b600060208284031215612f7357612f72612a51565b5b6000612f8184828501612f48565b91505092915050565b6000604082019050612f9f6000830185612cfa565b612fac6020830184612cfa565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061301c82612ab9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361304e5761304d612fe2565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130b56024836129aa565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131476022836129aa565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131d96025836129aa565b91506131e48261317d565b604082019050919050565b60006020820190508181036000830152613208816131cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061326b6023836129aa565b91506132768261320f565b604082019050919050565b6000602082019050818103600083015261329a8161325e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132fd6029836129aa565b9150613308826132a1565b604082019050919050565b6000602082019050818103600083015261332c816132f0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061338f603f836129aa565b915061339a82613333565b604082019050919050565b600060208201905081810360008301526133be81613382565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133fb601c836129aa565b9150613406826133c5565b602082019050919050565b6000602082019050818103600083015261342a816133ee565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061348d6023836129aa565b915061349882613431565b604082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612ab9565b91506134d983612ab9565b92508282019050808211156134f1576134f0612fe2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006135536023836129aa565b915061355e826134f7565b604082019050919050565b6000602082019050818103600083015261358281613546565b9050919050565b600061359482612ab9565b915061359f83612ab9565b92508282039050818111156135b7576135b6612fe2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613619602a836129aa565b9150613624826135bd565b604082019050919050565b600060208201905081810360008301526136488161360c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006136a361369e6136998461367e565b612b65565b612ab9565b9050919050565b6136b381613688565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ee81612a7b565b82525050565b600061370083836136e5565b60208301905092915050565b6000602082019050919050565b6000613724826136b9565b61372e81856136c4565b9350613739836136d5565b8060005b8381101561376a57815161375188826136f4565b975061375c8361370c565b92505060018101905061373d565b5085935050505092915050565b600060a08201905061378c6000830188612bdf565b61379960208301876136aa565b81810360408301526137ab8186613719565b90506137ba6060830185612cfa565b6137c76080830184612bdf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380b82612ab9565b915061381683612ab9565b925082613826576138256137d1565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613867601b836129aa565b915061387282613831565b602082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b60006138a882612ab9565b91506138b383612ab9565b92508282026138c181612ab9565b915082820484148315176138d8576138d7612fe2565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061393b6021836129aa565b9150613946826138df565b604082019050919050565b6000602082019050818103600083015261396a8161392e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f34fd4403a8099b21ce3045bbd32fb48079d00bae1955c4ed86050e875b35ee364736f6c63430008110033

Deployed Bytecode Sourcemap

3658:13222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5663:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6588:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5940:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6789:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5319:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5849:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15734:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5055:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11271:556;;;;;;;;;;;;;:::i;:::-;;12079:235;;;;;;;;;;;;;:::i;:::-;;6043:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16661:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5204:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4749:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1337:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5260:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5754:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6189:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16112:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4711:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11835:236;;;;;;;;;;;;;:::i;:::-;;16288:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6396:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16538:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16428:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5663:83;5700:13;5733:5;;;;;;;;;;;;;;;;;5726:12;;5663:83;:::o;6588:193::-;6690:4;6712:39;6721:12;:10;:12::i;:::-;6735:7;6744:6;6712:8;:39::i;:::-;6769:4;6762:11;;6588:193;;;;:::o;5007:41::-;;;;;;;;;;;;;:::o;5940:95::-;5993:7;4207:20;6013:14;;5940:95;:::o;6789:446::-;6921:4;6938:36;6948:6;6956:9;6967:6;6938:9;:36::i;:::-;6985:220;7008:6;7029:12;:10;:12::i;:::-;7056:138;7112:6;7056:138;;;;;;;;;;;;;;;;;:11;:19;7068:6;7056:19;;;;;;;;;;;;;;;:33;7076:12;:10;:12::i;:::-;7056:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6985:8;:220::i;:::-;7223:4;7216:11;;6789:446;;;;;:::o;5319:51::-;;;;:::o;5849:83::-;5890:5;3881:1;5908:16;;5849:83;:::o;15734:326::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15908:17:::1;15887:18;:38;;;;15958:18;15936:19;:40;;;;16002:11;15987:12;:26;;;;16040:12;16024:13;:28;;;;15734:326:::0;;;;:::o;5055:28::-;;;;;;;;;;;;;:::o;11271:556::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11327:35:::1;11384:42;11327:100;;11456:16;11438:15;;:34;;;;;;;;;;;;;;;;;;11517:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11499:66;;;11574:4;11581:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11499:106;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11483:13;;:122;;;;;;;;;;;;;;;;;;11648:4;11618:18;:27;11637:7;:5;:7::i;:::-;11618:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11699:4;11663:18;:33;11690:4;11663:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11756:4;11714:18;:39;11733:19;;;;;;;;;;;11714:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11811:4;11771:18;:37;11790:17;;;;;;;;;;;11771:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;11314:513;11271:556::o:0;12079:235::-;12145:19;;;;;;;;;;;12129:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12184:17;;;;;;;;;;;12168:33;;:12;:10;:12::i;:::-;:33;;;12129:72;12121:81;;;;;;12213:26;12242:21;12213:50;;12274:32;12287:18;12274:12;:32::i;:::-;12110:204;12079:235::o;6043:138::-;6109:7;6136:37;6156:7;:16;6164:7;6156:16;;;;;;;;;;;;;;;;6136:19;:37::i;:::-;6129:44;;6043:138;;;:::o;16661:214::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16758:9:::1;16754:114;16777:8;;:15;;16773:1;:19;16754:114;;;16848:8;16814:18;:31;16833:8;;16842:1;16833:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16814:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;16794:3;;;;;:::i;:::-;;;;16754:114;;;;16661:214:::0;;;:::o;5204:49::-;;;;:::o;4749:43::-;;;;;;;;;;;;;;;;;:::o;1337:79::-;1375:7;1402:6;;;;;;;;;;;1395:13;;1337:79;:::o;5260:52::-;;;;:::o;5754:87::-;5793:13;5826:7;;;;;;;;;;;;;;;;;5819:14;;5754:87;:::o;6189:199::-;6294:4;6316:42;6326:12;:10;:12::i;:::-;6340:9;6351:6;6316:9;:42::i;:::-;6376:4;6369:11;;6189:199;;;;:::o;16112:124::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16210:18:::1;16188:19;:40;;;;16112:124:::0;:::o;4711:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;11835:236::-;11901:19;;;;;;;;;;;11885:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;11940:17;;;;;;;;;;;11924:33;;:12;:10;:12::i;:::-;:33;;;11885:72;11877:81;;;;;;11969:23;11995:24;12013:4;11995:9;:24::i;:::-;11969:50;;12030:33;12047:15;12030:16;:33::i;:::-;11866:205;11835:236::o;16288:101::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16369:12:::1;16355:11;;:26;;;;;;;;;;;;;;;;;;16288:101:::0;:::o;6396:184::-;6513:7;6545:11;:18;6557:5;6545:18;;;;;;;;;;;;;;;:27;6564:7;6545:27;;;;;;;;;;;;;;;;6538:34;;6396:184;;;;:::o;16538:115::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16632:13:::1;16615:14;:30;;;;16538:115:::0;:::o;16428:102::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16511:11:::1;16496:12;:26;;;;16428:102:::0;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;7950:369::-;8094:1;8077:19;;:5;:19;;;8069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8175:1;8156:21;;:7;:21;;;8148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8257:6;8227:11;:18;8239:5;8227:18;;;;;;;;;;;;;;;:27;8246:7;8227:27;;;;;;;;;;;;;;;:36;;;;8295:7;8279:32;;8288:5;8279:32;;;8304:6;8279:32;;;;;;:::i;:::-;;;;;;;;7950:369;;;:::o;8327:2336::-;8465:1;8449:18;;:4;:18;;;8441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8542:1;8528:16;;:2;:16;;;8520:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8612:1;8603:6;:10;8595:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8679:4;:10;8684:4;8679:10;;;;;;;;;;;;;;;;;;;;;;;;;8678:11;:24;;;;;8694:4;:8;8699:2;8694:8;;;;;;;;;;;;;;;;;;;;;;;;;8693:9;8678:24;8670:33;;;;;;8728:7;:5;:7::i;:::-;8720:15;;:4;:15;;;;:32;;;;;8745:7;:5;:7::i;:::-;8739:13;;:2;:13;;;;8720:32;8716:1259;;;8809:11;;;;;;;;;;;8804:144;;8857:7;:5;:7::i;:::-;8849:15;;:4;:15;;;8841:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8804:144;8982:12;;8972:6;:22;;8964:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9051:4;:10;9056:4;9051:10;;;;;;;;;;;;;;;;;;;;;;;;;9050:11;:24;;;;;9066:4;:8;9071:2;9066:8;;;;;;;;;;;;;;;;;;;;;;;;;9065:9;9050:24;9042:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9140:13;;;;;;;;;;;9134:19;;:2;:19;;;9131:146;;9207:14;;9198:6;9182:13;9192:2;9182:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9174:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9131:146;9293:28;9324:24;9342:4;9324:9;:24::i;:::-;9293:55;;9363:12;9402:19;;9378:20;:43;;9363:58;;9465:12;;9441:20;:36;9438:124;;9534:12;;9511:35;;9438:124;9582:7;:18;;;;;9594:6;;;;;;;;;;9593:7;9582:18;:43;;;;;9612:13;;;;;;;;;;;9604:21;;:4;:21;;;;9582:43;:58;;;;;9629:11;;;;;;;;;;;9582:58;:87;;;;;9645:18;:24;9664:4;9645:24;;;;;;;;;;;;;;;;;;;;;;;;;9644:25;9582:87;:114;;;;;9674:18;:22;9693:2;9674:22;;;;;;;;;;;;;;;;;;;;;;;;;9673:23;9582:114;9578:386;;;9717:38;9734:20;9717:16;:38::i;:::-;9774:26;9803:21;9774:50;;9868:1;9847:18;:22;9843:106;;;9894:35;9907:21;9894:12;:35::i;:::-;9843:106;9698:266;9578:386;8754:1221;;8716:1259;9987:12;10002:4;9987:19;;10034:18;:24;10053:4;10034:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10062:18;:22;10081:2;10062:22;;;;;;;;;;;;;;;;;;;;;;;;;10034:50;10033:102;;;;10098:13;;;;;;;;;;;10090:21;;:4;:21;;;;:44;;;;;10121:13;;;;;;;;;;;10115:19;;:2;:19;;;;10090:44;10033:102;10029:573;;;10162:5;10152:15;;10029:573;;;10227:13;;;;;;;;;;;10219:21;;:4;:21;;;:55;;;;;10258:15;;;;;;;;;;;10244:30;;:2;:30;;;;10219:55;10216:170;;;10311:18;;10295:13;:34;;;;10358:12;;10348:7;:22;;;;10216:170;10426:13;;;;;;;;;;;10420:19;;:2;:19;;;:55;;;;;10459:15;;;;;;;;;;;10443:32;;:4;:32;;;;10420:55;10416:173;;;10512:19;;10496:13;:35;;;;10560:13;;10550:7;:23;;;;10416:173;10029:573;10614:41;10629:4;10635:2;10639:6;10647:7;10614:14;:41::i;:::-;8430:2233;8327:2336;;;:::o;1909:224::-;2029:7;2062:1;2057;:6;;2065:12;2049:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2089:9;2105:1;2101;:5;;;;:::i;:::-;2089:17;;2124:1;2117:8;;;1909:224;;;;;:::o;11162:99::-;11219:17;;;;;;;;;;;:26;;:34;11246:6;11219:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11162:99;:::o;7243:323::-;7338:7;7396;;7385;:18;;7363:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7484:19;7506:10;:8;:10::i;:::-;7484:32;;7534:24;7546:11;7534:7;:11;;:24;;;;:::i;:::-;7527:31;;;7243:323;;;:::o;10671:483::-;5473:4;5464:6;;:13;;;;;;;;;;;;;;;;;;10749:21:::1;10787:1;10773:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10749:40;;10818:4;10800;10805:1;10800:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10844:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10834:4;10839:1;10834:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10877:62;10894:4;10909:15;;;;;;;;;;;10927:11;10877:8;:62::i;:::-;10950:15;;;;;;;;;;;:66;;;11031:11;11057:1;11073:4;11100;11120:15;10950:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10738:416;5509:5:::0;5500:6;;:14;;;;;;;;;;;;;;;;;;10671:483;:::o;12324:282::-;12480:7;12475:28;;12489:14;:12;:14::i;:::-;12475:28;12514:44;12532:6;12540:9;12551:6;12514:17;:44::i;:::-;12574:7;12569:29;;12583:15;:13;:15::i;:::-;12569:29;12324:282;;;;:::o;15297:164::-;15339:7;15360:15;15377;15396:19;:17;:19::i;:::-;15359:56;;;;15433:20;15445:7;15433;:11;;:20;;;;:::i;:::-;15426:27;;;;15297:164;:::o;2395:132::-;2453:7;2480:39;2484:1;2487;2480:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2473:46;;2395:132;;;;:::o;7574:235::-;7638:1;7621:13;;:18;:34;;;;;7654:1;7643:7;;:12;7621:34;7657:7;7617:47;7700:13;;7676:21;:37;;;;7742:7;;7724:15;:25;;;;7778:1;7762:13;:17;;;;7800:1;7790:7;:11;;;;7574:235;:::o;12614:610::-;12761:15;12791:23;12829:12;12856:23;12894:12;12921:13;12948:19;12959:7;12948:10;:19::i;:::-;12746:221;;;;;;;;;;;;12996:28;13016:7;12996;:15;13004:6;12996:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12978:7;:15;12986:6;12978:15;;;;;;;;;;;;;;;:46;;;;13056:39;13079:15;13056:7;:18;13064:9;13056:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13035:7;:18;13043:9;13035:18;;;;;;;;;;;;;;;:60;;;;13106:16;13116:5;13106:9;:16::i;:::-;13133:23;13145:4;13151;13133:11;:23::i;:::-;13189:9;13172:44;;13181:6;13172:44;;;13200:15;13172:44;;;;;;:::i;:::-;;;;;;;;12735:489;;;;;;12614:610;;;:::o;7817:125::-;7877:21;;7861:13;:37;;;;7919:15;;7909:7;:25;;;;7817:125::o;15469:257::-;15520:7;15529;15549:15;15567:7;;15549:25;;15585:15;4207:20;15585:25;;15635:20;4207;15635:7;;:11;;:20;;;;:::i;:::-;15625:7;:30;15621:61;;;15665:7;;4207:20;15657:25;;;;;;;;15621:61;15701:7;15710;15693:25;;;;;;15469:257;;;:::o;2535:223::-;2655:7;2687:1;2683;:5;2690:12;2675:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2714:9;2730:1;2726;:5;;;;:::i;:::-;2714:17;;2749:1;2742:8;;;2535:223;;;;;:::o;13643:619::-;13743:7;13765;13787;13809;13831;13853;13889:23;13914:12;13928:13;13958:44;13970:7;13979:13;;13994:7;;13958:11;:44::i;:::-;13888:114;;;;;;14013:19;14035:10;:8;:10::i;:::-;14013:32;;14057:15;14074:23;14099:12;14128:46;14140:7;14149:4;14155:5;14162:11;14128;:46::i;:::-;14056:118;;;;;;14193:7;14202:15;14219:4;14225:15;14242:4;14248:5;14185:69;;;;;;;;;;;;;;;;;;;13643:619;;;;;;;:::o;1765:136::-;1823:7;1850:43;1854:1;1857;1850:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1843:50;;1765:136;;;;:::o;1578:179::-;1636:7;1656:9;1672:1;1668;:5;;;;:::i;:::-;1656:17;;1697:1;1692;:6;;1684:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1748:1;1741:8;;;1578:179;;;;:::o;13232:211::-;13285:19;13307:10;:8;:10::i;:::-;13285:32;;13328:13;13344:22;13354:11;13344:5;:9;;:22;;;;:::i;:::-;13328:38;;13402:33;13429:5;13402:7;:22;13418:4;13402:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13377:7;:22;13393:4;13377:22;;;;;;;;;;;;;;;:58;;;;13274:169;;13232:211;:::o;13451:147::-;13529:17;13541:4;13529:7;;:11;;:17;;;;:::i;:::-;13519:7;:27;;;;13570:20;13585:4;13570:10;;:14;;:20;;;;:::i;:::-;13557:10;:33;;;;13451:147;;:::o;14270:477::-;14443:7;14465;14487;14522:12;14537:34;14567:3;14537:25;14549:12;14537:7;:11;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;14522:49;;14582:13;14598:28;14622:3;14598:19;14610:6;14598:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14582:44;;14637:23;14663:28;14685:5;14663:17;14675:4;14663:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14637:54;;14710:15;14727:4;14733:5;14702:37;;;;;;;;;14270:477;;;;;;;:::o;14755:534::-;14949:7;14971;14993;15028:15;15046:24;15058:11;15046:7;:11;;:24;;;;:::i;:::-;15028:42;;15081:12;15096:21;15105:11;15096:4;:8;;:21;;;;:::i;:::-;15081:36;;15128:13;15144:22;15154:11;15144:5;:9;;:22;;;;:::i;:::-;15128:38;;15177:23;15203:28;15225:5;15203:17;15215:4;15203:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15177:54;;15250:7;15259:15;15276:4;15242:39;;;;;;;;;;14755:534;;;;;;;;:::o;2141:246::-;2199:7;2228:1;2223;:6;2219:47;;2253:1;2246:8;;;;2219:47;2276:9;2292:1;2288;:5;;;;:::i;:::-;2276:17;;2321:1;2316;2312;:5;;;;:::i;:::-;:10;2304:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2378:1;2371:8;;;2141:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:765::-;5912:6;5920;5928;5936;5985:3;5973:9;5964:7;5960:23;5956:33;5953:120;;;5992:79;;:::i;:::-;5953:120;6112:1;6137:53;6182:7;6173:6;6162:9;6158:22;6137:53;:::i;:::-;6127:63;;6083:117;6239:2;6265:53;6310:7;6301:6;6290:9;6286:22;6265:53;:::i;:::-;6255:63;;6210:118;6367:2;6393:53;6438:7;6429:6;6418:9;6414:22;6393:53;:::i;:::-;6383:63;;6338:118;6495:2;6521:53;6566:7;6557:6;6546:9;6542:22;6521:53;:::i;:::-;6511:63;;6466:118;5826:765;;;;;;;:::o;6597:118::-;6684:24;6702:5;6684:24;:::i;:::-;6679:3;6672:37;6597:118;;:::o;6721:222::-;6814:4;6852:2;6841:9;6837:18;6829:26;;6865:71;6933:1;6922:9;6918:17;6909:6;6865:71;:::i;:::-;6721:222;;;;:::o;6949:329::-;7008:6;7057:2;7045:9;7036:7;7032:23;7028:32;7025:119;;;7063:79;;:::i;:::-;7025:119;7183:1;7208:53;7253:7;7244:6;7233:9;7229:22;7208:53;:::i;:::-;7198:63;;7154:117;6949:329;;;;:::o;7284:117::-;7393:1;7390;7383:12;7407:117;7516:1;7513;7506:12;7530:117;7639:1;7636;7629:12;7670:568;7743:8;7753:6;7803:3;7796:4;7788:6;7784:17;7780:27;7770:122;;7811:79;;:::i;:::-;7770:122;7924:6;7911:20;7901:30;;7954:18;7946:6;7943:30;7940:117;;;7976:79;;:::i;:::-;7940:117;8090:4;8082:6;8078:17;8066:29;;8144:3;8136:4;8128:6;8124:17;8114:8;8110:32;8107:41;8104:128;;;8151:79;;:::i;:::-;8104:128;7670:568;;;;;:::o;8244:116::-;8314:21;8329:5;8314:21;:::i;:::-;8307:5;8304:32;8294:60;;8350:1;8347;8340:12;8294:60;8244:116;:::o;8366:133::-;8409:5;8447:6;8434:20;8425:29;;8463:30;8487:5;8463:30;:::i;:::-;8366:133;;;;:::o;8505:698::-;8597:6;8605;8613;8662:2;8650:9;8641:7;8637:23;8633:32;8630:119;;;8668:79;;:::i;:::-;8630:119;8816:1;8805:9;8801:17;8788:31;8846:18;8838:6;8835:30;8832:117;;;8868:79;;:::i;:::-;8832:117;8981:80;9053:7;9044:6;9033:9;9029:22;8981:80;:::i;:::-;8963:98;;;;8759:312;9110:2;9136:50;9178:7;9169:6;9158:9;9154:22;9136:50;:::i;:::-;9126:60;;9081:115;8505:698;;;;;:::o;9209:329::-;9268:6;9317:2;9305:9;9296:7;9292:23;9288:32;9285:119;;;9323:79;;:::i;:::-;9285:119;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9209:329;;;;:::o;9544:323::-;9600:6;9649:2;9637:9;9628:7;9624:23;9620:32;9617:119;;;9655:79;;:::i;:::-;9617:119;9775:1;9800:50;9842:7;9833:6;9822:9;9818:22;9800:50;:::i;:::-;9790:60;;9746:114;9544:323;;;;:::o;9873:474::-;9941:6;9949;9998:2;9986:9;9977:7;9973:23;9969:32;9966:119;;;10004:79;;:::i;:::-;9966:119;10124:1;10149:53;10194:7;10185:6;10174:9;10170:22;10149:53;:::i;:::-;10139:63;;10095:117;10251:2;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10222:118;9873:474;;;;;:::o;10353:182::-;10493:34;10489:1;10481:6;10477:14;10470:58;10353:182;:::o;10541:366::-;10683:3;10704:67;10768:2;10763:3;10704:67;:::i;:::-;10697:74;;10780:93;10869:3;10780:93;:::i;:::-;10898:2;10893:3;10889:12;10882:19;;10541:366;;;:::o;10913:419::-;11079:4;11117:2;11106:9;11102:18;11094:26;;11166:9;11160:4;11156:20;11152:1;11141:9;11137:17;11130:47;11194:131;11320:4;11194:131;:::i;:::-;11186:139;;10913:419;;;:::o;11338:143::-;11395:5;11426:6;11420:13;11411:22;;11442:33;11469:5;11442:33;:::i;:::-;11338:143;;;;:::o;11487:351::-;11557:6;11606:2;11594:9;11585:7;11581:23;11577:32;11574:119;;;11612:79;;:::i;:::-;11574:119;11732:1;11757:64;11813:7;11804:6;11793:9;11789:22;11757:64;:::i;:::-;11747:74;;11703:128;11487:351;;;;:::o;11844:332::-;11965:4;12003:2;11992:9;11988:18;11980:26;;12016:71;12084:1;12073:9;12069:17;12060:6;12016:71;:::i;:::-;12097:72;12165:2;12154:9;12150:18;12141:6;12097:72;:::i;:::-;11844:332;;;;;:::o;12182:180::-;12230:77;12227:1;12220:88;12327:4;12324:1;12317:15;12351:4;12348:1;12341:15;12368:180;12416:77;12413:1;12406:88;12513:4;12510:1;12503:15;12537:4;12534:1;12527:15;12554:233;12593:3;12616:24;12634:5;12616:24;:::i;:::-;12607:33;;12662:66;12655:5;12652:77;12649:103;;12732:18;;:::i;:::-;12649:103;12779:1;12772:5;12768:13;12761:20;;12554:233;;;:::o;12793:223::-;12933:34;12929:1;12921:6;12917:14;12910:58;13002:6;12997:2;12989:6;12985:15;12978:31;12793:223;:::o;13022:366::-;13164:3;13185:67;13249:2;13244:3;13185:67;:::i;:::-;13178:74;;13261:93;13350:3;13261:93;:::i;:::-;13379:2;13374:3;13370:12;13363:19;;13022:366;;;:::o;13394:419::-;13560:4;13598:2;13587:9;13583:18;13575:26;;13647:9;13641:4;13637:20;13633:1;13622:9;13618:17;13611:47;13675:131;13801:4;13675:131;:::i;:::-;13667:139;;13394:419;;;:::o;13819:221::-;13959:34;13955:1;13947:6;13943:14;13936:58;14028:4;14023:2;14015:6;14011:15;14004:29;13819:221;:::o;14046:366::-;14188:3;14209:67;14273:2;14268:3;14209:67;:::i;:::-;14202:74;;14285:93;14374:3;14285:93;:::i;:::-;14403:2;14398:3;14394:12;14387:19;;14046:366;;;:::o;14418:419::-;14584:4;14622:2;14611:9;14607:18;14599:26;;14671:9;14665:4;14661:20;14657:1;14646:9;14642:17;14635:47;14699:131;14825:4;14699:131;:::i;:::-;14691:139;;14418:419;;;:::o;14843:224::-;14983:34;14979:1;14971:6;14967:14;14960:58;15052:7;15047:2;15039:6;15035:15;15028:32;14843:224;:::o;15073:366::-;15215:3;15236:67;15300:2;15295:3;15236:67;:::i;:::-;15229:74;;15312:93;15401:3;15312:93;:::i;:::-;15430:2;15425:3;15421:12;15414:19;;15073:366;;;:::o;15445:419::-;15611:4;15649:2;15638:9;15634:18;15626:26;;15698:9;15692:4;15688:20;15684:1;15673:9;15669:17;15662:47;15726:131;15852:4;15726:131;:::i;:::-;15718:139;;15445:419;;;:::o;15870:222::-;16010:34;16006:1;15998:6;15994:14;15987:58;16079:5;16074:2;16066:6;16062:15;16055:30;15870:222;:::o;16098:366::-;16240:3;16261:67;16325:2;16320:3;16261:67;:::i;:::-;16254:74;;16337:93;16426:3;16337:93;:::i;:::-;16455:2;16450:3;16446:12;16439:19;;16098:366;;;:::o;16470:419::-;16636:4;16674:2;16663:9;16659:18;16651:26;;16723:9;16717:4;16713:20;16709:1;16698:9;16694:17;16687:47;16751:131;16877:4;16751:131;:::i;:::-;16743:139;;16470:419;;;:::o;16895:228::-;17035:34;17031:1;17023:6;17019:14;17012:58;17104:11;17099:2;17091:6;17087:15;17080:36;16895:228;:::o;17129:366::-;17271:3;17292:67;17356:2;17351:3;17292:67;:::i;:::-;17285:74;;17368:93;17457:3;17368:93;:::i;:::-;17486:2;17481:3;17477:12;17470:19;;17129:366;;;:::o;17501:419::-;17667:4;17705:2;17694:9;17690:18;17682:26;;17754:9;17748:4;17744:20;17740:1;17729:9;17725:17;17718:47;17782:131;17908:4;17782:131;:::i;:::-;17774:139;;17501:419;;;:::o;17926:250::-;18066:34;18062:1;18054:6;18050:14;18043:58;18135:33;18130:2;18122:6;18118:15;18111:58;17926:250;:::o;18182:366::-;18324:3;18345:67;18409:2;18404:3;18345:67;:::i;:::-;18338:74;;18421:93;18510:3;18421:93;:::i;:::-;18539:2;18534:3;18530:12;18523:19;;18182:366;;;:::o;18554:419::-;18720:4;18758:2;18747:9;18743:18;18735:26;;18807:9;18801:4;18797:20;18793:1;18782:9;18778:17;18771:47;18835:131;18961:4;18835:131;:::i;:::-;18827:139;;18554:419;;;:::o;18979:178::-;19119:30;19115:1;19107:6;19103:14;19096:54;18979:178;:::o;19163:366::-;19305:3;19326:67;19390:2;19385:3;19326:67;:::i;:::-;19319:74;;19402:93;19491:3;19402:93;:::i;:::-;19520:2;19515:3;19511:12;19504:19;;19163:366;;;:::o;19535:419::-;19701:4;19739:2;19728:9;19724:18;19716:26;;19788:9;19782:4;19778:20;19774:1;19763:9;19759:17;19752:47;19816:131;19942:4;19816:131;:::i;:::-;19808:139;;19535:419;;;:::o;19960:222::-;20100:34;20096:1;20088:6;20084:14;20077:58;20169:5;20164:2;20156:6;20152:15;20145:30;19960:222;:::o;20188:366::-;20330:3;20351:67;20415:2;20410:3;20351:67;:::i;:::-;20344:74;;20427:93;20516:3;20427:93;:::i;:::-;20545:2;20540:3;20536:12;20529:19;;20188:366;;;:::o;20560:419::-;20726:4;20764:2;20753:9;20749:18;20741:26;;20813:9;20807:4;20803:20;20799:1;20788:9;20784:17;20777:47;20841:131;20967:4;20841:131;:::i;:::-;20833:139;;20560:419;;;:::o;20985:191::-;21025:3;21044:20;21062:1;21044:20;:::i;:::-;21039:25;;21078:20;21096:1;21078:20;:::i;:::-;21073:25;;21121:1;21118;21114:9;21107:16;;21142:3;21139:1;21136:10;21133:36;;;21149:18;;:::i;:::-;21133:36;20985:191;;;;:::o;21182:222::-;21322:34;21318:1;21310:6;21306:14;21299:58;21391:5;21386:2;21378:6;21374:15;21367:30;21182:222;:::o;21410:366::-;21552:3;21573:67;21637:2;21632:3;21573:67;:::i;:::-;21566:74;;21649:93;21738:3;21649:93;:::i;:::-;21767:2;21762:3;21758:12;21751:19;;21410:366;;;:::o;21782:419::-;21948:4;21986:2;21975:9;21971:18;21963:26;;22035:9;22029:4;22025:20;22021:1;22010:9;22006:17;21999:47;22063:131;22189:4;22063:131;:::i;:::-;22055:139;;21782:419;;;:::o;22207:194::-;22247:4;22267:20;22285:1;22267:20;:::i;:::-;22262:25;;22301:20;22319:1;22301:20;:::i;:::-;22296:25;;22345:1;22342;22338:9;22330:17;;22369:1;22363:4;22360:11;22357:37;;;22374:18;;:::i;:::-;22357:37;22207:194;;;;:::o;22407:229::-;22547:34;22543:1;22535:6;22531:14;22524:58;22616:12;22611:2;22603:6;22599:15;22592:37;22407:229;:::o;22642:366::-;22784:3;22805:67;22869:2;22864:3;22805:67;:::i;:::-;22798:74;;22881:93;22970:3;22881:93;:::i;:::-;22999:2;22994:3;22990:12;22983:19;;22642:366;;;:::o;23014:419::-;23180:4;23218:2;23207:9;23203:18;23195:26;;23267:9;23261:4;23257:20;23253:1;23242:9;23238:17;23231:47;23295:131;23421:4;23295:131;:::i;:::-;23287:139;;23014:419;;;:::o;23439:180::-;23487:77;23484:1;23477:88;23584:4;23581:1;23574:15;23608:4;23605:1;23598:15;23625:85;23670:7;23699:5;23688:16;;23625:85;;;:::o;23716:158::-;23774:9;23807:61;23825:42;23834:32;23860:5;23834:32;:::i;:::-;23825:42;:::i;:::-;23807:61;:::i;:::-;23794:74;;23716:158;;;:::o;23880:147::-;23975:45;24014:5;23975:45;:::i;:::-;23970:3;23963:58;23880:147;;:::o;24033:114::-;24100:6;24134:5;24128:12;24118:22;;24033:114;;;:::o;24153:184::-;24252:11;24286:6;24281:3;24274:19;24326:4;24321:3;24317:14;24302:29;;24153:184;;;;:::o;24343:132::-;24410:4;24433:3;24425:11;;24463:4;24458:3;24454:14;24446:22;;24343:132;;;:::o;24481:108::-;24558:24;24576:5;24558:24;:::i;:::-;24553:3;24546:37;24481:108;;:::o;24595:179::-;24664:10;24685:46;24727:3;24719:6;24685:46;:::i;:::-;24763:4;24758:3;24754:14;24740:28;;24595:179;;;;:::o;24780:113::-;24850:4;24882;24877:3;24873:14;24865:22;;24780:113;;;:::o;24929:732::-;25048:3;25077:54;25125:5;25077:54;:::i;:::-;25147:86;25226:6;25221:3;25147:86;:::i;:::-;25140:93;;25257:56;25307:5;25257:56;:::i;:::-;25336:7;25367:1;25352:284;25377:6;25374:1;25371:13;25352:284;;;25453:6;25447:13;25480:63;25539:3;25524:13;25480:63;:::i;:::-;25473:70;;25566:60;25619:6;25566:60;:::i;:::-;25556:70;;25412:224;25399:1;25396;25392:9;25387:14;;25352:284;;;25356:14;25652:3;25645:10;;25053:608;;;24929:732;;;;:::o;25667:831::-;25930:4;25968:3;25957:9;25953:19;25945:27;;25982:71;26050:1;26039:9;26035:17;26026:6;25982:71;:::i;:::-;26063:80;26139:2;26128:9;26124:18;26115:6;26063:80;:::i;:::-;26190:9;26184:4;26180:20;26175:2;26164:9;26160:18;26153:48;26218:108;26321:4;26312:6;26218:108;:::i;:::-;26210:116;;26336:72;26404:2;26393:9;26389:18;26380:6;26336:72;:::i;:::-;26418:73;26486:3;26475:9;26471:19;26462:6;26418:73;:::i;:::-;25667:831;;;;;;;;:::o;26504:180::-;26552:77;26549:1;26542:88;26649:4;26646:1;26639:15;26673:4;26670:1;26663:15;26690:185;26730:1;26747:20;26765:1;26747:20;:::i;:::-;26742:25;;26781:20;26799:1;26781:20;:::i;:::-;26776:25;;26820:1;26810:35;;26825:18;;:::i;:::-;26810:35;26867:1;26864;26860:9;26855:14;;26690:185;;;;:::o;26881:177::-;27021:29;27017:1;27009:6;27005:14;26998:53;26881:177;:::o;27064:366::-;27206:3;27227:67;27291:2;27286:3;27227:67;:::i;:::-;27220:74;;27303:93;27392:3;27303:93;:::i;:::-;27421:2;27416:3;27412:12;27405:19;;27064:366;;;:::o;27436:419::-;27602:4;27640:2;27629:9;27625:18;27617:26;;27689:9;27683:4;27679:20;27675:1;27664:9;27660:17;27653:47;27717:131;27843:4;27717:131;:::i;:::-;27709:139;;27436:419;;;:::o;27861:410::-;27901:7;27924:20;27942:1;27924:20;:::i;:::-;27919:25;;27958:20;27976:1;27958:20;:::i;:::-;27953:25;;28013:1;28010;28006:9;28035:30;28053:11;28035:30;:::i;:::-;28024:41;;28214:1;28205:7;28201:15;28198:1;28195:22;28175:1;28168:9;28148:83;28125:139;;28244:18;;:::i;:::-;28125:139;27909:362;27861:410;;;;:::o;28277:220::-;28417:34;28413:1;28405:6;28401:14;28394:58;28486:3;28481:2;28473:6;28469:15;28462:28;28277:220;:::o;28503:366::-;28645:3;28666:67;28730:2;28725:3;28666:67;:::i;:::-;28659:74;;28742:93;28831:3;28742:93;:::i;:::-;28860:2;28855:3;28851:12;28844:19;;28503:366;;;:::o;28875:419::-;29041:4;29079:2;29068:9;29064:18;29056:26;;29128:9;29122:4;29118:20;29114:1;29103:9;29099:17;29092:47;29156:131;29282:4;29156:131;:::i;:::-;29148:139;;28875:419;;;:::o

Swarm Source

ipfs://f34fd4403a8099b21ce3045bbd32fb48079d00bae1955c4ed86050e875b35ee3

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.