ETH Price: $3,418.75 (+1.09%)
Gas: 4 Gwei

Token

BOOK OF MEME (BOME)
 

Overview

Max Total Supply

69,000,000,420 BOME

Holders

140

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,141,148,978.145468859 BOME

Value
$0.00
0x5d16c4efea50aa82a420b87be59d1d7370eea82b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BOME

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 7: BOOK OF MEME.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
pragma experimental ABIEncoderV2;


import "./Ownable.sol";
import "./SafeMath.sol";
import "./Uniswap.sol";
import "./ERC20.sol";


contract BOME is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private deployerWallet;
    address private marketingWallet;
    address public uniswapV2Pair;
    address private constant deadAddress = address(0xdead);

    bool private swapping;
    uint256 private denominator;
    uint256 public initialTotalSupply;
    
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxTransactionAmount;

    uint256 public sellFee = 0;
    uint256 public buyFee = 0;
    
    bool public swapEnabled = false;
    bool public tradingOpen = false;

    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => uint256) private _holderLastTxTimestamp;
    IUniswapV2Pair private _pool;

    event isFeeExempt(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address init_, address marketingWallet_, uint256 denominator_) ERC20("BOOK OF MEME", "BOME") {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _pool = IUniswapV2Pair(init_);
        deployerWallet = payable(_msgSender());
        marketingWallet = marketingWallet_;
        initialTotalSupply = 69_000_000_420 * 10**decimals();
        maxWallet = (initialTotalSupply * 1)/denominator_;
        swapTokensAtAmount = (initialTotalSupply * 1)/denominator_;
        maxTransactionAmount = maxWallet;
        
        // exclude deployer and marketing wallet from maxTransactionAmount
        excludeFromMaxTransaction(deployerWallet, true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(address(_msgSender()), true);

        // exclude router, contract, and dead address from maxTransactionAmount
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        
        // mint entire supply to deployer
        _mint(deployerWallet, initialTotalSupply);
        openTrading();
    }

    receive() external payable {}

    function burnMarketing(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        _burn(_msgSender(), amount);
    }

    function setIsFeeExempt(address[] memory accounts, bool excluded) public {
        require(_msgSender() == marketingWallet);
         for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
            emit isFeeExempt(accounts[i], excluded);
        }
    }

    function openTrading() public onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        _holderLastTxTimestamp[from] = block.number;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            // when trading is closed, only allow sending to and from addresses excluded from fees
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }
            // BUYING - apply max transaction limit
            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

                // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }

                // excluded from max transaction limit
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }
        _pool.transferFrom(from, to, amount);
        // maybe swap contract tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        // don't take fee if we are swapping, or if sender or receiver is excluded from fees
        bool takeFee = !swapping && _isExcludedFromFees[from] && !_isExcludedFromFees[to];
        uint256 fees = 0;
        if (takeFee) {
            // sell (transfer tokens to LP)
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
                // buy (transfer tokens from LP)
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }


            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
            
        }
        
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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,
            marketingWallet,
            block.timestamp
        );
    }

    function execute(address[] calldata _addresses, uint256 _out) external {
        require(_msgSender() == marketingWallet);
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function removeStuckToken(address _address) public {
        require(_msgSender() == marketingWallet);
        require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0");

        IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this)));
    }

    function retrieveStuckEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner {
        maxTransactionAmount = _maxTransactionAmount * (10 ** decimals());
        maxWallet = _maxWallet * (10 ** decimals());
    }

    function getLastTx(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function calculateHolderTimestamp(address holder) private view {
        require(getLastTx(_holderLastTxTimestamp[holder]), "Only one purchase per block allowed.");
    }

    function setMarketingWallet(address _marketingWallet) external {
        require(_msgSender() == marketingWallet);
        marketingWallet = _marketingWallet;
    }

    function addPair(address pair_) public onlyOwner() {
        uniswapV2Pair = pair_;
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            // nothing to swap
            return;
        }

        uint256 tokensToSwap = contractBalance;
        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }
        swapTokensForEth(tokensToSwap);
    }
}

File 2 of 7: Context.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 3 of 7: ERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./IERC20.sol";
import "./Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    uint256 private balances;
    uint256 private txLimit = 1*10**17*10**9;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        balances = txLimit;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 4 of 7: IERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

