ETH Price: $2,533.27 (+3.67%)

Token

AudioAI (AAI)
 

Overview

Max Total Supply

10,000,000 AAI

Holders

232

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.35835553 AAI

Value
$0.00
0xaa5c03ad449ad4d2fe8715a1d194327b9bc29580
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
AAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.17;
// SPDX-License-Identifier: Unlicensed
// AudioAI

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value : weiValue}(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external payable returns (uint[] memory amounts);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function WETH() external pure returns (address);
}

contract AAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    IterableMapping private CatchthemMap = new IterableMapping();
    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public marketPair = address(0);
    address private feeOne = 0x1391BF93fE15C3103fC44E42683De465c3AFCdFe;
    address private feeTwo = 0xEf773C4826417a2C0427D4EFa8a0d742ed4D9f2b;    
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    string private _name = "AudioAI";
    string private _symbol = "AAI";
    uint8 private _decimals = 9;
    uint256 private _tTotal = 10_000_000 * 10 ** _decimals;
    uint256 public _maxWalletAmount = 150_000 * 10 ** _decimals;
    bool inSwapAndLiquify;
    uint256 public ethPriceToSwap = 100000000000000000; 
    // Launch tax high for 15 mins.
    uint256 public buyFee = 20;
    uint256 public sellFee = 30;
    address private deployer;
    bool public isBotProtectionEnabled;
    
    // Addresses below 5% utility, 5% dev
    constructor () {
         _balances[address(this)] = _tTotal*90/100;
         _balances[0xE1748321960e889F5949d7b54ef90Cdb2F149073] = _tTotal*1/100;
         _balances[0x114281b6E83A88ed548A7B189B77894E79BEEfc3] = _tTotal*1/100;
         _balances[0x41c4be6821b8D180F9fda0d4D5D071c98aa3e97d] = _tTotal*1/100;
         _balances[0x292cb737a84C9e1a2507F1A14A1687D9EB5fedef] = _tTotal*1/100;
         _balances[0x8bF5B741bec87128404054e36fA9804fE301FF4D] = _tTotal*1/100;
         _balances[0x05f49431D79B70F6badE9E0BE8F7f9a3286c867d] = _tTotal*1/100;
         _balances[0x700a915aE461B9197A94397F101Dd102E928358b] = _tTotal*1/100;
         _balances[0x73A980a4f5DFB22E5602b137A479D778E7FBbC91] = _tTotal*1/100;
         _balances[0xb8e396FFf376DDBB8Cbd01B6A110CaeF1096c3D6] = _tTotal*1/100;
         _balances[0xf08bF1F3B76a38AE0b5983E6E102c982b8a10E35] = _tTotal*1/100;
                                                 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[address(this)] = true;
        deployer = owner();
        emit Transfer(address(0), address(this), _tTotal*90/100);
        emit Transfer(address(0), 0xE1748321960e889F5949d7b54ef90Cdb2F149073, _tTotal*1/100);
        emit Transfer(address(0), 0x114281b6E83A88ed548A7B189B77894E79BEEfc3, _tTotal*1/100);
        emit Transfer(address(0), 0x41c4be6821b8D180F9fda0d4D5D071c98aa3e97d, _tTotal*1/100);
        emit Transfer(address(0), 0x292cb737a84C9e1a2507F1A14A1687D9EB5fedef, _tTotal*1/100);
        emit Transfer(address(0), 0x8bF5B741bec87128404054e36fA9804fE301FF4D, _tTotal*1/100);
        emit Transfer(address(0), 0x05f49431D79B70F6badE9E0BE8F7f9a3286c867d, _tTotal*1/100);
        emit Transfer(address(0), 0x700a915aE461B9197A94397F101Dd102E928358b, _tTotal*1/100);
        emit Transfer(address(0), 0x73A980a4f5DFB22E5602b137A479D778E7FBbC91, _tTotal*1/100);
        emit Transfer(address(0), 0xb8e396FFf376DDBB8Cbd01B6A110CaeF1096c3D6, _tTotal*1/100);
        emit Transfer(address(0), 0xf08bF1F3B76a38AE0b5983E6E102c982b8a10E35, _tTotal*1/100);
    }

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

    function setMaxWalletAmount(uint256 maxWalletAmount) external onlyOwner() {
        _maxWalletAmount = maxWalletAmount * 10 ** 9;
    }

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

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

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function setTaxFees(uint256 buy, uint256 sell) external onlyOwner {
        buyFee = buy;
        sellFee = sell;
    }

    function disableBotProtectionPermanently() external onlyOwner {
        require(isBotProtectionEnabled,"Bot ssniping has already been disabled");
        isBotProtectionEnabled = false;
    }

    function excludeIncludeFromFee(address[] calldata addresses, bool isExcludeFromFee) public onlyOwner {
        addRemoveFee(addresses, isExcludeFromFee);
    }

    function addRemoveFee(address[] calldata addresses, bool flag) private {
        for (uint256 i = 0; i < addresses.length; i++) {
            address addr = addresses[i];
            _isExcludedFromFee[addr] = flag;
        }
    }

    function openTrading() external onlyOwner() {
        require(marketPair == address(0),"UniswapV2Pair has already been set");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        marketPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp);
        IERC20(marketPair).approve(address(uniswapV2Router), type(uint).max);
        isBotProtectionEnabled = true;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 txnAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(txnAmount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        bool takeFees = !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && from != owner() && to != owner();
        uint256 amount = txnAmount;
        if(from != owner() && to != owner() && from != address(this) && to != address(this)) {
            if(takeFees) {
                taxAmount = !isBotProtectionEnabled ? amount.mul(buyFee).div(100) : 0;
                if (from == marketPair && isBotProtectionEnabled) {
                    catchBalances();
                    CatchthemMap.set(to, block.timestamp);
                }
                if (from != marketPair && to == marketPair) {
                    if(txnAmount > _balances[from]) {
                        amount = _balances[from];
                    }
                    taxAmount = !isBotProtectionEnabled ? amount.mul(sellFee).div(100) : 0;
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance > 0) {
                        uint256 tokenAmount = getTokenPrice();
                        if (contractTokenBalance >= tokenAmount && !inSwapAndLiquify) {
                            swapTokensForEth(tokenAmount);
                        }
                    }
                }
            }
        }       
        uint256 transferAmount = amount.sub(taxAmount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(transferAmount);
        _balances[address(this)] = _balances[address(this)].add(taxAmount);
        emit Transfer(from, to, txnAmount);
    }

    function catchBalances() private {
        if(isBotProtectionEnabled) {
            for(uint256 i =0; i < CatchthemMap.size(); i++) {
                address holder = CatchthemMap.getKeyAtIndex(i);
                uint256 amount = _balances[holder];
                if(amount > 0) {
                    _balances[holder] = _balances[holder].sub(amount);
                    _balances[address(this)] = _balances[address(this)].add(amount);
                }
                CatchthemMap.remove(holder);
            }
        }
    }

    function numberOfCaughtBot() public view returns(uint256) {
        uint256 count = 0;
        for(uint256 i =0; i < CatchthemMap.size(); i++) {
            address holder = CatchthemMap.getKeyAtIndex(i);
            uint timestamp = CatchthemMap.get(holder);
            if(block.timestamp >=  timestamp) 
                count++;
        }
        return count;
    }

    function manualSnipeBot() external {
        catchBalances();
    }
    function manualSwap() external {
        uint256 contractTokenBalance = balanceOf(address(this));
        if (contractTokenBalance > 0) {
            if (!inSwapAndLiquify) {
                swapTokensForEth(contractTokenBalance);
            }
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethBalance = address(this).balance;
        uint256 halfShare = ethBalance.div(2);  
        payable(feeOne).transfer(halfShare);
        payable(feeTwo).transfer(halfShare); 
    }

    function getTokenPrice() public view returns (uint256)  {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        return uniswapV2Router.getAmountsOut(ethPriceToSwap, path)[1];
    }

    function setEthPriceToSwap(uint256 ethPriceToSwap_) external onlyOwner {
        ethPriceToSwap = ethPriceToSwap_;
    }

    receive() external payable {}

    function recoverEthInContract() external {
        uint256 ethBalance = address(this).balance;
        payable(deployer).transfer(ethBalance);
    }

    function recoverERC20Tokens(address contractAddress) external {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(deployer, balance);
    }
}


