ETH Price: $2,292.10 (-2.21%)

Token

Mev Token ($MEV)
 

Overview

Max Total Supply

1,000,000,000 $MEV

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,675,305.810108830672864192 $MEV

Value
$0.00
0x0cc7ffeb688f0aead7827dacd752a5f3b98f3296
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:
MevToken

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.13;

abstract contract Context {

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

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

contract Ownable is Context {
    address private _owner;
    mapping (address => bool) internal authorizations;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[msgSender] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
        
    modifier authorizedOrOwner() {
        require(isAuthorized(msg.sender) || _owner == _msgSender(), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public authorizedOrOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public authorizedOrOwner {
        authorizations[adr] = false;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

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

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(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 addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function removeLiquidityETH(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountToken, uint amountETH);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract MevToken is Context, IERC20, Ownable {
    
    string constant private _name = "Mev Token";
    string constant private _symbol = "$MEV";
    uint8 constant private _decimals = 18;

    address public constant  deadAddress = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWalletAddress = payable(0x7927Ae1E833a2e8362cCe4Af0A7c9f66c9B51D3C); // Marketing Address
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isEarlyBuyer;

    uint256 public tax = 10;

    uint256 constant private _totalSupply = 1 * 10**9 * 10**_decimals;
    uint256 public swapThreshold = 10000 * 10**_decimals; 

    IDexRouter public dexRouter;
    address public lpPair;
    
    bool private isInSwap;
    bool public swapEnabled = true;
    bool public swapByLimitOnly = false;

    event SwapSettingsUpdated(bool swapEnabled_, uint256 swapThreshold_, bool swapByLimitOnly_);
    event SwapTokensForETH(uint256 amountIn, address[] path);
    event MarketingWalletChanged(address marketingWalletAddress_);
    event EarlyBuyerUpdated(address account, bool isEarlyBuyer_);
    event MarketPairUpdated(address account, bool isMarketPair_);

    modifier lockTheSwap {
        isInSwap = true;
        _;
        isInSwap = false;
    }
    
    constructor () {
        dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        
        isMarketPair[address(lpPair)] = true;

        allowances[address(this)][address(dexRouter)] = _totalSupply;
        balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

     //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(deadAddress);
    }

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

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

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

        allowances[owner_][spender] = amount;
        emit Approval(owner_, spender, amount);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), allowances[sender][_msgSender()] - amount);
        return true;
    }
    
    function updateRouter(address newRouterAddress) public authorizedOrOwner returns(address newPairAddress) {
        IDexRouter dexRouter_ = IDexRouter(newRouterAddress); 
        newPairAddress = IDexFactory(dexRouter_.factory()).getPair(address(this), dexRouter_.WETH());

        if(newPairAddress == address(0)) { //Create If Doesnt exist
            newPairAddress = IDexFactory(dexRouter_.factory()).
                                createPair(address(this), dexRouter_.WETH());
        }

        lpPair = newPairAddress; //Set new pair address
        dexRouter = dexRouter_; //Set new router address

        isMarketPair[address(lpPair)] = true;
    }

    function setIsEarlyBuyer(address account, bool isEarlyBuyer_) public onlyOwner {
        isEarlyBuyer[account] = isEarlyBuyer_;
        emit EarlyBuyerUpdated(account, isEarlyBuyer_);
    }

    function setMarketPairStatus(address account, bool isMarketPair_) public onlyOwner {
        isMarketPair[account] = isMarketPair_;
        emit MarketPairUpdated(account, isMarketPair_);
    }

    function updateSwapSettings(bool swapEnabled_, uint256 swapThreshold_, bool swapByLimitOnly_) public authorizedOrOwner {
        swapEnabled = swapEnabled_;
        swapThreshold = swapThreshold_;
        swapByLimitOnly = swapByLimitOnly_;
        emit SwapSettingsUpdated(swapEnabled_, swapThreshold_, swapByLimitOnly_);
    }

    function whitelistAccount(address account, bool feeExempt) public onlyOwner {
        isExcludedFromFee[account] = feeExempt;
    }

    function setMarketingWalletAddress(address marketingWalletAddress_) external authorizedOrOwner {
        require(marketingWalletAddress_ != address(0), "New address cannot be zero address");
        marketingWalletAddress = payable(marketingWalletAddress_);
        emit MarketingWalletChanged(marketingWalletAddress_);
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        bool success;
        (success,) = address(recipient).call{value: amount}("");
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        if(isInSwap) { 
            return _basicTransfer(sender, recipient, amount); 
        } else {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");
            require(!isEarlyBuyer[sender] && !isEarlyBuyer[recipient], "To/from address is blacklisted!");

            bool isTaxFree = ((!isMarketPair[sender] && !isMarketPair[recipient]) || 
                                isExcludedFromFee[sender] || isExcludedFromFee[recipient]);

            if (!isTaxFree && !isMarketPair[sender] && swapEnabled && !isInSwap) 
            {
                uint256 contractTokenBalance = balanceOf(address(this));
                bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;
                if(overMinimumTokenBalance) {
                    if(swapByLimitOnly)
                        contractTokenBalance = swapThreshold;
                    swapAndLiquify(contractTokenBalance);    
                }
            }

            balances[sender] = balances[sender] - amount;

            uint256 finalAmount = isTaxFree ? amount : takeFee(sender, recipient, amount);

            balances[recipient] = balances[recipient] + finalAmount;

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balances[sender] = balances[sender] - amount;
        balances[recipient] = balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tokensForSwap) private lockTheSwap {
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0) {
            transferToAddressETH(marketingWalletAddress, amountReceived);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;   

        if(isMarketPair[sender] || isMarketPair[recipient]) {
            feeAmount = (amount * tax) / 1000;
        }
        
        if(feeAmount > 0) {
            balances[address(this)] = balances[address(this)] + feeAmount;
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
    
}

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":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isEarlyBuyer_","type":"bool"}],"name":"EarlyBuyerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isMarketPair_","type":"bool"}],"name":"MarketPairUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWalletAddress_","type":"address"}],"name":"MarketingWalletChanged","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":false,"internalType":"bool","name":"swapEnabled_","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold_","type":"uint256"},{"indexed":false,"internalType":"bool","name":"swapByLimitOnly_","type":"bool"}],"name":"SwapSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEarlyBuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isEarlyBuyer_","type":"bool"}],"name":"setIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isMarketPair_","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWalletAddress_","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"updateRouter","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled_","type":"bool"},{"internalType":"uint256","name":"swapThreshold_","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly_","type":"bool"}],"name":"updateSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"feeExempt","type":"bool"}],"name":"whitelistAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737927ae1e833a2e8362cce4af0a7c9f66c9b51d3c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a6008556012600a6200006e9190620008e0565b6127106200007d919062000931565b6009556001600b60156101000a81548160ff0219169083151502179055506000600b60166101000a81548160ff021916908315150217905550348015620000c357600080fd5b506000620000d66200071560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b49190620009fc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003649190620009fc565b6040518363ffffffff1660e01b81526004016200038392919062000a3f565b6020604051808303816000875af1158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c99190620009fc565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200041f6200071d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506012600a620005529190620008e0565b633b9aca0062000563919062000931565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506012600a620006159190620008e0565b633b9aca0062000626919062000931565b600360006200063a6200071560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006886200071560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620006e79190620008e0565b633b9aca00620006f8919062000931565b60405162000707919062000a7d565b60405180910390a362000a9a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007d457808604811115620007ac57620007ab62000746565b5b6001851615620007bc5780820291505b8081029050620007cc8562000775565b94506200078c565b94509492505050565b600082620007ef5760019050620008c2565b81620007ff5760009050620008c2565b8160018114620008185760028114620008235762000859565b6001915050620008c2565b60ff84111562000838576200083762000746565b5b8360020a91508482111562000852576200085162000746565b5b50620008c2565b5060208310610133831016604e8410600b8410161715620008935782820a9050838111156200088d576200088c62000746565b5b620008c2565b620008a2848484600162000782565b92509050818404811115620008bc57620008bb62000746565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008ed82620008c9565b9150620008fa83620008d3565b9250620009297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007dd565b905092915050565b60006200093e82620008c9565b91506200094b83620008c9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000987576200098662000746565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009c48262000997565b9050919050565b620009d681620009b7565b8114620009e257600080fd5b50565b600081519050620009f681620009cb565b92915050565b60006020828403121562000a155762000a1462000992565b5b600062000a2584828501620009e5565b91505092915050565b62000a3981620009b7565b82525050565b600060408201905062000a56600083018562000a2e565b62000a65602083018462000a2e565b9392505050565b62000a7781620008c9565b82525050565b600060208201905062000a94600083018462000a6c565b92915050565b613b818062000aaa6000396000f3fe6080604052600436106102085760003560e01c8063844d591c11610118578063b6a5d7de116100a0578063dd62ed3e1161006f578063dd62ed3e146107b4578063e932ec9a146107f1578063f0b37c041461081a578063f2fde38b14610843578063fe9fbb801461086c5761020f565b8063b6a5d7de146106fa578063baa16dc314610723578063c851cc321461074c578063d158272d146107895761020f565b806395d89b41116100e757806395d89b411461060157806399c8d5561461062c57806399c8df1814610657578063a457c2d714610680578063a9059cbb146106bd5761020f565b8063844d591c146105455780638da5cb5b1461056e5780638e3657aa14610599578063916d6943146105c45761020f565b8063313ce5671161019b5780634cb80fd51161016a5780634cb80fd5146104605780635342acb4146104895780636ddd1713146104c657806370a08231146104f1578063715018a61461052e5761020f565b8063313ce5671461039057806339509351146103bb5780633ecad271146103f8578063452ed4f1146104355761020f565b806318160ddd116101d757806318160ddd146102d257806323b872dd146102fd57806327c8f8351461033a5780632b112e49146103655761020f565b80630445b6671461021457806306fdde031461023f5780630758d9241461026a578063095ea7b3146102955761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108a9565b6040516102369190612c47565b60405180910390f35b34801561024b57600080fd5b506102546108af565b6040516102619190612cfb565b60405180910390f35b34801561027657600080fd5b5061027f6108ec565b60405161028c9190612d9c565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612e26565b610912565b6040516102c99190612e81565b60405180910390f35b3480156102de57600080fd5b506102e7610930565b6040516102f49190612c47565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612e9c565b610954565b6040516103319190612e81565b60405180910390f35b34801561034657600080fd5b5061034f610a0d565b60405161035c9190612efe565b60405180910390f35b34801561037157600080fd5b5061037a610a13565b6040516103879190612c47565b60405180910390f35b34801561039c57600080fd5b506103a5610a4c565b6040516103b29190612f35565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612e26565b610a55565b6040516103ef9190612e81565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612f50565b610b01565b60405161042c9190612e81565b60405180910390f35b34801561044157600080fd5b5061044a610b21565b6040516104579190612efe565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190612f50565b610b47565b005b34801561049557600080fd5b506104b060048036038101906104ab9190612f50565b610cd6565b6040516104bd9190612e81565b60405180910390f35b3480156104d257600080fd5b506104db610cf6565b6040516104e89190612e81565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612f50565b610d09565b6040516105259190612c47565b60405180910390f35b34801561053a57600080fd5b50610543610d52565b005b34801561055157600080fd5b5061056c60048036038101906105679190612fa9565b610ea5565b005b34801561057a57600080fd5b50610583610fce565b6040516105909190612efe565b60405180910390f35b3480156105a557600080fd5b506105ae610ff7565b6040516105bb9190612e81565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190612f50565b61100a565b6040516105f89190612e81565b60405180910390f35b34801561060d57600080fd5b5061061661102a565b6040516106239190612cfb565b60405180910390f35b34801561063857600080fd5b50610641611067565b60405161064e9190612c47565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190612fa9565b61106d565b005b34801561068c57600080fd5b506106a760048036038101906106a29190612e26565b61115d565b6040516106b49190612e81565b60405180910390f35b3480156106c957600080fd5b506106e460048036038101906106df9190612e26565b611209565b6040516106f19190612e81565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c9190612f50565b611228565b005b34801561072f57600080fd5b5061074a60048036038101906107459190612fa9565b611327565b005b34801561075857600080fd5b50610773600480360381019061076e9190612f50565b611450565b6040516107809190612efe565b60405180910390f35b34801561079557600080fd5b5061079e6118e9565b6040516107ab919061300a565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190613025565b61190f565b6040516107e89190612c47565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613065565b611996565b005b34801561082657600080fd5b50610841600480360381019061083c9190612f50565b611ab6565b005b34801561084f57600080fd5b5061086a60048036038101906108659190612f50565b611bb6565b005b34801561087857600080fd5b50610893600480360381019061088e9190612f50565b611d77565b6040516108a09190612e81565b60405180910390f35b60095481565b60606040518060400160405280600981526020017f4d657620546f6b656e0000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061092661091f611dcd565b8484611dd5565b6001905092915050565b60006012600a610940919061321a565b633b9aca0061094f9190613265565b905090565b6000610961848484611f9e565b50610a028461096e611dcd565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109fd91906132bf565b611dd5565b600190509392505050565b61dead81565b6000610a2061dead610d09565b6012600a610a2e919061321a565b633b9aca00610a3d9190613265565b610a4791906132bf565b905090565b60006012905090565b6000610af7610a62611dcd565b848460046000610a70611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af291906132f3565b611dd5565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b5033611d77565b80610bad5750610b5e611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390613395565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290613427565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b81604051610ccb9190612efe565b60405180910390a150565b60056020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90613493565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ead611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613493565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e8282604051610fc29291906134b3565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60169054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f244d455600000000000000000000000000000000000000000000000000000000815250905090565b60085481565b611075611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613493565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111ff61116a611dcd565b848460046000611178611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111fa91906132bf565b611dd5565b6001905092915050565b600061121d611216611dcd565b8484611f9e565b506001905092915050565b61123133611d77565b8061128e575061123f611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613395565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61132f611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390613493565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d382826040516114449291906134b3565b60405180910390a15050565b600061145b33611d77565b806114b85750611469611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90613395565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156b91906134f1565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f691906134f1565b6040518363ffffffff1660e01b815260040161161392919061351e565b602060405180830381865afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165491906134f1565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e7578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f991906134f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611760573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178491906134f1565b6040518363ffffffff1660e01b81526004016117a192919061351e565b6020604051808303816000875af11580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e491906134f1565b91505b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61199f33611d77565b806119fc57506119ad611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613395565b60405180910390fd5b82600b60156101000a81548160ff0219169083151502179055508160098190555080600b60166101000a81548160ff0219169083151502179055507f11208aed08835f646702af16c636fb4351554fa2f623991905cadb0293a88afc838383604051611aa993929190613547565b60405180910390a1505050565b611abf33611d77565b80611b1c5750611acd611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613395565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bbe611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613493565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb1906135f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613682565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613714565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f919190612c47565b60405180910390a3505050565b6000600b60149054906101000a900460ff1615611fc757611fc0848484612555565b905061254e565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90613838565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121495750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f906138a4565b60405180910390fd5b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561222e5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b806122825750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122d65750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050801580156123305750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123485750600b60159054906101000a900460ff165b80156123615750600b60149054906101000a900460ff16155b156123ab57600061237130610d09565b90506000600954821015905080156123a857600b60169054906101000a900460ff161561239e5760095491505b6123a7826126e3565b5b50505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f691906132bf565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000816124505761244b868686612761565b612452565b835b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249f91906132f3565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161253f9190612c47565b60405180910390a36001925050505b9392505050565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a291906132bf565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263091906132f3565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d09190612c47565b60405180910390a3600190509392505050565b6001600b60146101000a81548160ff0219169083151502179055506127078161293f565b6000479050600081111561274257612741600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612bbb565b5b506000600b60146101000a81548160ff02191690831515021790555050565b60008060009050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128095750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561282c576103e86008548461281f9190613265565b61282991906138f3565b90505b60008111156129295780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288091906132f3565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129209190612c47565b60405180910390a35b808361293591906132bf565b9150509392505050565b6000600267ffffffffffffffff81111561295c5761295b613924565b5b60405190808252806020026020018201604052801561298a5781602001602082028036833780820191505090505b50905030816000815181106129a2576129a1613953565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d91906134f1565b81600181518110612a8157612a80613953565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dd5565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b4c959493929190613a7b565b600060405180830381600087803b158015612b6657600080fd5b505af1158015612b7a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612baf929190613ad5565b60405180910390a15050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be190613b36565b60006040518083038185875af1925050503d8060008114612c1e576040519150601f19603f3d011682016040523d82523d6000602084013e612c23565b606091505b505080915050505050565b6000819050919050565b612c4181612c2e565b82525050565b6000602082019050612c5c6000830184612c38565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c9c578082015181840152602081019050612c81565b83811115612cab576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ccd82612c62565b612cd78185612c6d565b9350612ce7818560208601612c7e565b612cf081612cb1565b840191505092915050565b60006020820190508181036000830152612d158184612cc2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612d62612d5d612d5884612d1d565b612d3d565b612d1d565b9050919050565b6000612d7482612d47565b9050919050565b6000612d8682612d69565b9050919050565b612d9681612d7b565b82525050565b6000602082019050612db16000830184612d8d565b92915050565b600080fd5b6000612dc782612d1d565b9050919050565b612dd781612dbc565b8114612de257600080fd5b50565b600081359050612df481612dce565b92915050565b612e0381612c2e565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b60008060408385031215612e3d57612e3c612db7565b5b6000612e4b85828601612de5565b9250506020612e5c85828601612e11565b9150509250929050565b60008115159050919050565b612e7b81612e66565b82525050565b6000602082019050612e966000830184612e72565b92915050565b600080600060608486031215612eb557612eb4612db7565b5b6000612ec386828701612de5565b9350506020612ed486828701612de5565b9250506040612ee586828701612e11565b9150509250925092565b612ef881612dbc565b82525050565b6000602082019050612f136000830184612eef565b92915050565b600060ff82169050919050565b612f2f81612f19565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b600060208284031215612f6657612f65612db7565b5b6000612f7484828501612de5565b91505092915050565b612f8681612e66565b8114612f9157600080fd5b50565b600081359050612fa381612f7d565b92915050565b60008060408385031215612fc057612fbf612db7565b5b6000612fce85828601612de5565b9250506020612fdf85828601612f94565b9150509250929050565b6000612ff482612d1d565b9050919050565b61300481612fe9565b82525050565b600060208201905061301f6000830184612ffb565b92915050565b6000806040838503121561303c5761303b612db7565b5b600061304a85828601612de5565b925050602061305b85828601612de5565b9150509250929050565b60008060006060848603121561307e5761307d612db7565b5b600061308c86828701612f94565b935050602061309d86828701612e11565b92505060406130ae86828701612f94565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561313e5780860481111561311a576131196130b8565b5b60018516156131295780820291505b8081029050613137856130e7565b94506130fe565b94509492505050565b6000826131575760019050613213565b816131655760009050613213565b816001811461317b5760028114613185576131b4565b6001915050613213565b60ff841115613197576131966130b8565b5b8360020a9150848211156131ae576131ad6130b8565b5b50613213565b5060208310610133831016604e8410600b84101617156131e95782820a9050838111156131e4576131e36130b8565b5b613213565b6131f684848460016130f4565b9250905081840481111561320d5761320c6130b8565b5b81810290505b9392505050565b600061322582612c2e565b915061323083612f19565b925061325d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613147565b905092915050565b600061327082612c2e565b915061327b83612c2e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132b4576132b36130b8565b5b828202905092915050565b60006132ca82612c2e565b91506132d583612c2e565b9250828210156132e8576132e76130b8565b5b828203905092915050565b60006132fe82612c2e565b915061330983612c2e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561333e5761333d6130b8565b5b828201905092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061337f600b83612c6d565b915061338a82613349565b602082019050919050565b600060208201905081810360008301526133ae81613372565b9050919050565b7f4e657720616464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613411602283612c6d565b915061341c826133b5565b604082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061347d602083612c6d565b915061348882613447565b602082019050919050565b600060208201905081810360008301526134ac81613470565b9050919050565b60006040820190506134c86000830185612eef565b6134d56020830184612e72565b9392505050565b6000815190506134eb81612dce565b92915050565b60006020828403121561350757613506612db7565b5b6000613515848285016134dc565b91505092915050565b60006040820190506135336000830185612eef565b6135406020830184612eef565b9392505050565b600060608201905061355c6000830186612e72565b6135696020830185612c38565b6135766040830184612e72565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135da602683612c6d565b91506135e58261357e565b604082019050919050565b60006020820190508181036000830152613609816135cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061366c602483612c6d565b915061367782613610565b604082019050919050565b6000602082019050818103600083015261369b8161365f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136fe602283612c6d565b9150613709826136a2565b604082019050919050565b6000602082019050818103600083015261372d816136f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613790602583612c6d565b915061379b82613734565b604082019050919050565b600060208201905081810360008301526137bf81613783565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613822602383612c6d565b915061382d826137c6565b604082019050919050565b6000602082019050818103600083015261385181613815565b9050919050565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b600061388e601f83612c6d565b915061389982613858565b602082019050919050565b600060208201905081810360008301526138bd81613881565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138fe82612c2e565b915061390983612c2e565b925082613919576139186138c4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006139a76139a261399d84613982565b612d3d565b612c2e565b9050919050565b6139b78161398c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f281612dbc565b82525050565b6000613a0483836139e9565b60208301905092915050565b6000602082019050919050565b6000613a28826139bd565b613a3281856139c8565b9350613a3d836139d9565b8060005b83811015613a6e578151613a5588826139f8565b9750613a6083613a10565b925050600181019050613a41565b5085935050505092915050565b600060a082019050613a906000830188612c38565b613a9d60208301876139ae565b8181036040830152613aaf8186613a1d565b9050613abe6060830185612eef565b613acb6080830184612c38565b9695505050505050565b6000604082019050613aea6000830185612c38565b8181036020830152613afc8184613a1d565b90509392505050565b600081905092915050565b50565b6000613b20600083613b05565b9150613b2b82613b10565b600082019050919050565b6000613b4182613b13565b915081905091905056fea2646970667358221220edf30b755b530f6784aeef3f8bdc11b3ea2860350b19275aa950bbeb89796a8864736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063844d591c11610118578063b6a5d7de116100a0578063dd62ed3e1161006f578063dd62ed3e146107b4578063e932ec9a146107f1578063f0b37c041461081a578063f2fde38b14610843578063fe9fbb801461086c5761020f565b8063b6a5d7de146106fa578063baa16dc314610723578063c851cc321461074c578063d158272d146107895761020f565b806395d89b41116100e757806395d89b411461060157806399c8d5561461062c57806399c8df1814610657578063a457c2d714610680578063a9059cbb146106bd5761020f565b8063844d591c146105455780638da5cb5b1461056e5780638e3657aa14610599578063916d6943146105c45761020f565b8063313ce5671161019b5780634cb80fd51161016a5780634cb80fd5146104605780635342acb4146104895780636ddd1713146104c657806370a08231146104f1578063715018a61461052e5761020f565b8063313ce5671461039057806339509351146103bb5780633ecad271146103f8578063452ed4f1146104355761020f565b806318160ddd116101d757806318160ddd146102d257806323b872dd146102fd57806327c8f8351461033a5780632b112e49146103655761020f565b80630445b6671461021457806306fdde031461023f5780630758d9241461026a578063095ea7b3146102955761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296108a9565b6040516102369190612c47565b60405180910390f35b34801561024b57600080fd5b506102546108af565b6040516102619190612cfb565b60405180910390f35b34801561027657600080fd5b5061027f6108ec565b60405161028c9190612d9c565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612e26565b610912565b6040516102c99190612e81565b60405180910390f35b3480156102de57600080fd5b506102e7610930565b6040516102f49190612c47565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612e9c565b610954565b6040516103319190612e81565b60405180910390f35b34801561034657600080fd5b5061034f610a0d565b60405161035c9190612efe565b60405180910390f35b34801561037157600080fd5b5061037a610a13565b6040516103879190612c47565b60405180910390f35b34801561039c57600080fd5b506103a5610a4c565b6040516103b29190612f35565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612e26565b610a55565b6040516103ef9190612e81565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612f50565b610b01565b60405161042c9190612e81565b60405180910390f35b34801561044157600080fd5b5061044a610b21565b6040516104579190612efe565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190612f50565b610b47565b005b34801561049557600080fd5b506104b060048036038101906104ab9190612f50565b610cd6565b6040516104bd9190612e81565b60405180910390f35b3480156104d257600080fd5b506104db610cf6565b6040516104e89190612e81565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612f50565b610d09565b6040516105259190612c47565b60405180910390f35b34801561053a57600080fd5b50610543610d52565b005b34801561055157600080fd5b5061056c60048036038101906105679190612fa9565b610ea5565b005b34801561057a57600080fd5b50610583610fce565b6040516105909190612efe565b60405180910390f35b3480156105a557600080fd5b506105ae610ff7565b6040516105bb9190612e81565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190612f50565b61100a565b6040516105f89190612e81565b60405180910390f35b34801561060d57600080fd5b5061061661102a565b6040516106239190612cfb565b60405180910390f35b34801561063857600080fd5b50610641611067565b60405161064e9190612c47565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190612fa9565b61106d565b005b34801561068c57600080fd5b506106a760048036038101906106a29190612e26565b61115d565b6040516106b49190612e81565b60405180910390f35b3480156106c957600080fd5b506106e460048036038101906106df9190612e26565b611209565b6040516106f19190612e81565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c9190612f50565b611228565b005b34801561072f57600080fd5b5061074a60048036038101906107459190612fa9565b611327565b005b34801561075857600080fd5b50610773600480360381019061076e9190612f50565b611450565b6040516107809190612efe565b60405180910390f35b34801561079557600080fd5b5061079e6118e9565b6040516107ab919061300a565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190613025565b61190f565b6040516107e89190612c47565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613065565b611996565b005b34801561082657600080fd5b50610841600480360381019061083c9190612f50565b611ab6565b005b34801561084f57600080fd5b5061086a60048036038101906108659190612f50565b611bb6565b005b34801561087857600080fd5b50610893600480360381019061088e9190612f50565b611d77565b6040516108a09190612e81565b60405180910390f35b60095481565b60606040518060400160405280600981526020017f4d657620546f6b656e0000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061092661091f611dcd565b8484611dd5565b6001905092915050565b60006012600a610940919061321a565b633b9aca0061094f9190613265565b905090565b6000610961848484611f9e565b50610a028461096e611dcd565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109fd91906132bf565b611dd5565b600190509392505050565b61dead81565b6000610a2061dead610d09565b6012600a610a2e919061321a565b633b9aca00610a3d9190613265565b610a4791906132bf565b905090565b60006012905090565b6000610af7610a62611dcd565b848460046000610a70611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af291906132f3565b611dd5565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b5033611d77565b80610bad5750610b5e611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390613395565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290613427565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b81604051610ccb9190612efe565b60405180910390a150565b60056020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5a611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90613493565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ead611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613493565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f160ff69a72bc70f3e792a86c87d27070e421562197f032d96bcab11c5010222e8282604051610fc29291906134b3565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60169054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f244d455600000000000000000000000000000000000000000000000000000000815250905090565b60085481565b611075611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613493565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111ff61116a611dcd565b848460046000611178611dcd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111fa91906132bf565b611dd5565b6001905092915050565b600061121d611216611dcd565b8484611f9e565b506001905092915050565b61123133611d77565b8061128e575061123f611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613395565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61132f611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390613493565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0861ffea819c7470cbefb1765bce78388684cd327b561fd217484236b4cbb2d382826040516114449291906134b3565b60405180910390a15050565b600061145b33611d77565b806114b85750611469611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90613395565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156b91906134f1565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f691906134f1565b6040518363ffffffff1660e01b815260040161161392919061351e565b602060405180830381865afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165491906134f1565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e7578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f991906134f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611760573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178491906134f1565b6040518363ffffffff1660e01b81526004016117a192919061351e565b6020604051808303816000875af11580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e491906134f1565b91505b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61199f33611d77565b806119fc57506119ad611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613395565b60405180910390fd5b82600b60156101000a81548160ff0219169083151502179055508160098190555080600b60166101000a81548160ff0219169083151502179055507f11208aed08835f646702af16c636fb4351554fa2f623991905cadb0293a88afc838383604051611aa993929190613547565b60405180910390a1505050565b611abf33611d77565b80611b1c5750611acd611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613395565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bbe611dcd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613493565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb1906135f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613682565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613714565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f919190612c47565b60405180910390a3505050565b6000600b60149054906101000a900460ff1615611fc757611fc0848484612555565b905061254e565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d906137a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90613838565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121495750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f906138a4565b60405180910390fd5b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561222e5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b806122825750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122d65750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050801580156123305750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123485750600b60159054906101000a900460ff165b80156123615750600b60149054906101000a900460ff16155b156123ab57600061237130610d09565b90506000600954821015905080156123a857600b60169054906101000a900460ff161561239e5760095491505b6123a7826126e3565b5b50505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f691906132bf565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000816124505761244b868686612761565b612452565b835b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249f91906132f3565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161253f9190612c47565b60405180910390a36001925050505b9392505050565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a291906132bf565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263091906132f3565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d09190612c47565b60405180910390a3600190509392505050565b6001600b60146101000a81548160ff0219169083151502179055506127078161293f565b6000479050600081111561274257612741600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612bbb565b5b506000600b60146101000a81548160ff02191690831515021790555050565b60008060009050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128095750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561282c576103e86008548461281f9190613265565b61282991906138f3565b90505b60008111156129295780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288091906132f3565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129209190612c47565b60405180910390a35b808361293591906132bf565b9150509392505050565b6000600267ffffffffffffffff81111561295c5761295b613924565b5b60405190808252806020026020018201604052801561298a5781602001602082028036833780820191505090505b50905030816000815181106129a2576129a1613953565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6d91906134f1565b81600181518110612a8157612a80613953565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dd5565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b4c959493929190613a7b565b600060405180830381600087803b158015612b6657600080fd5b505af1158015612b7a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612baf929190613ad5565b60405180910390a15050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be190613b36565b60006040518083038185875af1925050503d8060008114612c1e576040519150601f19603f3d011682016040523d82523d6000602084013e612c23565b606091505b505080915050505050565b6000819050919050565b612c4181612c2e565b82525050565b6000602082019050612c5c6000830184612c38565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c9c578082015181840152602081019050612c81565b83811115612cab576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ccd82612c62565b612cd78185612c6d565b9350612ce7818560208601612c7e565b612cf081612cb1565b840191505092915050565b60006020820190508181036000830152612d158184612cc2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612d62612d5d612d5884612d1d565b612d3d565b612d1d565b9050919050565b6000612d7482612d47565b9050919050565b6000612d8682612d69565b9050919050565b612d9681612d7b565b82525050565b6000602082019050612db16000830184612d8d565b92915050565b600080fd5b6000612dc782612d1d565b9050919050565b612dd781612dbc565b8114612de257600080fd5b50565b600081359050612df481612dce565b92915050565b612e0381612c2e565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b60008060408385031215612e3d57612e3c612db7565b5b6000612e4b85828601612de5565b9250506020612e5c85828601612e11565b9150509250929050565b60008115159050919050565b612e7b81612e66565b82525050565b6000602082019050612e966000830184612e72565b92915050565b600080600060608486031215612eb557612eb4612db7565b5b6000612ec386828701612de5565b9350506020612ed486828701612de5565b9250506040612ee586828701612e11565b9150509250925092565b612ef881612dbc565b82525050565b6000602082019050612f136000830184612eef565b92915050565b600060ff82169050919050565b612f2f81612f19565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b600060208284031215612f6657612f65612db7565b5b6000612f7484828501612de5565b91505092915050565b612f8681612e66565b8114612f9157600080fd5b50565b600081359050612fa381612f7d565b92915050565b60008060408385031215612fc057612fbf612db7565b5b6000612fce85828601612de5565b9250506020612fdf85828601612f94565b9150509250929050565b6000612ff482612d1d565b9050919050565b61300481612fe9565b82525050565b600060208201905061301f6000830184612ffb565b92915050565b6000806040838503121561303c5761303b612db7565b5b600061304a85828601612de5565b925050602061305b85828601612de5565b9150509250929050565b60008060006060848603121561307e5761307d612db7565b5b600061308c86828701612f94565b935050602061309d86828701612e11565b92505060406130ae86828701612f94565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561313e5780860481111561311a576131196130b8565b5b60018516156131295780820291505b8081029050613137856130e7565b94506130fe565b94509492505050565b6000826131575760019050613213565b816131655760009050613213565b816001811461317b5760028114613185576131b4565b6001915050613213565b60ff841115613197576131966130b8565b5b8360020a9150848211156131ae576131ad6130b8565b5b50613213565b5060208310610133831016604e8410600b84101617156131e95782820a9050838111156131e4576131e36130b8565b5b613213565b6131f684848460016130f4565b9250905081840481111561320d5761320c6130b8565b5b81810290505b9392505050565b600061322582612c2e565b915061323083612f19565b925061325d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613147565b905092915050565b600061327082612c2e565b915061327b83612c2e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132b4576132b36130b8565b5b828202905092915050565b60006132ca82612c2e565b91506132d583612c2e565b9250828210156132e8576132e76130b8565b5b828203905092915050565b60006132fe82612c2e565b915061330983612c2e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561333e5761333d6130b8565b5b828201905092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061337f600b83612c6d565b915061338a82613349565b602082019050919050565b600060208201905081810360008301526133ae81613372565b9050919050565b7f4e657720616464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613411602283612c6d565b915061341c826133b5565b604082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061347d602083612c6d565b915061348882613447565b602082019050919050565b600060208201905081810360008301526134ac81613470565b9050919050565b60006040820190506134c86000830185612eef565b6134d56020830184612e72565b9392505050565b6000815190506134eb81612dce565b92915050565b60006020828403121561350757613506612db7565b5b6000613515848285016134dc565b91505092915050565b60006040820190506135336000830185612eef565b6135406020830184612eef565b9392505050565b600060608201905061355c6000830186612e72565b6135696020830185612c38565b6135766040830184612e72565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135da602683612c6d565b91506135e58261357e565b604082019050919050565b60006020820190508181036000830152613609816135cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061366c602483612c6d565b915061367782613610565b604082019050919050565b6000602082019050818103600083015261369b8161365f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136fe602283612c6d565b9150613709826136a2565b604082019050919050565b6000602082019050818103600083015261372d816136f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613790602583612c6d565b915061379b82613734565b604082019050919050565b600060208201905081810360008301526137bf81613783565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613822602383612c6d565b915061382d826137c6565b604082019050919050565b6000602082019050818103600083015261385181613815565b9050919050565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b600061388e601f83612c6d565b915061389982613858565b602082019050919050565b600060208201905081810360008301526138bd81613881565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138fe82612c2e565b915061390983612c2e565b925082613919576139186138c4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006139a76139a261399d84613982565b612d3d565b612c2e565b9050919050565b6139b78161398c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f281612dbc565b82525050565b6000613a0483836139e9565b60208301905092915050565b6000602082019050919050565b6000613a28826139bd565b613a3281856139c8565b9350613a3d836139d9565b8060005b83811015613a6e578151613a5588826139f8565b9750613a6083613a10565b925050600181019050613a41565b5085935050505092915050565b600060a082019050613a906000830188612c38565b613a9d60208301876139ae565b8181036040830152613aaf8186613a1d565b9050613abe6060830185612eef565b613acb6080830184612c38565b9695505050505050565b6000604082019050613aea6000830185612c38565b8181036020830152613afc8184613a1d565b90509392505050565b600081905092915050565b50565b6000613b20600083613b05565b9150613b2b82613b10565b600082019050919050565b6000613b4182613b13565b915081905091905056fea2646970667358221220edf30b755b530f6784aeef3f8bdc11b3ea2860350b19275aa950bbeb89796a8864736f6c634300080d0033