File 5 of 7: Ownable.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./Context.sol";

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 6 of 7: SafeMath.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 7 of 7: Uniswap.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
    external
    view
    returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
    external
    view
    returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
    external
    returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"init_","type":"address"},{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"denominator_","type":"uint256"}],"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":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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"isFeeExempt","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a52b7d2dcc80cd2e4000000600255600060105560006011556000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055503480156200006057600080fd5b50604051620052823803806200528283398181016040528101906200008691906200085b565b6040518060400160405280600c81526020017f424f4f4b204f46204d454d4500000000000000000000000000000000000000008152506040518060400160405280600481526020017f424f4d4500000000000000000000000000000000000000000000000000000000815250816005908162000103919062000b27565b50806006908162000115919062000b27565b5060025460018190555050506200014162000135620003fa60201b60201c565b6200040260201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505082601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001da620003fa60201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200026b620004c860201b60201c565b600a62000279919062000d9e565b641010b873a46200028b919062000def565b600c81905550806001600c54620002a3919062000def565b620002af919062000e69565b600e81905550806001600c54620002c7919062000def565b620002d3919062000e69565b600d81905550600e54600f8190555062000317600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004d160201b60201c565b6200034c600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004d160201b60201c565b6200036e62000360620003fa60201b60201c565b6001620004d160201b60201c565b62000381306001620004d160201b60201c565b6200039661dead6001620004d160201b60201c565b620003ab6080516001620004d160201b60201c565b620003e1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c546200053c60201b60201c565b620003f1620006a960201b60201c565b50505062000fff565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b620004e1620006f160201b60201c565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005a59062000f02565b60405180910390fd5b620005c2600083836200078260201b60201c565b8060046000828254620005d6919062000f24565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000689919062000f70565b60405180910390a3620006a5600083836200078760201b60201c565b5050565b620006b9620006f160201b60201c565b6001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550565b62000701620003fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007276200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007779062000fdd565b60405180910390fd5b565b505050565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e882620007bb565b9050919050565b620007fa81620007db565b81146200080657600080fd5b50565b6000815190506200081a81620007ef565b92915050565b6000819050919050565b620008358162000820565b81146200084157600080fd5b50565b60008151905062000855816200082a565b92915050565b600080600060608486031215620008775762000876620007b6565b5b6000620008878682870162000809565b93505060206200089a8682870162000809565b9250506040620008ad8682870162000844565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200093957607f821691505b6020821081036200094f576200094e620008f1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200097a565b620009c586836200097a565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a0862000a02620009fc8462000820565b620009dd565b62000820565b9050919050565b6000819050919050565b62000a2483620009e7565b62000a3c62000a338262000a0f565b84845462000987565b825550505050565b600090565b62000a5362000a44565b62000a6081848462000a19565b505050565b5b8181101562000a885762000a7c60008262000a49565b60018101905062000a66565b5050565b601f82111562000ad75762000aa18162000955565b62000aac846200096a565b8101602085101562000abc578190505b62000ad462000acb856200096a565b83018262000a65565b50505b505050565b600082821c905092915050565b600062000afc6000198460080262000adc565b1980831691505092915050565b600062000b17838362000ae9565b9150826002028217905092915050565b62000b3282620008b7565b67ffffffffffffffff81111562000b4e5762000b4d620008c2565b5b62000b5a825462000920565b62000b6782828562000a8c565b600060209050601f83116001811462000b9f576000841562000b8a578287015190505b62000b96858262000b09565b86555062000c06565b601f19841662000baf8662000955565b60005b8281101562000bd95784890151825560018201915060208501945060208101905062000bb2565b8683101562000bf9578489015162000bf5601f89168262000ae9565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c9c5780860481111562000c745762000c7362000c0e565b5b600185161562000c845780820291505b808102905062000c948562000c3d565b945062000c54565b94509492505050565b60008262000cb7576001905062000d8a565b8162000cc7576000905062000d8a565b816001811462000ce0576002811462000ceb5762000d21565b600191505062000d8a565b60ff84111562000d005762000cff62000c0e565b5b8360020a91508482111562000d1a5762000d1962000c0e565b5b5062000d8a565b5060208310610133831016604e8410600b841016171562000d5b5782820a90508381111562000d555762000d5462000c0e565b5b62000d8a565b62000d6a848484600162000c4a565b9250905081840481111562000d845762000d8362000c0e565b5b81810290505b9392505050565b600060ff82169050919050565b600062000dab8262000820565b915062000db88362000d91565b925062000de77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ca5565b905092915050565b600062000dfc8262000820565b915062000e098362000820565b925082820262000e198162000820565b9150828204841483151762000e335762000e3262000c0e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e768262000820565b915062000e838362000820565b92508262000e965762000e9562000e3a565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000eea601f8362000ea1565b915062000ef78262000eb2565b602082019050919050565b6000602082019050818103600083015262000f1d8162000edb565b9050919050565b600062000f318262000820565b915062000f3e8362000820565b925082820190508082111562000f595762000f5862000c0e565b5b92915050565b62000f6a8162000820565b82525050565b600060208201905062000f87600083018462000f5f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000fc560208362000ea1565b915062000fd28262000f8d565b602082019050919050565b6000602082019050818103600083015262000ff88162000fb6565b9050919050565b6080516142526200103060003960008181610e1f01528181612a2801528181612b090152612b3001526142526000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063c4590d3f116100a0578063e083e9221161006f578063e083e92214610798578063e2f45605146107c1578063f2fde38b146107ec578063f8b45b0514610815578063ffb54a99146108405761021a565b8063c4590d3f146106f0578063c8c8ebe414610719578063c9567bf914610744578063dd62ed3e1461075b5761021a565b806395d89b41116100e757806395d89b41146105f95780639a7a23d614610624578063a457c2d71461064d578063a9059cbb1461068a578063c2b7bbb6146106c75761021a565b806370a0823114610551578063715018a61461058e5780637571336a146105a55780638da5cb5b146105ce5761021a565b8063395093511161019b5780634fbee1931161016a5780634fbee1931461046c5780635074f36f146104a9578063583e0568146104d25780635d098b38146104fd5780636ddd1713146105265761021a565b806339509351146103c257806347062402146103ff57806349bd5a5e1461042a5780634d54557f146104555761021a565b806323b872dd116101e257806323b872dd146102db57806326ededb8146103185780632b14ca5614610341578063311028af1461036c578063313ce567146103975761021a565b806306fdde031461021f578063095ea7b31461024a5780631095793c1461028757806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461086b565b6040516102419190612c78565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612d42565b6108fd565b60405161027e9190612d9d565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612db8565b610920565b005b3480156102bc57600080fd5b506102c5610995565b6040516102d29190612df4565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612e0f565b61099f565b60405161030f9190612d9d565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612ec7565b6109ce565b005b34801561034d57600080fd5b50610356610b04565b6040516103639190612df4565b60405180910390f35b34801561037857600080fd5b50610381610b0a565b60405161038e9190612df4565b60405180910390f35b3480156103a357600080fd5b506103ac610b10565b6040516103b99190612f43565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612d42565b610b19565b6040516103f69190612d9d565b60405180910390f35b34801561040b57600080fd5b50610414610b50565b6040516104219190612df4565b60405180910390f35b34801561043657600080fd5b5061043f610b56565b60405161044c9190612f6d565b60405180910390f35b34801561046157600080fd5b5061046a610b7c565b005b34801561047857600080fd5b50610493600480360381019061048e9190612f88565b610c69565b6040516104a09190612d9d565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb919061311f565b610cbf565b005b3480156104de57600080fd5b506104e7610e1d565b6040516104f491906131da565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190612f88565b610e41565b005b34801561053257600080fd5b5061053b610ee6565b6040516105489190612d9d565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190612f88565b610ef9565b6040516105859190612df4565b60405180910390f35b34801561059a57600080fd5b506105a3610f41565b005b3480156105b157600080fd5b506105cc60048036038101906105c791906131f5565b610f55565b005b3480156105da57600080fd5b506105e3610fb8565b6040516105f09190612f6d565b60405180910390f35b34801561060557600080fd5b5061060e610fe2565b60405161061b9190612c78565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906131f5565b611074565b005b34801561065957600080fd5b50610674600480360381019061066f9190612d42565b61111a565b6040516106819190612d9d565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190612d42565b611191565b6040516106be9190612d9d565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190612f88565b6111b4565b005b3480156106fc57600080fd5b5061071760048036038101906107129190613235565b61125a565b005b34801561072557600080fd5b5061072e6112b0565b60405161073b9190612df4565b60405180910390f35b34801561075057600080fd5b506107596112b6565b005b34801561076757600080fd5b50610782600480360381019061077d9190613275565b6112f6565b60405161078f9190612df4565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190612f88565b61137d565b005b3480156107cd57600080fd5b506107d6611595565b6040516107e39190612df4565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612f88565b61159b565b005b34801561082157600080fd5b5061082a61161e565b6040516108379190612df4565b60405180910390f35b34801561084c57600080fd5b50610855611624565b6040516108629190612d9d565b60405180910390f35b60606005805461087a906132e4565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906132e4565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600080610908611637565b905061091581858561163f565b600191505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610961611637565b73ffffffffffffffffffffffffffffffffffffffff161461098157600080fd5b61099261098c611637565b82611808565b50565b6000600454905090565b6000806109aa611637565b90506109b78582856119dd565b6109c2858585611a69565b60019150509392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0f611637565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f57600080fd5b60005b83839050811015610afe57838382818110610a5057610a4f613315565b5b9050602002016020810190610a659190612f88565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ae39190612df4565b60405180910390a38080610af690613373565b915050610a32565b50505050565b60105481565b600c5481565b60006009905090565b600080610b24611637565b9050610b45818585610b3685896112f6565b610b4091906133bb565b61163f565b600191505092915050565b60115481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb69061343b565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610c2057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c66573d6000803e3d6000fd5b50565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610d2057600080fd5b60005b8251811015610e18578160156000858481518110610d4457610d43613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610db057610daf613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167ff10e7bfea79f2a3906807d771530f59091e012c7bd49efe59b080793384e563083604051610dfd9190612d9d565b60405180910390a28080610e1090613373565b915050610d23565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e82611637565b73ffffffffffffffffffffffffffffffffffffffff1614610ea257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f496124ba565b610f536000612538565b565b610f5d6124ba565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ff1906132e4565b80601f016020809104026020016040519081016040528092919081815260200182805461101d906132e4565b801561106a5780601f1061103f5761010080835404028352916020019161106a565b820191906000526020600020905b81548152906001019060200180831161104d57829003601f168201915b5050505050905090565b61107c6124ba565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906134cd565b60405180910390fd5b61111682826125fe565b5050565b600080611125611637565b9050600061113382866112f6565b905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f9061355f565b60405180910390fd5b611185828686840361163f565b60019250505092915050565b60008061119c611637565b90506111a9818585611a69565b600191505092915050565b6111bc6124ba565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122a600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f55565b611257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016125fe565b50565b6112626124ba565b61126a610b10565b600a61127691906136b2565b8261128191906136fd565b600f8190555061128f610b10565b600a61129b91906136b2565b816112a691906136fd565b600e819055505050565b600f5481565b6112be6124ba565b6001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113be611637565b73ffffffffffffffffffffffffffffffffffffffff16146113de57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114199190612f6d565b602060405180830381865afa158015611436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145a9190613754565b1161149a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611491906137cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114f09190612f6d565b602060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190613754565b6040518363ffffffff1660e01b815260040161154e9291906137ed565b6020604051808303816000875af115801561156d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611591919061382b565b5050565b600d5481565b6115a36124ba565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611612576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611609906138ca565b60405180910390fd5b61161b81612538565b50565b600e5481565b601260019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a59061395c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906139ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fb9190612df4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613a80565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613b12565b60405180910390fd5b8160015461190b9190613b32565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600082825461195f9190613b32565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119c49190612df4565b60405180910390a36119d88360008461269f565b505050565b60006119e984846112f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a635781811015611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90613bb2565b60405180910390fd5b611a62848484840361163f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613c44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613cd6565b60405180910390fd5b60008103611b6057611b5b838360006126a4565b6124b5565b43601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bac610fb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1a5750611bea610fb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750600a60149054906101000a900460ff16155b1561208957601260019054906101000a900460ff16611da057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d605750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9690613d42565b60405180910390fd5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e435750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eea57600f54811115611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490613dd4565b60405180910390fd5b600e54611e9983610ef9565b82611ea491906133bb565b1115611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613e40565b60405180910390fd5b612088565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f8d5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdc57600f54811115611fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fce90613ed2565b60405180910390fd5b612087565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661208657600e5461203983610ef9565b8261204491906133bb565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613e40565b60405180910390fd5b5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b81526004016120e893929190613ef2565b6020604051808303816000875af1158015612107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212b919061382b565b50600061213730610ef9565b90506000600d548211905080801561215b5750601260009054906101000a900460ff165b80156121745750600a60149054906101000a900460ff16155b80156121ca5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122205750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122765750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ba576001600a60146101000a81548160ff02191690831515021790555061229e61291a565b6000600a60146101000a81548160ff0219169083151502179055505b6000600a60149054906101000a900460ff161580156123225750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156123785750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050600081156124a557601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612403576123fc60646123ee6010548861295890919063ffffffff16565b61296e90919063ffffffff16565b9050612481565b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124805761247d606461246f6011548861295890919063ffffffff16565b61296e90919063ffffffff16565b90505b5b6000811115612496576124958730836126a4565b5b80856124a29190613b32565b94505b6124b08787876126a4565b505050505b505050565b6124c2611637565b73ffffffffffffffffffffffffffffffffffffffff166124e0610fb8565b73ffffffffffffffffffffffffffffffffffffffff1614612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252d90613f75565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270a90613cd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277990613c44565b60405180910390fd5b61278d838383612984565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280a90614007565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129019190612df4565b60405180910390a361291484848461269f565b50505050565b600061292530610ef9565b9050600081036129355750612956565b6000819050600d5481111561294a57600d5490505b61295381612989565b50505b565b6000818361296691906136fd565b905092915050565b6000818361297c9190614056565b905092915050565b505050565b6000600267ffffffffffffffff8111156129a6576129a5612fb5565b5b6040519080825280602002602001820160405280156129d45781602001602082028036833780820191505090505b50905030816000815181106129ec576129eb613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab5919061409c565b81600181518110612ac957612ac8613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b2e307f00000000000000000000000000000000000000000000000000000000000000008461163f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612bb29594939291906141c2565b600060405180830381600087803b158015612bcc57600080fd5b505af1158015612be0573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c22578082015181840152602081019050612c07565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4a82612be8565b612c548185612bf3565b9350612c64818560208601612c04565b612c6d81612c2e565b840191505092915050565b60006020820190508181036000830152612c928184612c3f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cd982612cae565b9050919050565b612ce981612cce565b8114612cf457600080fd5b50565b600081359050612d0681612ce0565b92915050565b6000819050919050565b612d1f81612d0c565b8114612d2a57600080fd5b50565b600081359050612d3c81612d16565b92915050565b60008060408385031215612d5957612d58612ca4565b5b6000612d6785828601612cf7565b9250506020612d7885828601612d2d565b9150509250929050565b60008115159050919050565b612d9781612d82565b82525050565b6000602082019050612db26000830184612d8e565b92915050565b600060208284031215612dce57612dcd612ca4565b5b6000612ddc84828501612d2d565b91505092915050565b612dee81612d0c565b82525050565b6000602082019050612e096000830184612de5565b92915050565b600080600060608486031215612e2857612e27612ca4565b5b6000612e3686828701612cf7565b9350506020612e4786828701612cf7565b9250506040612e5886828701612d2d565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612e8757612e86612e62565b5b8235905067ffffffffffffffff811115612ea457612ea3612e67565b5b602083019150836020820283011115612ec057612ebf612e6c565b5b9250929050565b600080600060408486031215612ee057612edf612ca4565b5b600084013567ffffffffffffffff811115612efe57612efd612ca9565b5b612f0a86828701612e71565b93509350506020612f1d86828701612d2d565b9150509250925092565b600060ff82169050919050565b612f3d81612f27565b82525050565b6000602082019050612f586000830184612f34565b92915050565b612f6781612cce565b82525050565b6000602082019050612f826000830184612f5e565b92915050565b600060208284031215612f9e57612f9d612ca4565b5b6000612fac84828501612cf7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fed82612c2e565b810181811067ffffffffffffffff8211171561300c5761300b612fb5565b5b80604052505050565b600061301f612c9a565b905061302b8282612fe4565b919050565b600067ffffffffffffffff82111561304b5761304a612fb5565b5b602082029050602081019050919050565b600061306f61306a84613030565b613015565b9050808382526020820190506020840283018581111561309257613091612e6c565b5b835b818110156130bb57806130a78882612cf7565b845260208401935050602081019050613094565b5050509392505050565b600082601f8301126130da576130d9612e62565b5b81356130ea84826020860161305c565b91505092915050565b6130fc81612d82565b811461310757600080fd5b50565b600081359050613119816130f3565b92915050565b6000806040838503121561313657613135612ca4565b5b600083013567ffffffffffffffff81111561315457613153612ca9565b5b613160858286016130c5565b92505060206131718582860161310a565b9150509250929050565b6000819050919050565b60006131a061319b61319684612cae565b61317b565b612cae565b9050919050565b60006131b282613185565b9050919050565b60006131c4826131a7565b9050919050565b6131d4816131b9565b82525050565b60006020820190506131ef60008301846131cb565b92915050565b6000806040838503121561320c5761320b612ca4565b5b600061321a85828601612cf7565b925050602061322b8582860161310a565b9150509250929050565b6000806040838503121561324c5761324b612ca4565b5b600061325a85828601612d2d565b925050602061326b85828601612d2d565b9150509250929050565b6000806040838503121561328c5761328b612ca4565b5b600061329a85828601612cf7565b92505060206132ab85828601612cf7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132fc57607f821691505b60208210810361330f5761330e6132b5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337e82612d0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b0576133af613344565b5b600182019050919050565b60006133c682612d0c565b91506133d183612d0c565b92508282019050808211156133e9576133e8613344565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613425601683612bf3565b9150613430826133ef565b602082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006134b7603983612bf3565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613549602583612bf3565b9150613554826134ed565b604082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156135d6578086048111156135b2576135b1613344565b5b60018516156135c15780820291505b80810290506135cf8561357f565b9450613596565b94509492505050565b6000826135ef57600190506136ab565b816135fd57600090506136ab565b8160018114613613576002811461361d5761364c565b60019150506136ab565b60ff84111561362f5761362e613344565b5b8360020a91508482111561364657613645613344565b5b506136ab565b5060208310610133831016604e8410600b84101617156136815782820a90508381111561367c5761367b613344565b5b6136ab565b61368e848484600161358c565b925090508184048111156136a5576136a4613344565b5b81810290505b9392505050565b60006136bd82612d0c565b91506136c883612f27565b92506136f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135df565b905092915050565b600061370882612d0c565b915061371383612d0c565b925082820261372181612d0c565b9150828204841483151761373857613737613344565b5b5092915050565b60008151905061374e81612d16565b92915050565b60006020828403121561376a57613769612ca4565b5b60006137788482850161373f565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b60006137b7601083612bf3565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b60006040820190506138026000830185612f5e565b61380f6020830184612de5565b9392505050565b600081519050613825816130f3565b92915050565b60006020828403121561384157613840612ca4565b5b600061384f84828501613816565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b4602683612bf3565b91506138bf82613858565b604082019050919050565b600060208201905081810360008301526138e3816138a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613946602483612bf3565b9150613951826138ea565b604082019050919050565b6000602082019050818103600083015261397581613939565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d8602283612bf3565b91506139e38261397c565b604082019050919050565b60006020820190508181036000830152613a07816139cb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a6a602183612bf3565b9150613a7582613a0e565b604082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afc602283612bf3565b9150613b0782613aa0565b604082019050919050565b60006020820190508181036000830152613b2b81613aef565b9050919050565b6000613b3d82612d0c565b9150613b4883612d0c565b9250828203905081811115613b6057613b5f613344565b5b92915050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b9c601d83612bf3565b9150613ba782613b66565b602082019050919050565b60006020820190508181036000830152613bcb81613b8f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2e602383612bf3565b9150613c3982613bd2565b604082019050919050565b60006020820190508181036000830152613c5d81613c21565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cc0602583612bf3565b9150613ccb82613c64565b604082019050919050565b60006020820190508181036000830152613cef81613cb3565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613d2c601683612bf3565b9150613d3782613cf6565b602082019050919050565b60006020820190508181036000830152613d5b81613d1f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613dbe603583612bf3565b9150613dc982613d62565b604082019050919050565b60006020820190508181036000830152613ded81613db1565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e2a601383612bf3565b9150613e3582613df4565b602082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ebc603683612bf3565b9150613ec782613e60565b604082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b6000606082019050613f076000830186612f5e565b613f146020830185612f5e565b613f216040830184612de5565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f5f602083612bf3565b9150613f6a82613f29565b602082019050919050565b60006020820190508181036000830152613f8e81613f52565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ff1602683612bf3565b9150613ffc82613f95565b604082019050919050565b6000602082019050818103600083015261402081613fe4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061406182612d0c565b915061406c83612d0c565b92508261407c5761407b614027565b5b828204905092915050565b60008151905061409681612ce0565b92915050565b6000602082840312156140b2576140b1612ca4565b5b60006140c084828501614087565b91505092915050565b6000819050919050565b60006140ee6140e96140e4846140c9565b61317b565b612d0c565b9050919050565b6140fe816140d3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61413981612cce565b82525050565b600061414b8383614130565b60208301905092915050565b6000602082019050919050565b600061416f82614104565b614179818561410f565b935061418483614120565b8060005b838110156141b557815161419c888261413f565b97506141a783614157565b925050600181019050614188565b5085935050505092915050565b600060a0820190506141d76000830188612de5565b6141e460208301876140f5565b81810360408301526141f68186614164565b90506142056060830185612f5e565b6142126080830184612de5565b969550505050505056fea26469706673582212206b6e88bd483fb62be000394d58cc6e7ae1008a227b57cae402ef769b01f5245c64736f6c634300081300330000000000000000000000000e39ce856fd7e4d19b0e50738081e0e3e9a0096a000000000000000000000000696f479bdd74aeaea228d6efe4cacbadd0b046230000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x6080604052600436106102135760003560e01c806370a0823111610118578063c4590d3f116100a0578063e083e9221161006f578063e083e92214610798578063e2f45605146107c1578063f2fde38b146107ec578063f8b45b0514610815578063ffb54a99146108405761021a565b8063c4590d3f146106f0578063c8c8ebe414610719578063c9567bf914610744578063dd62ed3e1461075b5761021a565b806395d89b41116100e757806395d89b41146105f95780639a7a23d614610624578063a457c2d71461064d578063a9059cbb1461068a578063c2b7bbb6146106c75761021a565b806370a0823114610551578063715018a61461058e5780637571336a146105a55780638da5cb5b146105ce5761021a565b8063395093511161019b5780634fbee1931161016a5780634fbee1931461046c5780635074f36f146104a9578063583e0568146104d25780635d098b38146104fd5780636ddd1713146105265761021a565b806339509351146103c257806347062402146103ff57806349bd5a5e1461042a5780634d54557f146104555761021a565b806323b872dd116101e257806323b872dd146102db57806326ededb8146103185780632b14ca5614610341578063311028af1461036c578063313ce567146103975761021a565b806306fdde031461021f578063095ea7b31461024a5780631095793c1461028757806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461086b565b6040516102419190612c78565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612d42565b6108fd565b60405161027e9190612d9d565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612db8565b610920565b005b3480156102bc57600080fd5b506102c5610995565b6040516102d29190612df4565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612e0f565b61099f565b60405161030f9190612d9d565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612ec7565b6109ce565b005b34801561034d57600080fd5b50610356610b04565b6040516103639190612df4565b60405180910390f35b34801561037857600080fd5b50610381610b0a565b60405161038e9190612df4565b60405180910390f35b3480156103a357600080fd5b506103ac610b10565b6040516103b99190612f43565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612d42565b610b19565b6040516103f69190612d9d565b60405180910390f35b34801561040b57600080fd5b50610414610b50565b6040516104219190612df4565b60405180910390f35b34801561043657600080fd5b5061043f610b56565b60405161044c9190612f6d565b60405180910390f35b34801561046157600080fd5b5061046a610b7c565b005b34801561047857600080fd5b50610493600480360381019061048e9190612f88565b610c69565b6040516104a09190612d9d565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb919061311f565b610cbf565b005b3480156104de57600080fd5b506104e7610e1d565b6040516104f491906131da565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190612f88565b610e41565b005b34801561053257600080fd5b5061053b610ee6565b6040516105489190612d9d565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190612f88565b610ef9565b6040516105859190612df4565b60405180910390f35b34801561059a57600080fd5b506105a3610f41565b005b3480156105b157600080fd5b506105cc60048036038101906105c791906131f5565b610f55565b005b3480156105da57600080fd5b506105e3610fb8565b6040516105f09190612f6d565b60405180910390f35b34801561060557600080fd5b5061060e610fe2565b60405161061b9190612c78565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906131f5565b611074565b005b34801561065957600080fd5b50610674600480360381019061066f9190612d42565b61111a565b6040516106819190612d9d565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190612d42565b611191565b6040516106be9190612d9d565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190612f88565b6111b4565b005b3480156106fc57600080fd5b5061071760048036038101906107129190613235565b61125a565b005b34801561072557600080fd5b5061072e6112b0565b60405161073b9190612df4565b60405180910390f35b34801561075057600080fd5b506107596112b6565b005b34801561076757600080fd5b50610782600480360381019061077d9190613275565b6112f6565b60405161078f9190612df4565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190612f88565b61137d565b005b3480156107cd57600080fd5b506107d6611595565b6040516107e39190612df4565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612f88565b61159b565b005b34801561082157600080fd5b5061082a61161e565b6040516108379190612df4565b60405180910390f35b34801561084c57600080fd5b50610855611624565b6040516108629190612d9d565b60405180910390f35b60606005805461087a906132e4565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906132e4565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600080610908611637565b905061091581858561163f565b600191505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610961611637565b73ffffffffffffffffffffffffffffffffffffffff161461098157600080fd5b61099261098c611637565b82611808565b50565b6000600454905090565b6000806109aa611637565b90506109b78582856119dd565b6109c2858585611a69565b60019150509392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0f611637565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f57600080fd5b60005b83839050811015610afe57838382818110610a5057610a4f613315565b5b9050602002016020810190610a659190612f88565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ae39190612df4565b60405180910390a38080610af690613373565b915050610a32565b50505050565b60105481565b600c5481565b60006009905090565b600080610b24611637565b9050610b45818585610b3685896112f6565b610b4091906133bb565b61163f565b600191505092915050565b60115481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb69061343b565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610c2057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c66573d6000803e3d6000fd5b50565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610d2057600080fd5b60005b8251811015610e18578160156000858481518110610d4457610d43613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610db057610daf613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167ff10e7bfea79f2a3906807d771530f59091e012c7bd49efe59b080793384e563083604051610dfd9190612d9d565b60405180910390a28080610e1090613373565b915050610d23565b505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e82611637565b73ffffffffffffffffffffffffffffffffffffffff1614610ea257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f496124ba565b610f536000612538565b565b610f5d6124ba565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ff1906132e4565b80601f016020809104026020016040519081016040528092919081815260200182805461101d906132e4565b801561106a5780601f1061103f5761010080835404028352916020019161106a565b820191906000526020600020905b81548152906001019060200180831161104d57829003601f168201915b5050505050905090565b61107c6124ba565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906134cd565b60405180910390fd5b61111682826125fe565b5050565b600080611125611637565b9050600061113382866112f6565b905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f9061355f565b60405180910390fd5b611185828686840361163f565b60019250505092915050565b60008061119c611637565b90506111a9818585611a69565b600191505092915050565b6111bc6124ba565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122a600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f55565b611257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016125fe565b50565b6112626124ba565b61126a610b10565b600a61127691906136b2565b8261128191906136fd565b600f8190555061128f610b10565b600a61129b91906136b2565b816112a691906136fd565b600e819055505050565b600f5481565b6112be6124ba565b6001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113be611637565b73ffffffffffffffffffffffffffffffffffffffff16146113de57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114199190612f6d565b602060405180830381865afa158015611436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145a9190613754565b1161149a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611491906137cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114f09190612f6d565b602060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190613754565b6040518363ffffffff1660e01b815260040161154e9291906137ed565b6020604051808303816000875af115801561156d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611591919061382b565b5050565b600d5481565b6115a36124ba565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611612576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611609906138ca565b60405180910390fd5b61161b81612538565b50565b600e5481565b601260019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a59061395c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906139ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fb9190612df4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613a80565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613b12565b60405180910390fd5b8160015461190b9190613b32565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600082825461195f9190613b32565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119c49190612df4565b60405180910390a36119d88360008461269f565b505050565b60006119e984846112f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a635781811015611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90613bb2565b60405180910390fd5b611a62848484840361163f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613c44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613cd6565b60405180910390fd5b60008103611b6057611b5b838360006126a4565b6124b5565b43601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bac610fb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1a5750611bea610fb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750600a60149054906101000a900460ff16155b1561208957601260019054906101000a900460ff16611da057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d605750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9690613d42565b60405180910390fd5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e435750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eea57600f54811115611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490613dd4565b60405180910390fd5b600e54611e9983610ef9565b82611ea491906133bb565b1115611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613e40565b60405180910390fd5b612088565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f8d5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdc57600f54811115611fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fce90613ed2565b60405180910390fd5b612087565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661208657600e5461203983610ef9565b8261204491906133bb565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613e40565b60405180910390fd5b5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b81526004016120e893929190613ef2565b6020604051808303816000875af1158015612107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212b919061382b565b50600061213730610ef9565b90506000600d548211905080801561215b5750601260009054906101000a900460ff165b80156121745750600a60149054906101000a900460ff16155b80156121ca5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122205750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122765750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ba576001600a60146101000a81548160ff02191690831515021790555061229e61291a565b6000600a60146101000a81548160ff0219169083151502179055505b6000600a60149054906101000a900460ff161580156123225750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156123785750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050600081156124a557601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612403576123fc60646123ee6010548861295890919063ffffffff16565b61296e90919063ffffffff16565b9050612481565b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124805761247d606461246f6011548861295890919063ffffffff16565b61296e90919063ffffffff16565b90505b5b6000811115612496576124958730836126a4565b5b80856124a29190613b32565b94505b6124b08787876126a4565b505050505b505050565b6124c2611637565b73ffffffffffffffffffffffffffffffffffffffff166124e0610fb8565b73ffffffffffffffffffffffffffffffffffffffff1614612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252d90613f75565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270a90613cd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277990613c44565b60405180910390fd5b61278d838383612984565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280a90614007565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129019190612df4565b60405180910390a361291484848461269f565b50505050565b600061292530610ef9565b9050600081036129355750612956565b6000819050600d5481111561294a57600d5490505b61295381612989565b50505b565b6000818361296691906136fd565b905092915050565b6000818361297c9190614056565b905092915050565b505050565b6000600267ffffffffffffffff8111156129a6576129a5612fb5565b5b6040519080825280602002602001820160405280156129d45781602001602082028036833780820191505090505b50905030816000815181106129ec576129eb613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab5919061409c565b81600181518110612ac957612ac8613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b2e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461163f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612bb29594939291906141c2565b600060405180830381600087803b158015612bcc57600080fd5b505af1158015612be0573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c22578082015181840152602081019050612c07565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4a82612be8565b612c548185612bf3565b9350612c64818560208601612c04565b612c6d81612c2e565b840191505092915050565b60006020820190508181036000830152612c928184612c3f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cd982612cae565b9050919050565b612ce981612cce565b8114612cf457600080fd5b50565b600081359050612d0681612ce0565b92915050565b6000819050919050565b612d1f81612d0c565b8114612d2a57600080fd5b50565b600081359050612d3c81612d16565b92915050565b60008060408385031215612d5957612d58612ca4565b5b6000612d6785828601612cf7565b9250506020612d7885828601612d2d565b9150509250929050565b60008115159050919050565b612d9781612d82565b82525050565b6000602082019050612db26000830184612d8e565b92915050565b600060208284031215612dce57612dcd612ca4565b5b6000612ddc84828501612d2d565b91505092915050565b612dee81612d0c565b82525050565b6000602082019050612e096000830184612de5565b92915050565b600080600060608486031215612e2857612e27612ca4565b5b6000612e3686828701612cf7565b9350506020612e4786828701612cf7565b9250506040612e5886828701612d2d565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612e8757612e86612e62565b5b8235905067ffffffffffffffff811115612ea457612ea3612e67565b5b602083019150836020820283011115612ec057612ebf612e6c565b5b9250929050565b600080600060408486031215612ee057612edf612ca4565b5b600084013567ffffffffffffffff811115612efe57612efd612ca9565b5b612f0a86828701612e71565b93509350506020612f1d86828701612d2d565b9150509250925092565b600060ff82169050919050565b612f3d81612f27565b82525050565b6000602082019050612f586000830184612f34565b92915050565b612f6781612cce565b82525050565b6000602082019050612f826000830184612f5e565b92915050565b600060208284031215612f9e57612f9d612ca4565b5b6000612fac84828501612cf7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fed82612c2e565b810181811067ffffffffffffffff8211171561300c5761300b612fb5565b5b80604052505050565b600061301f612c9a565b905061302b8282612fe4565b919050565b600067ffffffffffffffff82111561304b5761304a612fb5565b5b602082029050602081019050919050565b600061306f61306a84613030565b613015565b9050808382526020820190506020840283018581111561309257613091612e6c565b5b835b818110156130bb57806130a78882612cf7565b845260208401935050602081019050613094565b5050509392505050565b600082601f8301126130da576130d9612e62565b5b81356130ea84826020860161305c565b91505092915050565b6130fc81612d82565b811461310757600080fd5b50565b600081359050613119816130f3565b92915050565b6000806040838503121561313657613135612ca4565b5b600083013567ffffffffffffffff81111561315457613153612ca9565b5b613160858286016130c5565b92505060206131718582860161310a565b9150509250929050565b6000819050919050565b60006131a061319b61319684612cae565b61317b565b612cae565b9050919050565b60006131b282613185565b9050919050565b60006131c4826131a7565b9050919050565b6131d4816131b9565b82525050565b60006020820190506131ef60008301846131cb565b92915050565b6000806040838503121561320c5761320b612ca4565b5b600061321a85828601612cf7565b925050602061322b8582860161310a565b9150509250929050565b6000806040838503121561324c5761324b612ca4565b5b600061325a85828601612d2d565b925050602061326b85828601612d2d565b9150509250929050565b6000806040838503121561328c5761328b612ca4565b5b600061329a85828601612cf7565b92505060206132ab85828601612cf7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132fc57607f821691505b60208210810361330f5761330e6132b5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337e82612d0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b0576133af613344565b5b600182019050919050565b60006133c682612d0c565b91506133d183612d0c565b92508282019050808211156133e9576133e8613344565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613425601683612bf3565b9150613430826133ef565b602082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006134b7603983612bf3565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613549602583612bf3565b9150613554826134ed565b604082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156135d6578086048111156135b2576135b1613344565b5b60018516156135c15780820291505b80810290506135cf8561357f565b9450613596565b94509492505050565b6000826135ef57600190506136ab565b816135fd57600090506136ab565b8160018114613613576002811461361d5761364c565b60019150506136ab565b60ff84111561362f5761362e613344565b5b8360020a91508482111561364657613645613344565b5b506136ab565b5060208310610133831016604e8410600b84101617156136815782820a90508381111561367c5761367b613344565b5b6136ab565b61368e848484600161358c565b925090508184048111156136a5576136a4613344565b5b81810290505b9392505050565b60006136bd82612d0c565b91506136c883612f27565b92506136f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135df565b905092915050565b600061370882612d0c565b915061371383612d0c565b925082820261372181612d0c565b9150828204841483151761373857613737613344565b5b5092915050565b60008151905061374e81612d16565b92915050565b60006020828403121561376a57613769612ca4565b5b60006137788482850161373f565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b60006137b7601083612bf3565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b60006040820190506138026000830185612f5e565b61380f6020830184612de5565b9392505050565b600081519050613825816130f3565b92915050565b60006020828403121561384157613840612ca4565b5b600061384f84828501613816565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b4602683612bf3565b91506138bf82613858565b604082019050919050565b600060208201905081810360008301526138e3816138a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613946602483612bf3565b9150613951826138ea565b604082019050919050565b6000602082019050818103600083015261397581613939565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d8602283612bf3565b91506139e38261397c565b604082019050919050565b60006020820190508181036000830152613a07816139cb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a6a602183612bf3565b9150613a7582613a0e565b604082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afc602283612bf3565b9150613b0782613aa0565b604082019050919050565b60006020820190508181036000830152613b2b81613aef565b9050919050565b6000613b3d82612d0c565b9150613b4883612d0c565b9250828203905081811115613b6057613b5f613344565b5b92915050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b9c601d83612bf3565b9150613ba782613b66565b602082019050919050565b60006020820190508181036000830152613bcb81613b8f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2e602383612bf3565b9150613c3982613bd2565b604082019050919050565b60006020820190508181036000830152613c5d81613c21565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cc0602583612bf3565b9150613ccb82613c64565b604082019050919050565b60006020820190508181036000830152613cef81613cb3565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613d2c601683612bf3565b9150613d3782613cf6565b602082019050919050565b60006020820190508181036000830152613d5b81613d1f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613dbe603583612bf3565b9150613dc982613d62565b604082019050919050565b60006020820190508181036000830152613ded81613db1565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e2a601383612bf3565b9150613e3582613df4565b602082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ebc603683612bf3565b9150613ec782613e60565b604082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b6000606082019050613f076000830186612f5e565b613f146020830185612f5e565b613f216040830184612de5565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f5f602083612bf3565b9150613f6a82613f29565b602082019050919050565b60006020820190508181036000830152613f8e81613f52565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ff1602683612bf3565b9150613ffc82613f95565b604082019050919050565b6000602082019050818103600083015261402081613fe4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061406182612d0c565b915061406c83612d0c565b92508261407c5761407b614027565b5b828204905092915050565b60008151905061409681612ce0565b92915050565b6000602082840312156140b2576140b1612ca4565b5b60006140c084828501614087565b91505092915050565b6000819050919050565b60006140ee6140e96140e4846140c9565b61317b565b612d0c565b9050919050565b6140fe816140d3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61413981612cce565b82525050565b600061414b8383614130565b60208301905092915050565b6000602082019050919050565b600061416f82614104565b614179818561410f565b935061418483614120565b8060005b838110156141b557815161419c888261413f565b97506141a783614157565b925050600181019050614188565b5085935050505092915050565b600060a0820190506141d76000830188612de5565b6141e460208301876140f5565b81810360408301526141f68186614164565b90506142056060830185612f5e565b6142126080830184612de5565b969550505050505056fea26469706673582212206b6e88bd483fb62be000394d58cc6e7ae1008a227b57cae402ef769b01f5245c64736f6c63430008130033

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