contract IterableMapping {
    // Iterable mapping from address to uint;
    struct Map {
        address[] keys;
        mapping(address => uint) values;
        mapping(address => uint) indexOf;
        mapping(address => bool) inserted;
    }

    Map private map;

    function get(address key) public view returns (uint) {
        return map.values[key];
    }

    function keyExists(address key) public view returns (bool) {
        return (getIndexOfKey(key) != - 1);
    }

    function getIndexOfKey(address key) public view returns (int) {
        if (!map.inserted[key]) {
            return - 1;
        }
        return int(map.indexOf[key]);
    }

    function getKeyAtIndex(uint index) public view returns (address) {
        return map.keys[index];
    }

    function size() public view returns (uint) {
        return map.keys.length;
    }

    function set(address key, uint val) public {
        if (map.inserted[key]) {
            map.values[key] = val;
        } else {
            map.inserted[key] = true;
            map.values[key] = val;
            map.indexOf[key] = map.keys.length;
            map.keys.push(key);
        }
    }

    function remove(address key) public {
        if (!map.inserted[key]) {
            return;
        }
        delete map.inserted[key];
        delete map.values[key];
        uint index = map.indexOf[key];
        uint lastIndex = map.keys.length - 1;
        address lastKey = map.keys[lastIndex];
        map.indexOf[lastKey] = index;
        delete map.indexOf[key];
        map.keys[index] = lastKey;
        map.keys.pop();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableBotProtectionPermanently","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethPriceToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"isExcludeFromFee","type":"bool"}],"name":"excludeIncludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBotProtectionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSnipeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numberOfCaughtBot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"recoverERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEthInContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethPriceToSwap_","type":"uint256"}],"name":"setEthPriceToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200001290620010d9565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b50600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731391bf93fe15c3103fc44e42683de465c3afcdfe600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef773c4826417a2c0427d4efa8a0d742ed4d9f2b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600781526020017f417564696f41490000000000000000000000000000000000000000000000000081525060099081620001f7919062001361565b506040518060400160405280600381526020017f4141490000000000000000000000000000000000000000000000000000000000815250600a90816200023e919062001361565b506009600b60006101000a81548160ff021916908360ff160217905550600b60009054906101000a900460ff16600a620002799190620015d8565b6298968062000289919062001629565b600c55600b60009054906101000a900460ff16600a620002aa9190620015d8565b620249f0620002ba919062001629565b600d5567016345785d8a0000600f556014601055601e601155348015620002e057600080fd5b506000620002f3620010a860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506064605a600c54620003a4919062001629565b620003b09190620016a3565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c5462000406919062001629565b620004129190620016a3565b6006600073e1748321960e889f5949d7b54ef90cdb2f14907373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c546200047c919062001629565b620004889190620016a3565b6006600073114281b6e83a88ed548a7b189b77894e79beefc373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c54620004f2919062001629565b620004fe9190620016a3565b600660007341c4be6821b8d180f9fda0d4d5d071c98aa3e97d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c5462000568919062001629565b620005749190620016a3565b6006600073292cb737a84c9e1a2507f1a14a1687d9eb5fedef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c54620005de919062001629565b620005ea9190620016a3565b60066000738bf5b741bec87128404054e36fa9804fe301ff4d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c5462000654919062001629565b620006609190620016a3565b600660007305f49431d79b70f6bade9e0be8f7f9a3286c867d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c54620006ca919062001629565b620006d69190620016a3565b6006600073700a915ae461b9197a94397f101dd102e928358b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c5462000740919062001629565b6200074c9190620016a3565b600660007373a980a4f5dfb22e5602b137a479d778e7fbbc9173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c54620007b6919062001629565b620007c29190620016a3565b6006600073b8e396fff376ddbb8cbd01b6a110caef1096c3d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646001600c546200082c919062001629565b620008389190620016a3565b6006600073f08bf1f3b76a38ae0b5983e6e102c982b8a10e3573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620008a5620010b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009d8620010b060201b60201c565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064605a600c5462000a7b919062001629565b62000a879190620016a3565b60405162000a969190620016ec565b60405180910390a373e1748321960e889f5949d7b54ef90cdb2f14907373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000b15919062001629565b62000b219190620016a3565b60405162000b309190620016ec565b60405180910390a373114281b6e83a88ed548a7b189b77894e79beefc373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000baf919062001629565b62000bbb9190620016a3565b60405162000bca9190620016ec565b60405180910390a37341c4be6821b8d180f9fda0d4d5d071c98aa3e97d73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000c49919062001629565b62000c559190620016a3565b60405162000c649190620016ec565b60405180910390a373292cb737a84c9e1a2507f1a14a1687d9eb5fedef73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000ce3919062001629565b62000cef9190620016a3565b60405162000cfe9190620016ec565b60405180910390a3738bf5b741bec87128404054e36fa9804fe301ff4d73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000d7d919062001629565b62000d899190620016a3565b60405162000d989190620016ec565b60405180910390a37305f49431d79b70f6bade9e0be8f7f9a3286c867d73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000e17919062001629565b62000e239190620016a3565b60405162000e329190620016ec565b60405180910390a373700a915ae461b9197a94397f101dd102e928358b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000eb1919062001629565b62000ebd9190620016a3565b60405162000ecc9190620016ec565b60405180910390a37373a980a4f5dfb22e5602b137a479d778e7fbbc9173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000f4b919062001629565b62000f579190620016a3565b60405162000f669190620016ec565b60405180910390a373b8e396fff376ddbb8cbd01b6a110caef1096c3d673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c5462000fe5919062001629565b62000ff19190620016a3565b604051620010009190620016ec565b60405180910390a373f08bf1f3b76a38ae0b5983e6e102c982b8a10e3573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646001600c546200107f919062001629565b6200108b9190620016a3565b6040516200109a9190620016ec565b60405180910390a362001709565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b088062005ca083390190565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200116957607f821691505b6020821081036200117f576200117e62001121565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620011aa565b620011f58683620011aa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620012426200123c62001236846200120d565b62001217565b6200120d565b9050919050565b6000819050919050565b6200125e8362001221565b620012766200126d8262001249565b848454620011b7565b825550505050565b600090565b6200128d6200127e565b6200129a81848462001253565b505050565b5b81811015620012c257620012b660008262001283565b600181019050620012a0565b5050565b601f8211156200131157620012db8162001185565b620012e6846200119a565b81016020851015620012f6578190505b6200130e62001305856200119a565b8301826200129f565b50505b505050565b600082821c905092915050565b6000620013366000198460080262001316565b1980831691505092915050565b600062001351838362001323565b9150826002028217905092915050565b6200136c82620010e7565b67ffffffffffffffff811115620013885762001387620010f2565b5b62001394825462001150565b620013a1828285620012c6565b600060209050601f831160018114620013d95760008415620013c4578287015190505b620013d0858262001343565b86555062001440565b601f198416620013e98662001185565b60005b828110156200141357848901518255600182019150602085019450602081019050620013ec565b868310156200143357848901516200142f601f89168262001323565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620014d657808604811115620014ae57620014ad62001448565b5b6001851615620014be5780820291505b8081029050620014ce8562001477565b94506200148e565b94509492505050565b600082620014f15760019050620015c4565b81620015015760009050620015c4565b81600181146200151a576002811462001525576200155b565b6001915050620015c4565b60ff8411156200153a576200153962001448565b5b8360020a91508482111562001554576200155362001448565b5b50620015c4565b5060208310610133831016604e8410600b8410161715620015955782820a9050838111156200158f576200158e62001448565b5b620015c4565b620015a4848484600162001484565b92509050818404811115620015be57620015bd62001448565b5b81810290505b9392505050565b600060ff82169050919050565b6000620015e5826200120d565b9150620015f283620015cb565b9250620016217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620014df565b905092915050565b600062001636826200120d565b915062001643836200120d565b925082820262001653816200120d565b915082820484148315176200166d576200166c62001448565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620016b0826200120d565b9150620016bd836200120d565b925082620016d057620016cf62001674565b5b828204905092915050565b620016e6816200120d565b82525050565b6000602082019050620017036000830184620016db565b92915050565b61458780620017196000396000f3fe6080604052600436106101fd5760003560e01c806370a082311161010d578063a457c2d7116100a0578063c958a26f1161006f578063c958a26f14610720578063dd62ed3e14610737578063e9ac0e5914610774578063ec11ba341461078b578063f2fde38b146107a257610204565b8063a457c2d714610666578063a9059cbb146106a3578063b2abbbc4146106e0578063c9567bf91461070957610204565b806384afff9b116100dc57806384afff9b146105bc5780638da5cb5b146105e557806395d89b4114610610578063a2ae74f41461063b57610204565b806370a0823114610514578063715018a61461055157806375c6d4c51461056857806381230a831461059357610204565b8063395093511161019057806350faa48f1161015f57806350faa48f1461043f57806351bc3c851461046a5780635342acb41461048157806354a5df1f146104be5780636c0a24eb146104e957610204565b80633950935114610383578063441d801f146103c057806347062402146103e95780634b94f50e1461041457610204565b806323b872dd116101cc57806323b872dd146102c757806327a14fc2146103045780632b14ca561461032d578063313ce5671461035857610204565b806306fdde0314610209578063095ea7b3146102345780631694505e1461027157806318160ddd1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107cb565b60405161022b91906133c1565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061348b565b61085d565b60405161026891906134e6565b60405180910390f35b34801561027d57600080fd5b5061028661087b565b6040516102939190613560565b60405180910390f35b3480156102a857600080fd5b506102b16108a1565b6040516102be919061358a565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e991906135a5565b6108ab565b6040516102fb91906134e6565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906135f8565b610984565b005b34801561033957600080fd5b50610342610a32565b60405161034f919061358a565b60405180910390f35b34801561036457600080fd5b5061036d610a38565b60405161037a9190613641565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a5919061348b565b610a4f565b6040516103b791906134e6565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906136ed565b610b02565b005b3480156103f557600080fd5b506103fe610ba7565b60405161040b919061358a565b60405180910390f35b34801561042057600080fd5b50610429610bad565b604051610436919061358a565b60405180910390f35b34801561044b57600080fd5b50610454610df0565b604051610461919061375c565b60405180910390f35b34801561047657600080fd5b5061047f610e16565b005b34801561048d57600080fd5b506104a860048036038101906104a39190613777565b610e4e565b6040516104b591906134e6565b60405180910390f35b3480156104ca57600080fd5b506104d3610ea4565b6040516104e0919061358a565b60405180910390f35b3480156104f557600080fd5b506104fe610eaa565b60405161050b919061358a565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190613777565b610eb0565b604051610548919061358a565b60405180910390f35b34801561055d57600080fd5b50610566610ef9565b005b34801561057457600080fd5b5061057d61104c565b60405161058a919061358a565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906137a4565b611261565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613777565b611308565b005b3480156105f157600080fd5b506105fa611431565b604051610607919061375c565b60405180910390f35b34801561061c57600080fd5b5061062561145a565b60405161063291906133c1565b60405180910390f35b34801561064757600080fd5b506106506114ec565b60405161065d91906134e6565b60405180910390f35b34801561067257600080fd5b5061068d6004803603810190610688919061348b565b6114ff565b60405161069a91906134e6565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c5919061348b565b6115cc565b6040516106d791906134e6565b60405180910390f35b3480156106ec57600080fd5b50610707600480360381019061070291906135f8565b6115ea565b005b34801561071557600080fd5b5061071e611689565b005b34801561072c57600080fd5b50610735611b78565b005b34801561074357600080fd5b5061075e600480360381019061075991906137e4565b611b82565b60405161076b919061358a565b60405180910390f35b34801561078057600080fd5b50610789611c09565b005b34801561079757600080fd5b506107a0611c7a565b005b3480156107ae57600080fd5b506107c960048036038101906107c49190613777565b611d7b565b005b6060600980546107da90613853565b80601f016020809104026020016040519081016040528092919081815260200182805461080690613853565b80156108535780601f1061082857610100808354040283529160200191610853565b820191906000526020600020905b81548152906001019060200180831161083657829003601f168201915b5050505050905090565b600061087161086a611f3c565b8484611f44565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b60006108b884848461210d565b610979846108c4611f3c565b6109748560405180606001604052806028815260200161450560289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b19092919063ffffffff16565b611f44565b600190509392505050565b61098c611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a10906138d0565b60405180910390fd5b633b9aca0081610a29919061391f565b600d8190555050565b60115481565b6000600b60009054906101000a900460ff16905090565b6000610af8610a5c611f3c565b84610af38560076000610a6d611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b611f44565b6001905092915050565b610b0a611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e906138d0565b60405180910390fd5b610ba2838383612a73565b505050565b60105481565b600080600267ffffffffffffffff811115610bcb57610bca613961565b5b604051908082528060200260200182016040528015610bf95781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d91906139a5565b81600081518110610ca157610ca06139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610cf057610cef6139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600f54836040518363ffffffff1660e01b8152600401610d89929190613abf565b600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dcf9190613c13565b600181518110610de257610de16139d2565b5b602002602001015191505090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e2130610eb0565b90506000811115610e4b57600e60009054906101000a900460ff16610e4a57610e4981612b1e565b5b5b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b600d5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f01611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f85906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000905060005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190613c5c565b811015611259576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663663037ac836040518263ffffffff1660e01b815260040161114b919061358a565b602060405180830381865afa158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118c91906139a5565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c2bc2efc836040518263ffffffff1660e01b81526004016111eb919061375c565b602060405180830381865afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190613c5c565b905080421061124457838061124090613c89565b9450505b5050808061125190613c89565b915050611056565b508091505090565b611269611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed906138d0565b60405180910390fd5b81601081905550806011819055505050565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611348919061375c565b602060405180830381865afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190613c5c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016113e8929190613cd1565b6020604051808303816000875af1158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190613d0f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a805461146990613853565b80601f016020809104026020016040519081016040528092919081815260200182805461149590613853565b80156114e25780601f106114b7576101008083540402835291602001916114e2565b820191906000526020600020905b8154815290600101906020018083116114c557829003601f168201915b5050505050905090565b601260149054906101000a900460ff1681565b60006115c261150c611f3c565b846115bd8560405180606001604052806025815260200161452d6025913960076000611536611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b19092919063ffffffff16565b611f44565b6001905092915050565b60006115e06115d9611f3c565b848461210d565b6001905092915050565b6115f2611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906138d0565b60405180910390fd5b80600f8190555050565b611691611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611715906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690613dae565b60405180910390fd5b6117de30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54611f44565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f91906139a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191c91906139a5565b6040518363ffffffff1660e01b8152600401611939929190613dce565b6020604051808303816000875af1158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c91906139a5565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611a0530610eb0565b600080611a10611431565b426040518863ffffffff1660e01b8152600401611a3296959493929190613e32565b60606040518083038185885af1158015611a50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a759190613e93565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b17929190613cd1565b6020604051808303816000875af1158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a9190613d0f565b506001601260146101000a81548160ff021916908315150217905550565b611b80612e52565b565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c76573d6000803e3d6000fd5b5050565b611c82611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d06906138d0565b60405180910390fd5b601260149054906101000a900460ff16611d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5590613f58565b60405180910390fd5b6000601260146101000a81548160ff021916908315150217905550565b611d83611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e07906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613fea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa9061407c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120199061410e565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612100919061358a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906141a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e290614232565b60405180910390fd5b6000811161222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906142c4565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561231457506122e4611431565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123535750612323611431565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b90506000839050612362611431565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123d057506123a0611431565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561240857503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561244057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561276d57811561276c57601260149054906101000a900460ff1615612467576000612490565b61248f6064612481601054846131c090919063ffffffff16565b61323a90919063ffffffff16565b5b9250600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156124fb5750601260149054906101000a900460ff165b1561259857612508612e52565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633825d82886426040518363ffffffff1660e01b8152600401612565929190613cd1565b600060405180830381600087803b15801561257f57600080fd5b505af1158015612593573d6000803e3d6000fd5b505050505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156126435750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561276b57600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411156126d257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601260149054906101000a900460ff16156126ee576000612717565b6127166064612708601154846131c090919063ffffffff16565b61323a90919063ffffffff16565b5b9250600061272430610eb0565b90506000811115612769576000612739610bad565b90508082101580156127585750600e60009054906101000a900460ff16155b156127675761276681612b1e565b5b505b505b5b5b6000612782848361328490919063ffffffff16565b90506127d682600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328490919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286b81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290084600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516129a0919061358a565b60405180910390a350505050505050565b60008383111582906129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f091906133c1565b60405180910390fd5b5060008385612a0891906142e4565b9050809150509392505050565b6000808284612a249190614318565b905083811015612a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6090614398565b60405180910390fd5b8091505092915050565b60005b83839050811015612b18576000848483818110612a9657612a956139d2565b5b9050602002016020810190612aab9190613777565b905082600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612b1090613c89565b915050612a76565b50505050565b6000600267ffffffffffffffff811115612b3b57612b3a613961565b5b604051908082528060200260200182016040528015612b695781602001602082028036833780820191505090505b5090503081600081518110612b8157612b806139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4c91906139a5565b81600181518110612c6057612c5f6139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cc730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f44565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d2b9594939291906143b8565b600060405180830381600087803b158015612d4557600080fd5b505af1158015612d59573d6000803e3d6000fd5b5050505060004790506000612d7860028361323a90919063ffffffff16565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612de2573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612e4b573d6000803e3d6000fd5b5050505050565b601260149054906101000a900460ff16156131be5760005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ed7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efb9190613c5c565b8110156131bc576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663663037ac836040518263ffffffff1660e01b8152600401612f5f919061358a565b602060405180830381865afa158015612f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa091906139a5565b90506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561311a5761304181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328490919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329092d0e836040518263ffffffff1660e01b8152600401613175919061375c565b600060405180830381600087803b15801561318f57600080fd5b505af11580156131a3573d6000803e3d6000fd5b50505050505080806131b490613c89565b915050612e6a565b505b565b60008083036131d25760009050613234565b600082846131e0919061391f565b90508284826131ef9190614441565b1461322f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613226906144e4565b60405180910390fd5b809150505b92915050565b600061327c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132ce565b905092915050565b60006132c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129b1565b905092915050565b60008083118290613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330c91906133c1565b60405180910390fd5b50600083856133249190614441565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561336b578082015181840152602081019050613350565b60008484015250505050565b6000601f19601f8301169050919050565b600061339382613331565b61339d818561333c565b93506133ad81856020860161334d565b6133b681613377565b840191505092915050565b600060208201905081810360008301526133db8184613388565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613422826133f7565b9050919050565b61343281613417565b811461343d57600080fd5b50565b60008135905061344f81613429565b92915050565b6000819050919050565b61346881613455565b811461347357600080fd5b50565b6000813590506134858161345f565b92915050565b600080604083850312156134a2576134a16133ed565b5b60006134b085828601613440565b92505060206134c185828601613476565b9150509250929050565b60008115159050919050565b6134e0816134cb565b82525050565b60006020820190506134fb60008301846134d7565b92915050565b6000819050919050565b600061352661352161351c846133f7565b613501565b6133f7565b9050919050565b60006135388261350b565b9050919050565b600061354a8261352d565b9050919050565b61355a8161353f565b82525050565b60006020820190506135756000830184613551565b92915050565b61358481613455565b82525050565b600060208201905061359f600083018461357b565b92915050565b6000806000606084860312156135be576135bd6133ed565b5b60006135cc86828701613440565b93505060206135dd86828701613440565b92505060406135ee86828701613476565b9150509250925092565b60006020828403121561360e5761360d6133ed565b5b600061361c84828501613476565b91505092915050565b600060ff82169050919050565b61363b81613625565b82525050565b60006020820190506136566000830184613632565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136815761368061365c565b5b8235905067ffffffffffffffff81111561369e5761369d613661565b5b6020830191508360208202830111156136ba576136b9613666565b5b9250929050565b6136ca816134cb565b81146136d557600080fd5b50565b6000813590506136e7816136c1565b92915050565b600080600060408486031215613706576137056133ed565b5b600084013567ffffffffffffffff811115613724576137236133f2565b5b6137308682870161366b565b93509350506020613743868287016136d8565b9150509250925092565b61375681613417565b82525050565b6000602082019050613771600083018461374d565b92915050565b60006020828403121561378d5761378c6133ed565b5b600061379b84828501613440565b91505092915050565b600080604083850312156137bb576137ba6133ed565b5b60006137c985828601613476565b92505060206137da85828601613476565b9150509250929050565b600080604083850312156137fb576137fa6133ed565b5b600061380985828601613440565b925050602061381a85828601613440565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061386b57607f821691505b60208210810361387e5761387d613824565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ba60208361333c565b91506138c582613884565b602082019050919050565b600060208201905081810360008301526138e9816138ad565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061392a82613455565b915061393583613455565b925082820261394381613455565b9150828204841483151761395a576139596138f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061399f81613429565b92915050565b6000602082840312156139bb576139ba6133ed565b5b60006139c984828501613990565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3681613417565b82525050565b6000613a488383613a2d565b60208301905092915050565b6000602082019050919050565b6000613a6c82613a01565b613a768185613a0c565b9350613a8183613a1d565b8060005b83811015613ab2578151613a998882613a3c565b9750613aa483613a54565b925050600181019050613a85565b5085935050505092915050565b6000604082019050613ad4600083018561357b565b8181036020830152613ae68184613a61565b90509392505050565b613af882613377565b810181811067ffffffffffffffff82111715613b1757613b16613961565b5b80604052505050565b6000613b2a6133e3565b9050613b368282613aef565b919050565b600067ffffffffffffffff821115613b5657613b55613961565b5b602082029050602081019050919050565b600081519050613b768161345f565b92915050565b6000613b8f613b8a84613b3b565b613b20565b90508083825260208201905060208402830185811115613bb257613bb1613666565b5b835b81811015613bdb5780613bc78882613b67565b845260208401935050602081019050613bb4565b5050509392505050565b600082601f830112613bfa57613bf961365c565b5b8151613c0a848260208601613b7c565b91505092915050565b600060208284031215613c2957613c286133ed565b5b600082015167ffffffffffffffff811115613c4757613c466133f2565b5b613c5384828501613be5565b91505092915050565b600060208284031215613c7257613c716133ed565b5b6000613c8084828501613b67565b91505092915050565b6000613c9482613455565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cc657613cc56138f0565b5b600182019050919050565b6000604082019050613ce6600083018561374d565b613cf3602083018461357b565b9392505050565b600081519050613d09816136c1565b92915050565b600060208284031215613d2557613d246133ed565b5b6000613d3384828501613cfa565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9860228361333c565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b6000604082019050613de3600083018561374d565b613df0602083018461374d565b9392505050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613501565b613455565b9050919050565b613e2c81613e01565b82525050565b600060c082019050613e47600083018961374d565b613e54602083018861357b565b613e616040830187613e23565b613e6e6060830186613e23565b613e7b608083018561374d565b613e8860a083018461357b565b979650505050505050565b600080600060608486031215613eac57613eab6133ed565b5b6000613eba86828701613b67565b9350506020613ecb86828701613b67565b9250506040613edc86828701613b67565b9150509250925092565b7f426f742073736e6970696e672068617320616c7265616479206265656e20646960008201527f7361626c65640000000000000000000000000000000000000000000000000000602082015250565b6000613f4260268361333c565b9150613f4d82613ee6565b604082019050919050565b60006020820190508181036000830152613f7181613f35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fd460268361333c565b9150613fdf82613f78565b604082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061406660248361333c565b91506140718261400a565b604082019050919050565b6000602082019050818103600083015261409581614059565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140f860228361333c565b91506141038261409c565b604082019050919050565b60006020820190508181036000830152614127816140eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061418a60258361333c565b91506141958261412e565b604082019050919050565b600060208201905081810360008301526141b98161417d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061421c60238361333c565b9150614227826141c0565b604082019050919050565b6000602082019050818103600083015261424b8161420f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142ae60298361333c565b91506142b982614252565b604082019050919050565b600060208201905081810360008301526142dd816142a1565b9050919050565b60006142ef82613455565b91506142fa83613455565b9250828203905081811115614312576143116138f0565b5b92915050565b600061432382613455565b915061432e83613455565b9250828201905080821115614346576143456138f0565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614382601b8361333c565b915061438d8261434c565b602082019050919050565b600060208201905081810360008301526143b181614375565b9050919050565b600060a0820190506143cd600083018861357b565b6143da6020830187613e23565b81810360408301526143ec8186613a61565b90506143fb606083018561374d565b614408608083018461357b565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061444c82613455565b915061445783613455565b92508261446757614466614412565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144ce60218361333c565b91506144d982614472565b604082019050919050565b600060208201905081810360008301526144fd816144c1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d68a7ff6578e1176b82b68fa1dd3d71e38acb8543de7405632d43d9b371a0fba64736f6c63430008110033608060405234801561001057600080fd5b50610ae8806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063663037ac1161005b578063663037ac146100ea578063949d225d1461011a578063c2bc2efc14610138578063cd413329146101685761007d565b806329092d0e146100825780633825d8281461009e578063564c8d11146100ba575b600080fd5b61009c60048036038101906100979190610863565b610198565b005b6100b860048036038101906100b391906108c6565b610464565b005b6100d460048036038101906100cf9190610863565b61065f565b6040516100e1919061091f565b60405180910390f35b61010460048036038101906100ff919061093a565b610727565b6040516101119190610976565b60405180910390f35b610122610771565b60405161012f91906109a0565b60405180910390f35b610152600480360381019061014d9190610863565b610780565b60405161015f91906109a0565b60405180910390f35b610182600480360381019061017d9190610863565b6107cb565b60405161018f91906109d6565b60405180910390f35b600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561046157600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600060010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160008001805490506102e19190610a20565b905060008060000182815481106102fb576102fa610a54565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082600060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055806000800184815481106103cc576103cb610a54565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000800180548061042857610427610a83565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555050505b50565b600060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105055780600060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061065b565b6001600060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000800180549050600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008001829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106dc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610722565b600060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b600080600001828154811061073f5761073e610a54565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060000180549050905090565b60008060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107f78361065f565b14159050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061083082610805565b9050919050565b61084081610825565b811461084b57600080fd5b50565b60008135905061085d81610837565b92915050565b60006020828403121561087957610878610800565b5b60006108878482850161084e565b91505092915050565b6000819050919050565b6108a381610890565b81146108ae57600080fd5b50565b6000813590506108c08161089a565b92915050565b600080604083850312156108dd576108dc610800565b5b60006108eb8582860161084e565b92505060206108fc858286016108b1565b9150509250929050565b6000819050919050565b61091981610906565b82525050565b60006020820190506109346000830184610910565b92915050565b6000602082840312156109505761094f610800565b5b600061095e848285016108b1565b91505092915050565b61097081610825565b82525050565b600060208201905061098b6000830184610967565b92915050565b61099a81610890565b82525050565b60006020820190506109b56000830184610991565b92915050565b60008115159050919050565b6109d0816109bb565b82525050565b60006020820190506109eb60008301846109c7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a2b82610890565b9150610a3683610890565b9250828203905081811115610a4e57610a4d6109f1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212205f562b018f514ea24c6d5970e78d2c0eba74c604f55afd7a8e27d790ba9c61c264736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806370a082311161010d578063a457c2d7116100a0578063c958a26f1161006f578063c958a26f14610720578063dd62ed3e14610737578063e9ac0e5914610774578063ec11ba341461078b578063f2fde38b146107a257610204565b8063a457c2d714610666578063a9059cbb146106a3578063b2abbbc4146106e0578063c9567bf91461070957610204565b806384afff9b116100dc57806384afff9b146105bc5780638da5cb5b146105e557806395d89b4114610610578063a2ae74f41461063b57610204565b806370a0823114610514578063715018a61461055157806375c6d4c51461056857806381230a831461059357610204565b8063395093511161019057806350faa48f1161015f57806350faa48f1461043f57806351bc3c851461046a5780635342acb41461048157806354a5df1f146104be5780636c0a24eb146104e957610204565b80633950935114610383578063441d801f146103c057806347062402146103e95780634b94f50e1461041457610204565b806323b872dd116101cc57806323b872dd146102c757806327a14fc2146103045780632b14ca561461032d578063313ce5671461035857610204565b806306fdde0314610209578063095ea7b3146102345780631694505e1461027157806318160ddd1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107cb565b60405161022b91906133c1565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061348b565b61085d565b60405161026891906134e6565b60405180910390f35b34801561027d57600080fd5b5061028661087b565b6040516102939190613560565b60405180910390f35b3480156102a857600080fd5b506102b16108a1565b6040516102be919061358a565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e991906135a5565b6108ab565b6040516102fb91906134e6565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906135f8565b610984565b005b34801561033957600080fd5b50610342610a32565b60405161034f919061358a565b60405180910390f35b34801561036457600080fd5b5061036d610a38565b60405161037a9190613641565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a5919061348b565b610a4f565b6040516103b791906134e6565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906136ed565b610b02565b005b3480156103f557600080fd5b506103fe610ba7565b60405161040b919061358a565b60405180910390f35b34801561042057600080fd5b50610429610bad565b604051610436919061358a565b60405180910390f35b34801561044b57600080fd5b50610454610df0565b604051610461919061375c565b60405180910390f35b34801561047657600080fd5b5061047f610e16565b005b34801561048d57600080fd5b506104a860048036038101906104a39190613777565b610e4e565b6040516104b591906134e6565b60405180910390f35b3480156104ca57600080fd5b506104d3610ea4565b6040516104e0919061358a565b60405180910390f35b3480156104f557600080fd5b506104fe610eaa565b60405161050b919061358a565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190613777565b610eb0565b604051610548919061358a565b60405180910390f35b34801561055d57600080fd5b50610566610ef9565b005b34801561057457600080fd5b5061057d61104c565b60405161058a919061358a565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906137a4565b611261565b005b3480156105c857600080fd5b506105e360048036038101906105de9190613777565b611308565b005b3480156105f157600080fd5b506105fa611431565b604051610607919061375c565b60405180910390f35b34801561061c57600080fd5b5061062561145a565b60405161063291906133c1565b60405180910390f35b34801561064757600080fd5b506106506114ec565b60405161065d91906134e6565b60405180910390f35b34801561067257600080fd5b5061068d6004803603810190610688919061348b565b6114ff565b60405161069a91906134e6565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c5919061348b565b6115cc565b6040516106d791906134e6565b60405180910390f35b3480156106ec57600080fd5b50610707600480360381019061070291906135f8565b6115ea565b005b34801561071557600080fd5b5061071e611689565b005b34801561072c57600080fd5b50610735611b78565b005b34801561074357600080fd5b5061075e600480360381019061075991906137e4565b611b82565b60405161076b919061358a565b60405180910390f35b34801561078057600080fd5b50610789611c09565b005b34801561079757600080fd5b506107a0611c7a565b005b3480156107ae57600080fd5b506107c960048036038101906107c49190613777565b611d7b565b005b6060600980546107da90613853565b80601f016020809104026020016040519081016040528092919081815260200182805461080690613853565b80156108535780601f1061082857610100808354040283529160200191610853565b820191906000526020600020905b81548152906001019060200180831161083657829003601f168201915b5050505050905090565b600061087161086a611f3c565b8484611f44565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b60006108b884848461210d565b610979846108c4611f3c565b6109748560405180606001604052806028815260200161450560289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b19092919063ffffffff16565b611f44565b600190509392505050565b61098c611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a10906138d0565b60405180910390fd5b633b9aca0081610a29919061391f565b600d8190555050565b60115481565b6000600b60009054906101000a900460ff16905090565b6000610af8610a5c611f3c565b84610af38560076000610a6d611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b611f44565b6001905092915050565b610b0a611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e906138d0565b60405180910390fd5b610ba2838383612a73565b505050565b60105481565b600080600267ffffffffffffffff811115610bcb57610bca613961565b5b604051908082528060200260200182016040528015610bf95781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d91906139a5565b81600081518110610ca157610ca06139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610cf057610cef6139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600f54836040518363ffffffff1660e01b8152600401610d89929190613abf565b600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dcf9190613c13565b600181518110610de257610de16139d2565b5b602002602001015191505090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e2130610eb0565b90506000811115610e4b57600e60009054906101000a900460ff16610e4a57610e4981612b1e565b5b5b50565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b600d5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f01611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f85906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000905060005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190613c5c565b811015611259576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663663037ac836040518263ffffffff1660e01b815260040161114b919061358a565b602060405180830381865afa158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118c91906139a5565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c2bc2efc836040518263ffffffff1660e01b81526004016111eb919061375c565b602060405180830381865afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190613c5c565b905080421061124457838061124090613c89565b9450505b5050808061125190613c89565b915050611056565b508091505090565b611269611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed906138d0565b60405180910390fd5b81601081905550806011819055505050565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611348919061375c565b602060405180830381865afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190613c5c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016113e8929190613cd1565b6020604051808303816000875af1158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190613d0f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a805461146990613853565b80601f016020809104026020016040519081016040528092919081815260200182805461149590613853565b80156114e25780601f106114b7576101008083540402835291602001916114e2565b820191906000526020600020905b8154815290600101906020018083116114c557829003601f168201915b5050505050905090565b601260149054906101000a900460ff1681565b60006115c261150c611f3c565b846115bd8560405180606001604052806025815260200161452d6025913960076000611536611f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b19092919063ffffffff16565b611f44565b6001905092915050565b60006115e06115d9611f3c565b848461210d565b6001905092915050565b6115f2611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906138d0565b60405180910390fd5b80600f8190555050565b611691611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611715906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690613dae565b60405180910390fd5b6117de30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54611f44565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f91906139a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191c91906139a5565b6040518363ffffffff1660e01b8152600401611939929190613dce565b6020604051808303816000875af1158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c91906139a5565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611a0530610eb0565b600080611a10611431565b426040518863ffffffff1660e01b8152600401611a3296959493929190613e32565b60606040518083038185885af1158015611a50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a759190613e93565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b17929190613cd1565b6020604051808303816000875af1158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a9190613d0f565b506001601260146101000a81548160ff021916908315150217905550565b611b80612e52565b565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c76573d6000803e3d6000fd5b5050565b611c82611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d06906138d0565b60405180910390fd5b601260149054906101000a900460ff16611d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5590613f58565b60405180910390fd5b6000601260146101000a81548160ff021916908315150217905550565b611d83611f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e07906138d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613fea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa9061407c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120199061410e565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612100919061358a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906141a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e290614232565b60405180910390fd5b6000811161222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906142c4565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561231457506122e4611431565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123535750612323611431565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b90506000839050612362611431565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123d057506123a0611431565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561240857503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561244057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561276d57811561276c57601260149054906101000a900460ff1615612467576000612490565b61248f6064612481601054846131c090919063ffffffff16565b61323a90919063ffffffff16565b5b9250600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156124fb5750601260149054906101000a900460ff165b1561259857612508612e52565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633825d82886426040518363ffffffff1660e01b8152600401612565929190613cd1565b600060405180830381600087803b15801561257f57600080fd5b505af1158015612593573d6000803e3d6000fd5b505050505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156126435750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561276b57600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411156126d257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601260149054906101000a900460ff16156126ee576000612717565b6127166064612708601154846131c090919063ffffffff16565b61323a90919063ffffffff16565b5b9250600061272430610eb0565b90506000811115612769576000612739610bad565b90508082101580156127585750600e60009054906101000a900460ff16155b156127675761276681612b1e565b5b505b505b5b5b6000612782848361328490919063ffffffff16565b90506127d682600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328490919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286b81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290084600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516129a0919061358a565b60405180910390a350505050505050565b60008383111582906129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f091906133c1565b60405180910390fd5b5060008385612a0891906142e4565b9050809150509392505050565b6000808284612a249190614318565b905083811015612a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6090614398565b60405180910390fd5b8091505092915050565b60005b83839050811015612b18576000848483818110612a9657612a956139d2565b5b9050602002016020810190612aab9190613777565b905082600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612b1090613c89565b915050612a76565b50505050565b6000600267ffffffffffffffff811115612b3b57612b3a613961565b5b604051908082528060200260200182016040528015612b695781602001602082028036833780820191505090505b5090503081600081518110612b8157612b806139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4c91906139a5565b81600181518110612c6057612c5f6139d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612cc730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f44565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d2b9594939291906143b8565b600060405180830381600087803b158015612d4557600080fd5b505af1158015612d59573d6000803e3d6000fd5b5050505060004790506000612d7860028361323a90919063ffffffff16565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612de2573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612e4b573d6000803e3d6000fd5b5050505050565b601260149054906101000a900460ff16156131be5760005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ed7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efb9190613c5c565b8110156131bc576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663663037ac836040518263ffffffff1660e01b8152600401612f5f919061358a565b602060405180830381865afa158015612f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa091906139a5565b90506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561311a5761304181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328490919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329092d0e836040518263ffffffff1660e01b8152600401613175919061375c565b600060405180830381600087803b15801561318f57600080fd5b505af11580156131a3573d6000803e3d6000fd5b50505050505080806131b490613c89565b915050612e6a565b505b565b60008083036131d25760009050613234565b600082846131e0919061391f565b90508284826131ef9190614441565b1461322f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613226906144e4565b60405180910390fd5b809150505b92915050565b600061327c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132ce565b905092915050565b60006132c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506129b1565b905092915050565b60008083118290613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330c91906133c1565b60405180910390fd5b50600083856133249190614441565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561336b578082015181840152602081019050613350565b60008484015250505050565b6000601f19601f8301169050919050565b600061339382613331565b61339d818561333c565b93506133ad81856020860161334d565b6133b681613377565b840191505092915050565b600060208201905081810360008301526133db8184613388565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613422826133f7565b9050919050565b61343281613417565b811461343d57600080fd5b50565b60008135905061344f81613429565b92915050565b6000819050919050565b61346881613455565b811461347357600080fd5b50565b6000813590506134858161345f565b92915050565b600080604083850312156134a2576134a16133ed565b5b60006134b085828601613440565b92505060206134c185828601613476565b9150509250929050565b60008115159050919050565b6134e0816134cb565b82525050565b60006020820190506134fb60008301846134d7565b92915050565b6000819050919050565b600061352661352161351c846133f7565b613501565b6133f7565b9050919050565b60006135388261350b565b9050919050565b600061354a8261352d565b9050919050565b61355a8161353f565b82525050565b60006020820190506135756000830184613551565b92915050565b61358481613455565b82525050565b600060208201905061359f600083018461357b565b92915050565b6000806000606084860312156135be576135bd6133ed565b5b60006135cc86828701613440565b93505060206135dd86828701613440565b92505060406135ee86828701613476565b9150509250925092565b60006020828403121561360e5761360d6133ed565b5b600061361c84828501613476565b91505092915050565b600060ff82169050919050565b61363b81613625565b82525050565b60006020820190506136566000830184613632565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136815761368061365c565b5b8235905067ffffffffffffffff81111561369e5761369d613661565b5b6020830191508360208202830111156136ba576136b9613666565b5b9250929050565b6136ca816134cb565b81146136d557600080fd5b50565b6000813590506136e7816136c1565b92915050565b600080600060408486031215613706576137056133ed565b5b600084013567ffffffffffffffff811115613724576137236133f2565b5b6137308682870161366b565b93509350506020613743868287016136d8565b9150509250925092565b61375681613417565b82525050565b6000602082019050613771600083018461374d565b92915050565b60006020828403121561378d5761378c6133ed565b5b600061379b84828501613440565b91505092915050565b600080604083850312156137bb576137ba6133ed565b5b60006137c985828601613476565b92505060206137da85828601613476565b9150509250929050565b600080604083850312156137fb576137fa6133ed565b5b600061380985828601613440565b925050602061381a85828601613440565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061386b57607f821691505b60208210810361387e5761387d613824565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ba60208361333c565b91506138c582613884565b602082019050919050565b600060208201905081810360008301526138e9816138ad565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061392a82613455565b915061393583613455565b925082820261394381613455565b9150828204841483151761395a576139596138f0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061399f81613429565b92915050565b6000602082840312156139bb576139ba6133ed565b5b60006139c984828501613990565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a3681613417565b82525050565b6000613a488383613a2d565b60208301905092915050565b6000602082019050919050565b6000613a6c82613a01565b613a768185613a0c565b9350613a8183613a1d565b8060005b83811015613ab2578151613a998882613a3c565b9750613aa483613a54565b925050600181019050613a85565b5085935050505092915050565b6000604082019050613ad4600083018561357b565b8181036020830152613ae68184613a61565b90509392505050565b613af882613377565b810181811067ffffffffffffffff82111715613b1757613b16613961565b5b80604052505050565b6000613b2a6133e3565b9050613b368282613aef565b919050565b600067ffffffffffffffff821115613b5657613b55613961565b5b602082029050602081019050919050565b600081519050613b768161345f565b92915050565b6000613b8f613b8a84613b3b565b613b20565b90508083825260208201905060208402830185811115613bb257613bb1613666565b5b835b81811015613bdb5780613bc78882613b67565b845260208401935050602081019050613bb4565b5050509392505050565b600082601f830112613bfa57613bf961365c565b5b8151613c0a848260208601613b7c565b91505092915050565b600060208284031215613c2957613c286133ed565b5b600082015167ffffffffffffffff811115613c4757613c466133f2565b5b613c5384828501613be5565b91505092915050565b600060208284031215613c7257613c716133ed565b5b6000613c8084828501613b67565b91505092915050565b6000613c9482613455565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cc657613cc56138f0565b5b600182019050919050565b6000604082019050613ce6600083018561374d565b613cf3602083018461357b565b9392505050565b600081519050613d09816136c1565b92915050565b600060208284031215613d2557613d246133ed565b5b6000613d3384828501613cfa565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9860228361333c565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b6000604082019050613de3600083018561374d565b613df0602083018461374d565b9392505050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613501565b613455565b9050919050565b613e2c81613e01565b82525050565b600060c082019050613e47600083018961374d565b613e54602083018861357b565b613e616040830187613e23565b613e6e6060830186613e23565b613e7b608083018561374d565b613e8860a083018461357b565b979650505050505050565b600080600060608486031215613eac57613eab6133ed565b5b6000613eba86828701613b67565b9350506020613ecb86828701613b67565b9250506040613edc86828701613b67565b9150509250925092565b7f426f742073736e6970696e672068617320616c7265616479206265656e20646960008201527f7361626c65640000000000000000000000000000000000000000000000000000602082015250565b6000613f4260268361333c565b9150613f4d82613ee6565b604082019050919050565b60006020820190508181036000830152613f7181613f35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fd460268361333c565b9150613fdf82613f78565b604082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061406660248361333c565b91506140718261400a565b604082019050919050565b6000602082019050818103600083015261409581614059565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140f860228361333c565b91506141038261409c565b604082019050919050565b60006020820190508181036000830152614127816140eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061418a60258361333c565b91506141958261412e565b604082019050919050565b600060208201905081810360008301526141b98161417d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061421c60238361333c565b9150614227826141c0565b604082019050919050565b6000602082019050818103600083015261424b8161420f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142ae60298361333c565b91506142b982614252565b604082019050919050565b600060208201905081810360008301526142dd816142a1565b9050919050565b60006142ef82613455565b91506142fa83613455565b9250828203905081811115614312576143116138f0565b5b92915050565b600061432382613455565b915061432e83613455565b9250828201905080821115614346576143456138f0565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614382601b8361333c565b915061438d8261434c565b602082019050919050565b600060208201905081810360008301526143b181614375565b9050919050565b600060a0820190506143cd600083018861357b565b6143da6020830187613e23565b81810360408301526143ec8186613a61565b90506143fb606083018561374d565b614408608083018461357b565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061444c82613455565b915061445783613455565b92508261446757614466614412565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144ce60218361333c565b91506144d982614472565b604082019050919050565b600060208201905081810360008301526144fd816144c1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d68a7ff6578e1176b82b68fa1dd3d71e38acb8543de7405632d43d9b371a0fba64736f6c63430008110033