Deployed Bytecode Sourcemap

3875:9691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4698:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6041:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4760:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7295:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6318:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4077:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6430:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6227:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6841:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4488:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4794:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9830:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4431:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4856:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6563:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1584:148;;;;;;;;;;;;;:::i;:::-;;9144:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;884:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4540:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6132:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4594:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9689:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7063:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7812:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8944:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8264:672;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4165:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6689:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9348:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1356:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1740:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1469:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4698:52;;;;:::o;6041:83::-;6078:13;6111:5;;;;;;;;;;;;;;;;;6104:12;;6041:83;:::o;4760:27::-;;;;;;;;;;;;;:::o;7295:161::-;7370:4;7387:39;7396:12;:10;:12::i;:::-;7410:7;7419:6;7387:8;:39::i;:::-;7444:4;7437:11;;7295:161;;;;:::o;6318:100::-;6371:7;4066:2;4678;:13;;;;:::i;:::-;4666:9;:25;;;;:::i;:::-;6391:19;;6318:100;:::o;7987:265::-;8085:4;8102:36;8112:6;8120:9;8131:6;8102:9;:36::i;:::-;;8149:73;8158:6;8166:12;:10;:12::i;:::-;8215:6;8180:10;:18;8191:6;8180:18;;;;;;;;;;;;;;;:32;8199:12;:10;:12::i;:::-;8180:32;;;;;;;;;;;;;;;;:41;;;;:::i;:::-;8149:8;:73::i;:::-;8240:4;8233:11;;7987:265;;;;;:::o;4077:81::-;4116:42;4077:81;:::o;6430:125::-;6483:7;6525:22;4116:42;6525:9;:22::i;:::-;4066:2;4678;:13;;;;:::i;:::-;4666:9;:25;;;;:::i;:::-;6510:37;;;;:::i;:::-;6503:44;;6430:125;:::o;6227:83::-;6268:5;4066:2;6286:16;;6227:83;:::o;6841:214::-;6929:4;6946:79;6955:12;:10;:12::i;:::-;6969:7;7014:10;6978;:24;6989:12;:10;:12::i;:::-;6978:24;;;;;;;;;;;;;;;:33;7003:7;6978:33;;;;;;;;;;;;;;;;:46;;;;:::i;:::-;6946:8;:79::i;:::-;7043:4;7036:11;;6841:214;;;;:::o;4488:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4794:21::-;;;;;;;;;;;;;:::o;9830:329::-;1161:24;1174:10;1161:12;:24::i;:::-;:50;;;;1199:12;:10;:12::i;:::-;1189:22;;:6;;;;;;;;;;:22;;;1161:50;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9979:1:::1;9944:37;;:23;:37;;::::0;9936:84:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10064:23;10031:22;;:57;;;;;;;;;;;;;;;;;;10104:47;10127:23;10104:47;;;;;;:::i;:::-;;;;;;;;9830:329:::0;:::o;4431:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;4856:30::-;;;;;;;;;;;;;:::o;6563:118::-;6629:7;6656:8;:17;6665:7;6656:17;;;;;;;;;;;;;;;;6649:24;;6563:118;;;:::o;1584:148::-;1028:12;:10;:12::i;:::-;1018:22;;:6;;;;;;;;;;:22;;;1010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1691:1:::1;1654:40;;1675:6;::::0;::::1;;;;;;;;1654:40;;;;;;;;;;;;1722:1;1705:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1584:148::o:0;9144:196::-;1028:12;:10;:12::i;:::-;1018:22;;:6;;;;;;;;;;:22;;;1010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9262:13:::1;9238:12;:21;9251:7;9238:21;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9291:41;9309:7;9318:13;9291:41;;;;;;;:::i;:::-;;;;;;;;9144:196:::0;;:::o;884:79::-;922:7;949:6;;;;;;;;;;;942:13;;884:79;:::o;4893:35::-;;;;;;;;;;;;;:::o;4540:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6132:87::-;6171:13;6204:7;;;;;;;;;;;;;;;;;6197:14;;6132:87;:::o;4594:23::-;;;;:::o;9689:133::-;1028:12;:10;:12::i;:::-;1018:22;;:6;;;;;;;;;;:22;;;1010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9805:9:::1;9776:17;:26;9794:7;9776:26;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9689:133:::0;;:::o;7063:224::-;7156:4;7173:84;7182:12;:10;:12::i;:::-;7196:7;7241:15;7205:10;:24;7216:12;:10;:12::i;:::-;7205:24;;;;;;;;;;;;;;;:33;7230:7;7205:33;;;;;;;;;;;;;;;;:51;;;;:::i;:::-;7173:8;:84::i;:::-;7275:4;7268:11;;7063:224;;;;:::o;7812:167::-;7890:4;7907:42;7917:12;:10;:12::i;:::-;7931:9;7942:6;7907:9;:42::i;:::-;;7967:4;7960:11;;7812:167;;;;:::o;1246:102::-;1161:24;1174:10;1161:12;:24::i;:::-;:50;;;;1199:12;:10;:12::i;:::-;1189:22;;:6;;;;;;;;;;:22;;;1161:50;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1336:4:::1;1314:14:::0;:19:::1;1329:3;1314:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1246:102:::0;:::o;8944:192::-;1028:12;:10;:12::i;:::-;1018:22;;:6;;;;;;;;;;:22;;;1010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9058:13:::1;9034:12;:21;9047:7;9034:21;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9087:41;9105:7;9114:13;9087:41;;;;;;;:::i;:::-;;;;;;;;8944:192:::0;;:::o;8264:672::-;8345:22;1161:24;1174:10;1161:12;:24::i;:::-;:50;;;;1199:12;:10;:12::i;:::-;1189:22;;:6;;;;;;;;;;:22;;;1161:50;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:21:::1;8415:16;8380:52;;8473:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8461:41;;;8511:4;8518:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8461:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8444:92;;8578:1;8552:28;;:14;:28;;::::0;8549:214:::1;;8651:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8639:78;;;8726:4;8733:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8639:112;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8622:129;;8549:214;8784:14;8775:6;;:23;;;;;;;;;;;;;;;;;;8844:10;8832:9;;:22;;;;;;;;;;;;;;;;;;8924:4;8892:12;:29;8913:6;;;;;;;;;;;8892:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8369:567;8264:672:::0;;;:::o;4165:99::-;;;;;;;;;;;;;:::o;6689:144::-;6771:7;6798:10;:18;6809:6;6798:18;;;;;;;;;;;;;;;:27;6817:7;6798:27;;;;;;;;;;;;;;;;6791:34;;6689:144;;;;:::o;9348:333::-;1161:24;1174:10;1161:12;:24::i;:::-;:50;;;;1199:12;:10;:12::i;:::-;1189:22;;:6;;;;;;;;;;:22;;;1161:50;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9492:12:::1;9478:11;;:26;;;;;;;;;;;;;;;;;;9531:14;9515:13;:30;;;;9574:16;9556:15;;:34;;;;;;;;;;;;;;;;;;9606:67;9626:12;9640:14;9656:16;9606:67;;;;;;;;:::i;:::-;;;;;;;;9348:333:::0;;;:::o;1356:105::-;1161:24;1174:10;1161:12;:24::i;:::-;:50;;;;1199:12;:10;:12::i;:::-;1189:22;;:6;;;;;;;;;;:22;;;1161:50;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1448:5:::1;1426:14;:19;1441:3;1426:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1356:105:::0;:::o;1740:244::-;1028:12;:10;:12::i;:::-;1018:22;;:6;;;;;;;;;;:22;;;1010:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1849:1:::1;1829:22;;:8;:22;;::::0;1821:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1939:8;1910:38;;1931:6;::::0;::::1;;;;;;;;1910:38;;;;;;;;;;;;1968:8;1959:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1740:244:::0;:::o;1469:107::-;1525:4;1549:14;:19;1564:3;1549:19;;;;;;;;;;;;;;;;;;;;;;;;;1542:26;;1469:107;;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;7464:340::-;7576:1;7558:20;;:6;:20;;;7550:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7657:1;7638:21;;:7;:21;;;7630:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7741:6;7711:10;:18;7722:6;7711:18;;;;;;;;;;;;;;;:27;7730:7;7711:27;;;;;;;;;;;;;;;:36;;;;7780:7;7763:33;;7772:6;7763:33;;;7789:6;7763:33;;;;;;:::i;:::-;;;;;;;;7464:340;;;:::o;10353:1504::-;10440:4;10460:8;;;;;;;;;;;10457:1393;;;10493:41;10508:6;10516:9;10527:6;10493:14;:41::i;:::-;10486:48;;;;10457:1393;10594:1;10576:20;;:6;:20;;;10568:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10682:1;10661:23;;:9;:23;;;10653:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10748:12;:20;10761:6;10748:20;;;;;;;;;;;;;;;;;;;;;;;;;10747:21;:49;;;;;10773:12;:23;10786:9;10773:23;;;;;;;;;;;;;;;;;;;;;;;;;10772:24;10747:49;10739:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;10849:14;10869:12;:20;10882:6;10869:20;;;;;;;;;;;;;;;;;;;;;;;;;10868:21;:49;;;;;10894:12;:23;10907:9;10894:23;;;;;;;;;;;;;;;;;;;;;;;;;10893:24;10868:49;10867:114;;;;10956:17;:25;10974:6;10956:25;;;;;;;;;;;;;;;;;;;;;;;;;10867:114;:146;;;;10985:17;:28;11003:9;10985:28;;;;;;;;;;;;;;;;;;;;;;;;;10867:146;10849:165;;11036:9;11035:10;:35;;;;;11050:12;:20;11063:6;11050:20;;;;;;;;;;;;;;;;;;;;;;;;;11049:21;11035:35;:50;;;;;11074:11;;;;;;;;;;;11035:50;:63;;;;;11090:8;;;;;;;;;;;11089:9;11035:63;11031:493;;;11133:28;11164:24;11182:4;11164:9;:24::i;:::-;11133:55;;11207:28;11262:13;;11238:20;:37;;11207:68;;11297:23;11294:215;;;11348:15;;;;;;;;;;;11345:81;;;11413:13;;11390:36;;11345:81;11449:36;11464:20;11449:14;:36::i;:::-;11294:215;11114:410;;11031:493;11578:6;11559:8;:16;11568:6;11559:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;11540:8;:16;11549:6;11540:16;;;;;;;;;;;;;;;:44;;;;11601:19;11623:9;:55;;11644:34;11652:6;11660:9;11671:6;11644:7;:34::i;:::-;11623:55;;;11635:6;11623:55;11601:77;;11739:11;11717:8;:19;11726:9;11717:19;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;11695:8;:19;11704:9;11695:19;;;;;;;;;;;;;;;:55;;;;11789:9;11772:40;;11781:6;11772:40;;;11800:11;11772:40;;;;;;:::i;:::-;;;;;;;;11834:4;11827:11;;;;10353:1504;;;;;;:::o;11865:296::-;11958:4;12013:6;11994:8;:16;12003:6;11994:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;11975:8;:16;11984:6;11975:16;;;;;;;;;;;;;;;:44;;;;12074:6;12052:8;:19;12061:9;12052:19;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;12030:8;:19;12039:9;12030:19;;;;;;;;;;;;;;;:50;;;;12113:9;12096:35;;12105:6;12096:35;;;12124:6;12096:35;;;;;;:::i;:::-;;;;;;;;12149:4;12142:11;;11865:296;;;;;:::o;12169:::-;5345:4;5334:8;;:15;;;;;;;;;;;;;;;;;;12247:31:::1;12264:13;12247:16;:31::i;:::-;12289:22;12314:21;12289:46;;12368:1;12351:14;:18;12348:110;;;12386:60;12407:22;;;;;;;;;;;12431:14;12386:20;:60::i;:::-;12348:110;12236:229;5383:5:::0;5372:8;;:16;;;;;;;;;;;;;;;;;;12169:296;:::o;13069:488::-;13155:7;13175:17;13195:1;13175:21;;13215:12;:20;13228:6;13215:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;13239:12;:23;13252:9;13239:23;;;;;;;;;;;;;;;;;;;;;;;;;13215:47;13212:112;;;13308:4;13301:3;;13292:6;:12;;;;:::i;:::-;13291:21;;;;:::i;:::-;13279:33;;13212:112;13359:1;13347:9;:13;13344:168;;;13429:9;13403:8;:23;13420:4;13403:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;13377:8;:23;13394:4;13377:23;;;;;;;;;;;;;;;:61;;;;13483:4;13458:42;;13467:6;13458:42;;;13490:9;13458:42;;;;;;:::i;:::-;;;;;;;;13344:168;13540:9;13531:6;:18;;;;:::i;:::-;13524:25;;;13069:488;;;;;:::o;12473:588::-;12539:21;12577:1;12563:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12539:40;;12608:4;12590;12595:1;12590:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12634:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12624:4;12629:1;12624:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;12663:56;12680:4;12695:9;;;;;;;;;;;12707:11;12663:8;:56::i;:::-;12758:9;;;;;;;;;;;:60;;;12833:11;12859:1;12903:4;12930;12966:15;12758:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13018:35;13035:11;13048:4;13018:35;;;;;;;:::i;:::-;;;;;;;;12528:533;12473:588;:::o;10167:178::-;10259:12;10303:9;10295:23;;10326:6;10295:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10282:55;;;;;10248:97;10167:178;;:::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:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:126::-;1869:7;1909:42;1902:5;1898:54;1887:65;;1832:126;;;:::o;1964:60::-;1992:3;2013:5;2006:12;;1964:60;;;:::o;2030:142::-;2080:9;2113:53;2131:34;2140:24;2158:5;2140:24;:::i;:::-;2131:34;:::i;:::-;2113:53;:::i;:::-;2100:66;;2030:142;;;:::o;2178:126::-;2228:9;2261:37;2292:5;2261:37;:::i;:::-;2248:50;;2178:126;;;:::o;2310:144::-;2378:9;2411:37;2442:5;2411:37;:::i;:::-;2398:50;;2310:144;;;:::o;2460:167::-;2565:55;2614:5;2565:55;:::i;:::-;2560:3;2553:68;2460:167;;:::o;2633:258::-;2744:4;2782:2;2771:9;2767:18;2759:26;;2795:89;2881:1;2870:9;2866:17;2857:6;2795:89;:::i;:::-;2633:258;;;;:::o;2978:117::-;3087:1;3084;3077:12;3224:96;3261:7;3290:24;3308:5;3290:24;:::i;:::-;3279:35;;3224:96;;;:::o;3326:122::-;3399:24;3417:5;3399:24;:::i;:::-;3392:5;3389:35;3379:63;;3438:1;3435;3428:12;3379:63;3326:122;:::o;3454:139::-;3500:5;3538:6;3525:20;3516:29;;3554:33;3581:5;3554:33;:::i;:::-;3454:139;;;;:::o;3599:122::-;3672:24;3690:5;3672:24;:::i;:::-;3665:5;3662:35;3652:63;;3711:1;3708;3701:12;3652:63;3599:122;:::o;3727:139::-;3773:5;3811:6;3798:20;3789:29;;3827:33;3854:5;3827:33;:::i;:::-;3727:139;;;;:::o;3872:474::-;3940:6;3948;3997:2;3985:9;3976:7;3972:23;3968:32;3965:119;;;4003:79;;:::i;:::-;3965:119;4123:1;4148:53;4193:7;4184:6;4173:9;4169:22;4148:53;:::i;:::-;4138:63;;4094:117;4250:2;4276:53;4321:7;4312:6;4301:9;4297:22;4276:53;:::i;:::-;4266:63;;4221:118;3872:474;;;;;:::o;4352:90::-;4386:7;4429:5;4422:13;4415:21;4404:32;;4352:90;;;:::o;4448:109::-;4529:21;4544:5;4529:21;:::i;:::-;4524:3;4517:34;4448:109;;:::o;4563:210::-;4650:4;4688:2;4677:9;4673:18;4665:26;;4701:65;4763:1;4752:9;4748:17;4739:6;4701:65;:::i;:::-;4563:210;;;;:::o;4779:619::-;4856:6;4864;4872;4921:2;4909:9;4900:7;4896:23;4892:32;4889:119;;;4927:79;;:::i;:::-;4889:119;5047:1;5072:53;5117:7;5108:6;5097:9;5093:22;5072:53;:::i;:::-;5062:63;;5018:117;5174:2;5200:53;5245:7;5236:6;5225:9;5221:22;5200:53;:::i;:::-;5190:63;;5145:118;5302:2;5328:53;5373:7;5364:6;5353:9;5349:22;5328:53;:::i;:::-;5318:63;;5273:118;4779:619;;;;;:::o;5404:118::-;5491:24;5509:5;5491:24;:::i;:::-;5486:3;5479:37;5404:118;;:::o;5528:222::-;5621:4;5659:2;5648:9;5644:18;5636:26;;5672:71;5740:1;5729:9;5725:17;5716:6;5672:71;:::i;:::-;5528:222;;;;:::o;5756:86::-;5791:7;5831:4;5824:5;5820:16;5809:27;;5756:86;;;:::o;5848:112::-;5931:22;5947:5;5931:22;:::i;:::-;5926:3;5919:35;5848:112;;:::o;5966:214::-;6055:4;6093:2;6082:9;6078:18;6070:26;;6106:67;6170:1;6159:9;6155:17;6146:6;6106:67;:::i;:::-;5966:214;;;;:::o;6186:329::-;6245:6;6294:2;6282:9;6273:7;6269:23;6265:32;6262:119;;;6300:79;;:::i;:::-;6262:119;6420:1;6445:53;6490:7;6481:6;6470:9;6466:22;6445:53;:::i;:::-;6435:63;;6391:117;6186:329;;;;:::o;6521:116::-;6591:21;6606:5;6591:21;:::i;:::-;6584:5;6581:32;6571:60;;6627:1;6624;6617:12;6571:60;6521:116;:::o;6643:133::-;6686:5;6724:6;6711:20;6702:29;;6740:30;6764:5;6740:30;:::i;:::-;6643:133;;;;:::o;6782:468::-;6847:6;6855;6904:2;6892:9;6883:7;6879:23;6875:32;6872:119;;;6910:79;;:::i;:::-;6872:119;7030:1;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7001:117;7157:2;7183:50;7225:7;7216:6;7205:9;7201:22;7183:50;:::i;:::-;7173:60;;7128:115;6782:468;;;;;:::o;7256:104::-;7301:7;7330:24;7348:5;7330:24;:::i;:::-;7319:35;;7256:104;;;:::o;7366:142::-;7469:32;7495:5;7469:32;:::i;:::-;7464:3;7457:45;7366:142;;:::o;7514:254::-;7623:4;7661:2;7650:9;7646:18;7638:26;;7674:87;7758:1;7747:9;7743:17;7734:6;7674:87;:::i;:::-;7514:254;;;;:::o;7774:474::-;7842:6;7850;7899:2;7887:9;7878:7;7874:23;7870:32;7867:119;;;7905:79;;:::i;:::-;7867:119;8025:1;8050:53;8095:7;8086:6;8075:9;8071:22;8050:53;:::i;:::-;8040:63;;7996:117;8152:2;8178:53;8223:7;8214:6;8203:9;8199:22;8178:53;:::i;:::-;8168:63;;8123:118;7774:474;;;;;:::o;8254:607::-;8325:6;8333;8341;8390:2;8378:9;8369:7;8365:23;8361:32;8358:119;;;8396:79;;:::i;:::-;8358:119;8516:1;8541:50;8583:7;8574:6;8563:9;8559:22;8541:50;:::i;:::-;8531:60;;8487:114;8640:2;8666:53;8711:7;8702:6;8691:9;8687:22;8666:53;:::i;:::-;8656:63;;8611:118;8768:2;8794:50;8836:7;8827:6;8816:9;8812:22;8794:50;:::i;:::-;8784:60;;8739:115;8254:607;;;;;:::o;8867:180::-;8915:77;8912:1;8905:88;9012:4;9009:1;9002:15;9036:4;9033:1;9026:15;9053:102;9095:8;9142:5;9139:1;9135:13;9114:34;;9053:102;;;:::o;9161:848::-;9222:5;9229:4;9253:6;9244:15;;9277:5;9268:14;;9291:712;9312:1;9302:8;9299:15;9291:712;;;9407:4;9402:3;9398:14;9392:4;9389:24;9386:50;;;9416:18;;:::i;:::-;9386:50;9466:1;9456:8;9452:16;9449:451;;;9881:4;9874:5;9870:16;9861:25;;9449:451;9931:4;9925;9921:15;9913:23;;9961:32;9984:8;9961:32;:::i;:::-;9949:44;;9291:712;;;9161:848;;;;;;;:::o;10015:1073::-;10069:5;10260:8;10250:40;;10281:1;10272:10;;10283:5;;10250:40;10309:4;10299:36;;10326:1;10317:10;;10328:5;;10299:36;10395:4;10443:1;10438:27;;;;10479:1;10474:191;;;;10388:277;;10438:27;10456:1;10447:10;;10458:5;;;10474:191;10519:3;10509:8;10506:17;10503:43;;;10526:18;;:::i;:::-;10503:43;10575:8;10572:1;10568:16;10559:25;;10610:3;10603:5;10600:14;10597:40;;;10617:18;;:::i;:::-;10597:40;10650:5;;;10388:277;;10774:2;10764:8;10761:16;10755:3;10749:4;10746:13;10742:36;10724:2;10714:8;10711:16;10706:2;10700:4;10697:12;10693:35;10677:111;10674:246;;;10830:8;10824:4;10820:19;10811:28;;10865:3;10858:5;10855:14;10852:40;;;10872:18;;:::i;:::-;10852:40;10905:5;;10674:246;10945:42;10983:3;10973:8;10967:4;10964:1;10945:42;:::i;:::-;10930:57;;;;11019:4;11014:3;11010:14;11003:5;11000:25;10997:51;;;11028:18;;:::i;:::-;10997:51;11077:4;11070:5;11066:16;11057:25;;10015:1073;;;;;;:::o;11094:281::-;11152:5;11176:23;11194:4;11176:23;:::i;:::-;11168:31;;11220:25;11236:8;11220:25;:::i;:::-;11208:37;;11264:104;11301:66;11291:8;11285:4;11264:104;:::i;:::-;11255:113;;11094:281;;;;:::o;11381:348::-;11421:7;11444:20;11462:1;11444:20;:::i;:::-;11439:25;;11478:20;11496:1;11478:20;:::i;:::-;11473:25;;11666:1;11598:66;11594:74;11591:1;11588:81;11583:1;11576:9;11569:17;11565:105;11562:131;;;11673:18;;:::i;:::-;11562:131;11721:1;11718;11714:9;11703:20;;11381:348;;;;:::o;11735:191::-;11775:4;11795:20;11813:1;11795:20;:::i;:::-;11790:25;;11829:20;11847:1;11829:20;:::i;:::-;11824:25;;11868:1;11865;11862:8;11859:34;;;11873:18;;:::i;:::-;11859:34;11918:1;11915;11911:9;11903:17;;11735:191;;;;:::o;11932:305::-;11972:3;11991:20;12009:1;11991:20;:::i;:::-;11986:25;;12025:20;12043:1;12025:20;:::i;:::-;12020:25;;12179:1;12111:66;12107:74;12104:1;12101:81;12098:107;;;12185:18;;:::i;:::-;12098:107;12229:1;12226;12222:9;12215:16;;11932:305;;;;:::o;12243:161::-;12383:13;12379:1;12371:6;12367:14;12360:37;12243:161;:::o;12410:366::-;12552:3;12573:67;12637:2;12632:3;12573:67;:::i;:::-;12566:74;;12649:93;12738:3;12649:93;:::i;:::-;12767:2;12762:3;12758:12;12751:19;;12410:366;;;:::o;12782:419::-;12948:4;12986:2;12975:9;12971:18;12963:26;;13035:9;13029:4;13025:20;13021:1;13010:9;13006:17;12999:47;13063:131;13189:4;13063:131;:::i;:::-;13055:139;;12782:419;;;:::o;13207:221::-;13347:34;13343:1;13335:6;13331:14;13324:58;13416:4;13411:2;13403:6;13399:15;13392:29;13207:221;:::o;13434:366::-;13576:3;13597:67;13661:2;13656:3;13597:67;:::i;:::-;13590:74;;13673:93;13762:3;13673:93;:::i;:::-;13791:2;13786:3;13782:12;13775:19;;13434:366;;;:::o;13806:419::-;13972:4;14010:2;13999:9;13995:18;13987:26;;14059:9;14053:4;14049:20;14045:1;14034:9;14030:17;14023:47;14087:131;14213:4;14087:131;:::i;:::-;14079:139;;13806:419;;;:::o;14231:182::-;14371:34;14367:1;14359:6;14355:14;14348:58;14231:182;:::o;14419:366::-;14561:3;14582:67;14646:2;14641:3;14582:67;:::i;:::-;14575:74;;14658:93;14747:3;14658:93;:::i;:::-;14776:2;14771:3;14767:12;14760:19;;14419:366;;;:::o;14791:419::-;14957:4;14995:2;14984:9;14980:18;14972:26;;15044:9;15038:4;15034:20;15030:1;15019:9;15015:17;15008:47;15072:131;15198:4;15072:131;:::i;:::-;15064:139;;14791:419;;;:::o;15216:320::-;15331:4;15369:2;15358:9;15354:18;15346:26;;15382:71;15450:1;15439:9;15435:17;15426:6;15382:71;:::i;:::-;15463:66;15525:2;15514:9;15510:18;15501:6;15463:66;:::i;:::-;15216:320;;;;;:::o;15542:143::-;15599:5;15630:6;15624:13;15615:22;;15646:33;15673:5;15646:33;:::i;:::-;15542:143;;;;:::o;15691:351::-;15761:6;15810:2;15798:9;15789:7;15785:23;15781:32;15778:119;;;15816:79;;:::i;:::-;15778:119;15936:1;15961:64;16017:7;16008:6;15997:9;15993:22;15961:64;:::i;:::-;15951:74;;15907:128;15691:351;;;;:::o;16048:332::-;16169:4;16207:2;16196:9;16192:18;16184:26;;16220:71;16288:1;16277:9;16273:17;16264:6;16220:71;:::i;:::-;16301:72;16369:2;16358:9;16354:18;16345:6;16301:72;:::i;:::-;16048:332;;;;;:::o;16386:418::-;16523:4;16561:2;16550:9;16546:18;16538:26;;16574:65;16636:1;16625:9;16621:17;16612:6;16574:65;:::i;:::-;16649:72;16717:2;16706:9;16702:18;16693:6;16649:72;:::i;:::-;16731:66;16793:2;16782:9;16778:18;16769:6;16731:66;:::i;:::-;16386:418;;;;;;:::o;16810:225::-;16950:34;16946:1;16938:6;16934:14;16927:58;17019:8;17014:2;17006:6;17002:15;16995:33;16810:225;:::o;17041:366::-;17183:3;17204:67;17268:2;17263:3;17204:67;:::i;:::-;17197:74;;17280:93;17369:3;17280:93;:::i;:::-;17398:2;17393:3;17389:12;17382:19;;17041:366;;;:::o;17413:419::-;17579:4;17617:2;17606:9;17602:18;17594:26;;17666:9;17660:4;17656:20;17652:1;17641:9;17637:17;17630:47;17694:131;17820:4;17694:131;:::i;:::-;17686:139;;17413:419;;;:::o;17838:223::-;17978:34;17974:1;17966:6;17962:14;17955:58;18047:6;18042:2;18034:6;18030:15;18023:31;17838:223;:::o;18067:366::-;18209:3;18230:67;18294:2;18289:3;18230:67;:::i;:::-;18223:74;;18306:93;18395:3;18306:93;:::i;:::-;18424:2;18419:3;18415:12;18408:19;;18067:366;;;:::o;18439:419::-;18605:4;18643:2;18632:9;18628:18;18620:26;;18692:9;18686:4;18682:20;18678:1;18667:9;18663:17;18656:47;18720:131;18846:4;18720:131;:::i;:::-;18712:139;;18439:419;;;:::o;18864:221::-;19004:34;19000:1;18992:6;18988:14;18981:58;19073:4;19068:2;19060:6;19056:15;19049:29;18864:221;:::o;19091:366::-;19233:3;19254:67;19318:2;19313:3;19254:67;:::i;:::-;19247:74;;19330:93;19419:3;19330:93;:::i;:::-;19448:2;19443:3;19439:12;19432:19;;19091:366;;;:::o;19463:419::-;19629:4;19667:2;19656:9;19652:18;19644:26;;19716:9;19710:4;19706:20;19702:1;19691:9;19687:17;19680:47;19744:131;19870:4;19744:131;:::i;:::-;19736:139;;19463:419;;;:::o;19888:224::-;20028:34;20024:1;20016:6;20012:14;20005:58;20097:7;20092:2;20084:6;20080:15;20073:32;19888:224;:::o;20118:366::-;20260:3;20281:67;20345:2;20340:3;20281:67;:::i;:::-;20274:74;;20357:93;20446:3;20357:93;:::i;:::-;20475:2;20470:3;20466:12;20459:19;;20118:366;;;:::o;20490:419::-;20656:4;20694:2;20683:9;20679:18;20671:26;;20743:9;20737:4;20733:20;20729:1;20718:9;20714:17;20707:47;20771:131;20897:4;20771:131;:::i;:::-;20763:139;;20490:419;;;:::o;20915:222::-;21055:34;21051:1;21043:6;21039:14;21032:58;21124:5;21119:2;21111:6;21107:15;21100:30;20915:222;:::o;21143:366::-;21285:3;21306:67;21370:2;21365:3;21306:67;:::i;:::-;21299:74;;21382:93;21471:3;21382:93;:::i;:::-;21500:2;21495:3;21491:12;21484:19;;21143:366;;;:::o;21515:419::-;21681:4;21719:2;21708:9;21704:18;21696:26;;21768:9;21762:4;21758:20;21754:1;21743:9;21739:17;21732:47;21796:131;21922:4;21796:131;:::i;:::-;21788:139;;21515:419;;;:::o;21940:181::-;22080:33;22076:1;22068:6;22064:14;22057:57;21940:181;:::o;22127:366::-;22269:3;22290:67;22354:2;22349:3;22290:67;:::i;:::-;22283:74;;22366:93;22455:3;22366:93;:::i;:::-;22484:2;22479:3;22475:12;22468:19;;22127:366;;;:::o;22499:419::-;22665:4;22703:2;22692:9;22688:18;22680:26;;22752:9;22746:4;22742:20;22738:1;22727:9;22723:17;22716:47;22780:131;22906:4;22780:131;:::i;:::-;22772:139;;22499:419;;;:::o;22924:180::-;22972:77;22969:1;22962:88;23069:4;23066:1;23059:15;23093:4;23090:1;23083:15;23110:185;23150:1;23167:20;23185:1;23167:20;:::i;:::-;23162:25;;23201:20;23219:1;23201:20;:::i;:::-;23196:25;;23240:1;23230:35;;23245:18;;:::i;:::-;23230:35;23287:1;23284;23280:9;23275:14;;23110:185;;;;:::o;23301:180::-;23349:77;23346:1;23339:88;23446:4;23443:1;23436:15;23470:4;23467:1;23460:15;23487:180;23535:77;23532:1;23525:88;23632:4;23629:1;23622:15;23656:4;23653:1;23646:15;23673:85;23718:7;23747:5;23736:16;;23673:85;;;:::o;23764:158::-;23822:9;23855:61;23873:42;23882:32;23908:5;23882:32;:::i;:::-;23873:42;:::i;:::-;23855:61;:::i;:::-;23842:74;;23764:158;;;:::o;23928:147::-;24023:45;24062:5;24023:45;:::i;:::-;24018:3;24011:58;23928:147;;:::o;24081:114::-;24148:6;24182:5;24176:12;24166:22;;24081:114;;;:::o;24201:184::-;24300:11;24334:6;24329:3;24322:19;24374:4;24369:3;24365:14;24350:29;;24201:184;;;;:::o;24391:132::-;24458:4;24481:3;24473:11;;24511:4;24506:3;24502:14;24494:22;;24391:132;;;:::o;24529:108::-;24606:24;24624:5;24606:24;:::i;:::-;24601:3;24594:37;24529:108;;:::o;24643:179::-;24712:10;24733:46;24775:3;24767:6;24733:46;:::i;:::-;24811:4;24806:3;24802:14;24788:28;;24643:179;;;;:::o;24828:113::-;24898:4;24930;24925:3;24921:14;24913:22;;24828:113;;;:::o;24977:732::-;25096:3;25125:54;25173:5;25125:54;:::i;:::-;25195:86;25274:6;25269:3;25195:86;:::i;:::-;25188:93;;25305:56;25355:5;25305:56;:::i;:::-;25384:7;25415:1;25400:284;25425:6;25422:1;25419:13;25400:284;;;25501:6;25495:13;25528:63;25587:3;25572:13;25528:63;:::i;:::-;25521:70;;25614:60;25667:6;25614:60;:::i;:::-;25604:70;;25460:224;25447:1;25444;25440:9;25435:14;;25400:284;;;25404:14;25700:3;25693:10;;25101:608;;;24977:732;;;;:::o;25715:831::-;25978:4;26016:3;26005:9;26001:19;25993:27;;26030:71;26098:1;26087:9;26083:17;26074:6;26030:71;:::i;:::-;26111:80;26187:2;26176:9;26172:18;26163:6;26111:80;:::i;:::-;26238:9;26232:4;26228:20;26223:2;26212:9;26208:18;26201:48;26266:108;26369:4;26360:6;26266:108;:::i;:::-;26258:116;;26384:72;26452:2;26441:9;26437:18;26428:6;26384:72;:::i;:::-;26466:73;26534:3;26523:9;26519:19;26510:6;26466:73;:::i;:::-;25715:831;;;;;;;;:::o;26552:483::-;26723:4;26761:2;26750:9;26746:18;26738:26;;26774:71;26842:1;26831:9;26827:17;26818:6;26774:71;:::i;:::-;26892:9;26886:4;26882:20;26877:2;26866:9;26862:18;26855:48;26920:108;27023:4;27014:6;26920:108;:::i;:::-;26912:116;;26552:483;;;;;:::o;27041:147::-;27142:11;27179:3;27164:18;;27041:147;;;;:::o;27194:114::-;;:::o;27314:398::-;27473:3;27494:83;27575:1;27570:3;27494:83;:::i;:::-;27487:90;;27586:93;27675:3;27586:93;:::i;:::-;27704:1;27699:3;27695:11;27688:18;;27314:398;;;:::o;27718:379::-;27902:3;27924:147;28067:3;27924:147;:::i;:::-;27917:154;;28088:3;28081:10;;27718:379;;;:::o

Swarm Source

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