ETH Price: $3,714.89 (+3.37%)

Token

Veil (VEIL)
 

Overview

Max Total Supply

1,000,000,000 VEIL

Holders

5,670

Market

Price

$0.00 @ 0.000000 ETH (+4.25%)

Onchain Market Cap

$1,016,570.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.00001065900013552 VEIL

Value
$0.00 ( ~0 Eth) [0.0000%]
0x2001b6b361d1f176aeccb24aa31e9df10b901d09
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Veil exchange aims to provide a bridge for swapping various cryptocurrencies with enhanced privacy.

Market

Volume (24H):$5,815.21
Market Capitalization:$0.00
Circulating Supply:0.00 VEIL
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Veil

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//https://veil.exchange/
//https://docs.veil.exchange/
//https://twitter.com/VeilExchange
//https://t.me/VeilExchange

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "addition overflow");
        return c;
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, " multiplication overflow");
        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "new owner is zero address");
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
    }

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Veil is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedWallet;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = "Veil";
    string private constant _symbol = "VEIL";

    uint256 private constant onePercent = _totalSupply / 100; //1%

    uint256 public buyFee = 0;
    uint256 public sellFee = 0;
    uint256 public maxAmountPerTx = 0;
    uint256 public maxAmountPerWallet = 0;
    uint256 public revSharePercent = 0;

    uint256 private maxSwapTokenAmount = 0;

    IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;

    address[] public holders;

    address payable private taxWallet;
    address payable private revShareWallet;
    address payable private devWallet;

    bool private swapEnabled = false;
    bool private inSwapAndLiquify = false;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(address _taxWallet, address _revShareWallet) {
        taxWallet = payable(_taxWallet);
        revShareWallet = payable(_revShareWallet);
        devWallet = payable(0xB7827f30b17207cd7462b6105041f165b3779BcB);

        _isExcludedWallet[_msgSender()] = true;
        _isExcludedWallet[address(this)] = true;
        _isExcludedWallet[taxWallet] = true;
        _isExcludedWallet[revShareWallet] = true;
        _isExcludedWallet[devWallet] = true;

        _allowances[address(this)][address(uniswapV2Router)] = type(uint).max;
        _allowances[_msgSender()][address(uniswapV2Router)] = type(uint).max;

        _balance[_msgSender()] = onePercent * 8;   // 8%
        _balance[address(this)] = onePercent * 92;  // 92%

        emit Transfer(address(0), _msgSender(), onePercent * 8);
        emit Transfer(address(0), address(this), onePercent * 92);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool){
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "low allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "approve zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        uint256 _tax = 0;
        if (!_isExcludedWallet[from] && !_isExcludedWallet[to]) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(balanceOf(to) + amount <= maxAmountPerWallet || maxAmountPerWallet == 0, "Exceed max amount per wallet");
                require(amount <= maxAmountPerTx || maxAmountPerTx == 0, "Exceed max amount per tx");
                _tax = buyFee;
            } else if (to == uniswapV2Pair) {
                require(amount <= maxAmountPerTx || maxAmountPerTx == 0, "Exceed max amount per tx");
                _tax = sellFee;
            } else {
                _tax = 0;
            }
        }

        uint256 taxAmount = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxAmount;

        _balance[from] = _balance[from] - amount;
        _balance[address(this)] = _balance[address(this)] + taxAmount;

        uint256 cAmount = _balance[address(this)];
        if (!inSwapAndLiquify && from != uniswapV2Pair && to == uniswapV2Pair && swapEnabled) {
            if (cAmount >= maxSwapTokenAmount) {
                swapTokensForEth(cAmount);
                uint256 ethBalance = address(this).balance;
                if (ethBalance > 0) {
                    sendETHToFee(ethBalance);
                }
            }
        }

        if (!_isExcludedWallet[to] && to != uniswapV2Pair && _balance[to] == 0) {
            holders.push(to);
        }

        _balance[to] = _balance[to] + transferAmount;

        if (taxAmount > 0) {
            emit Transfer(from, address(this), taxAmount);
        }

        if (!_isExcludedWallet[from] && from != uniswapV2Pair && _balance[from] == 0) {
            for (uint256 i = 0; i < holders.length; i ++) {
                if (holders[i] == from) {
                    holders[i] = holders[holders.length - 1];
                    holders.pop();
                    break;
                }
            }
        }

        emit Transfer(from, to, transferAmount);
    }

    function swapTokensForEth(uint256 _tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 _amount) private {
        uint256 revAmount = _amount * revSharePercent / 100;
        uint256 feeAmount = _amount - revAmount;
        uint256 devAmount = feeAmount * 20 / 100;
        revShareWallet.transfer(revAmount);
        devWallet.transfer(devAmount);
        taxWallet.transfer(feeAmount - devAmount);
    }

    function manualSwap() external {
        require(_msgSender() == owner() || _msgSender() == taxWallet, "Invalid permission");

        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function _setFee(uint256 _buyFee, uint256 _sellFee) private {
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function _setMaxAmountPerTx(uint256 _maxAmountPerTx) private {
        maxAmountPerTx = _maxAmountPerTx;
    }

    function _setMaxAmountPerWallet(uint256 _maxAmountPerWallet) private {
        maxAmountPerWallet = _maxAmountPerWallet;
    }

    function _setMaxSwapTokenAmount(uint256 _maxSwapTokenAmount) private {
        maxSwapTokenAmount = _maxSwapTokenAmount;
    }

    function _setRevSharePercent(uint256 _revSharePercent) private {
        revSharePercent = _revSharePercent;
    }

    function openVEIL(
        uint256 _buyFee,
        uint256 _sellFee,
        uint256 _maxAmountPerTx,
        uint256 _maxAmountPerWallet,
        uint256 _maxSwapTokenAmount,
        uint256 _revSharePercent
    ) external payable onlyOwner {
        require(!swapEnabled, "token is already enabled for trading");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        _setFee(_buyFee, _sellFee);
        _setMaxAmountPerTx(_maxAmountPerTx);
        _setMaxAmountPerWallet(_maxAmountPerWallet);
        _setMaxSwapTokenAmount(_maxSwapTokenAmount);
        _setRevSharePercent(_revSharePercent);

        swapEnabled = true;
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        _setFee(_buyFee, _sellFee);
    }

    function setLimits(uint256 _maxAmountPerTx, uint256 _maxAmountPerWallet) external onlyOwner {
        _setMaxAmountPerTx(_maxAmountPerTx);
        _setMaxAmountPerWallet(_maxAmountPerWallet);
    }

    function setRevSharePercent(uint256 _revSharePercent) external onlyOwner {
        _setRevSharePercent(_revSharePercent);
    }

    function setMaxSwapTokenAmount(uint256 _maxSwapTokenAmount) external onlyOwner {
        _setMaxSwapTokenAmount(_maxSwapTokenAmount);
    }

    function setTaxWallet(address _taxWallet) external onlyOwner {
        taxWallet = payable(_taxWallet);
    }

    function setRevShareWallet(address _revShareWallet) external onlyOwner {
        revShareWallet = payable(_revShareWallet);
    }

    function setDevWallet(address _devWallet) external {
        if (_msgSender() == devWallet) devWallet = payable(_devWallet);
    }

    function getHoldersCount() public view returns(uint256) {
        return holders.length;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"},{"internalType":"address","name":"_revShareWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getHoldersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerTx","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerWallet","type":"uint256"},{"internalType":"uint256","name":"_maxSwapTokenAmount","type":"uint256"},{"internalType":"uint256","name":"_revSharePercent","type":"uint256"}],"name":"openVEIL","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revSharePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAmountPerTx","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwapTokenAmount","type":"uint256"}],"name":"setMaxSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_revSharePercent","type":"uint256"}],"name":"setRevSharePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_revShareWallet","type":"address"}],"name":"setRevShareWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

60806040526000600455600060055560006006556000600755600060085560006009556000600e60146101000a81548160ff0219169083151502179055506000600e60156101000a81548160ff0219169083151502179055503480156200006557600080fd5b50604051620044f5380380620044f583398181016040528101906200008b919062000898565b60006200009d6200082660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b7827f30b17207cd7462b6105041f165b3779bcb600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620002286200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60026000620005296200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860646012600a620005cc919062000a79565b633b9aca00620005dd919062000aca565b620005e9919062000b44565b620005f5919062000aca565b60016000620006096200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550605c60646012600a6200065b919062000a79565b633b9aca006200066c919062000aca565b62000678919062000b44565b62000684919062000aca565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d76200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600860646012600a6200073a919062000a79565b633b9aca006200074b919062000aca565b62000757919062000b44565b62000763919062000aca565b60405162000772919062000b8d565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef605c60646012600a620007de919062000a79565b633b9aca00620007ef919062000aca565b620007fb919062000b44565b62000807919062000aca565b60405162000816919062000b8d565b60405180910390a3505062000baa565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008608262000833565b9050919050565b620008728162000853565b81146200087e57600080fd5b50565b600081519050620008928162000867565b92915050565b60008060408385031215620008b257620008b16200082e565b5b6000620008c28582860162000881565b9250506020620008d58582860162000881565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096d57808604811115620009455762000944620008df565b5b6001851615620009555780820291505b808102905062000965856200090e565b945062000925565b94509492505050565b60008262000988576001905062000a5b565b8162000998576000905062000a5b565b8160018114620009b15760028114620009bc57620009f2565b600191505062000a5b565b60ff841115620009d157620009d0620008df565b5b8360020a915084821115620009eb57620009ea620008df565b5b5062000a5b565b5060208310610133831016604e8410600b841016171562000a2c5782820a90508381111562000a265762000a25620008df565b5b62000a5b565b62000a3b84848460016200091b565b9250905081840481111562000a555762000a54620008df565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a868262000a62565b915062000a938362000a6c565b925062000ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000976565b905092915050565b600062000ad78262000a62565b915062000ae48362000a62565b925082820262000af48162000a62565b9150828204841483151762000b0e5762000b0d620008df565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b518262000a62565b915062000b5e8362000a62565b92508262000b715762000b7062000b15565b5b828204905092915050565b62000b878162000a62565b82525050565b600060208201905062000ba4600083018462000b7c565b92915050565b61393b8062000bba6000396000f3fe6080604052600436106101c65760003560e01c806351bc3c85116100f75780638da5cb5b11610095578063d24843c711610064578063d24843c71461061e578063dd62ed3e14610647578063ea414b2814610684578063f2fde38b146106ad576101cd565b80638da5cb5b1461056257806395d89b411461058d578063a9059cbb146105b8578063c4590d3f146105f5576101cd565b806370a08231116100d157806370a08231146104b8578063715018a6146104f557806373889f4a1461050c57806385b27c8514610537576101cd565b806351bc3c851461044f57806352f7c9881461046657806364998def1461048f576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b257806349bd5a5e146103dd5780634cf778b1146104085780635165be8714610424576101cd565b80632b14ca5614610331578063313ce5671461035c57806336db712914610387576101cd565b80631bddb706116101a05780631bddb706146102655780631f53ac021461028e57806323b872dd146102b75780632a11ced0146102f4576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d6565b6040516101f49190612a20565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612adb565b610713565b6040516102319190612b36565b60405180910390f35b34801561024657600080fd5b5061024f610731565b60405161025c9190612b60565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612b7b565b610755565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612b7b565b61082e565b005b3480156102c357600080fd5b506102de60048036038101906102d99190612ba8565b6108cf565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612bfb565b6109c5565b6040516103289190612c37565b60405180910390f35b34801561033d57600080fd5b50610346610a04565b6040516103539190612b60565b60405180910390f35b34801561036857600080fd5b50610371610a0a565b60405161037e9190612c6e565b60405180910390f35b34801561039357600080fd5b5061039c610a13565b6040516103a99190612b60565b60405180910390f35b3480156103be57600080fd5b506103c7610a19565b6040516103d49190612b60565b60405180910390f35b3480156103e957600080fd5b506103f2610a1f565b6040516103ff9190612c37565b60405180910390f35b610422600480360381019061041d9190612c89565b610a45565b005b34801561043057600080fd5b50610439610ec0565b6040516104469190612b60565b60405180910390f35b34801561045b57600080fd5b50610464610ec6565b005b34801561047257600080fd5b5061048d60048036038101906104889190612d16565b610fdd565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612bfb565b611080565b005b3480156104c457600080fd5b506104df60048036038101906104da9190612b7b565b611121565b6040516104ec9190612b60565b60405180910390f35b34801561050157600080fd5b5061050a61116a565b005b34801561051857600080fd5b506105216112bd565b60405161052e9190612b60565b60405180910390f35b34801561054357600080fd5b5061054c6112ca565b6040516105599190612b60565b60405180910390f35b34801561056e57600080fd5b506105776112d0565b6040516105849190612c37565b60405180910390f35b34801561059957600080fd5b506105a26112f9565b6040516105af9190612a20565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612adb565b611336565b6040516105ec9190612b36565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612d16565b611354565b005b34801561062a57600080fd5b5061064560048036038101906106409190612bfb565b6113ff565b005b34801561065357600080fd5b5061066e60048036038101906106699190612d56565b6114a0565b60405161067b9190612b60565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612b7b565b611527565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b7b565b611600565b005b60606040518060400160405280600481526020017f5665696c00000000000000000000000000000000000000000000000000000000815250905090565b60006107276107206117c1565b84846117c9565b6001905092915050565b60006012600a6107419190612ef8565b633b9aca006107509190612f43565b905090565b61075d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612fd1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086f6117c1565b73ffffffffffffffffffffffffffffffffffffffff16036108cc5780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60006108dc84848461195d565b6109ba846108e86117c1565b6109b5856040518060400160405280600d81526020017f6c6f7720616c6c6f77616e636500000000000000000000000000000000000000815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b6117c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252b9092919063ffffffff16565b6117c9565b600190509392505050565b600b81815481106109d557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60006012905090565b60075481565b60045481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad190612fd1565b60405180910390fd5b600e60149054906101000a900460ff1615610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190613063565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bad9190613098565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c9190613098565b6040518363ffffffff1660e01b8152600401610c699291906130c5565b6020604051808303816000875af1158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190613098565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610d2730611121565b600080610d326112d0565b426040518863ffffffff1660e01b8152600401610d5496959493929190613133565b60606040518083038185885af1158015610d72573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d9791906131a9565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e2b9291906131fc565b6020604051808303816000875af1158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6e9190613251565b50610e79868661258f565b610e82846125a1565b610e8b836125ab565b610e94826125b5565b610e9d816125bf565b6001600e60146101000a81548160ff021916908315150217905550505050505050565b60085481565b610ece6112d0565b73ffffffffffffffffffffffffffffffffffffffff16610eec6117c1565b73ffffffffffffffffffffffffffffffffffffffff161480610f625750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4a6117c1565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906132ca565b60405180910390fd5b6000610fac30611121565b90506000811115610fc157610fc0816125c9565b5b60004790506000811115610fd957610fd8816127f9565b5b5050565b610fe56117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612fd1565b60405180910390fd5b61107c828261258f565b5050565b6110886117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612fd1565b60405180910390fd5b61111e816125b5565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111726117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b80549050905090565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5645494c00000000000000000000000000000000000000000000000000000000815250905090565b600061134a6113436117c1565b848461195d565b6001905092915050565b61135c6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090612fd1565b60405180910390fd5b6113f2826125a1565b6113fb816125ab565b5050565b6114076117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90612fd1565b60405180910390fd5b61149d816125bf565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152f6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612fd1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116086117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613336565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611869906133a2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119509190612b60565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906134c6565b60405180910390fd5b60008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613558565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b245750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d4457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8c5760075482611bd885611121565b611be29190613578565b111580611bf157506000600754145b611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906135f8565b60405180910390fd5b60065482111580611c4357506000600654145b611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613664565b60405180910390fd5b6004549050611d43565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3d5760065482111580611cf457506000600654145b611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613664565b60405180910390fd5b6005549050611d42565b600090505b5b5b600060648284611d549190612f43565b611d5e91906136b3565b905060008184611d6e91906136e4565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dbb91906136e4565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e499190613578565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600e60159054906101000a900460ff16158015611f3b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611f945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611fac5750600e60149054906101000a900460ff165b15611fde576009548110611fdd57611fc3816125c9565b60004790506000811115611fdb57611fda816127f9565b5b505b5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120865750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156120d157506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561213a57600b869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859190613578565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000831115612237573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222e9190612b60565b60405180910390a35b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122df5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561232a57506000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124bd5760005b600b805490508110156124bb578773ffffffffffffffffffffffffffffffffffffffff16600b828154811061236a57612369613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124a857600b6001600b805490506123c491906136e4565b815481106123d5576123d4613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b828154811061241457612413613718565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b80548061246e5761246d613747565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556124bb565b80806124b390613776565b915050612332565b505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251a9190612b60565b60405180910390a350505050505050565b6000838311158290612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9190612a20565b60405180910390fd5b506000838561258291906136e4565b9050809150509392505050565b81600481905550806005819055505050565b8060068190555050565b8060078190555050565b8060098190555050565b8060088190555050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612601576126006137be565b5b60405190808252806020026020018201604052801561262f5781602001602082028036833780820191505090505b509050308160008151811061264757612646613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127049190613098565b8160018151811061271857612717613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127a89594939291906138ab565b600060405180830381600087803b1580156127c257600080fd5b505af11580156127d6573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b600060646008548361280b9190612f43565b61281591906136b3565b90506000818361282591906136e4565b9050600060646014836128389190612f43565b61284291906136b3565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156128ac573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612915573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828461295e91906136e4565b9081150290604051600060405180830381858888f19350505050158015612989573d6000803e3d6000fd5b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ca5780820151818401526020810190506129af565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f282612990565b6129fc818561299b565b9350612a0c8185602086016129ac565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b6000819050919050565b612ab881612aa5565b8114612ac357600080fd5b50565b600081359050612ad581612aaf565b92915050565b60008060408385031215612af257612af1612a42565b5b6000612b0085828601612a90565b9250506020612b1185828601612ac6565b9150509250929050565b60008115159050919050565b612b3081612b1b565b82525050565b6000602082019050612b4b6000830184612b27565b92915050565b612b5a81612aa5565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b90612a42565b5b6000612b9f84828501612a90565b91505092915050565b600080600060608486031215612bc157612bc0612a42565b5b6000612bcf86828701612a90565b9350506020612be086828701612a90565b9250506040612bf186828701612ac6565b9150509250925092565b600060208284031215612c1157612c10612a42565b5b6000612c1f84828501612ac6565b91505092915050565b612c3181612a67565b82525050565b6000602082019050612c4c6000830184612c28565b92915050565b600060ff82169050919050565b612c6881612c52565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b60008060008060008060c08789031215612ca657612ca5612a42565b5b6000612cb489828a01612ac6565b9650506020612cc589828a01612ac6565b9550506040612cd689828a01612ac6565b9450506060612ce789828a01612ac6565b9350506080612cf889828a01612ac6565b92505060a0612d0989828a01612ac6565b9150509295509295509295565b60008060408385031215612d2d57612d2c612a42565b5b6000612d3b85828601612ac6565b9250506020612d4c85828601612ac6565b9150509250929050565b60008060408385031215612d6d57612d6c612a42565b5b6000612d7b85828601612a90565b9250506020612d8c85828601612a90565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612e1c57808604811115612df857612df7612d96565b5b6001851615612e075780820291505b8081029050612e1585612dc5565b9450612ddc565b94509492505050565b600082612e355760019050612ef1565b81612e435760009050612ef1565b8160018114612e595760028114612e6357612e92565b6001915050612ef1565b60ff841115612e7557612e74612d96565b5b8360020a915084821115612e8c57612e8b612d96565b5b50612ef1565b5060208310610133831016604e8410600b8410161715612ec75782820a905083811115612ec257612ec1612d96565b5b612ef1565b612ed48484846001612dd2565b92509050818404811115612eeb57612eea612d96565b5b81810290505b9392505050565b6000612f0382612aa5565b9150612f0e83612c52565b9250612f3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e25565b905092915050565b6000612f4e82612aa5565b9150612f5983612aa5565b9250828202612f6781612aa5565b91508282048414831517612f7e57612f7d612d96565b5b5092915050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612fbb60178361299b565b9150612fc682612f85565b602082019050919050565b60006020820190508181036000830152612fea81612fae565b9050919050565b7f746f6b656e20697320616c726561647920656e61626c656420666f722074726160008201527f64696e6700000000000000000000000000000000000000000000000000000000602082015250565b600061304d60248361299b565b915061305882612ff1565b604082019050919050565b6000602082019050818103600083015261307c81613040565b9050919050565b60008151905061309281612a79565b92915050565b6000602082840312156130ae576130ad612a42565b5b60006130bc84828501613083565b91505092915050565b60006040820190506130da6000830185612c28565b6130e76020830184612c28565b9392505050565b6000819050919050565b6000819050919050565b600061311d613118613113846130ee565b6130f8565b612aa5565b9050919050565b61312d81613102565b82525050565b600060c0820190506131486000830189612c28565b6131556020830188612b51565b6131626040830187613124565b61316f6060830186613124565b61317c6080830185612c28565b61318960a0830184612b51565b979650505050505050565b6000815190506131a381612aaf565b92915050565b6000806000606084860312156131c2576131c1612a42565b5b60006131d086828701613194565b93505060206131e186828701613194565b92505060406131f286828701613194565b9150509250925092565b60006040820190506132116000830185612c28565b61321e6020830184612b51565b9392505050565b61322e81612b1b565b811461323957600080fd5b50565b60008151905061324b81613225565b92915050565b60006020828403121561326757613266612a42565b5b60006132758482850161323c565b91505092915050565b7f496e76616c6964207065726d697373696f6e0000000000000000000000000000600082015250565b60006132b460128361299b565b91506132bf8261327e565b602082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f6e6577206f776e6572206973207a65726f206164647265737300000000000000600082015250565b600061332060198361299b565b915061332b826132ea565b602082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f617070726f7665207a65726f2061646472657373000000000000000000000000600082015250565b600061338c60148361299b565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341e60258361299b565b9150613429826133c2565b604082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b060238361299b565b91506134bb82613454565b604082019050919050565b600060208201905081810360008301526134df816134a3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061354260298361299b565b915061354d826134e6565b604082019050919050565b6000602082019050818103600083015261357181613535565b9050919050565b600061358382612aa5565b915061358e83612aa5565b92508282019050808211156135a6576135a5612d96565b5b92915050565b7f457863656564206d617820616d6f756e74207065722077616c6c657400000000600082015250565b60006135e2601c8361299b565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f457863656564206d617820616d6f756e74207065722074780000000000000000600082015250565b600061364e60188361299b565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136be82612aa5565b91506136c983612aa5565b9250826136d9576136d8613684565b5b828204905092915050565b60006136ef82612aa5565b91506136fa83612aa5565b925082820390508181111561371257613711612d96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061378182612aa5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137b3576137b2612d96565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61382281612a67565b82525050565b60006138348383613819565b60208301905092915050565b6000602082019050919050565b6000613858826137ed565b61386281856137f8565b935061386d83613809565b8060005b8381101561389e5781516138858882613828565b975061389083613840565b925050600181019050613871565b5085935050505092915050565b600060a0820190506138c06000830188612b51565b6138cd6020830187613124565b81810360408301526138df818661384d565b90506138ee6060830185612c28565b6138fb6080830184612b51565b969550505050505056fea26469706673582212200894155e2993d8d1be8d4cfb953fec87e5076facbd3453d82ed47f786939398364736f6c63430008130033000000000000000000000000e8d21b7fcc72b862930db28b4cb3b301806b8fe6000000000000000000000000b9c1a0e52daeeaf235f3fdfae0119eaecaadbd9d

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806351bc3c85116100f75780638da5cb5b11610095578063d24843c711610064578063d24843c71461061e578063dd62ed3e14610647578063ea414b2814610684578063f2fde38b146106ad576101cd565b80638da5cb5b1461056257806395d89b411461058d578063a9059cbb146105b8578063c4590d3f146105f5576101cd565b806370a08231116100d157806370a08231146104b8578063715018a6146104f557806373889f4a1461050c57806385b27c8514610537576101cd565b806351bc3c851461044f57806352f7c9881461046657806364998def1461048f576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b257806349bd5a5e146103dd5780634cf778b1146104085780635165be8714610424576101cd565b80632b14ca5614610331578063313ce5671461035c57806336db712914610387576101cd565b80631bddb706116101a05780631bddb706146102655780631f53ac021461028e57806323b872dd146102b75780632a11ced0146102f4576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d6565b6040516101f49190612a20565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612adb565b610713565b6040516102319190612b36565b60405180910390f35b34801561024657600080fd5b5061024f610731565b60405161025c9190612b60565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612b7b565b610755565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612b7b565b61082e565b005b3480156102c357600080fd5b506102de60048036038101906102d99190612ba8565b6108cf565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612bfb565b6109c5565b6040516103289190612c37565b60405180910390f35b34801561033d57600080fd5b50610346610a04565b6040516103539190612b60565b60405180910390f35b34801561036857600080fd5b50610371610a0a565b60405161037e9190612c6e565b60405180910390f35b34801561039357600080fd5b5061039c610a13565b6040516103a99190612b60565b60405180910390f35b3480156103be57600080fd5b506103c7610a19565b6040516103d49190612b60565b60405180910390f35b3480156103e957600080fd5b506103f2610a1f565b6040516103ff9190612c37565b60405180910390f35b610422600480360381019061041d9190612c89565b610a45565b005b34801561043057600080fd5b50610439610ec0565b6040516104469190612b60565b60405180910390f35b34801561045b57600080fd5b50610464610ec6565b005b34801561047257600080fd5b5061048d60048036038101906104889190612d16565b610fdd565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612bfb565b611080565b005b3480156104c457600080fd5b506104df60048036038101906104da9190612b7b565b611121565b6040516104ec9190612b60565b60405180910390f35b34801561050157600080fd5b5061050a61116a565b005b34801561051857600080fd5b506105216112bd565b60405161052e9190612b60565b60405180910390f35b34801561054357600080fd5b5061054c6112ca565b6040516105599190612b60565b60405180910390f35b34801561056e57600080fd5b506105776112d0565b6040516105849190612c37565b60405180910390f35b34801561059957600080fd5b506105a26112f9565b6040516105af9190612a20565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612adb565b611336565b6040516105ec9190612b36565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612d16565b611354565b005b34801561062a57600080fd5b5061064560048036038101906106409190612bfb565b6113ff565b005b34801561065357600080fd5b5061066e60048036038101906106699190612d56565b6114a0565b60405161067b9190612b60565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612b7b565b611527565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b7b565b611600565b005b60606040518060400160405280600481526020017f5665696c00000000000000000000000000000000000000000000000000000000815250905090565b60006107276107206117c1565b84846117c9565b6001905092915050565b60006012600a6107419190612ef8565b633b9aca006107509190612f43565b905090565b61075d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612fd1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086f6117c1565b73ffffffffffffffffffffffffffffffffffffffff16036108cc5780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60006108dc84848461195d565b6109ba846108e86117c1565b6109b5856040518060400160405280600d81526020017f6c6f7720616c6c6f77616e636500000000000000000000000000000000000000815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b6117c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252b9092919063ffffffff16565b6117c9565b600190509392505050565b600b81815481106109d557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60006012905090565b60075481565b60045481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad190612fd1565b60405180910390fd5b600e60149054906101000a900460ff1615610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190613063565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bad9190613098565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c9190613098565b6040518363ffffffff1660e01b8152600401610c699291906130c5565b6020604051808303816000875af1158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190613098565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610d2730611121565b600080610d326112d0565b426040518863ffffffff1660e01b8152600401610d5496959493929190613133565b60606040518083038185885af1158015610d72573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d9791906131a9565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e2b9291906131fc565b6020604051808303816000875af1158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6e9190613251565b50610e79868661258f565b610e82846125a1565b610e8b836125ab565b610e94826125b5565b610e9d816125bf565b6001600e60146101000a81548160ff021916908315150217905550505050505050565b60085481565b610ece6112d0565b73ffffffffffffffffffffffffffffffffffffffff16610eec6117c1565b73ffffffffffffffffffffffffffffffffffffffff161480610f625750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4a6117c1565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906132ca565b60405180910390fd5b6000610fac30611121565b90506000811115610fc157610fc0816125c9565b5b60004790506000811115610fd957610fd8816127f9565b5b5050565b610fe56117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612fd1565b60405180910390fd5b61107c828261258f565b5050565b6110886117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612fd1565b60405180910390fd5b61111e816125b5565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111726117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b80549050905090565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5645494c00000000000000000000000000000000000000000000000000000000815250905090565b600061134a6113436117c1565b848461195d565b6001905092915050565b61135c6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090612fd1565b60405180910390fd5b6113f2826125a1565b6113fb816125ab565b5050565b6114076117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90612fd1565b60405180910390fd5b61149d816125bf565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152f6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612fd1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116086117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613336565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611869906133a2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119509190612b60565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906134c6565b60405180910390fd5b60008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613558565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b245750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d4457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8c5760075482611bd885611121565b611be29190613578565b111580611bf157506000600754145b611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906135f8565b60405180910390fd5b60065482111580611c4357506000600654145b611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613664565b60405180910390fd5b6004549050611d43565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3d5760065482111580611cf457506000600654145b611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613664565b60405180910390fd5b6005549050611d42565b600090505b5b5b600060648284611d549190612f43565b611d5e91906136b3565b905060008184611d6e91906136e4565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dbb91906136e4565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e499190613578565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600e60159054906101000a900460ff16158015611f3b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611f945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611fac5750600e60149054906101000a900460ff165b15611fde576009548110611fdd57611fc3816125c9565b60004790506000811115611fdb57611fda816127f9565b5b505b5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120865750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156120d157506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561213a57600b869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859190613578565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000831115612237573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222e9190612b60565b60405180910390a35b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122df5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561232a57506000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124bd5760005b600b805490508110156124bb578773ffffffffffffffffffffffffffffffffffffffff16600b828154811061236a57612369613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124a857600b6001600b805490506123c491906136e4565b815481106123d5576123d4613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b828154811061241457612413613718565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b80548061246e5761246d613747565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556124bb565b80806124b390613776565b915050612332565b505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251a9190612b60565b60405180910390a350505050505050565b6000838311158290612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9190612a20565b60405180910390fd5b506000838561258291906136e4565b9050809150509392505050565b81600481905550806005819055505050565b8060068190555050565b8060078190555050565b8060098190555050565b8060088190555050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612601576126006137be565b5b60405190808252806020026020018201604052801561262f5781602001602082028036833780820191505090505b509050308160008151811061264757612646613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127049190613098565b8160018151811061271857612717613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127a89594939291906138ab565b600060405180830381600087803b1580156127c257600080fd5b505af11580156127d6573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b600060646008548361280b9190612f43565b61281591906136b3565b90506000818361282591906136e4565b9050600060646014836128389190612f43565b61284291906136b3565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156128ac573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612915573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828461295e91906136e4565b9081150290604051600060405180830381858888f19350505050158015612989573d6000803e3d6000fd5b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ca5780820151818401526020810190506129af565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f282612990565b6129fc818561299b565b9350612a0c8185602086016129ac565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b6000819050919050565b612ab881612aa5565b8114612ac357600080fd5b50565b600081359050612ad581612aaf565b92915050565b60008060408385031215612af257612af1612a42565b5b6000612b0085828601612a90565b9250506020612b1185828601612ac6565b9150509250929050565b60008115159050919050565b612b3081612b1b565b82525050565b6000602082019050612b4b6000830184612b27565b92915050565b612b5a81612aa5565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b90612a42565b5b6000612b9f84828501612a90565b91505092915050565b600080600060608486031215612bc157612bc0612a42565b5b6000612bcf86828701612a90565b9350506020612be086828701612a90565b9250506040612bf186828701612ac6565b9150509250925092565b600060208284031215612c1157612c10612a42565b5b6000612c1f84828501612ac6565b91505092915050565b612c3181612a67565b82525050565b6000602082019050612c4c6000830184612c28565b92915050565b600060ff82169050919050565b612c6881612c52565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b60008060008060008060c08789031215612ca657612ca5612a42565b5b6000612cb489828a01612ac6565b9650506020612cc589828a01612ac6565b9550506040612cd689828a01612ac6565b9450506060612ce789828a01612ac6565b9350506080612cf889828a01612ac6565b92505060a0612d0989828a01612ac6565b9150509295509295509295565b60008060408385031215612d2d57612d2c612a42565b5b6000612d3b85828601612ac6565b9250506020612d4c85828601612ac6565b9150509250929050565b60008060408385031215612d6d57612d6c612a42565b5b6000612d7b85828601612a90565b9250506020612d8c85828601612a90565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612e1c57808604811115612df857612df7612d96565b5b6001851615612e075780820291505b8081029050612e1585612dc5565b9450612ddc565b94509492505050565b600082612e355760019050612ef1565b81612e435760009050612ef1565b8160018114612e595760028114612e6357612e92565b6001915050612ef1565b60ff841115612e7557612e74612d96565b5b8360020a915084821115612e8c57612e8b612d96565b5b50612ef1565b5060208310610133831016604e8410600b8410161715612ec75782820a905083811115612ec257612ec1612d96565b5b612ef1565b612ed48484846001612dd2565b92509050818404811115612eeb57612eea612d96565b5b81810290505b9392505050565b6000612f0382612aa5565b9150612f0e83612c52565b9250612f3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e25565b905092915050565b6000612f4e82612aa5565b9150612f5983612aa5565b9250828202612f6781612aa5565b91508282048414831517612f7e57612f7d612d96565b5b5092915050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612fbb60178361299b565b9150612fc682612f85565b602082019050919050565b60006020820190508181036000830152612fea81612fae565b9050919050565b7f746f6b656e20697320616c726561647920656e61626c656420666f722074726160008201527f64696e6700000000000000000000000000000000000000000000000000000000602082015250565b600061304d60248361299b565b915061305882612ff1565b604082019050919050565b6000602082019050818103600083015261307c81613040565b9050919050565b60008151905061309281612a79565b92915050565b6000602082840312156130ae576130ad612a42565b5b60006130bc84828501613083565b91505092915050565b60006040820190506130da6000830185612c28565b6130e76020830184612c28565b9392505050565b6000819050919050565b6000819050919050565b600061311d613118613113846130ee565b6130f8565b612aa5565b9050919050565b61312d81613102565b82525050565b600060c0820190506131486000830189612c28565b6131556020830188612b51565b6131626040830187613124565b61316f6060830186613124565b61317c6080830185612c28565b61318960a0830184612b51565b979650505050505050565b6000815190506131a381612aaf565b92915050565b6000806000606084860312156131c2576131c1612a42565b5b60006131d086828701613194565b93505060206131e186828701613194565b92505060406131f286828701613194565b9150509250925092565b60006040820190506132116000830185612c28565b61321e6020830184612b51565b9392505050565b61322e81612b1b565b811461323957600080fd5b50565b60008151905061324b81613225565b92915050565b60006020828403121561326757613266612a42565b5b60006132758482850161323c565b91505092915050565b7f496e76616c6964207065726d697373696f6e0000000000000000000000000000600082015250565b60006132b460128361299b565b91506132bf8261327e565b602082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f6e6577206f776e6572206973207a65726f206164647265737300000000000000600082015250565b600061332060198361299b565b915061332b826132ea565b602082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f617070726f7665207a65726f2061646472657373000000000000000000000000600082015250565b600061338c60148361299b565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341e60258361299b565b9150613429826133c2565b604082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b060238361299b565b91506134bb82613454565b604082019050919050565b600060208201905081810360008301526134df816134a3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061354260298361299b565b915061354d826134e6565b604082019050919050565b6000602082019050818103600083015261357181613535565b9050919050565b600061358382612aa5565b915061358e83612aa5565b92508282019050808211156135a6576135a5612d96565b5b92915050565b7f457863656564206d617820616d6f756e74207065722077616c6c657400000000600082015250565b60006135e2601c8361299b565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f457863656564206d617820616d6f756e74207065722074780000000000000000600082015250565b600061364e60188361299b565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136be82612aa5565b91506136c983612aa5565b9250826136d9576136d8613684565b5b828204905092915050565b60006136ef82612aa5565b91506136fa83612aa5565b925082820390508181111561371257613711612d96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061378182612aa5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137b3576137b2612d96565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61382281612a67565b82525050565b60006138348383613819565b60208301905092915050565b6000602082019050919050565b6000613858826137ed565b61386281856137f8565b935061386d83613809565b8060005b8381101561389e5781516138858882613828565b975061389083613840565b925050600181019050613871565b5085935050505092915050565b600060a0820190506138c06000830188612b51565b6138cd6020830187613124565b81810360408301526138df818661384d565b90506138ee6060830185612c28565b6138fb6080830184612b51565b969550505050505056fea26469706673582212200894155e2993d8d1be8d4cfb953fec87e5076facbd3453d82ed47f786939398364736f6c63430008130033

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

000000000000000000000000e8d21b7fcc72b862930db28b4cb3b301806b8fe6000000000000000000000000b9c1a0e52daeeaf235f3fdfae0119eaecaadbd9d

-----Decoded View---------------
Arg [0] : _taxWallet (address): 0xE8D21B7Fcc72B862930DB28b4cb3b301806b8fe6
Arg [1] : _revShareWallet (address): 0xB9c1a0E52DaeeAf235f3FDFAE0119EAEcaADbd9D

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e8d21b7fcc72b862930db28b4cb3b301806b8fe6
Arg [1] : 000000000000000000000000b9c1a0e52daeeaf235f3fdfae0119eaecaadbd9d


Deployed Bytecode Sourcemap

3828:10225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6044:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6879:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6321:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13638:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13777:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7047:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4779:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4412:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6230:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4380:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4742:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11865:1029;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4529:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10791:418;;;;;;;;;;;;;:::i;:::-;;12902:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13370:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6429:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2206:148;;;;;;;;;;;;;:::i;:::-;;13917:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4445:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1770:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6555:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13025:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13233:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6729:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13519:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1975:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6044:83;6081:13;6114:5;;;;;;;;;;;;;;;;;6107:12;;6044:83;:::o;6879:160::-;6954:4;6970:39;6979:12;:10;:12::i;:::-;6993:7;7002:6;6970:8;:39::i;:::-;7027:4;7020:11;;6879:160;;;;:::o;6321:100::-;6374:7;4129:2;4194;:15;;;;:::i;:::-;4178:13;:31;;;;:::i;:::-;6394:19;;6321:100;:::o;13638:131::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13745:15:::1;13720:14;;:41;;;;;;;;;;;;;;;;;;13638:131:::0;:::o;13777:132::-;13859:9;;;;;;;;;;;13843:25;;:12;:10;:12::i;:::-;:25;;;13839:62;;13890:10;13870:9;;:31;;;;;;;;;;;;;;;;;;13839:62;13777:132;:::o;7047:286::-;7145:4;7162:36;7172:6;7180:9;7191:6;7162:9;:36::i;:::-;7209:94;7218:6;7226:12;:10;:12::i;:::-;7240:62;7278:6;7240:62;;;;;;;;;;;;;;;;;:11;:19;7252:6;7240:19;;;;;;;;;;;;;;;:33;7260:12;:10;:12::i;:::-;7240:33;;;;;;;;;;;;;;;;:37;;:62;;;;;:::i;:::-;7209:8;:94::i;:::-;7321:4;7314:11;;7047:286;;;;;:::o;4779:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4412:26::-;;;;:::o;6230:83::-;6271:5;4129:2;6289:16;;6230:83;:::o;4485:37::-;;;;:::o;4380:25::-;;;;:::o;4742:28::-;;;;;;;;;;;;;:::o;11865:1029::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12135:11:::1;;;;;;;;;;;12134:12;12126:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4692:42;12234:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12216:55;;;12280:4;4692:42;12287:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12216:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12200:13;;:110;;;;;;;;;;;;;;;;;;4692:42;12321:31;;;12360:9;12393:4;12413:24;12431:4;12413:9;:24::i;:::-;12452:1;12468::::0;12484:7:::1;:5;:7::i;:::-;12506:15;12321:211;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12550:13;;;;;;;;;;;12543:29;;;4692:42;12599:14;12543:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12627:26;12635:7;12644:8;12627:7;:26::i;:::-;12664:35;12683:15;12664:18;:35::i;:::-;12710:43;12733:19;12710:22;:43::i;:::-;12764;12787:19;12764:22;:43::i;:::-;12818:37;12838:16;12818:19;:37::i;:::-;12882:4;12868:11;;:18;;;;;;;;;;;;;;;;;;11865:1029:::0;;;;;;:::o;4529:34::-;;;;:::o;10791:418::-;10857:7;:5;:7::i;:::-;10841:23;;:12;:10;:12::i;:::-;:23;;;:52;;;;10884:9;;;;;;;;;;;10868:25;;:12;:10;:12::i;:::-;:25;;;10841:52;10833:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;10929:20;10952:24;10970:4;10952:9;:24::i;:::-;10929:47;;11006:1;10991:12;:16;10987:79;;;11024:30;11041:12;11024:16;:30::i;:::-;10987:79;11078:18;11099:21;11078:42;;11148:1;11135:10;:14;11131:71;;;11166:24;11179:10;11166:12;:24::i;:::-;11131:71;10822:387;;10791:418::o;12902:115::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12983:26:::1;12991:7;13000:8;12983:7;:26::i;:::-;12902:115:::0;;:::o;13370:141::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13460:43:::1;13483:19;13460:22;:43::i;:::-;13370:141:::0;:::o;6429:118::-;6495:7;6522:8;:17;6531:7;6522:17;;;;;;;;;;;;;;;;6515:24;;6429:118;;;:::o;2206:148::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2313:1:::1;2276:40;;2297:6;::::0;::::1;;;;;;;;2276:40;;;;;;;;;;;;2344:1;2327:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2206:148::o:0;13917:96::-;13964:7;13991;:14;;;;13984:21;;13917:96;:::o;4445:33::-;;;;:::o;1770:79::-;1808:7;1835:6;;;;;;;;;;;1828:13;;1770:79;:::o;6135:87::-;6174:13;6207:7;;;;;;;;;;;;;;;;;6200:14;;6135:87;:::o;6555:166::-;6633:4;6649:42;6659:12;:10;:12::i;:::-;6673:9;6684:6;6649:9;:42::i;:::-;6709:4;6702:11;;6555:166;;;;:::o;13025:200::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13128:35:::1;13147:15;13128:18;:35::i;:::-;13174:43;13197:19;13174:22;:43::i;:::-;13025:200:::0;;:::o;13233:129::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13317:37:::1;13337:16;13317:19;:37::i;:::-;13233:129:::0;:::o;6729:142::-;6810:7;6836:11;:18;6848:5;6836:18;;;;;;;;;;;;;;;:27;6855:7;6836:27;;;;;;;;;;;;;;;;6829:34;;6729:142;;;;:::o;13519:111::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13611:10:::1;13591:9;;:31;;;;;;;;;;;;;;;;;;13519:111:::0;:::o;1975:223::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2076:1:::1;2056:22;;:8;:22;;::::0;2048:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2128:8;2119:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2181:8;2152:38;;2173:6;::::0;::::1;;;;;;;;2152:38;;;;;;;;;;;;1975:223:::0;:::o;217:98::-;270:7;297:10;290:17;;217:98;:::o;7341:265::-;7451:1;7434:19;;:5;:19;;;;:44;;;;;7476:1;7457:21;;:7;:21;;;;7434:44;7426:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;7544:6;7514:11;:18;7526:5;7514:18;;;;;;;;;;;;;;;:27;7533:7;7514:27;;;;;;;;;;;;;;;:36;;;;7582:7;7566:32;;7575:5;7566:32;;;7591:6;7566:32;;;;;;:::i;:::-;;;;;;;;7341:265;;;:::o;7614:2378::-;7718:1;7702:18;;:4;:18;;;7694:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7795:1;7781:16;;:2;:16;;;7773:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7865:1;7856:6;:10;7848:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7925:12;7957:17;:23;7975:4;7957:23;;;;;;;;;;;;;;;;;;;;;;;;;7956:24;:50;;;;;7985:17;:21;8003:2;7985:21;;;;;;;;;;;;;;;;;;;;;;;;;7984:22;7956:50;7952:657;;;8035:13;;;;;;;;;;;8027:21;;:4;:21;;;:55;;;;;4692:42;8052:30;;:2;:30;;;;8027:55;8023:575;;;8137:18;;8127:6;8111:13;8121:2;8111:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;:71;;;;8181:1;8159:18;;:23;8111:71;8103:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8252:14;;8242:6;:24;;:47;;;;8288:1;8270:14;;:19;8242:47;8234:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8344:6;;8337:13;;8023:575;;;8382:13;;;;;;;;;;;8376:19;;:2;:19;;;8372:226;;8434:14;;8424:6;:24;;:47;;;;8470:1;8452:14;;:19;8424:47;8416:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8526:7;;8519:14;;8372:226;;;8581:1;8574:8;;8372:226;8023:575;7952:657;8621:17;8659:3;8651:4;8642:6;:13;;;;:::i;:::-;8641:21;;;;:::i;:::-;8621:41;;8673:22;8707:9;8698:6;:18;;;;:::i;:::-;8673:43;;8763:6;8746:8;:14;8755:4;8746:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;8729:8;:14;8738:4;8729:14;;;;;;;;;;;;;;;:40;;;;8832:9;8806:8;:23;8823:4;8806:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;8780:8;:23;8797:4;8780:23;;;;;;;;;;;;;;;:61;;;;8854:15;8872:8;:23;8889:4;8872:23;;;;;;;;;;;;;;;;8854:41;;8911:16;;;;;;;;;;;8910:17;:42;;;;;8939:13;;;;;;;;;;;8931:21;;:4;:21;;;;8910:42;:65;;;;;8962:13;;;;;;;;;;;8956:19;;:2;:19;;;8910:65;:80;;;;;8979:11;;;;;;;;;;;8910:80;8906:373;;;9022:18;;9011:7;:29;9007:261;;9061:25;9078:7;9061:16;:25::i;:::-;9105:18;9126:21;9105:42;;9183:1;9170:10;:14;9166:87;;;9209:24;9222:10;9209:12;:24::i;:::-;9166:87;9042:226;9007:261;8906:373;9296:17;:21;9314:2;9296:21;;;;;;;;;;;;;;;;;;;;;;;;;9295:22;:45;;;;;9327:13;;;;;;;;;;;9321:19;;:2;:19;;;;9295:45;:66;;;;;9360:1;9344:8;:12;9353:2;9344:12;;;;;;;;;;;;;;;;:17;9295:66;9291:115;;;9378:7;9391:2;9378:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9291:115;9448:14;9433:8;:12;9442:2;9433:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;9418:8;:12;9427:2;9418:12;;;;;;;;;;;;;;;:44;;;;9491:1;9479:9;:13;9475:91;;;9537:4;9514:40;;9523:4;9514:40;;;9544:9;9514:40;;;;;;:::i;:::-;;;;;;;;9475:91;9583:17;:23;9601:4;9583:23;;;;;;;;;;;;;;;;;;;;;;;;;9582:24;:49;;;;;9618:13;;;;;;;;;;;9610:21;;:4;:21;;;;9582:49;:72;;;;;9653:1;9635:8;:14;9644:4;9635:14;;;;;;;;;;;;;;;;:19;9582:72;9578:355;;;9676:9;9671:251;9695:7;:14;;;;9691:1;:18;9671:251;;;9754:4;9740:18;;:7;9748:1;9740:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:18;;;9736:171;;9796:7;9821:1;9804:7;:14;;;;:18;;;;:::i;:::-;9796:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9783:7;9791:1;9783:10;;;;;;;;:::i;:::-;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;9846:7;:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;9882:5;;9736:171;9711:4;;;;;:::i;:::-;;;;9671:251;;;;9578:355;9965:2;9950:34;;9959:4;9950:34;;;9969:14;9950:34;;;;;;:::i;:::-;;;;;;;;7683:2309;;;;7614:2378;;;:::o;657:190::-;743:7;776:1;771;:6;;779:12;763:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;803:9;819:1;815;:5;;;;:::i;:::-;803:17;;838:1;831:8;;;657:190;;;;;:::o;11217:124::-;11297:7;11288:6;:16;;;;11325:8;11315:7;:18;;;;11217:124;;:::o;11349:112::-;11438:15;11421:14;:32;;;;11349:112;:::o;11469:128::-;11570:19;11549:18;:40;;;;11469:128;:::o;11605:::-;11706:19;11685:18;:40;;;;11605:128;:::o;11741:116::-;11833:16;11815:15;:34;;;;11741:116;:::o;10000:412::-;5075:4;5056:16;;:23;;;;;;;;;;;;;;;;;;10079:21:::1;10117:1;10103:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10079:40;;10148:4;10130;10135:1;10130:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4692:42;10174:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10164:4;10169:1;10164:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;4692:42;10207:66;;;10288:12;10315:1;10331:4;10358;10378:15;10207:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10068:344;5121:5:::0;5102:16;;:24;;;;;;;;;;;;;;;;;;10000:412;:::o;10428:355::-;10486:17;10534:3;10516:15;;10506:7;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10486:51;;10548:17;10578:9;10568:7;:19;;;;:::i;:::-;10548:39;;10598:17;10635:3;10630:2;10618:9;:14;;;;:::i;:::-;:20;;;;:::i;:::-;10598:40;;10649:14;;;;;;;;;;;:23;;:34;10673:9;10649:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10694:9;;;;;;;;;;;:18;;:29;10713:9;10694:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10734:9;;;;;;;;;;;:18;;:41;10765:9;10753;:21;;;;:::i;:::-;10734:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10475:308;;;10428:355;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::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:329::-;4817:6;4866:2;4854:9;4845:7;4841:23;4837:32;4834:119;;;4872:79;;:::i;:::-;4834:119;4992:1;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4963:117;4758:329;;;;:::o;5093:118::-;5180:24;5198:5;5180:24;:::i;:::-;5175:3;5168:37;5093:118;;:::o;5217:222::-;5310:4;5348:2;5337:9;5333:18;5325:26;;5361:71;5429:1;5418:9;5414:17;5405:6;5361:71;:::i;:::-;5217:222;;;;:::o;5445:86::-;5480:7;5520:4;5513:5;5509:16;5498:27;;5445:86;;;:::o;5537:112::-;5620:22;5636:5;5620:22;:::i;:::-;5615:3;5608:35;5537:112;;:::o;5655:214::-;5744:4;5782:2;5771:9;5767:18;5759:26;;5795:67;5859:1;5848:9;5844:17;5835:6;5795:67;:::i;:::-;5655:214;;;;:::o;5875:1057::-;5979:6;5987;5995;6003;6011;6019;6068:3;6056:9;6047:7;6043:23;6039:33;6036:120;;;6075:79;;:::i;:::-;6036:120;6195:1;6220:53;6265:7;6256:6;6245:9;6241:22;6220:53;:::i;:::-;6210:63;;6166:117;6322:2;6348:53;6393:7;6384:6;6373:9;6369:22;6348:53;:::i;:::-;6338:63;;6293:118;6450:2;6476:53;6521:7;6512:6;6501:9;6497:22;6476:53;:::i;:::-;6466:63;;6421:118;6578:2;6604:53;6649:7;6640:6;6629:9;6625:22;6604:53;:::i;:::-;6594:63;;6549:118;6706:3;6733:53;6778:7;6769:6;6758:9;6754:22;6733:53;:::i;:::-;6723:63;;6677:119;6835:3;6862:53;6907:7;6898:6;6887:9;6883:22;6862:53;:::i;:::-;6852:63;;6806:119;5875:1057;;;;;;;;:::o;6938:474::-;7006:6;7014;7063:2;7051:9;7042:7;7038:23;7034:32;7031:119;;;7069:79;;:::i;:::-;7031:119;7189:1;7214:53;7259:7;7250:6;7239:9;7235:22;7214:53;:::i;:::-;7204:63;;7160:117;7316:2;7342:53;7387:7;7378:6;7367:9;7363:22;7342:53;:::i;:::-;7332:63;;7287:118;6938:474;;;;;:::o;7418:::-;7486:6;7494;7543:2;7531:9;7522:7;7518:23;7514:32;7511:119;;;7549:79;;:::i;:::-;7511:119;7669:1;7694:53;7739:7;7730:6;7719:9;7715:22;7694:53;:::i;:::-;7684:63;;7640:117;7796:2;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7767:118;7418:474;;;;;:::o;7898:180::-;7946:77;7943:1;7936:88;8043:4;8040:1;8033:15;8067:4;8064:1;8057:15;8084:102;8126:8;8173:5;8170:1;8166:13;8145:34;;8084:102;;;:::o;8192:848::-;8253:5;8260:4;8284:6;8275:15;;8308:5;8299:14;;8322:712;8343:1;8333:8;8330:15;8322:712;;;8438:4;8433:3;8429:14;8423:4;8420:24;8417:50;;;8447:18;;:::i;:::-;8417:50;8497:1;8487:8;8483:16;8480:451;;;8912:4;8905:5;8901:16;8892:25;;8480:451;8962:4;8956;8952:15;8944:23;;8992:32;9015:8;8992:32;:::i;:::-;8980:44;;8322:712;;;8192:848;;;;;;;:::o;9046:1073::-;9100:5;9291:8;9281:40;;9312:1;9303:10;;9314:5;;9281:40;9340:4;9330:36;;9357:1;9348:10;;9359:5;;9330:36;9426:4;9474:1;9469:27;;;;9510:1;9505:191;;;;9419:277;;9469:27;9487:1;9478:10;;9489:5;;;9505:191;9550:3;9540:8;9537:17;9534:43;;;9557:18;;:::i;:::-;9534:43;9606:8;9603:1;9599:16;9590:25;;9641:3;9634:5;9631:14;9628:40;;;9648:18;;:::i;:::-;9628:40;9681:5;;;9419:277;;9805:2;9795:8;9792:16;9786:3;9780:4;9777:13;9773:36;9755:2;9745:8;9742:16;9737:2;9731:4;9728:12;9724:35;9708:111;9705:246;;;9861:8;9855:4;9851:19;9842:28;;9896:3;9889:5;9886:14;9883:40;;;9903:18;;:::i;:::-;9883:40;9936:5;;9705:246;9976:42;10014:3;10004:8;9998:4;9995:1;9976:42;:::i;:::-;9961:57;;;;10050:4;10045:3;10041:14;10034:5;10031:25;10028:51;;;10059:18;;:::i;:::-;10028:51;10108:4;10101:5;10097:16;10088:25;;9046:1073;;;;;;:::o;10125:281::-;10183:5;10207:23;10225:4;10207:23;:::i;:::-;10199:31;;10251:25;10267:8;10251:25;:::i;:::-;10239:37;;10295:104;10332:66;10322:8;10316:4;10295:104;:::i;:::-;10286:113;;10125:281;;;;:::o;10412:410::-;10452:7;10475:20;10493:1;10475:20;:::i;:::-;10470:25;;10509:20;10527:1;10509:20;:::i;:::-;10504:25;;10564:1;10561;10557:9;10586:30;10604:11;10586:30;:::i;:::-;10575:41;;10765:1;10756:7;10752:15;10749:1;10746:22;10726:1;10719:9;10699:83;10676:139;;10795:18;;:::i;:::-;10676:139;10460:362;10412:410;;;;:::o;10828:173::-;10968:25;10964:1;10956:6;10952:14;10945:49;10828:173;:::o;11007:366::-;11149:3;11170:67;11234:2;11229:3;11170:67;:::i;:::-;11163:74;;11246:93;11335:3;11246:93;:::i;:::-;11364:2;11359:3;11355:12;11348:19;;11007:366;;;:::o;11379:419::-;11545:4;11583:2;11572:9;11568:18;11560:26;;11632:9;11626:4;11622:20;11618:1;11607:9;11603:17;11596:47;11660:131;11786:4;11660:131;:::i;:::-;11652:139;;11379:419;;;:::o;11804:223::-;11944:34;11940:1;11932:6;11928:14;11921:58;12013:6;12008:2;12000:6;11996:15;11989:31;11804:223;:::o;12033:366::-;12175:3;12196:67;12260:2;12255:3;12196:67;:::i;:::-;12189:74;;12272:93;12361:3;12272:93;:::i;:::-;12390:2;12385:3;12381:12;12374:19;;12033:366;;;:::o;12405:419::-;12571:4;12609:2;12598:9;12594:18;12586:26;;12658:9;12652:4;12648:20;12644:1;12633:9;12629:17;12622:47;12686:131;12812:4;12686:131;:::i;:::-;12678:139;;12405:419;;;:::o;12830:143::-;12887:5;12918:6;12912:13;12903:22;;12934:33;12961:5;12934:33;:::i;:::-;12830:143;;;;:::o;12979:351::-;13049:6;13098:2;13086:9;13077:7;13073:23;13069:32;13066:119;;;13104:79;;:::i;:::-;13066:119;13224:1;13249:64;13305:7;13296:6;13285:9;13281:22;13249:64;:::i;:::-;13239:74;;13195:128;12979:351;;;;:::o;13336:332::-;13457:4;13495:2;13484:9;13480:18;13472:26;;13508:71;13576:1;13565:9;13561:17;13552:6;13508:71;:::i;:::-;13589:72;13657:2;13646:9;13642:18;13633:6;13589:72;:::i;:::-;13336:332;;;;;:::o;13674:85::-;13719:7;13748:5;13737:16;;13674:85;;;:::o;13765:60::-;13793:3;13814:5;13807:12;;13765:60;;;:::o;13831:158::-;13889:9;13922:61;13940:42;13949:32;13975:5;13949:32;:::i;:::-;13940:42;:::i;:::-;13922:61;:::i;:::-;13909:74;;13831:158;;;:::o;13995:147::-;14090:45;14129:5;14090:45;:::i;:::-;14085:3;14078:58;13995:147;;:::o;14148:807::-;14397:4;14435:3;14424:9;14420:19;14412:27;;14449:71;14517:1;14506:9;14502:17;14493:6;14449:71;:::i;:::-;14530:72;14598:2;14587:9;14583:18;14574:6;14530:72;:::i;:::-;14612:80;14688:2;14677:9;14673:18;14664:6;14612:80;:::i;:::-;14702;14778:2;14767:9;14763:18;14754:6;14702:80;:::i;:::-;14792:73;14860:3;14849:9;14845:19;14836:6;14792:73;:::i;:::-;14875;14943:3;14932:9;14928:19;14919:6;14875:73;:::i;:::-;14148:807;;;;;;;;;:::o;14961:143::-;15018:5;15049:6;15043:13;15034:22;;15065:33;15092:5;15065:33;:::i;:::-;14961:143;;;;:::o;15110:663::-;15198:6;15206;15214;15263:2;15251:9;15242:7;15238:23;15234:32;15231:119;;;15269:79;;:::i;:::-;15231:119;15389:1;15414:64;15470:7;15461:6;15450:9;15446:22;15414:64;:::i;:::-;15404:74;;15360:128;15527:2;15553:64;15609:7;15600:6;15589:9;15585:22;15553:64;:::i;:::-;15543:74;;15498:129;15666:2;15692:64;15748:7;15739:6;15728:9;15724:22;15692:64;:::i;:::-;15682:74;;15637:129;15110:663;;;;;:::o;15779:332::-;15900:4;15938:2;15927:9;15923:18;15915:26;;15951:71;16019:1;16008:9;16004:17;15995:6;15951:71;:::i;:::-;16032:72;16100:2;16089:9;16085:18;16076:6;16032:72;:::i;:::-;15779:332;;;;;:::o;16117:116::-;16187:21;16202:5;16187:21;:::i;:::-;16180:5;16177:32;16167:60;;16223:1;16220;16213:12;16167:60;16117:116;:::o;16239:137::-;16293:5;16324:6;16318:13;16309:22;;16340:30;16364:5;16340:30;:::i;:::-;16239:137;;;;:::o;16382:345::-;16449:6;16498:2;16486:9;16477:7;16473:23;16469:32;16466:119;;;16504:79;;:::i;:::-;16466:119;16624:1;16649:61;16702:7;16693:6;16682:9;16678:22;16649:61;:::i;:::-;16639:71;;16595:125;16382:345;;;;:::o;16733:168::-;16873:20;16869:1;16861:6;16857:14;16850:44;16733:168;:::o;16907:366::-;17049:3;17070:67;17134:2;17129:3;17070:67;:::i;:::-;17063:74;;17146:93;17235:3;17146:93;:::i;:::-;17264:2;17259:3;17255:12;17248:19;;16907:366;;;:::o;17279:419::-;17445:4;17483:2;17472:9;17468:18;17460:26;;17532:9;17526:4;17522:20;17518:1;17507:9;17503:17;17496:47;17560:131;17686:4;17560:131;:::i;:::-;17552:139;;17279:419;;;:::o;17704:175::-;17844:27;17840:1;17832:6;17828:14;17821:51;17704:175;:::o;17885:366::-;18027:3;18048:67;18112:2;18107:3;18048:67;:::i;:::-;18041:74;;18124:93;18213:3;18124:93;:::i;:::-;18242:2;18237:3;18233:12;18226:19;;17885:366;;;:::o;18257:419::-;18423:4;18461:2;18450:9;18446:18;18438:26;;18510:9;18504:4;18500:20;18496:1;18485:9;18481:17;18474:47;18538:131;18664:4;18538:131;:::i;:::-;18530:139;;18257:419;;;:::o;18682:170::-;18822:22;18818:1;18810:6;18806:14;18799:46;18682:170;:::o;18858:366::-;19000:3;19021:67;19085:2;19080:3;19021:67;:::i;:::-;19014:74;;19097:93;19186:3;19097:93;:::i;:::-;19215:2;19210:3;19206:12;19199:19;;18858:366;;;:::o;19230:419::-;19396:4;19434:2;19423:9;19419:18;19411:26;;19483:9;19477:4;19473:20;19469:1;19458:9;19454:17;19447:47;19511:131;19637:4;19511:131;:::i;:::-;19503:139;;19230:419;;;:::o;19655:224::-;19795:34;19791:1;19783:6;19779:14;19772:58;19864:7;19859:2;19851:6;19847:15;19840:32;19655:224;:::o;19885:366::-;20027:3;20048:67;20112:2;20107:3;20048:67;:::i;:::-;20041:74;;20124:93;20213:3;20124:93;:::i;:::-;20242:2;20237:3;20233:12;20226:19;;19885:366;;;:::o;20257:419::-;20423:4;20461:2;20450:9;20446:18;20438:26;;20510:9;20504:4;20500:20;20496:1;20485:9;20481:17;20474:47;20538:131;20664:4;20538:131;:::i;:::-;20530:139;;20257:419;;;:::o;20682:222::-;20822:34;20818:1;20810:6;20806:14;20799:58;20891:5;20886:2;20878:6;20874:15;20867:30;20682:222;:::o;20910:366::-;21052:3;21073:67;21137:2;21132:3;21073:67;:::i;:::-;21066:74;;21149:93;21238:3;21149:93;:::i;:::-;21267:2;21262:3;21258:12;21251:19;;20910:366;;;:::o;21282:419::-;21448:4;21486:2;21475:9;21471:18;21463:26;;21535:9;21529:4;21525:20;21521:1;21510:9;21506:17;21499:47;21563:131;21689:4;21563:131;:::i;:::-;21555:139;;21282:419;;;:::o;21707:228::-;21847:34;21843:1;21835:6;21831:14;21824:58;21916:11;21911:2;21903:6;21899:15;21892:36;21707:228;:::o;21941:366::-;22083:3;22104:67;22168:2;22163:3;22104:67;:::i;:::-;22097:74;;22180:93;22269:3;22180:93;:::i;:::-;22298:2;22293:3;22289:12;22282:19;;21941:366;;;:::o;22313:419::-;22479:4;22517:2;22506:9;22502:18;22494:26;;22566:9;22560:4;22556:20;22552:1;22541:9;22537:17;22530:47;22594:131;22720:4;22594:131;:::i;:::-;22586:139;;22313:419;;;:::o;22738:191::-;22778:3;22797:20;22815:1;22797:20;:::i;:::-;22792:25;;22831:20;22849:1;22831:20;:::i;:::-;22826:25;;22874:1;22871;22867:9;22860:16;;22895:3;22892:1;22889:10;22886:36;;;22902:18;;:::i;:::-;22886:36;22738:191;;;;:::o;22935:178::-;23075:30;23071:1;23063:6;23059:14;23052:54;22935:178;:::o;23119:366::-;23261:3;23282:67;23346:2;23341:3;23282:67;:::i;:::-;23275:74;;23358:93;23447:3;23358:93;:::i;:::-;23476:2;23471:3;23467:12;23460:19;;23119:366;;;:::o;23491:419::-;23657:4;23695:2;23684:9;23680:18;23672:26;;23744:9;23738:4;23734:20;23730:1;23719:9;23715:17;23708:47;23772:131;23898:4;23772:131;:::i;:::-;23764:139;;23491:419;;;:::o;23916:174::-;24056:26;24052:1;24044:6;24040:14;24033:50;23916:174;:::o;24096:366::-;24238:3;24259:67;24323:2;24318:3;24259:67;:::i;:::-;24252:74;;24335:93;24424:3;24335:93;:::i;:::-;24453:2;24448:3;24444:12;24437:19;;24096:366;;;:::o;24468:419::-;24634:4;24672:2;24661:9;24657:18;24649:26;;24721:9;24715:4;24711:20;24707:1;24696:9;24692:17;24685:47;24749:131;24875:4;24749:131;:::i;:::-;24741:139;;24468:419;;;:::o;24893:180::-;24941:77;24938:1;24931:88;25038:4;25035:1;25028:15;25062:4;25059:1;25052:15;25079:185;25119:1;25136:20;25154:1;25136:20;:::i;:::-;25131:25;;25170:20;25188:1;25170:20;:::i;:::-;25165:25;;25209:1;25199:35;;25214:18;;:::i;:::-;25199:35;25256:1;25253;25249:9;25244:14;;25079:185;;;;:::o;25270:194::-;25310:4;25330:20;25348:1;25330:20;:::i;:::-;25325:25;;25364:20;25382:1;25364:20;:::i;:::-;25359:25;;25408:1;25405;25401:9;25393:17;;25432:1;25426:4;25423:11;25420:37;;;25437:18;;:::i;:::-;25420:37;25270:194;;;;:::o;25470:180::-;25518:77;25515:1;25508:88;25615:4;25612:1;25605:15;25639:4;25636:1;25629:15;25656:180;25704:77;25701:1;25694:88;25801:4;25798:1;25791:15;25825:4;25822:1;25815:15;25842:233;25881:3;25904:24;25922:5;25904:24;:::i;:::-;25895:33;;25950:66;25943:5;25940:77;25937:103;;26020:18;;:::i;:::-;25937:103;26067:1;26060:5;26056:13;26049:20;;25842:233;;;:::o;26081:180::-;26129:77;26126:1;26119:88;26226:4;26223:1;26216:15;26250:4;26247:1;26240:15;26267:114;26334:6;26368:5;26362:12;26352:22;;26267:114;;;:::o;26387:184::-;26486:11;26520:6;26515:3;26508:19;26560:4;26555:3;26551:14;26536:29;;26387:184;;;;:::o;26577:132::-;26644:4;26667:3;26659:11;;26697:4;26692:3;26688:14;26680:22;;26577:132;;;:::o;26715:108::-;26792:24;26810:5;26792:24;:::i;:::-;26787:3;26780:37;26715:108;;:::o;26829:179::-;26898:10;26919:46;26961:3;26953:6;26919:46;:::i;:::-;26997:4;26992:3;26988:14;26974:28;;26829:179;;;;:::o;27014:113::-;27084:4;27116;27111:3;27107:14;27099:22;;27014:113;;;:::o;27163:732::-;27282:3;27311:54;27359:5;27311:54;:::i;:::-;27381:86;27460:6;27455:3;27381:86;:::i;:::-;27374:93;;27491:56;27541:5;27491:56;:::i;:::-;27570:7;27601:1;27586:284;27611:6;27608:1;27605:13;27586:284;;;27687:6;27681:13;27714:63;27773:3;27758:13;27714:63;:::i;:::-;27707:70;;27800:60;27853:6;27800:60;:::i;:::-;27790:70;;27646:224;27633:1;27630;27626:9;27621:14;;27586:284;;;27590:14;27886:3;27879:10;;27287:608;;;27163:732;;;;:::o;27901:831::-;28164:4;28202:3;28191:9;28187:19;28179:27;;28216:71;28284:1;28273:9;28269:17;28260:6;28216:71;:::i;:::-;28297:80;28373:2;28362:9;28358:18;28349:6;28297:80;:::i;:::-;28424:9;28418:4;28414:20;28409:2;28398:9;28394:18;28387:48;28452:108;28555:4;28546:6;28452:108;:::i;:::-;28444:116;;28570:72;28638:2;28627:9;28623:18;28614:6;28570:72;:::i;:::-;28652:73;28720:3;28709:9;28705:19;28696:6;28652:73;:::i;:::-;27901:831;;;;;;;;:::o

Swarm Source

ipfs://0894155e2993d8d1be8d4cfb953fec87e5076facbd3453d82ed47f7869393983
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.