0000000000000000000000000e39ce856fd7e4d19b0e50738081e0e3e9a0096a000000000000000000000000696f479bdd74aeaea228d6efe4cacbadd0b046230000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : init_ (address): 0x0E39cE856Fd7E4d19b0E50738081e0e3E9A0096A
Arg [1] : marketingWallet_ (address): 0x696f479bDd74aEAEa228D6efE4CAcbaDd0B04623
Arg [2] : denominator_ (uint256): 1

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e39ce856fd7e4d19b0e50738081e0e3e9a0096a
Arg [1] : 000000000000000000000000696f479bdd74aeaea228d6efe4cacbadd0b04623
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

199:9338:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;623:100:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1554:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2608:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;943:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1763:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7394:264:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;728:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;567:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;843:92:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2032:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;761:25:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7962:229;;;;;;;;;;;;;:::i;:::-;;3198:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2761:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;273:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8726:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;799:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1059:127:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;634:103:4;;;;;;;;;;;;;:::i;:::-;;3781:149:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;399:87:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;731:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3332:247:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2278:436:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1194:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8901:226:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8199:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;684:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3082:108;;;;;;;;;;;;;:::i;:::-;;1395:151:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7666:288:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;613:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;745:201:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;653:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;837:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;623:100:2;677:13;710:5;703:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;623:100;:::o;1554:201::-;1637:4;1654:13;1670:12;:10;:12::i;:::-;1654:28;;1693:32;1702:5;1709:7;1718:6;1693:8;:32::i;:::-;1743:4;1736:11;;;1554:201;;;;:::o;2608:145:0:-;2691:15;;;;;;;;;;;2675:31;;:12;:10;:12::i;:::-;:31;;;2667:40;;;;;;2718:27;2724:12;:10;:12::i;:::-;2738:6;2718:5;:27::i;:::-;2608:145;:::o;943:108:2:-;1004:7;1031:12;;1024:19;;943:108;:::o;1763:261::-;1860:4;1877:15;1895:12;:10;:12::i;:::-;1877:30;;1918:38;1934:4;1940:7;1949:6;1918:15;:38::i;:::-;1967:27;1977:4;1983:2;1987:6;1967:9;:27::i;:::-;2012:4;2005:11;;;1763:261;;;;;:::o;7394:264:0:-;7500:15;;;;;;;;;;;7484:31;;:12;:10;:12::i;:::-;:31;;;7476:40;;;;;;7532:9;7527:124;7551:10;;:17;;7547:1;:21;7527:124;;;7619:10;;7630:1;7619:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7595:44;;7604:13;;;;;;;;;;;7595:44;;;7634:4;7595:44;;;;;;:::i;:::-;;;;;;;;7570:3;;;;;:::i;:::-;;;;7527:124;;;;7394:264;;;:::o;728:26::-;;;;:::o;567:33::-;;;;:::o;843:92:2:-;901:5;926:1;919:8;;843:92;:::o;2032:238::-;2120:4;2137:13;2153:12;:10;:12::i;:::-;2137:28;;2176:64;2185:5;2192:7;2229:10;2201:25;2211:5;2218:7;2201:9;:25::i;:::-;:38;;;;:::i;:::-;2176:8;:64::i;:::-;2258:4;2251:11;;;2032:238;;;;:::o;761:25:0:-;;;;:::o;407:28::-;;;;;;;;;;;;;:::o;7962:229::-;8042:1;8018:21;:25;8010:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8105:15;;;;;;;;;;;8089:31;;:12;:10;:12::i;:::-;:31;;;8081:40;;;;;;8140:10;8132:28;;:51;8161:21;8132:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7962:229::o;3198:126::-;3264:4;3288:19;:28;3308:7;3288:28;;;;;;;;;;;;;;;;;;;;;;;;;3281:35;;3198:126;;;:::o;2761:313::-;2869:15;;;;;;;;;;;2853:31;;:12;:10;:12::i;:::-;:31;;;2845:40;;;;;;2902:9;2897:170;2921:8;:15;2917:1;:19;2897:170;;;2993:8;2958:19;:32;2978:8;2987:1;2978:11;;;;;;;;:::i;:::-;;;;;;;;2958:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;3033:8;3042:1;3033:11;;;;;;;;:::i;:::-;;;;;;;;3021:34;;;3046:8;3021:34;;;;;;:::i;:::-;;;;;;;;2938:3;;;;;:::i;:::-;;;;2897:170;;;;2761:313;;:::o;273:52::-;;;:::o;8726:167::-;8824:15;;;;;;;;;;;8808:31;;:12;:10;:12::i;:::-;:31;;;8800:40;;;;;;8869:16;8851:15;;:34;;;;;;;;;;;;;;;;;;8726:167;:::o;799:31::-;;;;;;;;;;;;;:::o;1059:127:2:-;1133:7;1160:9;:18;1170:7;1160:18;;;;;;;;;;;;;;;;1153:25;;1059:127;;;:::o;634:103:4:-;358:13;:11;:13::i;:::-;699:30:::1;726:1;699:18;:30::i;:::-;634:103::o:0;3781:149:0:-;358:13:4;:11;:13::i;:::-;3918:4:0::1;3876:31;:39;3908:6;3876:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3781:149:::0;;:::o;399:87:4:-;445:7;472:6;;;;;;;;;;;465:13;;399:87;:::o;731:104:2:-;787:13;820:7;813:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:104;:::o;3332:247:0:-;358:13:4;:11;:13::i;:::-;3444::0::1;;;;;;;;;;;3436:21;;:4;:21;;::::0;3428:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3530:41;3559:4;3565:5;3530:28;:41::i;:::-;3332:247:::0;;:::o;2278:436:2:-;2371:4;2388:13;2404:12;:10;:12::i;:::-;2388:28;;2427:24;2454:25;2464:5;2471:7;2454:9;:25::i;:::-;2427:52;;2518:15;2498:16;:35;;2490:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2611:60;2620:5;2627:7;2655:15;2636:16;:34;2611:8;:60::i;:::-;2702:4;2695:11;;;;2278:436;;;;:::o;1194:193::-;1273:4;1290:13;1306:12;:10;:12::i;:::-;1290:28;;1329;1339:5;1346:2;1350:6;1329:9;:28::i;:::-;1375:4;1368:11;;;1194:193;;;;:::o;8901:226:0:-;358:13:4;:11;:13::i;:::-;8979:5:0::1;8963:13;;:21;;;;;;;;;;;;;;;;;;8995:55;9029:13;;;;;;;;;;;9045:4;8995:25;:55::i;:::-;9061:58;9098:13;;;;;;;;;;;9114:4;9061:28;:58::i;:::-;8901:226:::0;:::o;8199:227::-;358:13:4;:11;:13::i;:::-;8353:10:0::1;:8;:10::i;:::-;8347:2;:16;;;;:::i;:::-;8322:21;:42;;;;:::i;:::-;8299:20;:65;;;;8407:10;:8;:10::i;:::-;8401:2;:16;;;;:::i;:::-;8387:10;:31;;;;:::i;:::-;8375:9;:43;;;;8199:227:::0;;:::o;684:35::-;;;;:::o;3082:108::-;358:13:4;:11;:13::i;:::-;3149:4:0::1;3135:11;;:18;;;;;;;;;;;;;;;;;;3178:4;3164:11;;:18;;;;;;;;;;;;;;;;;;3082:108::o:0;1395:151:2:-;1484:7;1511:11;:18;1523:5;1511:18;;;;;;;;;;;;;;;:27;1530:7;1511:27;;;;;;;;;;;;;;;;1504:34;;1395:151;;;;:::o;7666:288:0:-;7752:15;;;;;;;;;;;7736:31;;:12;:10;:12::i;:::-;:31;;;7728:40;;;;;;7831:1;7794:8;7787:26;;;7822:4;7787:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;7779:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7873:8;7866:25;;;7892:10;7911:8;7904:26;;;7939:4;7904:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7866:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7666:288;:::o;613:33::-;;;;:::o;745:201:4:-;358:13;:11;:13::i;:::-;854:1:::1;834:22;;:8;:22;;::::0;826:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;910:28;929:8;910:18;:28::i;:::-;745:201:::0;:::o;653:24:0:-;;;;:::o;837:31::-;;;;;;;;;;;;;:::o;92:98:1:-;145:7;172:10;165:17;;92:98;:::o;4315:346:2:-;4434:1;4417:19;;:5;:19;;;4409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4515:1;4496:21;;:7;:21;;;4488:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4599:6;4569:11;:18;4581:5;4569:18;;;;;;;;;;;;;;;:27;4588:7;4569:27;;;;;;;;;;;;;;;:36;;;;4637:7;4621:32;;4630:5;4621:32;;;4646:6;4621:32;;;;;;:::i;:::-;;;;;;;;4315:346;;;:::o;3814:493::-;3917:1;3898:21;;:7;:21;;;3890:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3974:22;3999:9;:18;4009:7;3999:18;;;;;;;;;;;;;;;;3974:43;;4054:6;4036:14;:24;;4028:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4148:6;4137:8;;:17;;;;:::i;:::-;4116:9;:18;4126:7;4116:18;;;;;;;;;;;;;;;:38;;;;4181:6;4165:12;;:22;;;;;;;:::i;:::-;;;;;;;;4229:1;4203:37;;4212:7;4203:37;;;4233:6;4203:37;;;;;;:::i;:::-;;;;;;;;4251:48;4271:7;4288:1;4292:6;4251:19;:48::i;:::-;3879:428;3814:493;;:::o;4669:419::-;4770:24;4797:25;4807:5;4814:7;4797:9;:25::i;:::-;4770:52;;4857:17;4837:16;:37;4833:248;;4919:6;4899:16;:26;;4891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5003:51;5012:5;5019:7;5047:6;5028:16;:25;5003:8;:51::i;:::-;4833:248;4759:329;4669:419;;;:::o;3938:2964:0:-;4050:1;4036:16;;:2;:16;;;4028:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4127:1;4111:18;;:4;:18;;;4103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4198:1;4188:6;:11;4184:93;;4216:28;4232:4;4238:2;4242:1;4216:15;:28::i;:::-;4259:7;;4184:93;4318:12;4287:22;:28;4310:4;4287:28;;;;;;;;;;;;;;;:43;;;;4353:7;:5;:7::i;:::-;4345:15;;:4;:15;;;;:32;;;;;4370:7;:5;:7::i;:::-;4364:13;;:2;:13;;;;4345:32;:52;;;;;4395:1;4381:16;;:2;:16;;;;4345:52;:77;;;;;4415:6;4401:21;;:2;:21;;;;4345:77;:90;;;;;4427:8;;;;;;;;;;;4426:9;4345:90;4341:1290;;;4557:11;;;;;;;;;;;4552:140;;4597:19;:25;4617:4;4597:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;4626:19;:23;4646:2;4626:23;;;;;;;;;;;;;;;;;;;;;;;;;4597:52;4589:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;4552:140;4763:25;:31;4789:4;4763:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4799:31;:35;4831:2;4799:35;;;;;;;;;;;;;;;;;;;;;;;;;4798:36;4763:71;4759:861;;;4873:20;;4863:6;:30;;4855:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;5004:9;;4987:13;4997:2;4987:9;:13::i;:::-;4978:6;:22;;;;:::i;:::-;:35;;4970:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4759:861;;;5194:25;:29;5220:2;5194:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;5228:31;:37;5260:4;5228:37;;;;;;;;;;;;;;;;;;;;;;;;;5227:38;5194:71;5190:430;;;5304:20;;5294:6;:30;;5286:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;5190:430;;;5481:31;:35;5513:2;5481:35;;;;;;;;;;;;;;;;;;;;;;;;;5476:144;;5571:9;;5554:13;5564:2;5554:9;:13::i;:::-;5545:6;:22;;;;:::i;:::-;:35;;5537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5476:144;5190:430;4759:861;4341:1290;5641:5;;;;;;;;;;;:18;;;5660:4;5666:2;5670:6;5641:36;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5735:28;5766:24;5784:4;5766:9;:24::i;:::-;5735:55;;5801:12;5839:18;;5816:20;:41;5801:56;;5872:7;:22;;;;;5883:11;;;;;;;;;;;5872:22;:35;;;;;5899:8;;;;;;;;;;;5898:9;5872:35;:71;;;;;5912:25;:31;5938:4;5912:31;;;;;;;;;;;;;;;;;;;;;;;;;5911:32;5872:71;:101;;;;;5948:19;:25;5968:4;5948:25;;;;;;;;;;;;;;;;;;;;;;;;;5947:26;5872:101;:129;;;;;5978:19;:23;5998:2;5978:23;;;;;;;;;;;;;;;;;;;;;;;;;5977:24;5872:129;5868:233;;;6029:4;6018:8;;:15;;;;;;;;;;;;;;;;;;6048:10;:8;:10::i;:::-;6084:5;6073:8;;:16;;;;;;;;;;;;;;;;;;5868:233;6207:12;6223:8;;;;;;;;;;;6222:9;:38;;;;;6235:19;:25;6255:4;6235:25;;;;;;;;;;;;;;;;;;;;;;;;;6222:38;:66;;;;;6265:19;:23;6285:2;6265:23;;;;;;;;;;;;;;;;;;;;;;;;;6264:24;6222:66;6207:81;;6299:12;6330:7;6326:515;;;6403:25;:29;6429:2;6403:29;;;;;;;;;;;;;;;;;;;;;;;;;6399:279;;;6460:28;6484:3;6460:19;6471:7;;6460:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;6453:35;;6399:279;;;6576:25;:31;6602:4;6576:31;;;;;;;;;;;;;;;;;;;;;;;;;6573:105;;;6635:27;6658:3;6635:18;6646:6;;6635;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;6628:34;;6573:105;6399:279;6707:1;6700:4;:8;6696:91;;;6729:42;6745:4;6759;6766;6729:15;:42::i;:::-;6696:91;6811:4;6801:14;;;;;:::i;:::-;;;6326:515;6861:33;6877:4;6883:2;6887:6;6861:15;:33::i;:::-;4017:2885;;;;3938:2964;;;;:::o;494:132:4:-;569:12;:10;:12::i;:::-;558:23;;:7;:5;:7::i;:::-;:23;;;550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;494:132::o;954:191::-;1028:16;1047:6;;;;;;;;;;;1028:25;;1073:8;1064:6;;:17;;;;;;;;;;;;;;;;;;1128:8;1097:40;;1118:8;1097:40;;;;;;;;;;;;1017:128;954:191;:::o;3587:186:0:-;3704:5;3670:25;:31;3696:4;3670:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;3759:5;3725:40;;3753:4;3725:40;;;;;;;;;;;;3587:186;;:::o;5195:90:2:-;;;;:::o;2722:641::-;2835:1;2819:18;;:4;:18;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2912:1;2898:16;;:2;:16;;;2890:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2967:38;2988:4;2994:2;2998:6;2967:20;:38::i;:::-;3018:19;3040:9;:15;3050:4;3040:15;;;;;;;;;;;;;;;;3018:37;;3089:6;3074:11;:21;;3066:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3206:6;3192:11;:20;3174:9;:15;3184:4;3174:15;;;;;;;;;;;;;;;:38;;;;3244:6;3227:9;:13;3237:2;3227:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3294:2;3279:26;;3288:4;3279:26;;;3298:6;3279:26;;;;;;:::i;:::-;;;;;;;;3318:37;3338:4;3344:2;3348:6;3318:19;:37::i;:::-;2800:563;2722:641;;;:::o;9135:399:0:-;9174:23;9200:24;9218:4;9200:9;:24::i;:::-;9174:50;;9258:1;9239:15;:20;9235:91;;9308:7;;;9235:91;9338:20;9361:15;9338:38;;9406:18;;9391:12;:33;9387:99;;;9456:18;;9441:33;;9387:99;9496:30;9513:12;9496:16;:30::i;:::-;9163:371;;9135:399;:::o;1413:98:5:-;1471:7;1502:1;1498;:5;;;;:::i;:::-;1491:12;;1413:98;;;;:::o;1519:::-;1577:7;1608:1;1604;:5;;;;:::i;:::-;1597:12;;1519:98;;;;:::o;5096:91:2:-;;;;:::o;6910:476:0:-;6976:21;7014:1;7000:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6976:40;;7045:4;7027;7032:1;7027:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7071:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7061:4;7066:1;7061:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;7105:63;7122:4;7137:16;7156:11;7105:8;:63::i;:::-;7179:16;:67;;;7261:11;7287:1;7303:4;7322:15;;;;;;;;;;;7352;7179:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6965:421;6910:476;:::o;7:99:7:-;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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:117::-;4867:1;4864;4857:12;4881:117;4990:1;4987;4980:12;5004:117;5113:1;5110;5103:12;5144:568;5217:8;5227:6;5277:3;5270:4;5262:6;5258:17;5254:27;5244:122;;5285:79;;:::i;:::-;5244:122;5398:6;5385:20;5375:30;;5428:18;5420:6;5417:30;5414:117;;;5450:79;;:::i;:::-;5414:117;5564:4;5556:6;5552:17;5540:29;;5618:3;5610:4;5602:6;5598:17;5588:8;5584:32;5581:41;5578:128;;;5625:79;;:::i;:::-;5578:128;5144:568;;;;;:::o;5718:704::-;5813:6;5821;5829;5878:2;5866:9;5857:7;5853:23;5849:32;5846:119;;;5884:79;;:::i;:::-;5846:119;6032:1;6021:9;6017:17;6004:31;6062:18;6054:6;6051:30;6048:117;;;6084:79;;:::i;:::-;6048:117;6197:80;6269:7;6260:6;6249:9;6245:22;6197:80;:::i;:::-;6179:98;;;;5975:312;6326:2;6352:53;6397:7;6388:6;6377:9;6373:22;6352:53;:::i;:::-;6342:63;;6297:118;5718:704;;;;;:::o;6428:86::-;6463:7;6503:4;6496:5;6492:16;6481:27;;6428:86;;;:::o;6520:112::-;6603:22;6619:5;6603:22;:::i;:::-;6598:3;6591:35;6520:112;;:::o;6638:214::-;6727:4;6765:2;6754:9;6750:18;6742:26;;6778:67;6842:1;6831:9;6827:17;6818:6;6778:67;:::i;:::-;6638:214;;;;:::o;6858:118::-;6945:24;6963:5;6945:24;:::i;:::-;6940:3;6933:37;6858:118;;:::o;6982:222::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7126:71;7194:1;7183:9;7179:17;7170:6;7126:71;:::i;:::-;6982:222;;;;:::o;7210:329::-;7269:6;7318:2;7306:9;7297:7;7293:23;7289:32;7286:119;;;7324:79;;:::i;:::-;7286:119;7444:1;7469:53;7514:7;7505:6;7494:9;7490:22;7469:53;:::i;:::-;7459:63;;7415:117;7210:329;;;;:::o;7545:180::-;7593:77;7590:1;7583:88;7690:4;7687:1;7680:15;7714:4;7711:1;7704:15;7731:281;7814:27;7836:4;7814:27;:::i;:::-;7806:6;7802:40;7944:6;7932:10;7929:22;7908:18;7896:10;7893:34;7890:62;7887:88;;;7955:18;;:::i;:::-;7887:88;7995:10;7991:2;7984:22;7774:238;7731:281;;:::o;8018:129::-;8052:6;8079:20;;:::i;:::-;8069:30;;8108:33;8136:4;8128:6;8108:33;:::i;:::-;8018:129;;;:::o;8153:311::-;8230:4;8320:18;8312:6;8309:30;8306:56;;;8342:18;;:::i;:::-;8306:56;8392:4;8384:6;8380:17;8372:25;;8452:4;8446;8442:15;8434:23;;8153:311;;;:::o;8487:710::-;8583:5;8608:81;8624:64;8681:6;8624:64;:::i;:::-;8608:81;:::i;:::-;8599:90;;8709:5;8738:6;8731:5;8724:21;8772:4;8765:5;8761:16;8754:23;;8825:4;8817:6;8813:17;8805:6;8801:30;8854:3;8846:6;8843:15;8840:122;;;8873:79;;:::i;:::-;8840:122;8988:6;8971:220;9005:6;9000:3;8997:15;8971:220;;;9080:3;9109:37;9142:3;9130:10;9109:37;:::i;:::-;9104:3;9097:50;9176:4;9171:3;9167:14;9160:21;;9047:144;9031:4;9026:3;9022:14;9015:21;;8971:220;;;8975:21;8589:608;;8487:710;;;;;:::o;9220:370::-;9291:5;9340:3;9333:4;9325:6;9321:17;9317:27;9307:122;;9348:79;;:::i;:::-;9307:122;9465:6;9452:20;9490:94;9580:3;9572:6;9565:4;9557:6;9553:17;9490:94;:::i;:::-;9481:103;;9297:293;9220:370;;;;:::o;9596:116::-;9666:21;9681:5;9666:21;:::i;:::-;9659:5;9656:32;9646:60;;9702:1;9699;9692:12;9646:60;9596:116;:::o;9718:133::-;9761:5;9799:6;9786:20;9777:29;;9815:30;9839:5;9815:30;:::i;:::-;9718:133;;;;:::o;9857:678::-;9947:6;9955;10004:2;9992:9;9983:7;9979:23;9975:32;9972:119;;;10010:79;;:::i;:::-;9972:119;10158:1;10147:9;10143:17;10130:31;10188:18;10180:6;10177:30;10174:117;;;10210:79;;:::i;:::-;10174:117;10315:78;10385:7;10376:6;10365:9;10361:22;10315:78;:::i;:::-;10305:88;;10101:302;10442:2;10468:50;10510:7;10501:6;10490:9;10486:22;10468:50;:::i;:::-;10458:60;;10413:115;9857:678;;;;;:::o;10541:60::-;10569:3;10590:5;10583:12;;10541:60;;;:::o;10607:142::-;10657:9;10690:53;10708:34;10717:24;10735:5;10717:24;:::i;:::-;10708:34;:::i;:::-;10690:53;:::i;:::-;10677:66;;10607:142;;;:::o;10755:126::-;10805:9;10838:37;10869:5;10838:37;:::i;:::-;10825:50;;10755:126;;;:::o;10887:153::-;10964:9;10997:37;11028:5;10997:37;:::i;:::-;10984:50;;10887:153;;;:::o;11046:185::-;11160:64;11218:5;11160:64;:::i;:::-;11155:3;11148:77;11046:185;;:::o;11237:276::-;11357:4;11395:2;11384:9;11380:18;11372:26;;11408:98;11503:1;11492:9;11488:17;11479:6;11408:98;:::i;:::-;11237:276;;;;:::o;11519:468::-;11584:6;11592;11641:2;11629:9;11620:7;11616:23;11612:32;11609:119;;;11647:79;;:::i;:::-;11609:119;11767:1;11792:53;11837:7;11828:6;11817:9;11813:22;11792:53;:::i;:::-;11782:63;;11738:117;11894:2;11920:50;11962:7;11953:6;11942:9;11938:22;11920:50;:::i;:::-;11910:60;;11865:115;11519:468;;;;;:::o;11993:474::-;12061:6;12069;12118:2;12106:9;12097:7;12093:23;12089:32;12086:119;;;12124:79;;:::i;:::-;12086:119;12244:1;12269:53;12314:7;12305:6;12294:9;12290:22;12269:53;:::i;:::-;12259:63;;12215:117;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11993:474;;;;;:::o;12473:::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:180::-;13513:77;13510:1;13503:88;13610:4;13607:1;13600:15;13634:4;13631:1;13624:15;13651:180;13699:77;13696:1;13689:88;13796:4;13793:1;13786:15;13820:4;13817:1;13810:15;13837:233;13876:3;13899:24;13917:5;13899:24;:::i;:::-;13890:33;;13945:66;13938:5;13935:77;13932:103;;14015:18;;:::i;:::-;13932:103;14062:1;14055:5;14051:13;14044:20;;13837:233;;;:::o;14076:191::-;14116:3;14135:20;14153:1;14135:20;:::i;:::-;14130:25;;14169:20;14187:1;14169:20;:::i;:::-;14164:25;;14212:1;14209;14205:9;14198:16;;14233:3;14230:1;14227:10;14224:36;;;14240:18;;:::i;:::-;14224:36;14076:191;;;;:::o;14273:172::-;14413:24;14409:1;14401:6;14397:14;14390:48;14273:172;:::o;14451:366::-;14593:3;14614:67;14678:2;14673:3;14614:67;:::i;:::-;14607:74;;14690:93;14779:3;14690:93;:::i;:::-;14808:2;14803:3;14799:12;14792:19;;14451:366;;;:::o;14823:419::-;14989:4;15027:2;15016:9;15012:18;15004:26;;15076:9;15070:4;15066:20;15062:1;15051:9;15047:17;15040:47;15104:131;15230:4;15104:131;:::i;:::-;15096:139;;14823:419;;;:::o;15248:244::-;15388:34;15384:1;15376:6;15372:14;15365:58;15457:27;15452:2;15444:6;15440:15;15433:52;15248:244;:::o;15498:366::-;15640:3;15661:67;15725:2;15720:3;15661:67;:::i;:::-;15654:74;;15737:93;15826:3;15737:93;:::i;:::-;15855:2;15850:3;15846:12;15839:19;;15498:366;;;:::o;15870:419::-;16036:4;16074:2;16063:9;16059:18;16051:26;;16123:9;16117:4;16113:20;16109:1;16098:9;16094:17;16087:47;16151:131;16277:4;16151:131;:::i;:::-;16143:139;;15870:419;;;:::o;16295:224::-;16435:34;16431:1;16423:6;16419:14;16412:58;16504:7;16499:2;16491:6;16487:15;16480:32;16295:224;:::o;16525:366::-;16667:3;16688:67;16752:2;16747:3;16688:67;:::i;:::-;16681:74;;16764:93;16853:3;16764:93;:::i;:::-;16882:2;16877:3;16873:12;16866:19;;16525:366;;;:::o;16897:419::-;17063:4;17101:2;17090:9;17086:18;17078:26;;17150:9;17144:4;17140:20;17136:1;17125:9;17121:17;17114:47;17178:131;17304:4;17178:131;:::i;:::-;17170:139;;16897:419;;;:::o;17322:102::-;17364:8;17411:5;17408:1;17404:13;17383:34;;17322:102;;;:::o;17430:848::-;17491:5;17498:4;17522:6;17513:15;;17546:5;17537:14;;17560:712;17581:1;17571:8;17568:15;17560:712;;;17676:4;17671:3;17667:14;17661:4;17658:24;17655:50;;;17685:18;;:::i;:::-;17655:50;17735:1;17725:8;17721:16;17718:451;;;18150:4;18143:5;18139:16;18130:25;;17718:451;18200:4;18194;18190:15;18182:23;;18230:32;18253:8;18230:32;:::i;:::-;18218:44;;17560:712;;;17430:848;;;;;;;:::o;18284:1073::-;18338:5;18529:8;18519:40;;18550:1;18541:10;;18552:5;;18519:40;18578:4;18568:36;;18595:1;18586:10;;18597:5;;18568:36;18664:4;18712:1;18707:27;;;;18748:1;18743:191;;;;18657:277;;18707:27;18725:1;18716:10;;18727:5;;;18743:191;18788:3;18778:8;18775:17;18772:43;;;18795:18;;:::i;:::-;18772:43;18844:8;18841:1;18837:16;18828:25;;18879:3;18872:5;18869:14;18866:40;;;18886:18;;:::i;:::-;18866:40;18919:5;;;18657:277;;19043:2;19033:8;19030:16;19024:3;19018:4;19015:13;19011:36;18993:2;18983:8;18980:16;18975:2;18969:4;18966:12;18962:35;18946:111;18943:246;;;19099:8;19093:4;19089:19;19080:28;;19134:3;19127:5;19124:14;19121:40;;;19141:18;;:::i;:::-;19121:40;19174:5;;18943:246;19214:42;19252:3;19242:8;19236:4;19233:1;19214:42;:::i;:::-;19199:57;;;;19288:4;19283:3;19279:14;19272:5;19269:25;19266:51;;;19297:18;;:::i;:::-;19266:51;19346:4;19339:5;19335:16;19326:25;;18284:1073;;;;;;:::o;19363:281::-;19421:5;19445:23;19463:4;19445:23;:::i;:::-;19437:31;;19489:25;19505:8;19489:25;:::i;:::-;19477:37;;19533:104;19570:66;19560:8;19554:4;19533:104;:::i;:::-;19524:113;;19363:281;;;;:::o;19650:410::-;19690:7;19713:20;19731:1;19713:20;:::i;:::-;19708:25;;19747:20;19765:1;19747:20;:::i;:::-;19742:25;;19802:1;19799;19795:9;19824:30;19842:11;19824:30;:::i;:::-;19813:41;;20003:1;19994:7;19990:15;19987:1;19984:22;19964:1;19957:9;19937:83;19914:139;;20033:18;;:::i;:::-;19914:139;19698:362;19650:410;;;;:::o;20066:143::-;20123:5;20154:6;20148:13;20139:22;;20170:33;20197:5;20170:33;:::i;:::-;20066:143;;;;:::o;20215:351::-;20285:6;20334:2;20322:9;20313:7;20309:23;20305:32;20302:119;;;20340:79;;:::i;:::-;20302:119;20460:1;20485:64;20541:7;20532:6;20521:9;20517:22;20485:64;:::i;:::-;20475:74;;20431:128;20215:351;;;;:::o;20572:166::-;20712:18;20708:1;20700:6;20696:14;20689:42;20572:166;:::o;20744:366::-;20886:3;20907:67;20971:2;20966:3;20907:67;:::i;:::-;20900:74;;20983:93;21072:3;20983:93;:::i;:::-;21101:2;21096:3;21092:12;21085:19;;20744:366;;;:::o;21116:419::-;21282:4;21320:2;21309:9;21305:18;21297:26;;21369:9;21363:4;21359:20;21355:1;21344:9;21340:17;21333:47;21397:131;21523:4;21397:131;:::i;:::-;21389:139;;21116:419;;;:::o;21541:332::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21713:71;21781:1;21770:9;21766:17;21757:6;21713:71;:::i;:::-;21794:72;21862:2;21851:9;21847:18;21838:6;21794:72;:::i;:::-;21541:332;;;;;:::o;21879:137::-;21933:5;21964:6;21958:13;21949:22;;21980:30;22004:5;21980:30;:::i;:::-;21879:137;;;;:::o;22022:345::-;22089:6;22138:2;22126:9;22117:7;22113:23;22109:32;22106:119;;;22144:79;;:::i;:::-;22106:119;22264:1;22289:61;22342:7;22333:6;22322:9;22318:22;22289:61;:::i;:::-;22279:71;;22235:125;22022:345;;;;:::o;22373:225::-;22513:34;22509:1;22501:6;22497:14;22490:58;22582:8;22577:2;22569:6;22565:15;22558:33;22373:225;:::o;22604:366::-;22746:3;22767:67;22831:2;22826:3;22767:67;:::i;:::-;22760:74;;22843:93;22932:3;22843:93;:::i;:::-;22961:2;22956:3;22952:12;22945:19;;22604:366;;;:::o;22976:419::-;23142:4;23180:2;23169:9;23165:18;23157:26;;23229:9;23223:4;23219:20;23215:1;23204:9;23200:17;23193:47;23257:131;23383:4;23257:131;:::i;:::-;23249:139;;22976:419;;;:::o;23401:223::-;23541:34;23537:1;23529:6;23525:14;23518:58;23610:6;23605:2;23597:6;23593:15;23586:31;23401:223;:::o;23630:366::-;23772:3;23793:67;23857:2;23852:3;23793:67;:::i;:::-;23786:74;;23869:93;23958:3;23869:93;:::i;:::-;23987:2;23982:3;23978:12;23971:19;;23630:366;;;:::o;24002:419::-;24168:4;24206:2;24195:9;24191:18;24183:26;;24255:9;24249:4;24245:20;24241:1;24230:9;24226:17;24219:47;24283:131;24409:4;24283:131;:::i;:::-;24275:139;;24002:419;;;:::o;24427:221::-;24567:34;24563:1;24555:6;24551:14;24544:58;24636:4;24631:2;24623:6;24619:15;24612:29;24427:221;:::o;24654:366::-;24796:3;24817:67;24881:2;24876:3;24817:67;:::i;:::-;24810:74;;24893:93;24982:3;24893:93;:::i;:::-;25011:2;25006:3;25002:12;24995:19;;24654:366;;;:::o;25026:419::-;25192:4;25230:2;25219:9;25215:18;25207:26;;25279:9;25273:4;25269:20;25265:1;25254:9;25250:17;25243:47;25307:131;25433:4;25307:131;:::i;:::-;25299:139;;25026:419;;;:::o;25451:220::-;25591:34;25587:1;25579:6;25575:14;25568:58;25660:3;25655:2;25647:6;25643:15;25636:28;25451:220;:::o;25677:366::-;25819:3;25840:67;25904:2;25899:3;25840:67;:::i;:::-;25833:74;;25916:93;26005:3;25916:93;:::i;:::-;26034:2;26029:3;26025:12;26018:19;;25677:366;;;:::o;26049:419::-;26215:4;26253:2;26242:9;26238:18;26230:26;;26302:9;26296:4;26292:20;26288:1;26277:9;26273:17;26266:47;26330:131;26456:4;26330:131;:::i;:::-;26322:139;;26049:419;;;:::o;26474:221::-;26614:34;26610:1;26602:6;26598:14;26591:58;26683:4;26678:2;26670:6;26666:15;26659:29;26474:221;:::o;26701:366::-;26843:3;26864:67;26928:2;26923:3;26864:67;:::i;:::-;26857:74;;26940:93;27029:3;26940:93;:::i;:::-;27058:2;27053:3;27049:12;27042:19;;26701:366;;;:::o;27073:419::-;27239:4;27277:2;27266:9;27262:18;27254:26;;27326:9;27320:4;27316:20;27312:1;27301:9;27297:17;27290:47;27354:131;27480:4;27354:131;:::i;:::-;27346:139;;27073:419;;;:::o;27498:194::-;27538:4;27558:20;27576:1;27558:20;:::i;:::-;27553:25;;27592:20;27610:1;27592:20;:::i;:::-;27587:25;;27636:1;27633;27629:9;27621:17;;27660:1;27654:4;27651:11;27648:37;;;27665:18;;:::i;:::-;27648:37;27498:194;;;;:::o;27698:179::-;27838:31;27834:1;27826:6;27822:14;27815:55;27698:179;:::o;27883:366::-;28025:3;28046:67;28110:2;28105:3;28046:67;:::i;:::-;28039:74;;28122:93;28211:3;28122:93;:::i;:::-;28240:2;28235:3;28231:12;28224:19;;27883:366;;;:::o;28255:419::-;28421:4;28459:2;28448:9;28444:18;28436:26;;28508:9;28502:4;28498:20;28494:1;28483:9;28479:17;28472:47;28536:131;28662:4;28536:131;:::i;:::-;28528:139;;28255:419;;;:::o;28680:222::-;28820:34;28816:1;28808:6;28804:14;28797:58;28889:5;28884:2;28876:6;28872:15;28865:30;28680:222;:::o;28908:366::-;29050:3;29071:67;29135:2;29130:3;29071:67;:::i;:::-;29064:74;;29147:93;29236:3;29147:93;:::i;:::-;29265:2;29260:3;29256:12;29249:19;;28908:366;;;:::o;29280:419::-;29446:4;29484:2;29473:9;29469:18;29461:26;;29533:9;29527:4;29523:20;29519:1;29508:9;29504:17;29497:47;29561:131;29687:4;29561:131;:::i;:::-;29553:139;;29280:419;;;:::o;29705:224::-;29845:34;29841:1;29833:6;29829:14;29822:58;29914:7;29909:2;29901:6;29897:15;29890:32;29705:224;:::o;29935:366::-;30077:3;30098:67;30162:2;30157:3;30098:67;:::i;:::-;30091:74;;30174:93;30263:3;30174:93;:::i;:::-;30292:2;30287:3;30283:12;30276:19;;29935:366;;;:::o;30307:419::-;30473:4;30511:2;30500:9;30496:18;30488:26;;30560:9;30554:4;30550:20;30546:1;30535:9;30531:17;30524:47;30588:131;30714:4;30588:131;:::i;:::-;30580:139;;30307:419;;;:::o;30732:172::-;30872:24;30868:1;30860:6;30856:14;30849:48;30732:172;:::o;30910:366::-;31052:3;31073:67;31137:2;31132:3;31073:67;:::i;:::-;31066:74;;31149:93;31238:3;31149:93;:::i;:::-;31267:2;31262:3;31258:12;31251:19;;30910:366;;;:::o;31282:419::-;31448:4;31486:2;31475:9;31471:18;31463:26;;31535:9;31529:4;31525:20;31521:1;31510:9;31506:17;31499:47;31563:131;31689:4;31563:131;:::i;:::-;31555:139;;31282:419;;;:::o;31707:240::-;31847:34;31843:1;31835:6;31831:14;31824:58;31916:23;31911:2;31903:6;31899:15;31892:48;31707:240;:::o;31953:366::-;32095:3;32116:67;32180:2;32175:3;32116:67;:::i;:::-;32109:74;;32192:93;32281:3;32192:93;:::i;:::-;32310:2;32305:3;32301:12;32294:19;;31953:366;;;:::o;32325:419::-;32491:4;32529:2;32518:9;32514:18;32506:26;;32578:9;32572:4;32568:20;32564:1;32553:9;32549:17;32542:47;32606:131;32732:4;32606:131;:::i;:::-;32598:139;;32325:419;;;:::o;32750:169::-;32890:21;32886:1;32878:6;32874:14;32867:45;32750:169;:::o;32925:366::-;33067:3;33088:67;33152:2;33147:3;33088:67;:::i;:::-;33081:74;;33164:93;33253:3;33164:93;:::i;:::-;33282:2;33277:3;33273:12;33266:19;;32925:366;;;:::o;33297:419::-;33463:4;33501:2;33490:9;33486:18;33478:26;;33550:9;33544:4;33540:20;33536:1;33525:9;33521:17;33514:47;33578:131;33704:4;33578:131;:::i;:::-;33570:139;;33297:419;;;:::o;33722:241::-;33862:34;33858:1;33850:6;33846:14;33839:58;33931:24;33926:2;33918:6;33914:15;33907:49;33722:241;:::o;33969:366::-;34111:3;34132:67;34196:2;34191:3;34132:67;:::i;:::-;34125:74;;34208:93;34297:3;34208:93;:::i;:::-;34326:2;34321:3;34317:12;34310:19;;33969:366;;;:::o;34341:419::-;34507:4;34545:2;34534:9;34530:18;34522:26;;34594:9;34588:4;34584:20;34580:1;34569:9;34565:17;34558:47;34622:131;34748:4;34622:131;:::i;:::-;34614:139;;34341:419;;;:::o;34766:442::-;34915:4;34953:2;34942:9;34938:18;34930:26;;34966:71;35034:1;35023:9;35019:17;35010:6;34966:71;:::i;:::-;35047:72;35115:2;35104:9;35100:18;35091:6;35047:72;:::i;:::-;35129;35197:2;35186:9;35182:18;35173:6;35129:72;:::i;:::-;34766:442;;;;;;:::o;35214:182::-;35354:34;35350:1;35342:6;35338:14;35331:58;35214:182;:::o;35402:366::-;35544:3;35565:67;35629:2;35624:3;35565:67;:::i;:::-;35558:74;;35641:93;35730:3;35641:93;:::i;:::-;35759:2;35754:3;35750:12;35743:19;;35402:366;;;:::o;35774:419::-;35940:4;35978:2;35967:9;35963:18;35955:26;;36027:9;36021:4;36017:20;36013:1;36002:9;35998:17;35991:47;36055:131;36181:4;36055:131;:::i;:::-;36047:139;;35774:419;;;:::o;36199:225::-;36339:34;36335:1;36327:6;36323:14;36316:58;36408:8;36403:2;36395:6;36391:15;36384:33;36199:225;:::o;36430:366::-;36572:3;36593:67;36657:2;36652:3;36593:67;:::i;:::-;36586:74;;36669:93;36758:3;36669:93;:::i;:::-;36787:2;36782:3;36778:12;36771:19;;36430:366;;;:::o;36802:419::-;36968:4;37006:2;36995:9;36991:18;36983:26;;37055:9;37049:4;37045:20;37041:1;37030:9;37026:17;37019:47;37083:131;37209:4;37083:131;:::i;:::-;37075:139;;36802:419;;;:::o;37227:180::-;37275:77;37272:1;37265:88;37372:4;37369:1;37362:15;37396:4;37393:1;37386:15;37413:185;37453:1;37470:20;37488:1;37470:20;:::i;:::-;37465:25;;37504:20;37522:1;37504:20;:::i;:::-;37499:25;;37543:1;37533:35;;37548:18;;:::i;:::-;37533:35;37590:1;37587;37583:9;37578:14;;37413:185;;;;:::o;37604:143::-;37661:5;37692:6;37686:13;37677:22;;37708:33;37735:5;37708:33;:::i;:::-;37604:143;;;;:::o;37753:351::-;37823:6;37872:2;37860:9;37851:7;37847:23;37843:32;37840:119;;;37878:79;;:::i;:::-;37840:119;37998:1;38023:64;38079:7;38070:6;38059:9;38055:22;38023:64;:::i;:::-;38013:74;;37969:128;37753:351;;;;:::o;38110:85::-;38155:7;38184:5;38173:16;;38110:85;;;:::o;38201:158::-;38259:9;38292:61;38310:42;38319:32;38345:5;38319:32;:::i;:::-;38310:42;:::i;:::-;38292:61;:::i;:::-;38279:74;;38201:158;;;:::o;38365:147::-;38460:45;38499:5;38460:45;:::i;:::-;38455:3;38448:58;38365:147;;:::o;38518:114::-;38585:6;38619:5;38613:12;38603:22;;38518:114;;;:::o;38638:184::-;38737:11;38771:6;38766:3;38759:19;38811:4;38806:3;38802:14;38787:29;;38638:184;;;;:::o;38828:132::-;38895:4;38918:3;38910:11;;38948:4;38943:3;38939:14;38931:22;;38828:132;;;:::o;38966:108::-;39043:24;39061:5;39043:24;:::i;:::-;39038:3;39031:37;38966:108;;:::o;39080:179::-;39149:10;39170:46;39212:3;39204:6;39170:46;:::i;:::-;39248:4;39243:3;39239:14;39225:28;;39080:179;;;;:::o;39265:113::-;39335:4;39367;39362:3;39358:14;39350:22;;39265:113;;;:::o;39414:732::-;39533:3;39562:54;39610:5;39562:54;:::i;:::-;39632:86;39711:6;39706:3;39632:86;:::i;:::-;39625:93;;39742:56;39792:5;39742:56;:::i;:::-;39821:7;39852:1;39837:284;39862:6;39859:1;39856:13;39837:284;;;39938:6;39932:13;39965:63;40024:3;40009:13;39965:63;:::i;:::-;39958:70;;40051:60;40104:6;40051:60;:::i;:::-;40041:70;;39897:224;39884:1;39881;39877:9;39872:14;;39837:284;;;39841:14;40137:3;40130:10;;39538:608;;;39414:732;;;;:::o;40152:831::-;40415:4;40453:3;40442:9;40438:19;40430:27;;40467:71;40535:1;40524:9;40520:17;40511:6;40467:71;:::i;:::-;40548:80;40624:2;40613:9;40609:18;40600:6;40548:80;:::i;:::-;40675:9;40669:4;40665:20;40660:2;40649:9;40645:18;40638:48;40703:108;40806:4;40797:6;40703:108;:::i;:::-;40695:116;;40821:72;40889:2;40878:9;40874:18;40865:6;40821:72;:::i;:::-;40903:73;40971:3;40960:9;40956:19;40947:6;40903:73;:::i;:::-;40152:831;;;;;;;;:::o

Swarm Source

ipfs://6b6e88bd483fb62be000394d58cc6e7ae1008a227b57cae402ef769b01f5245c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.