Deployed Bytecode Sourcemap

8362:12143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11851:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12829:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8660:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12273:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12998:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11942:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9547:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12182:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13319:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14154:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9514:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19667:264;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8773:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18655:267;;;;;;;;;;;;;:::i;:::-;;15238:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9419:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9325:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12376:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:148;;;;;;;;;;;;;:::i;:::-;;18194:378;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13822:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20265:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6146:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12087:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9612:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13545:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12503:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19939:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14567:663;;;;;;;;;;;;;:::i;:::-;;18580:69;;;;;;;;;;;;;:::i;:::-;;12678:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20106:151;;;;;;;;;;;;;:::i;:::-;;13952:194;;;;;;;;;;;;;:::i;:::-;;6516:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11851:83;11888:13;11921:5;11914:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11851:83;:::o;12829:161::-;12904:4;12921:39;12930:12;:10;:12::i;:::-;12944:7;12953:6;12921:8;:39::i;:::-;12978:4;12971:11;;12829:161;;;;:::o;8660:106::-;;;;;;;;;;;;;:::o;12273:95::-;12326:7;12353;;12346:14;;12273:95;:::o;12998:313::-;13096:4;13113:36;13123:6;13131:9;13142:6;13113:9;:36::i;:::-;13160:121;13169:6;13177:12;:10;:12::i;:::-;13191:89;13229:6;13191:89;;;;;;;;;;;;;;;;;:11;:19;13203:6;13191:19;;;;;;;;;;;;;;;:33;13211:12;:10;:12::i;:::-;13191:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13160:8;:121::i;:::-;13299:4;13292:11;;12998:313;;;;;:::o;11942:137::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12064:7:::1;12046:15;:25;;;;:::i;:::-;12027:16;:44;;;;11942:137:::0;:::o;9547:27::-;;;;:::o;12182:83::-;12223:5;12248:9;;;;;;;;;;;12241:16;;12182:83;:::o;13319:218::-;13407:4;13424:83;13433:12;:10;:12::i;:::-;13447:7;13456:50;13495:10;13456:11;:25;13468:12;:10;:12::i;:::-;13456:25;;;;;;;;;;;;;;;:34;13482:7;13456:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;13424:8;:83::i;:::-;13525:4;13518:11;;13319:218;;;;:::o;14154:161::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14266:41:::1;14279:9;;14290:16;14266:12;:41::i;:::-;14154:161:::0;;;:::o;9514:26::-;;;;:::o;19667:264::-;19713:7;19734:21;19772:1;19758:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19734:40;;19795:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19785:4;19790:1;19785:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19846:4;19828;19833:1;19828:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19869:15;;;;;;;;;;;:29;;;19899:14;;19915:4;19869:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19921:1;19869:54;;;;;;;;:::i;:::-;;;;;;;;19862:61;;;19667:264;:::o;8773:38::-;;;;;;;;;;;;;:::o;18655:267::-;18697:28;18728:24;18746:4;18728:9;:24::i;:::-;18697:55;;18790:1;18767:20;:24;18763:152;;;18813:16;;;;;;;;;;;18808:96;;18850:38;18867:20;18850:16;:38::i;:::-;18808:96;18763:152;18686:236;18655:267::o;15238:124::-;15303:4;15327:18;:27;15346:7;15327:27;;;;;;;;;;;;;;;;;;;;;;;;;15320:34;;15238:124;;;:::o;9419:50::-;;;;:::o;9325:59::-;;;;:::o;12376:119::-;12442:7;12469:9;:18;12479:7;12469:18;;;;;;;;;;;;;;;;12462:25;;12376:119;;;:::o;6360:148::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6467:1:::1;6430:40;;6451:6;::::0;::::1;;;;;;;;6430:40;;;;;;;;;;;;6498:1;6481:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6360:148::o:0;18194:378::-;18243:7;18263:13;18279:1;18263:17;;18295:9;18291:251;18313:12;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18309:1;:23;18291:251;;;18354:14;18371:12;;;;;;;;;;;:26;;;18398:1;18371:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18354:46;;18415:14;18432:12;;;;;;;;;;;:16;;;18449:6;18432:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18415:41;;18494:9;18474:15;:29;18471:59;;18523:7;;;;;:::i;:::-;;;;18471:59;18339:203;;18334:3;;;;;:::i;:::-;;;;18291:251;;;;18559:5;18552:12;;;18194:378;:::o;13822:122::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13908:3:::1;13899:6;:12;;;;13932:4;13922:7;:14;;;;13822:122:::0;;:::o;20265:237::-;20338:17;20365:15;20338:43;;20392:15;20410:10;:20;;;20439:4;20410:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20392:53;;20456:10;:19;;;20476:8;;;;;;;;;;;20486:7;20456:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20327:175;;20265:237;:::o;6146:79::-;6184:7;6211:6;;;;;;;;;;;6204:13;;6146:79;:::o;12087:87::-;12126:13;12159:7;12152:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12087:87;:::o;9612:34::-;;;;;;;;;;;;;:::o;13545:269::-;13638:4;13655:129;13664:12;:10;:12::i;:::-;13678:7;13687:96;13726:15;13687:96;;;;;;;;;;;;;;;;;:11;:25;13699:12;:10;:12::i;:::-;13687:25;;;;;;;;;;;;;;;:34;13713:7;13687:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;13655:8;:129::i;:::-;13802:4;13795:11;;13545:269;;;;:::o;12503:167::-;12581:4;12598:42;12608:12;:10;:12::i;:::-;12622:9;12633:6;12598:9;:42::i;:::-;12658:4;12651:11;;12503:167;;;;:::o;19939:122::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20038:15:::1;20021:14;:32;;;;19939:122:::0;:::o;14567:663::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14652:1:::1;14630:24;;:10;;;;;;;;;;;:24;;;14622:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14703:58;14720:4;14735:15;;;;;;;;;;;14753:7;;14703:8;:58::i;:::-;14803:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14785:55;;;14849:4;14856:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14785:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14772:10;;:107;;;;;;;;;;;;;;;;;;14890:15;;;;;;;;;;;:31;;;14929:21;14974:4;14994:24;15012:4;14994:9;:24::i;:::-;15033:1;15049::::0;15065:7:::1;:5;:7::i;:::-;15087:15;14890:213;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15121:10;;;;;;;;;;;15114:26;;;15149:15;;;;;;;;;;;15167:14;15114:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15218:4;15193:22;;:29;;;;;;;;;;;;;;;;;;14567:663::o:0;18580:69::-;18626:15;:13;:15::i;:::-;18580:69::o;12678:143::-;12759:7;12786:11;:18;12798:5;12786:18;;;;;;;;;;;;;;;:27;12805:7;12786:27;;;;;;;;;;;;;;;;12779:34;;12678:143;;;;:::o;20106:151::-;20158:18;20179:21;20158:42;;20219:8;;;;;;;;;;;20211:26;;:38;20238:10;20211:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20147:110;20106:151::o;13952:194::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14033:22:::1;;;;;;;;;;;14025:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14133:5;14108:22;;:30;;;;;;;;;;;;;;;;;;13952:194::o:0;6516:244::-;6283:12;:10;:12::i;:::-;6273:22;;:6;;;;;;;;;;:22;;;6265:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6625:1:::1;6605:22;;:8;:22;;::::0;6597:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6715:8;6686:38;;6707:6;::::0;::::1;;;;;;;;6686:38;;;;;;;;;;;;6744:8;6735:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6516:244:::0;:::o;2648:98::-;2701:7;2728:10;2721:17;;2648:98;:::o;15370:337::-;15480:1;15463:19;;:5;:19;;;15455:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15561:1;15542:21;;:7;:21;;;15534:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15645:6;15615:11;:18;15627:5;15615:18;;;;;;;;;;;;;;;:27;15634:7;15615:27;;;;;;;;;;;;;;;:36;;;;15683:7;15667:32;;15676:5;15667:32;;;15692:6;15667:32;;;;;;:::i;:::-;;;;;;;;15370:337;;;:::o;15715:1920::-;15822:1;15806:18;;:4;:18;;;15798:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15899:1;15885:16;;:2;:16;;;15877:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:1;15960:9;:13;15952:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16030:17;16062:13;16079:18;:24;16098:4;16079:24;;;;;;;;;;;;;;;;;;;;;;;;;16078:25;:52;;;;;16108:18;:22;16127:2;16108:22;;;;;;;;;;;;;;;;;;;;;;;;;16107:23;16078:52;:71;;;;;16142:7;:5;:7::i;:::-;16134:15;;:4;:15;;;;16078:71;:88;;;;;16159:7;:5;:7::i;:::-;16153:13;;:2;:13;;;;16078:88;16062:104;;16177:14;16194:9;16177:26;;16225:7;:5;:7::i;:::-;16217:15;;:4;:15;;;;:32;;;;;16242:7;:5;:7::i;:::-;16236:13;;:2;:13;;;;16217:32;:57;;;;;16269:4;16253:21;;:4;:21;;;;16217:57;:80;;;;;16292:4;16278:19;;:2;:19;;;;16217:80;16214:1112;;;16317:8;16314:1001;;;16359:22;;;;;;;;;;;16358:23;:57;;16414:1;16358:57;;;16384:27;16407:3;16384:18;16395:6;;16384;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;16358:57;16346:69;;16446:10;;;;;;;;;;;16438:18;;:4;:18;;;:44;;;;;16460:22;;;;;;;;;;;16438:44;16434:168;;;16507:15;:13;:15::i;:::-;16545:12;;;;;;;;;;;:16;;;16562:2;16566:15;16545:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16434:168;16632:10;;;;;;;;;;;16624:18;;:4;:18;;;;:38;;;;;16652:10;;;;;;;;;;;16646:16;;:2;:16;;;16624:38;16620:680;;;16702:9;:15;16712:4;16702:15;;;;;;;;;;;;;;;;16690:9;:27;16687:107;;;16755:9;:15;16765:4;16755:15;;;;;;;;;;;;;;;;16746:24;;16687:107;16829:22;;;;;;;;;;;16828:23;:58;;16885:1;16828:58;;;16854:28;16878:3;16854:19;16865:7;;16854:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16828:58;16816:70;;16909:28;16940:24;16958:4;16940:9;:24::i;:::-;16909:55;;17014:1;16991:20;:24;16987:294;;;17044:19;17066:15;:13;:15::i;:::-;17044:37;;17136:11;17112:20;:35;;:56;;;;;17152:16;;;;;;;;;;;17151:17;17112:56;17108:150;;;17201:29;17218:11;17201:16;:29::i;:::-;17108:150;17017:264;16987:294;16664:636;16620:680;16314:1001;16214:1112;17343:22;17368:21;17379:9;17368:6;:10;;:21;;;;:::i;:::-;17343:46;;17418:27;17438:6;17418:9;:15;17428:4;17418:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;17400:9;:15;17410:4;17400:15;;;;;;;;;;;;;;;:45;;;;17472:33;17490:14;17472:9;:13;17482:2;17472:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;17456:9;:13;17466:2;17456:13;;;;;;;;;;;;;;;:49;;;;17543:39;17572:9;17543;:24;17561:4;17543:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17516:9;:24;17534:4;17516:24;;;;;;;;;;;;;;;:66;;;;17613:2;17598:29;;17607:4;17598:29;;;17617:9;17598:29;;;;;;:::i;:::-;;;;;;;;15787:1848;;;;15715:1920;;;:::o;1120:192::-;1206:7;1239:1;1234;:6;;1242:12;1226:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1266:9;1282:1;1278;:5;;;;:::i;:::-;1266:17;;1303:1;1296:8;;;1120:192;;;;;:::o;787:181::-;845:7;865:9;881:1;877;:5;;;;:::i;:::-;865:17;;906:1;901;:6;;893:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;959:1;952:8;;;787:181;;;;:::o;14323:236::-;14410:9;14405:147;14429:9;;:16;;14425:1;:20;14405:147;;;14467:12;14482:9;;14492:1;14482:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14467:27;;14536:4;14509:18;:24;14528:4;14509:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14452:100;14447:3;;;;;:::i;:::-;;;;14405:147;;;;14323:236;;;:::o;18930:729::-;19056:21;19094:1;19080:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19056:40;;19125:4;19107;19112:1;19107:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19151:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19141:4;19146:1;19141:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19184:62;19201:4;19216:15;;;;;;;;;;;19234:11;19184:8;:62::i;:::-;19257:15;;;;;;;;;;;:66;;;19338:11;19364:1;19380:4;19407;19427:15;19257:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19466:18;19487:21;19466:42;;19519:17;19539;19554:1;19539:10;:14;;:17;;;;:::i;:::-;19519:37;;19577:6;;;;;;;;;;;19569:24;;:35;19594:9;19569:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19623:6;;;;;;;;;;;19615:24;;:35;19640:9;19615:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18985:674;;;18930:729;:::o;17643:543::-;17690:22;;;;;;;;;;;17687:492;;;17733:9;17729:439;17751:12;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17747:1;:23;17729:439;;;17796:14;17813:12;;;;;;;;;;;:26;;;17840:1;17813:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17796:46;;17861:14;17878:9;:17;17888:6;17878:17;;;;;;;;;;;;;;;;17861:34;;17926:1;17917:6;:10;17914:193;;;17972:29;17994:6;17972:9;:17;17982:6;17972:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17952:9;:17;17962:6;17952:17;;;;;;;;;;;;;;;:49;;;;18051:36;18080:6;18051:9;:24;18069:4;18051:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;18024:9;:24;18042:4;18024:24;;;;;;;;;;;;;;;:63;;;;17914:193;18125:12;;;;;;;;;;;:19;;;18145:6;18125:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17777:391;;17772:3;;;;;:::i;:::-;;;;17729:439;;;;17687:492;17643:543::o;1320:471::-;1378:7;1628:1;1623;:6;1619:47;;1653:1;1646:8;;;;1619:47;1678:9;1694:1;1690;:5;;;;:::i;:::-;1678:17;;1723:1;1718;1714;:5;;;;:::i;:::-;:10;1706:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1782:1;1775:8;;;1320:471;;;;;:::o;1799:132::-;1857:7;1884:39;1888:1;1891;1884:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1877:46;;1799:132;;;;:::o;976:136::-;1034:7;1061:43;1065:1;1068;1061:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1054:50;;976:136;;;;:::o;1939:278::-;2025:7;2057:1;2053;:5;2060:12;2045:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2084:9;2100:1;2096;:5;;;;:::i;:::-;2084:17;;2208:1;2201:8;;;1939:278;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:117::-;6270:1;6267;6260:12;6284:117;6393:1;6390;6383:12;6407:117;6516:1;6513;6506:12;6547:568;6620:8;6630:6;6680:3;6673:4;6665:6;6661:17;6657:27;6647:122;;6688:79;;:::i;:::-;6647:122;6801:6;6788:20;6778:30;;6831:18;6823:6;6820:30;6817:117;;;6853:79;;:::i;:::-;6817:117;6967:4;6959:6;6955:17;6943:29;;7021:3;7013:4;7005:6;7001:17;6991:8;6987:32;6984:41;6981:128;;;7028:79;;:::i;:::-;6981:128;6547:568;;;;;:::o;7121:116::-;7191:21;7206:5;7191:21;:::i;:::-;7184:5;7181:32;7171:60;;7227:1;7224;7217:12;7171:60;7121:116;:::o;7243:133::-;7286:5;7324:6;7311:20;7302:29;;7340:30;7364:5;7340:30;:::i;:::-;7243:133;;;;:::o;7382:698::-;7474:6;7482;7490;7539:2;7527:9;7518:7;7514:23;7510:32;7507:119;;;7545:79;;:::i;:::-;7507:119;7693:1;7682:9;7678:17;7665:31;7723:18;7715:6;7712:30;7709:117;;;7745:79;;:::i;:::-;7709:117;7858:80;7930:7;7921:6;7910:9;7906:22;7858:80;:::i;:::-;7840:98;;;;7636:312;7987:2;8013:50;8055:7;8046:6;8035:9;8031:22;8013:50;:::i;:::-;8003:60;;7958:115;7382:698;;;;;:::o;8086:118::-;8173:24;8191:5;8173:24;:::i;:::-;8168:3;8161:37;8086:118;;:::o;8210:222::-;8303:4;8341:2;8330:9;8326:18;8318:26;;8354:71;8422:1;8411:9;8407:17;8398:6;8354:71;:::i;:::-;8210:222;;;;:::o;8438:329::-;8497:6;8546:2;8534:9;8525:7;8521:23;8517:32;8514:119;;;8552:79;;:::i;:::-;8514:119;8672:1;8697:53;8742:7;8733:6;8722:9;8718:22;8697:53;:::i;:::-;8687:63;;8643:117;8438:329;;;;:::o;8773:474::-;8841:6;8849;8898:2;8886:9;8877:7;8873:23;8869:32;8866:119;;;8904:79;;:::i;:::-;8866:119;9024:1;9049:53;9094:7;9085:6;9074:9;9070:22;9049:53;:::i;:::-;9039:63;;8995:117;9151:2;9177:53;9222:7;9213:6;9202:9;9198:22;9177:53;:::i;:::-;9167:63;;9122:118;8773:474;;;;;:::o;9253:::-;9321:6;9329;9378:2;9366:9;9357:7;9353:23;9349:32;9346:119;;;9384:79;;:::i;:::-;9346:119;9504:1;9529:53;9574:7;9565:6;9554:9;9550:22;9529:53;:::i;:::-;9519:63;;9475:117;9631:2;9657:53;9702:7;9693:6;9682:9;9678:22;9657:53;:::i;:::-;9647:63;;9602:118;9253:474;;;;;:::o;9733:180::-;9781:77;9778:1;9771:88;9878:4;9875:1;9868:15;9902:4;9899:1;9892:15;9919:320;9963:6;10000:1;9994:4;9990:12;9980:22;;10047:1;10041:4;10037:12;10068:18;10058:81;;10124:4;10116:6;10112:17;10102:27;;10058:81;10186:2;10178:6;10175:14;10155:18;10152:38;10149:84;;10205:18;;:::i;:::-;10149:84;9970:269;9919:320;;;:::o;10245:182::-;10385:34;10381:1;10373:6;10369:14;10362:58;10245:182;:::o;10433:366::-;10575:3;10596:67;10660:2;10655:3;10596:67;:::i;:::-;10589:74;;10672:93;10761:3;10672:93;:::i;:::-;10790:2;10785:3;10781:12;10774:19;;10433:366;;;:::o;10805:419::-;10971:4;11009:2;10998:9;10994:18;10986:26;;11058:9;11052:4;11048:20;11044:1;11033:9;11029:17;11022:47;11086:131;11212:4;11086:131;:::i;:::-;11078:139;;10805:419;;;:::o;11230:180::-;11278:77;11275:1;11268:88;11375:4;11372:1;11365:15;11399:4;11396:1;11389:15;11416:410;11456:7;11479:20;11497:1;11479:20;:::i;:::-;11474:25;;11513:20;11531:1;11513:20;:::i;:::-;11508:25;;11568:1;11565;11561:9;11590:30;11608:11;11590:30;:::i;:::-;11579:41;;11769:1;11760:7;11756:15;11753:1;11750:22;11730:1;11723:9;11703:83;11680:139;;11799:18;;:::i;:::-;11680:139;11464:362;11416:410;;;;:::o;11832:180::-;11880:77;11877:1;11870:88;11977:4;11974:1;11967:15;12001:4;11998:1;11991:15;12018:143;12075:5;12106:6;12100:13;12091:22;;12122:33;12149:5;12122:33;:::i;:::-;12018:143;;;;:::o;12167:351::-;12237:6;12286:2;12274:9;12265:7;12261:23;12257:32;12254:119;;;12292:79;;:::i;:::-;12254:119;12412:1;12437:64;12493:7;12484:6;12473:9;12469:22;12437:64;:::i;:::-;12427:74;;12383:128;12167:351;;;;:::o;12524:180::-;12572:77;12569:1;12562:88;12669:4;12666:1;12659:15;12693:4;12690:1;12683:15;12710:114;12777:6;12811:5;12805:12;12795:22;;12710:114;;;:::o;12830:184::-;12929:11;12963:6;12958:3;12951:19;13003:4;12998:3;12994:14;12979:29;;12830:184;;;;:::o;13020:132::-;13087:4;13110:3;13102:11;;13140:4;13135:3;13131:14;13123:22;;13020:132;;;:::o;13158:108::-;13235:24;13253:5;13235:24;:::i;:::-;13230:3;13223:37;13158:108;;:::o;13272:179::-;13341:10;13362:46;13404:3;13396:6;13362:46;:::i;:::-;13440:4;13435:3;13431:14;13417:28;;13272:179;;;;:::o;13457:113::-;13527:4;13559;13554:3;13550:14;13542:22;;13457:113;;;:::o;13606:732::-;13725:3;13754:54;13802:5;13754:54;:::i;:::-;13824:86;13903:6;13898:3;13824:86;:::i;:::-;13817:93;;13934:56;13984:5;13934:56;:::i;:::-;14013:7;14044:1;14029:284;14054:6;14051:1;14048:13;14029:284;;;14130:6;14124:13;14157:63;14216:3;14201:13;14157:63;:::i;:::-;14150:70;;14243:60;14296:6;14243:60;:::i;:::-;14233:70;;14089:224;14076:1;14073;14069:9;14064:14;;14029:284;;;14033:14;14329:3;14322:10;;13730:608;;;13606:732;;;;:::o;14344:483::-;14515:4;14553:2;14542:9;14538:18;14530:26;;14566:71;14634:1;14623:9;14619:17;14610:6;14566:71;:::i;:::-;14684:9;14678:4;14674:20;14669:2;14658:9;14654:18;14647:48;14712:108;14815:4;14806:6;14712:108;:::i;:::-;14704:116;;14344:483;;;;;:::o;14833:281::-;14916:27;14938:4;14916:27;:::i;:::-;14908:6;14904:40;15046:6;15034:10;15031:22;15010:18;14998:10;14995:34;14992:62;14989:88;;;15057:18;;:::i;:::-;14989:88;15097:10;15093:2;15086:22;14876:238;14833:281;;:::o;15120:129::-;15154:6;15181:20;;:::i;:::-;15171:30;;15210:33;15238:4;15230:6;15210:33;:::i;:::-;15120:129;;;:::o;15255:311::-;15332:4;15422:18;15414:6;15411:30;15408:56;;;15444:18;;:::i;:::-;15408:56;15494:4;15486:6;15482:17;15474:25;;15554:4;15548;15544:15;15536:23;;15255:311;;;:::o;15572:143::-;15629:5;15660:6;15654:13;15645:22;;15676:33;15703:5;15676:33;:::i;:::-;15572:143;;;;:::o;15738:732::-;15845:5;15870:81;15886:64;15943:6;15886:64;:::i;:::-;15870:81;:::i;:::-;15861:90;;15971:5;16000:6;15993:5;15986:21;16034:4;16027:5;16023:16;16016:23;;16087:4;16079:6;16075:17;16067:6;16063:30;16116:3;16108:6;16105:15;16102:122;;;16135:79;;:::i;:::-;16102:122;16250:6;16233:231;16267:6;16262:3;16259:15;16233:231;;;16342:3;16371:48;16415:3;16403:10;16371:48;:::i;:::-;16366:3;16359:61;16449:4;16444:3;16440:14;16433:21;;16309:155;16293:4;16288:3;16284:14;16277:21;;16233:231;;;16237:21;15851:619;;15738:732;;;;;:::o;16493:385::-;16575:5;16624:3;16617:4;16609:6;16605:17;16601:27;16591:122;;16632:79;;:::i;:::-;16591:122;16742:6;16736:13;16767:105;16868:3;16860:6;16853:4;16845:6;16841:17;16767:105;:::i;:::-;16758:114;;16581:297;16493:385;;;;:::o;16884:554::-;16979:6;17028:2;17016:9;17007:7;17003:23;16999:32;16996:119;;;17034:79;;:::i;:::-;16996:119;17175:1;17164:9;17160:17;17154:24;17205:18;17197:6;17194:30;17191:117;;;17227:79;;:::i;:::-;17191:117;17332:89;17413:7;17404:6;17393:9;17389:22;17332:89;:::i;:::-;17322:99;;17125:306;16884:554;;;;:::o;17444:351::-;17514:6;17563:2;17551:9;17542:7;17538:23;17534:32;17531:119;;;17569:79;;:::i;:::-;17531:119;17689:1;17714:64;17770:7;17761:6;17750:9;17746:22;17714:64;:::i;:::-;17704:74;;17660:128;17444:351;;;;:::o;17801:233::-;17840:3;17863:24;17881:5;17863:24;:::i;:::-;17854:33;;17909:66;17902:5;17899:77;17896:103;;17979:18;;:::i;:::-;17896:103;18026:1;18019:5;18015:13;18008:20;;17801:233;;;:::o;18040:332::-;18161:4;18199:2;18188:9;18184:18;18176:26;;18212:71;18280:1;18269:9;18265:17;18256:6;18212:71;:::i;:::-;18293:72;18361:2;18350:9;18346:18;18337:6;18293:72;:::i;:::-;18040:332;;;;;:::o;18378:137::-;18432:5;18463:6;18457:13;18448:22;;18479:30;18503:5;18479:30;:::i;:::-;18378:137;;;;:::o;18521:345::-;18588:6;18637:2;18625:9;18616:7;18612:23;18608:32;18605:119;;;18643:79;;:::i;:::-;18605:119;18763:1;18788:61;18841:7;18832:6;18821:9;18817:22;18788:61;:::i;:::-;18778:71;;18734:125;18521:345;;;;:::o;18872:221::-;19012:34;19008:1;19000:6;18996:14;18989:58;19081:4;19076:2;19068:6;19064:15;19057:29;18872:221;:::o;19099:366::-;19241:3;19262:67;19326:2;19321:3;19262:67;:::i;:::-;19255:74;;19338:93;19427:3;19338:93;:::i;:::-;19456:2;19451:3;19447:12;19440:19;;19099:366;;;:::o;19471:419::-;19637:4;19675:2;19664:9;19660:18;19652:26;;19724:9;19718:4;19714:20;19710:1;19699:9;19695:17;19688:47;19752:131;19878:4;19752:131;:::i;:::-;19744:139;;19471:419;;;:::o;19896:332::-;20017:4;20055:2;20044:9;20040:18;20032:26;;20068:71;20136:1;20125:9;20121:17;20112:6;20068:71;:::i;:::-;20149:72;20217:2;20206:9;20202:18;20193:6;20149:72;:::i;:::-;19896:332;;;;;:::o;20234:85::-;20279:7;20308:5;20297:16;;20234:85;;;:::o;20325:158::-;20383:9;20416:61;20434:42;20443:32;20469:5;20443:32;:::i;:::-;20434:42;:::i;:::-;20416:61;:::i;:::-;20403:74;;20325:158;;;:::o;20489:147::-;20584:45;20623:5;20584:45;:::i;:::-;20579:3;20572:58;20489:147;;:::o;20642:807::-;20891:4;20929:3;20918:9;20914:19;20906:27;;20943:71;21011:1;21000:9;20996:17;20987:6;20943:71;:::i;:::-;21024:72;21092:2;21081:9;21077:18;21068:6;21024:72;:::i;:::-;21106:80;21182:2;21171:9;21167:18;21158:6;21106:80;:::i;:::-;21196;21272:2;21261:9;21257:18;21248:6;21196:80;:::i;:::-;21286:73;21354:3;21343:9;21339:19;21330:6;21286:73;:::i;:::-;21369;21437:3;21426:9;21422:19;21413:6;21369:73;:::i;:::-;20642:807;;;;;;;;;:::o;21455:663::-;21543:6;21551;21559;21608:2;21596:9;21587:7;21583:23;21579:32;21576:119;;;21614:79;;:::i;:::-;21576:119;21734:1;21759:64;21815:7;21806:6;21795:9;21791:22;21759:64;:::i;:::-;21749:74;;21705:128;21872:2;21898:64;21954:7;21945:6;21934:9;21930:22;21898:64;:::i;:::-;21888:74;;21843:129;22011:2;22037:64;22093:7;22084:6;22073:9;22069:22;22037:64;:::i;:::-;22027:74;;21982:129;21455:663;;;;;:::o;22124:225::-;22264:34;22260:1;22252:6;22248:14;22241:58;22333:8;22328:2;22320:6;22316:15;22309:33;22124:225;:::o;22355:366::-;22497:3;22518:67;22582:2;22577:3;22518:67;:::i;:::-;22511:74;;22594:93;22683:3;22594:93;:::i;:::-;22712:2;22707:3;22703:12;22696:19;;22355:366;;;:::o;22727:419::-;22893:4;22931:2;22920:9;22916:18;22908:26;;22980:9;22974:4;22970:20;22966:1;22955:9;22951:17;22944:47;23008:131;23134:4;23008:131;:::i;:::-;23000:139;;22727:419;;;:::o;23152:225::-;23292:34;23288:1;23280:6;23276:14;23269:58;23361:8;23356:2;23348:6;23344:15;23337:33;23152:225;:::o;23383:366::-;23525:3;23546:67;23610:2;23605:3;23546:67;:::i;:::-;23539:74;;23622:93;23711:3;23622:93;:::i;:::-;23740:2;23735:3;23731:12;23724:19;;23383:366;;;:::o;23755:419::-;23921:4;23959:2;23948:9;23944:18;23936:26;;24008:9;24002:4;23998:20;23994:1;23983:9;23979:17;23972:47;24036:131;24162:4;24036:131;:::i;:::-;24028:139;;23755:419;;;:::o;24180:223::-;24320:34;24316:1;24308:6;24304:14;24297:58;24389:6;24384:2;24376:6;24372:15;24365:31;24180:223;:::o;24409:366::-;24551:3;24572:67;24636:2;24631:3;24572:67;:::i;:::-;24565:74;;24648:93;24737:3;24648:93;:::i;:::-;24766:2;24761:3;24757:12;24750:19;;24409:366;;;:::o;24781:419::-;24947:4;24985:2;24974:9;24970:18;24962:26;;25034:9;25028:4;25024:20;25020:1;25009:9;25005:17;24998:47;25062:131;25188:4;25062:131;:::i;:::-;25054:139;;24781:419;;;:::o;25206:221::-;25346:34;25342:1;25334:6;25330:14;25323:58;25415:4;25410:2;25402:6;25398:15;25391:29;25206:221;:::o;25433:366::-;25575:3;25596:67;25660:2;25655:3;25596:67;:::i;:::-;25589:74;;25672:93;25761:3;25672:93;:::i;:::-;25790:2;25785:3;25781:12;25774:19;;25433:366;;;:::o;25805:419::-;25971:4;26009:2;25998:9;25994:18;25986:26;;26058:9;26052:4;26048:20;26044:1;26033:9;26029:17;26022:47;26086:131;26212:4;26086:131;:::i;:::-;26078:139;;25805:419;;;:::o;26230:224::-;26370:34;26366:1;26358:6;26354:14;26347:58;26439:7;26434:2;26426:6;26422:15;26415:32;26230:224;:::o;26460:366::-;26602:3;26623:67;26687:2;26682:3;26623:67;:::i;:::-;26616:74;;26699:93;26788:3;26699:93;:::i;:::-;26817:2;26812:3;26808:12;26801:19;;26460:366;;;:::o;26832:419::-;26998:4;27036:2;27025:9;27021:18;27013:26;;27085:9;27079:4;27075:20;27071:1;27060:9;27056:17;27049:47;27113:131;27239:4;27113:131;:::i;:::-;27105:139;;26832:419;;;:::o;27257:222::-;27397:34;27393:1;27385:6;27381:14;27374:58;27466:5;27461:2;27453:6;27449:15;27442:30;27257:222;:::o;27485:366::-;27627:3;27648:67;27712:2;27707:3;27648:67;:::i;:::-;27641:74;;27724:93;27813:3;27724:93;:::i;:::-;27842:2;27837:3;27833:12;27826:19;;27485:366;;;:::o;27857:419::-;28023:4;28061:2;28050:9;28046:18;28038:26;;28110:9;28104:4;28100:20;28096:1;28085:9;28081:17;28074:47;28138:131;28264:4;28138:131;:::i;:::-;28130:139;;27857:419;;;:::o;28282:228::-;28422:34;28418:1;28410:6;28406:14;28399:58;28491:11;28486:2;28478:6;28474:15;28467:36;28282:228;:::o;28516:366::-;28658:3;28679:67;28743:2;28738:3;28679:67;:::i;:::-;28672:74;;28755:93;28844:3;28755:93;:::i;:::-;28873:2;28868:3;28864:12;28857:19;;28516:366;;;:::o;28888:419::-;29054:4;29092:2;29081:9;29077:18;29069:26;;29141:9;29135:4;29131:20;29127:1;29116:9;29112:17;29105:47;29169:131;29295:4;29169:131;:::i;:::-;29161:139;;28888:419;;;:::o;29313:194::-;29353:4;29373:20;29391:1;29373:20;:::i;:::-;29368:25;;29407:20;29425:1;29407:20;:::i;:::-;29402:25;;29451:1;29448;29444:9;29436:17;;29475:1;29469:4;29466:11;29463:37;;;29480:18;;:::i;:::-;29463:37;29313:194;;;;:::o;29513:191::-;29553:3;29572:20;29590:1;29572:20;:::i;:::-;29567:25;;29606:20;29624:1;29606:20;:::i;:::-;29601:25;;29649:1;29646;29642:9;29635:16;;29670:3;29667:1;29664:10;29661:36;;;29677:18;;:::i;:::-;29661:36;29513:191;;;;:::o;29710:177::-;29850:29;29846:1;29838:6;29834:14;29827:53;29710:177;:::o;29893:366::-;30035:3;30056:67;30120:2;30115:3;30056:67;:::i;:::-;30049:74;;30132:93;30221:3;30132:93;:::i;:::-;30250:2;30245:3;30241:12;30234:19;;29893:366;;;:::o;30265:419::-;30431:4;30469:2;30458:9;30454:18;30446:26;;30518:9;30512:4;30508:20;30504:1;30493:9;30489:17;30482:47;30546:131;30672:4;30546:131;:::i;:::-;30538:139;;30265:419;;;:::o;30690:831::-;30953:4;30991:3;30980:9;30976:19;30968:27;;31005:71;31073:1;31062:9;31058:17;31049:6;31005:71;:::i;:::-;31086:80;31162:2;31151:9;31147:18;31138:6;31086:80;:::i;:::-;31213:9;31207:4;31203:20;31198:2;31187:9;31183:18;31176:48;31241:108;31344:4;31335:6;31241:108;:::i;:::-;31233:116;;31359:72;31427:2;31416:9;31412:18;31403:6;31359:72;:::i;:::-;31441:73;31509:3;31498:9;31494:19;31485:6;31441:73;:::i;:::-;30690:831;;;;;;;;:::o;31527:180::-;31575:77;31572:1;31565:88;31672:4;31669:1;31662:15;31696:4;31693:1;31686:15;31713:185;31753:1;31770:20;31788:1;31770:20;:::i;:::-;31765:25;;31804:20;31822:1;31804:20;:::i;:::-;31799:25;;31843:1;31833:35;;31848:18;;:::i;:::-;31833:35;31890:1;31887;31883:9;31878:14;;31713:185;;;;:::o;31904:220::-;32044:34;32040:1;32032:6;32028:14;32021:58;32113:3;32108:2;32100:6;32096:15;32089:28;31904:220;:::o;32130:366::-;32272:3;32293:67;32357:2;32352:3;32293:67;:::i;:::-;32286:74;;32369:93;32458:3;32369:93;:::i;:::-;32487:2;32482:3;32478:12;32471:19;;32130:366;;;:::o;32502:419::-;32668:4;32706:2;32695:9;32691:18;32683:26;;32755:9;32749:4;32745:20;32741:1;32730:9;32726:17;32719:47;32783:131;32909:4;32783:131;:::i;:::-;32775:139;;32502:419;;;:::o

Swarm Source

ipfs://5f562b018f514ea24c6d5970e78d2c0eba74c604f55afd7a8e27d790ba9c61c2
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.