ETH Price: $3,491.87 (+6.48%)
Gas: 8 Gwei

Token

MARLBORO (MARLBORO)
 

Overview

Max Total Supply

1,000,000 MARLBORO

Holders

149

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.7457538 MARLBORO

Value
$0.00
0xfa207d3580afb6f15392541144e118ca293192bd
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:
marlboro

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/*

█▀▄▀█ ▄▀█ █▀█ █░░ █▄▄ █▀█ █▀█ █▀█
█░▀░█ █▀█ █▀▄ █▄▄ █▄█ █▄█ █▀▄ █▄█

Come to where the flavor is...

    ...Come to Marlboro Country 

Website: http://marlboroeth.com
Telegram: https://t.me/marlboroeth
Twitter:  https://twitter.com/marlboroerc

*/

pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address __owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

abstract contract Auth {
    address internal _owner;
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this");   _; 
    }
    function owner() public view returns (address) { return _owner;   }
    function transferOwnership(address payable newOwner) external onlyOwner { 
        _owner = newOwner; emit OwnershipTransferred(newOwner); 
    }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); emit OwnershipTransferred(address(0)); 
    }
    event OwnershipTransferred(address _owner);
}

contract marlboro is IERC20, Auth {
    
    uint8 private constant _decimals       = 9;
    uint256 private constant _totalSupply  = 1_000_000 * (10**_decimals);
    string private constant _name          = "MARLBORO";
    string private  constant _symbol       = "MARLBORO";

    uint8 private _BuyTaxes  = 0;
    uint8 private _SellTaxes = 0;

    address payable private _walletMarketing = payable(0x17Cb770D0FB66414283CAA6E9a163B13D77c2059); 
    uint256 private _maxTxAmount = _totalSupply; 
    uint256 private _maxWalletAmount = _totalSupply;
    uint256 private _taxSwapMin = _totalSupply * 1 / 10000;
    uint256 private _taxSwapMax = _totalSupply * 8 / 1000;
    uint256 private _taxSwapThreshold = _taxSwapMin * 6000;

    uint256 private _buyCount;
    uint8 private startTradingBlock1 = 1;
    uint8 private startTradingBlock2 = 1;
    uint8 private launchBlock1 = 3;
    uint8 private launchBlock2 = 3;
    uint256 private _mevProtectionBlocks = 2;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimits;

    address private lpowner;
    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

    constructor() Auth(msg.sender) {
        lpowner = msg.sender;

        uint256 tokenReserve   = _totalSupply * 2 / 100;
        
        _balances[address(this)] = _totalSupply - tokenReserve;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _balances[_owner] = tokenReserve;
        emit Transfer(address(0), _owner, _balances[_owner]);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_swapRouterAddress] = true;
        _noLimits[_walletMarketing] = true;
    }

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sndr, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sndr), "Trading not open");
        if(_allowances[sndr][msg.sender] != type(uint256).max){
            _allowances[sndr][msg.sender] = _allowances[sndr][msg.sender] - amount;
        }
        return _transferFrom(sndr, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }
    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP created");
        require(!_tradingOpen, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in ca/msg");
        require(_balances[address(this)]>0, "No tokens in ca");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance, false);
        _balances[_primaryLP] -= _taxSwapThreshold;
        (bool lpAdded,) = _primaryLP.call(abi.encodeWithSignature("sync()") );
        require(lpAdded, "Failed adding lp");
        _isLP[_primaryLP] = lpAdded;
        _openTrading();
    }
    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lprecipient = lpowner;
        if ( autoburn ) { lprecipient = address(0); }
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lprecipient, block.timestamp );
    }
    function _openTrading() internal {
        _maxTxAmount     = _totalSupply * 2 / 100; 
        _maxWalletAmount = _totalSupply * 2 / 100;
        _tradingOpen = true;
        _buyCount = block.number;
        _mevProtectionBlocks = _mevProtectionBlocks + _buyCount + startTradingBlock1 + startTradingBlock2;
    }
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
        if ( block.number < _mevProtectionBlocks && block.number >= _buyCount && _isLP[sender] ) {
            require(recipient == tx.origin, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        _taxSwapThreshold += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    function _checkLimits(address sndr, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sndr] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }
    function _checkTradingOpen(address sndr) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sndr] && _noLimits[sndr]) { checkResult = true; } 

        return checkResult;
    }
    function _calculateTax(address sndr, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sndr] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sndr] ) { 
            if ( block.number >= _buyCount + startTradingBlock1 + startTradingBlock2 ) {
                taxAmount = amount * _BuyTaxes / 100; 
            } else if ( block.number >= _buyCount + startTradingBlock1 ) {
                taxAmount = amount * launchBlock2 / 100;
            } else if ( block.number >= _buyCount) {
                taxAmount = amount * launchBlock1 / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _SellTaxes / 100; 
        }

        return taxAmount;
    }
    function setLimits(uint16 maxTrxPermille, uint16 maxWltPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTrxPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWltPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }
   
    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _taxSwapThreshold;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            
            uint256 _tokensToSwap = _taxTokensAvailable; 
            if( _tokensToSwap > 10**_decimals ) {
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _taxSwapThreshold -= _taxTokensAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }
    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address( this );
        path[1] = _primarySwapRouter.WETH() ;
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }
    function _distributeTaxEth(uint256 amount) private {
        _walletMarketing.transfer(amount);
    }
   
}

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":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spendr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"uint16","name":"maxTrxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWltPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sndr","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260008060146101000a81548160ff021916908360ff16021790555060008060156101000a81548160ff021916908360ff1602179055507317cb770d0fb66414283caa6e9a163b13d77c2059600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200009f919062000a93565b620f4240620000af919062000ae4565b6002556009600a620000c2919062000a93565b620f4240620000d2919062000ae4565b60035561271060016009600a620000ea919062000a93565b620f4240620000fa919062000ae4565b62000106919062000ae4565b62000112919062000b5e565b6004556103e860086009600a6200012a919062000a93565b620f42406200013a919062000ae4565b62000146919062000ae4565b62000152919062000b5e565b60055561177060045462000167919062000ae4565b6006556001600860006101000a81548160ff021916908360ff1602179055506001600860016101000a81548160ff021916908360ff1602179055506003600860026101000a81548160ff021916908360ff1602179055506003600860036101000a81548160ff021916908360ff1602179055506002600955737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260016101000a81548160ff0219169083151502179055503480156200025c57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606460026009600a620002f6919062000a93565b620f424062000306919062000ae4565b62000312919062000ae4565b6200031e919062000b5e565b9050806009600a62000331919062000a93565b620f424062000341919062000ae4565b6200034d919062000b96565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200042f919062000be2565b60405180910390a380600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200057c919062000be2565b60405180910390a36001600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000bff565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000987578086048111156200095f576200095e620008f9565b5b60018516156200096f5780820291505b80810290506200097f8562000928565b94506200093f565b94509492505050565b600082620009a2576001905062000a75565b81620009b2576000905062000a75565b8160018114620009cb5760028114620009d65762000a0c565b600191505062000a75565b60ff841115620009eb57620009ea620008f9565b5b8360020a91508482111562000a055762000a04620008f9565b5b5062000a75565b5060208310610133831016604e8410600b841016171562000a465782820a90508381111562000a405762000a3f620008f9565b5b62000a75565b62000a55848484600162000935565b9250905081840481111562000a6f5762000a6e620008f9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aa08262000a7c565b915062000aad8362000a86565b925062000adc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000990565b905092915050565b600062000af18262000a7c565b915062000afe8362000a7c565b925082820262000b0e8162000a7c565b9150828204841483151762000b285762000b27620008f9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b6b8262000a7c565b915062000b788362000a7c565b92508262000b8b5762000b8a62000b2f565b5b828204905092915050565b600062000ba38262000a7c565b915062000bb08362000a7c565b925082820390508181111562000bcb5762000bca620008f9565b5b92915050565b62000bdc8162000a7c565b82525050565b600060208201905062000bf9600083018462000bd1565b92915050565b6134de8062000c0f6000396000f3fe6080604052600436106100e15760003560e01c8063715018a61161007f578063a9059cbb11610059578063a9059cbb146102bb578063dd62ed3e146102f8578063e8078d9414610335578063f2fde38b1461033f576100e8565b8063715018a61461024e5780638da5cb5b1461026557806395d89b4114610290576100e8565b806323b872dd116100bb57806323b872dd14610180578063313ce567146101bd578063368f4800146101e857806370a0823114610211576100e8565b806306fdde03146100ed578063095ea7b31461011857806318160ddd14610155576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610368565b60405161010f91906125c3565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061267e565b6103a5565b60405161014c91906126d9565b60405180910390f35b34801561016157600080fd5b5061016a610497565b6040516101779190612703565b60405180910390f35b34801561018c57600080fd5b506101a760048036038101906101a2919061271e565b6104ba565b6040516101b491906126d9565b60405180910390f35b3480156101c957600080fd5b506101d26106c4565b6040516101df919061278d565b60405180910390f35b3480156101f457600080fd5b5061020f600480360381019061020a91906127e2565b6106cd565b005b34801561021d57600080fd5b5061023860048036038101906102339190612822565b610889565b6040516102459190612703565b60405180910390f35b34801561025a57600080fd5b506102636108d2565b005b34801561027157600080fd5b5061027a6109db565b604051610287919061285e565b60405180910390f35b34801561029c57600080fd5b506102a5610a04565b6040516102b291906125c3565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd919061267e565b610a41565b6040516102ef91906126d9565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a9190612879565b610a9e565b60405161032c9190612703565b60405180910390f35b61033d610b25565b005b34801561034b57600080fd5b50610366600480360381019061036191906128f7565b611212565b005b60606040518060400160405280600881526020017f4d41524c424f524f000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104859190612703565b60405180910390a36001905092915050565b60006009600a6104a79190612a86565b620f42406104b59190612ad1565b905090565b60006104c58461131a565b610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fb90612b5f565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106b05781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f9190612b7f565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6106bb8484846113f5565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075290612bff565b60405180910390fd5b600060016103e88461ffff166009600a6107759190612a86565b620f42406107839190612ad1565b61078d9190612ad1565b6107979190612c4e565b6107a19190612c7f565b90506002548110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612cff565b60405180910390fd5b80600281905550600060016103e88461ffff166009600a6108099190612a86565b620f42406108179190612ad1565b6108219190612ad1565b61082b9190612c4e565b6108359190612c7f565b905060035481101561087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390612d6b565b60405180910390fd5b8060038190555050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790612bff565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516109d1919061285e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4d41524c424f524f000000000000000000000000000000000000000000000000815250905090565b6000610a4c3361131a565b610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290612b5f565b60405180910390fd5b610a963384846113f5565b905092915050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612bff565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5690612dd7565b60405180910390fd5b601260009054906101000a900460ff1615610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612e43565b60405180910390fd5b6000341180610cbe5750600047115b610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612eaf565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690612f1b565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190612f50565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612f50565b6040518363ffffffff1660e01b8152600401610eda929190612f7d565b6020604051808303816000875af1158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d9190612f50565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa8600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000611981565b600654600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461101b9190612b7f565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190612fed565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b5050905080611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90613050565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111f4611a6f565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790612bff565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161130f91906130cf565b60405180910390a150565b60008060009050601260009054906101000a900460ff161561133f57600190506113ec565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113e15750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113eb57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90613136565b60405180910390fd5b601260009054906101000a900460ff1661155b57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561151b5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190612b5f565b60405180910390fd5b5b601260019054906101000a900460ff161580156115c15750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115cf576115ce611b57565b5b600954431080156115e257506007544310155b80156116375750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ab573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a1906131a2565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561171357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117bb5761177b848484611c77565b6117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b19061320e565b60405180910390fd5b5b60006117c8858585611e0e565b9050600081846117d89190612b7f565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118259190612b7f565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816006600082825461187a9190612c7f565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9190612c7f565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161196c9190612703565b60405180910390a36001925050509392505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081156119b357600090505b6119bc846120be565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401611a2396959493929190613269565b60606040518083038185885af1158015611a41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a6691906132df565b50505050505050565b606460026009600a611a819190612a86565b620f4240611a8f9190612ad1565b611a999190612ad1565b611aa39190612c4e565b600281905550606460026009600a611abb9190612a86565b620f4240611ac99190612ad1565b611ad39190612ad1565b611add9190612c4e565b6003819055506001601260006101000a81548160ff02191690831515021790555043600781905550600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754600954611b3b9190612c7f565b611b459190612c7f565b611b4f9190612c7f565b600981905550565b6001601260016101000a81548160ff021916908315150217905550600060065490506004548110158015611b975750601260009054906101000a900460ff165b15611c59576005548110611bab5760055490505b60008190506009600a611bbe9190612a86565b811115611c3e5781600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c149190612c7f565b92505081905550611c24816122a8565b8160066000828254611c369190612b7f565b925050819055505b60004790506000811115611c5657611c55816124c7565b5b50505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff168015611ce45750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d3a5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0357600254831115611d525760009050611e02565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611df7575060035483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611df59190612c7f565b115b15611e0157600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff161580611e765750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eca5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ed857600090506120b3565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561203257600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754611f5d9190612c7f565b611f679190612c7f565b4310611f9e576064600060149054906101000a900460ff1660ff1684611f8d9190612ad1565b611f979190612c4e565b905061202d565b600860009054906101000a900460ff1660ff16600754611fbe9190612c7f565b4310611ff5576064600860039054906101000a900460ff1660ff1684611fe49190612ad1565b611fee9190612c4e565b905061202c565b600754431061202b576064600860029054906101000a900460ff1660ff168461201e9190612ad1565b6120289190612c4e565b90505b5b5b6120b2565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120b1576064600060159054906101000a900460ff1660ff16846120a49190612ad1565b6120ae9190612c4e565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122a5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161229c9190612703565b60405180910390a35b50565b6122b1816120be565b6000600267ffffffffffffffff8111156122ce576122cd613332565b5b6040519080825280602002602001820160405280156122fc5781602001602082028036833780820191505090505b509050308160008151811061231457612313613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123df9190612f50565b816001815181106123f3576123f2613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161249195949392919061344e565b600060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561252f573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256d578082015181840152602081019050612552565b60008484015250505050565b6000601f19601f8301169050919050565b600061259582612533565b61259f818561253e565b93506125af81856020860161254f565b6125b881612579565b840191505092915050565b600060208201905081810360008301526125dd818461258a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612615826125ea565b9050919050565b6126258161260a565b811461263057600080fd5b50565b6000813590506126428161261c565b92915050565b6000819050919050565b61265b81612648565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b60008060408385031215612695576126946125e5565b5b60006126a385828601612633565b92505060206126b485828601612669565b9150509250929050565b60008115159050919050565b6126d3816126be565b82525050565b60006020820190506126ee60008301846126ca565b92915050565b6126fd81612648565b82525050565b600060208201905061271860008301846126f4565b92915050565b600080600060608486031215612737576127366125e5565b5b600061274586828701612633565b935050602061275686828701612633565b925050604061276786828701612669565b9150509250925092565b600060ff82169050919050565b61278781612771565b82525050565b60006020820190506127a2600083018461277e565b92915050565b600061ffff82169050919050565b6127bf816127a8565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b600080604083850312156127f9576127f86125e5565b5b6000612807858286016127cd565b9250506020612818858286016127cd565b9150509250929050565b600060208284031215612838576128376125e5565b5b600061284684828501612633565b91505092915050565b6128588161260a565b82525050565b6000602082019050612873600083018461284f565b92915050565b600080604083850312156128905761288f6125e5565b5b600061289e85828601612633565b92505060206128af85828601612633565b9150509250929050565b60006128c4826125ea565b9050919050565b6128d4816128b9565b81146128df57600080fd5b50565b6000813590506128f1816128cb565b92915050565b60006020828403121561290d5761290c6125e5565b5b600061291b848285016128e2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129aa5780860481111561298657612985612924565b5b60018516156129955780820291505b80810290506129a385612953565b945061296a565b94509492505050565b6000826129c35760019050612a7f565b816129d15760009050612a7f565b81600181146129e757600281146129f157612a20565b6001915050612a7f565b60ff841115612a0357612a02612924565b5b8360020a915084821115612a1a57612a19612924565b5b50612a7f565b5060208310610133831016604e8410600b8410161715612a555782820a905083811115612a5057612a4f612924565b5b612a7f565b612a628484846001612960565b92509050818404811115612a7957612a78612924565b5b81810290505b9392505050565b6000612a9182612648565b9150612a9c83612771565b9250612ac97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b6000612adc82612648565b9150612ae783612648565b9250828202612af581612648565b91508282048414831517612b0c57612b0b612924565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612b4960108361253e565b9150612b5482612b13565b602082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b6000612b8a82612648565b9150612b9583612648565b9250828203905081811115612bad57612bac612924565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612be960188361253e565b9150612bf482612bb3565b602082019050919050565b60006020820190508181036000830152612c1881612bdc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5982612648565b9150612c6483612648565b925082612c7457612c73612c1f565b5b828204905092915050565b6000612c8a82612648565b9150612c9583612648565b9250828201905080821115612cad57612cac612924565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000612ce9600a8361253e565b9150612cf482612cb3565b602082019050919050565b60006020820190508181036000830152612d1881612cdc565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000612d55600e8361253e565b9150612d6082612d1f565b602082019050919050565b60006020820190508181036000830152612d8481612d48565b9050919050565b7f4c50206372656174656400000000000000000000000000000000000000000000600082015250565b6000612dc1600a8361253e565b9150612dcc82612d8b565b602082019050919050565b60006020820190508181036000830152612df081612db4565b9050919050565b7f74726164696e67206f70656e0000000000000000000000000000000000000000600082015250565b6000612e2d600c8361253e565b9150612e3882612df7565b602082019050919050565b60006020820190508181036000830152612e5c81612e20565b9050919050565b7f4e6f2045544820696e2063612f6d736700000000000000000000000000000000600082015250565b6000612e9960108361253e565b9150612ea482612e63565b602082019050919050565b60006020820190508181036000830152612ec881612e8c565b9050919050565b7f4e6f20746f6b656e7320696e2063610000000000000000000000000000000000600082015250565b6000612f05600f8361253e565b9150612f1082612ecf565b602082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b600081519050612f4a8161261c565b92915050565b600060208284031215612f6657612f656125e5565b5b6000612f7484828501612f3b565b91505092915050565b6000604082019050612f92600083018561284f565b612f9f602083018461284f565b9392505050565b600081519050919050565b600081905092915050565b6000612fc782612fa6565b612fd18185612fb1565b9350612fe181856020860161254f565b80840191505092915050565b6000612ff98284612fbc565b915081905092915050565b7f4661696c656420616464696e67206c7000000000000000000000000000000000600082015250565b600061303a60108361253e565b915061304582613004565b602082019050919050565b600060208201905081810360008301526130698161302d565b9050919050565b6000819050919050565b600061309561309061308b846125ea565b613070565b6125ea565b9050919050565b60006130a78261307a565b9050919050565b60006130b98261309c565b9050919050565b6130c9816130ae565b82525050565b60006020820190506130e460008301846130c0565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613120601d8361253e565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b600061318c600b8361253e565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006131f860118361253e565b9150613203826131c2565b602082019050919050565b60006020820190508181036000830152613227816131eb565b9050919050565b6000819050919050565b600061325361324e6132498461322e565b613070565b612648565b9050919050565b61326381613238565b82525050565b600060c08201905061327e600083018961284f565b61328b60208301886126f4565b613298604083018761325a565b6132a5606083018661325a565b6132b2608083018561284f565b6132bf60a08301846126f4565b979650505050505050565b6000815190506132d981612652565b92915050565b6000806000606084860312156132f8576132f76125e5565b5b6000613306868287016132ca565b9350506020613317868287016132ca565b9250506040613328868287016132ca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133c58161260a565b82525050565b60006133d783836133bc565b60208301905092915050565b6000602082019050919050565b60006133fb82613390565b613405818561339b565b9350613410836133ac565b8060005b8381101561344157815161342888826133cb565b9750613433836133e3565b925050600181019050613414565b5085935050505092915050565b600060a08201905061346360008301886126f4565b613470602083018761325a565b818103604083015261348281866133f0565b9050613491606083018561284f565b61349e60808301846126f4565b969550505050505056fea2646970667358221220c41adf8852aeb235d2232a8fb41b4d4125f5ca273a56f86a2db5feb97880137064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100e15760003560e01c8063715018a61161007f578063a9059cbb11610059578063a9059cbb146102bb578063dd62ed3e146102f8578063e8078d9414610335578063f2fde38b1461033f576100e8565b8063715018a61461024e5780638da5cb5b1461026557806395d89b4114610290576100e8565b806323b872dd116100bb57806323b872dd14610180578063313ce567146101bd578063368f4800146101e857806370a0823114610211576100e8565b806306fdde03146100ed578063095ea7b31461011857806318160ddd14610155576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610368565b60405161010f91906125c3565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061267e565b6103a5565b60405161014c91906126d9565b60405180910390f35b34801561016157600080fd5b5061016a610497565b6040516101779190612703565b60405180910390f35b34801561018c57600080fd5b506101a760048036038101906101a2919061271e565b6104ba565b6040516101b491906126d9565b60405180910390f35b3480156101c957600080fd5b506101d26106c4565b6040516101df919061278d565b60405180910390f35b3480156101f457600080fd5b5061020f600480360381019061020a91906127e2565b6106cd565b005b34801561021d57600080fd5b5061023860048036038101906102339190612822565b610889565b6040516102459190612703565b60405180910390f35b34801561025a57600080fd5b506102636108d2565b005b34801561027157600080fd5b5061027a6109db565b604051610287919061285e565b60405180910390f35b34801561029c57600080fd5b506102a5610a04565b6040516102b291906125c3565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd919061267e565b610a41565b6040516102ef91906126d9565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a9190612879565b610a9e565b60405161032c9190612703565b60405180910390f35b61033d610b25565b005b34801561034b57600080fd5b50610366600480360381019061036191906128f7565b611212565b005b60606040518060400160405280600881526020017f4d41524c424f524f000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104859190612703565b60405180910390a36001905092915050565b60006009600a6104a79190612a86565b620f42406104b59190612ad1565b905090565b60006104c58461131a565b610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fb90612b5f565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106b05781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f9190612b7f565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6106bb8484846113f5565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075290612bff565b60405180910390fd5b600060016103e88461ffff166009600a6107759190612a86565b620f42406107839190612ad1565b61078d9190612ad1565b6107979190612c4e565b6107a19190612c7f565b90506002548110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612cff565b60405180910390fd5b80600281905550600060016103e88461ffff166009600a6108099190612a86565b620f42406108179190612ad1565b6108219190612ad1565b61082b9190612c4e565b6108359190612c7f565b905060035481101561087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390612d6b565b60405180910390fd5b8060038190555050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790612bff565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516109d1919061285e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4d41524c424f524f000000000000000000000000000000000000000000000000815250905090565b6000610a4c3361131a565b610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290612b5f565b60405180910390fd5b610a963384846113f5565b905092915050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612bff565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5690612dd7565b60405180910390fd5b601260009054906101000a900460ff1615610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612e43565b60405180910390fd5b6000341180610cbe5750600047115b610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612eaf565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690612f1b565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190612f50565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612f50565b6040518363ffffffff1660e01b8152600401610eda929190612f7d565b6020604051808303816000875af1158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d9190612f50565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa8600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000611981565b600654600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461101b9190612b7f565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190612fed565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b5050905080611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90613050565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111f4611a6f565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790612bff565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161130f91906130cf565b60405180910390a150565b60008060009050601260009054906101000a900460ff161561133f57600190506113ec565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113e15750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113eb57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90613136565b60405180910390fd5b601260009054906101000a900460ff1661155b57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561151b5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190612b5f565b60405180910390fd5b5b601260019054906101000a900460ff161580156115c15750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115cf576115ce611b57565b5b600954431080156115e257506007544310155b80156116375750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ab573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a1906131a2565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561171357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117bb5761177b848484611c77565b6117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b19061320e565b60405180910390fd5b5b60006117c8858585611e0e565b9050600081846117d89190612b7f565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118259190612b7f565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816006600082825461187a9190612c7f565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9190612c7f565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161196c9190612703565b60405180910390a36001925050509392505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081156119b357600090505b6119bc846120be565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401611a2396959493929190613269565b60606040518083038185885af1158015611a41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a6691906132df565b50505050505050565b606460026009600a611a819190612a86565b620f4240611a8f9190612ad1565b611a999190612ad1565b611aa39190612c4e565b600281905550606460026009600a611abb9190612a86565b620f4240611ac99190612ad1565b611ad39190612ad1565b611add9190612c4e565b6003819055506001601260006101000a81548160ff02191690831515021790555043600781905550600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754600954611b3b9190612c7f565b611b459190612c7f565b611b4f9190612c7f565b600981905550565b6001601260016101000a81548160ff021916908315150217905550600060065490506004548110158015611b975750601260009054906101000a900460ff165b15611c59576005548110611bab5760055490505b60008190506009600a611bbe9190612a86565b811115611c3e5781600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c149190612c7f565b92505081905550611c24816122a8565b8160066000828254611c369190612b7f565b925050819055505b60004790506000811115611c5657611c55816124c7565b5b50505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff168015611ce45750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d3a5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0357600254831115611d525760009050611e02565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611df7575060035483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611df59190612c7f565b115b15611e0157600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff161580611e765750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eca5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ed857600090506120b3565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561203257600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754611f5d9190612c7f565b611f679190612c7f565b4310611f9e576064600060149054906101000a900460ff1660ff1684611f8d9190612ad1565b611f979190612c4e565b905061202d565b600860009054906101000a900460ff1660ff16600754611fbe9190612c7f565b4310611ff5576064600860039054906101000a900460ff1660ff1684611fe49190612ad1565b611fee9190612c4e565b905061202c565b600754431061202b576064600860029054906101000a900460ff1660ff168461201e9190612ad1565b6120289190612c4e565b90505b5b5b6120b2565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120b1576064600060159054906101000a900460ff1660ff16846120a49190612ad1565b6120ae9190612c4e565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122a5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161229c9190612703565b60405180910390a35b50565b6122b1816120be565b6000600267ffffffffffffffff8111156122ce576122cd613332565b5b6040519080825280602002602001820160405280156122fc5781602001602082028036833780820191505090505b509050308160008151811061231457612313613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123df9190612f50565b816001815181106123f3576123f2613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161249195949392919061344e565b600060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561252f573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256d578082015181840152602081019050612552565b60008484015250505050565b6000601f19601f8301169050919050565b600061259582612533565b61259f818561253e565b93506125af81856020860161254f565b6125b881612579565b840191505092915050565b600060208201905081810360008301526125dd818461258a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612615826125ea565b9050919050565b6126258161260a565b811461263057600080fd5b50565b6000813590506126428161261c565b92915050565b6000819050919050565b61265b81612648565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b60008060408385031215612695576126946125e5565b5b60006126a385828601612633565b92505060206126b485828601612669565b9150509250929050565b60008115159050919050565b6126d3816126be565b82525050565b60006020820190506126ee60008301846126ca565b92915050565b6126fd81612648565b82525050565b600060208201905061271860008301846126f4565b92915050565b600080600060608486031215612737576127366125e5565b5b600061274586828701612633565b935050602061275686828701612633565b925050604061276786828701612669565b9150509250925092565b600060ff82169050919050565b61278781612771565b82525050565b60006020820190506127a2600083018461277e565b92915050565b600061ffff82169050919050565b6127bf816127a8565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b600080604083850312156127f9576127f86125e5565b5b6000612807858286016127cd565b9250506020612818858286016127cd565b9150509250929050565b600060208284031215612838576128376125e5565b5b600061284684828501612633565b91505092915050565b6128588161260a565b82525050565b6000602082019050612873600083018461284f565b92915050565b600080604083850312156128905761288f6125e5565b5b600061289e85828601612633565b92505060206128af85828601612633565b9150509250929050565b60006128c4826125ea565b9050919050565b6128d4816128b9565b81146128df57600080fd5b50565b6000813590506128f1816128cb565b92915050565b60006020828403121561290d5761290c6125e5565b5b600061291b848285016128e2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129aa5780860481111561298657612985612924565b5b60018516156129955780820291505b80810290506129a385612953565b945061296a565b94509492505050565b6000826129c35760019050612a7f565b816129d15760009050612a7f565b81600181146129e757600281146129f157612a20565b6001915050612a7f565b60ff841115612a0357612a02612924565b5b8360020a915084821115612a1a57612a19612924565b5b50612a7f565b5060208310610133831016604e8410600b8410161715612a555782820a905083811115612a5057612a4f612924565b5b612a7f565b612a628484846001612960565b92509050818404811115612a7957612a78612924565b5b81810290505b9392505050565b6000612a9182612648565b9150612a9c83612771565b9250612ac97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b6000612adc82612648565b9150612ae783612648565b9250828202612af581612648565b91508282048414831517612b0c57612b0b612924565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612b4960108361253e565b9150612b5482612b13565b602082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b6000612b8a82612648565b9150612b9583612648565b9250828203905081811115612bad57612bac612924565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612be960188361253e565b9150612bf482612bb3565b602082019050919050565b60006020820190508181036000830152612c1881612bdc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5982612648565b9150612c6483612648565b925082612c7457612c73612c1f565b5b828204905092915050565b6000612c8a82612648565b9150612c9583612648565b9250828201905080821115612cad57612cac612924565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000612ce9600a8361253e565b9150612cf482612cb3565b602082019050919050565b60006020820190508181036000830152612d1881612cdc565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000612d55600e8361253e565b9150612d6082612d1f565b602082019050919050565b60006020820190508181036000830152612d8481612d48565b9050919050565b7f4c50206372656174656400000000000000000000000000000000000000000000600082015250565b6000612dc1600a8361253e565b9150612dcc82612d8b565b602082019050919050565b60006020820190508181036000830152612df081612db4565b9050919050565b7f74726164696e67206f70656e0000000000000000000000000000000000000000600082015250565b6000612e2d600c8361253e565b9150612e3882612df7565b602082019050919050565b60006020820190508181036000830152612e5c81612e20565b9050919050565b7f4e6f2045544820696e2063612f6d736700000000000000000000000000000000600082015250565b6000612e9960108361253e565b9150612ea482612e63565b602082019050919050565b60006020820190508181036000830152612ec881612e8c565b9050919050565b7f4e6f20746f6b656e7320696e2063610000000000000000000000000000000000600082015250565b6000612f05600f8361253e565b9150612f1082612ecf565b602082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b600081519050612f4a8161261c565b92915050565b600060208284031215612f6657612f656125e5565b5b6000612f7484828501612f3b565b91505092915050565b6000604082019050612f92600083018561284f565b612f9f602083018461284f565b9392505050565b600081519050919050565b600081905092915050565b6000612fc782612fa6565b612fd18185612fb1565b9350612fe181856020860161254f565b80840191505092915050565b6000612ff98284612fbc565b915081905092915050565b7f4661696c656420616464696e67206c7000000000000000000000000000000000600082015250565b600061303a60108361253e565b915061304582613004565b602082019050919050565b600060208201905081810360008301526130698161302d565b9050919050565b6000819050919050565b600061309561309061308b846125ea565b613070565b6125ea565b9050919050565b60006130a78261307a565b9050919050565b60006130b98261309c565b9050919050565b6130c9816130ae565b82525050565b60006020820190506130e460008301846130c0565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613120601d8361253e565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b600061318c600b8361253e565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006131f860118361253e565b9150613203826131c2565b602082019050919050565b60006020820190508181036000830152613227816131eb565b9050919050565b6000819050919050565b600061325361324e6132498461322e565b613070565b612648565b9050919050565b61326381613238565b82525050565b600060c08201905061327e600083018961284f565b61328b60208301886126f4565b613298604083018761325a565b6132a5606083018661325a565b6132b2608083018561284f565b6132bf60a08301846126f4565b979650505050505050565b6000815190506132d981612652565b92915050565b6000806000606084860312156132f8576132f76125e5565b5b6000613306868287016132ca565b9350506020613317868287016132ca565b9250506040613328868287016132ca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133c58161260a565b82525050565b60006133d783836133bc565b60208301905092915050565b6000602082019050919050565b60006133fb82613390565b613405818561339b565b9350613410836133ac565b8060005b8381101561344157815161342888826133cb565b9750613433836133e3565b925050600181019050613414565b5085935050505092915050565b600060a08201905061346360008301886126f4565b613470602083018761325a565b818103604083015261348281866133f0565b9050613491606083018561284f565b61349e60808301846126f4565b969550505050505056fea2646970667358221220c41adf8852aeb235d2232a8fb41b4d4125f5ca273a56f86a2db5feb97880137064736f6c63430008130033

Deployed Bytecode Sourcemap

2632:10229:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5463:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5801:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5193:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6255:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5287:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11159:440;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5549:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2449:127;;;;;;;;;;;;;:::i;:::-;;2223:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5373:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6022:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5660:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6978:770;;;:::i;:::-;;2296:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5463:80;5511:13;5535:5;;;;;;;;;;;;;;;;;5528:12;;5463:80;:::o;5801:213::-;5875:4;5926:6;5892:11;:23;5904:10;5892:23;;;;;;;;;;;;;;;:31;5916:6;5892:31;;;;;;;;;;;;;;;:40;;;;5969:6;5948:36;;5957:10;5948:36;;;5977:6;5948:36;;;;;;:::i;:::-;;;;;;;;6002:4;5995:11;;5801:213;;;;:::o;5193:88::-;5248:7;2720:1;2782:2;:13;;;;:::i;:::-;2769:9;:27;;;;:::i;:::-;5259:19;;5193:88;:::o;6255:392::-;6353:4;6378:23;6396:4;6378:17;:23::i;:::-;6370:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6469:17;6436:11;:17;6448:4;6436:17;;;;;;;;;;;;;;;:29;6454:10;6436:29;;;;;;;;;;;;;;;;:50;6433:151;;6566:6;6534:11;:17;6546:4;6534:17;;;;;;;;;;;;;;;:29;6552:10;6534:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;6502:11;:17;6514:4;6502:17;;;;;;;;;;;;;;;:29;6520:10;6502:29;;;;;;;;;;;;;;;:70;;;;6433:151;6601:38;6615:4;6621:9;6632:6;6601:13;:38::i;:::-;6594:45;;6255:392;;;;;:::o;5287:80::-;5339:5;2720:1;5348:16;;5287:80;:::o;11159:440::-;2168:6;;;;;;;;;;2154:20;;:10;:20;;;2146:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11254:16:::1;11312:1;11305:4;11288:14;11273:29;;2720:1;2782:2;:13;;;;:::i;:::-;2769:9;:27;;;;:::i;:::-;11273:29;;;;:::i;:::-;:36;;;;:::i;:::-;:40;;;;:::i;:::-;11254:59;;11344:12;;11332:8;:24;;11324:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11397:8;11382:12;:23;;;;11416:20;11478:1;11471:4;11454:14;11439:29;;2720:1;2782:2;:13;;;;:::i;:::-;2769:9;:27;;;;:::i;:::-;11439:29;;;;:::i;:::-;:36;;;;:::i;:::-;:40;;;;:::i;:::-;11416:63;;11514:16;;11498:12;:32;;11490:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11579:12;11560:16;:31;;;;11243:356;;11159:440:::0;;:::o;5549:105::-;5615:7;5633:9;:18;5643:7;5633:18;;;;;;;;;;;;;;;;5626:25;;5549:105;;;:::o;2449:127::-;2168:6;;;;;;;;;;2154:20;;:10;:20;;;2146:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2526:1:::1;2509:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2535:32;2564:1;2535:32;;;;;;:::i;:::-;;;;;;;;2449:127::o:0;2223:67::-;2261:7;2279:6;;;;;;;;;;;2272:13;;2223:67;:::o;5373:84::-;5423:13;5447:7;;;;;;;;;;;;;;;;;5440:14;;5373:84;:::o;6022:225::-;6102:4;6127:29;6145:10;6127:17;:29::i;:::-;6119:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6195:44;6209:10;6221:9;6232:6;6195:13;:44::i;:::-;6188:51;;6022:225;;;;:::o;5660:133::-;5744:7;5762:11;:19;5774:6;5762:19;;;;;;;;;;;;;;;:28;5782:7;5762:28;;;;;;;;;;;;;;;;5755:35;;5660:133;;;;:::o;6978:770::-;2168:6;;;;;;;;;;2154:20;;:10;:20;;;2146:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4278:4:::1;4265:10;;:17;;;;;;;;;;;;;;;;;;7082:1:::2;7060:24;;:10;;;;;;;;;;;:24;;;7052:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7119:12;;;;;;;;;;;7118:13;7110:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7179:1;7167:9;:13;:40;;;;7206:1;7184:21;:23;7167:40;7159:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7272:1;7247:9;:24;7265:4;7247:24;;;;;;;;;;;;;;;;:26;7239:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7317:58;;;7384:4;7391:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7317:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7304:10;;:113;;;;;;;;;;;;;;;;;;7428:69;7442:9;:24;7460:4;7442:24;;;;;;;;;;;;;;;;7468:21;7491:5;7428:13;:69::i;:::-;7533:17;;7508:9;:21;7518:10;;;;;;;;;;;7508:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;7562:12;7579:10;;;;;;;;;;;:15;;7595:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7579:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7561:69;;;7649:7;7641:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;7708:7;7688:5;:17;7694:10;;;;;;;;;;;7688:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7726:14;:12;:14::i;:::-;7041:707;4320:5:::1;4307:10;;:18;;;;;;;;;;;;;;;;;;6978:770::o:0;2296:147::-;2168:6;;;;;;;;;;2154:20;;:10;:20;;;2146:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2389:8:::1;2380:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2404:30;2425:8;2404:30;;;;;;:::i;:::-;;;;;;;;2296:147:::0;:::o;10042:273::-;10105:4;10121:16;10140:5;10121:24;;10161:12;;;;;;;;;;;10156:120;;;10192:4;10178:18;;10156:120;;;10219:7;:13;10227:4;10219:13;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;10236:9;:15;10246:4;10236:15;;;;;;;;;;;;;;;;;;;;;;;;;10219:32;10215:61;;;10269:4;10255:18;;10215:61;10156:120;10296:11;10289:18;;;10042:273;;;:::o;8454:1085::-;8546:4;8589:1;8571:20;;:6;:20;;;8563:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8641:12;;;;;;;;;;;8636:89;;8665:7;:15;8673:6;8665:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;8684:9;:17;8694:6;8684:17;;;;;;;;;;;;;;;;;;;;;;;;;8665:36;8657:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8636:89;8741:10;;;;;;;;;;;8740:11;:31;;;;;8755:5;:16;8761:9;8755:16;;;;;;;;;;;;;;;;;;;;;;;;;8740:31;8735:64;;;8776:20;:18;:20::i;:::-;8735:64;8829:20;;8814:12;:35;:64;;;;;8869:9;;8853:12;:25;;8814:64;:81;;;;;8882:5;:13;8888:6;8882:13;;;;;;;;;;;;;;;;;;;;;;;;;8814:81;8809:162;;;8934:9;8921:22;;:9;:22;;;8913:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8809:162;9004:4;8986:23;;:6;:23;;;;:53;;;;;9034:4;9013:26;;:9;:26;;;;8986:53;:73;;;;;9053:6;;;;;;;;;;9043:16;;:6;:16;;;;8986:73;8981:179;;;9086:39;9099:6;9107:9;9118:6;9086:12;:39::i;:::-;9078:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;8981:179;9170:18;9191:40;9205:6;9213:9;9224:6;9191:13;:40::i;:::-;9170:61;;9242:23;9277:10;9268:6;:19;;;;:::i;:::-;9242:45;;9338:6;9318:9;:17;9328:6;9318:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9298:9;:17;9308:6;9298:17;;;;;;;;;;;;;;;:46;;;;9376:10;9355:17;;:31;;;;;;;:::i;:::-;;;;;;;;9443:15;9420:9;:20;9430:9;9420:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9397:9;:20;9407:9;9397:20;;;;;;;;;;;;;;;:61;;;;9491:9;9474:35;;9483:6;9474:35;;;9502:6;9474:35;;;;;;:::i;:::-;;;;;;;;9527:4;9520:11;;;;8454:1085;;;;;:::o;7754:369::-;7857:19;7879:7;;;;;;;;;;;7857:29;;7902:8;7897:45;;;7937:1;7915:24;;7897:45;7952:28;7967:12;7952:14;:28::i;:::-;7991:18;;;;;;;;;;;:34;;;8033:13;8058:4;8065:12;8079:1;8082;8085:11;8098:15;7991:124;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7846:277;7754:369;;;:::o;8129:319::-;8211:3;8207:1;2720;2782:2;:13;;;;:::i;:::-;2769:9;:27;;;;:::i;:::-;8192:16;;;;:::i;:::-;:22;;;;:::i;:::-;8173:12;:41;;;;8264:3;8260:1;2720;2782:2;:13;;;;:::i;:::-;2769:9;:27;;;;:::i;:::-;8245:16;;;;:::i;:::-;:22;;;;:::i;:::-;8226:16;:41;;;;8293:4;8278:12;;:19;;;;;;;;;;;;;;;;;;8320:12;8308:9;:24;;;;8422:18;;;;;;;;;;;8366:74;;8401:18;;;;;;;;;;;8366:53;;8389:9;;8366:20;;:32;;;;:::i;:::-;:53;;;;:::i;:::-;:74;;;;:::i;:::-;8343:20;:97;;;;8129:319::o;11610:759::-;4278:4;4265:10;;:17;;;;;;;;;;;;;;;;;;11671:27:::1;11701:17;;11671:47;;11757:11;;11734:19;:34;;:50;;;;;11772:12;;;;;;;;;;;11734:50;11729:633;;;11830:11;;11807:19;:34;11802:80;;11868:11;;11846:33;;11802:80;11910:21;11934:19;11910:43;;2720:1;11989:2;:13;;;;:::i;:::-;11973;:29;11969:231;;;12052:19;12024:9;:24;12042:4;12024:24;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;12090:35;12111:13;12090:20;:35::i;:::-;12165:19;12144:17;;:40;;;;;;;:::i;:::-;;;;;;;;11969:231;12214:27;12244:21;12214:51;;12305:1;12283:19;:23;12280:71;;;12310:38;12328:19;12310:17;:38::i;:::-;12280:71;11787:575;;11729:633;11660:709;4320:5:::0;4307:10;;:18;;;;;;;;;;;;;;;;;;11610:759::o;9545:491::-;9647:4;9664:21;9688:4;9664:28;;9708:12;;;;;;;;;;;:32;;;;;9725:9;:15;9735:4;9725:15;;;;;;;;;;;;;;;;;;;;;;;;;9724:16;9708:32;:57;;;;;9745:9;:20;9755:9;9745:20;;;;;;;;;;;;;;;;;;;;;;;;;9744:21;9708:57;9703:292;;;9805:12;;9788:14;:29;9783:201;;;9841:5;9822:24;;9783:201;;;9874:5;:16;9880:9;9874:16;;;;;;;;;;;;;;;;;;;;;;;;;9873:17;:79;;;;;9935:16;;9918:14;9895:9;:20;9905:9;9895:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;9873:79;9868:116;;;9976:5;9957:24;;9868:116;9783:201;9703:292;10012:16;10005:23;;;9545:491;;;;;:::o;10321:832::-;10416:7;10436:17;10480:12;;;;;;;;;;;10479:13;:30;;;;10496:7;:13;10504:4;10496:13;;;;;;;;;;;;;;;;;;;;;;;;;10479:30;:52;;;;10513:7;:18;10521:9;10513:18;;;;;;;;;;;;;;;;;;;;;;;;;10479:52;10474:643;;;10562:1;10550:13;;10474:643;;;10587:5;:11;10593:4;10587:11;;;;;;;;;;;;;;;;;;;;;;;;;10582:535;;;10671:18;;;;;;;;;;;10638:51;;10650:18;;;;;;;;;;;10638:30;;:9;;:30;;;;:::i;:::-;:51;;;;:::i;:::-;10622:12;:67;10617:393;;10744:3;10732:9;;;;;;;;;;;10723:18;;:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;10711:36;;10617:393;;;10803:18;;;;;;;;;;;10791:30;;:9;;:30;;;;:::i;:::-;10775:12;:46;10770:240;;10879:3;10864:12;;;;;;;;;;;10855:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;10843:39;;10770:240;;;10925:9;;10909:12;:25;10904:106;;10991:3;10976:12;;;;;;;;;;;10967:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;10955:39;;10904:106;10770:240;10617:393;10582:535;;;11032:5;:16;11038:9;11032:16;;;;;;;;;;;;;;;;;;;;;;;;;11027:90;;;11101:3;11088:10;;;;;;;;;;;11079:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11067:37;;11027:90;10582:535;10474:643;11136:9;11129:16;;;10321:832;;;;;:::o;6655:317::-;6775:12;6726:11;:26;6746:4;6726:26;;;;;;;;;;;;;;;:46;3936:42;6726:46;;;;;;;;;;;;;;;;:61;6721:244;;;6854:17;6805:11;:26;6825:4;6805:26;;;;;;;;;;;;;;;:46;3936:42;6805:46;;;;;;;;;;;;;;;:66;;;;3936:42;6891:62;;6908:4;6891:62;;;6935:17;6891:62;;;;;;:::i;:::-;;;;;;;;6721:244;6655:317;:::o;12375:369::-;12445:27;12460:11;12445:14;:27::i;:::-;12483:21;12521:1;12507:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12483:40;;12553:4;12534;12539:1;12534:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;12580:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12570:4;12575:1;12570:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;12617:18;;;;;;;;;;;:69;;;12687:11;12699:1;12701:4;12714;12720:15;12617:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12434:310;12375:369;:::o;12750:103::-;12812:16;;;;;;;;;;;:25;;:33;12838:6;12812:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12750:103;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:89::-;4889:7;4929:6;4922:5;4918:18;4907:29;;4853:89;;;:::o;4948:120::-;5020:23;5037:5;5020:23;:::i;:::-;5013:5;5010:34;5000:62;;5058:1;5055;5048:12;5000:62;4948:120;:::o;5074:137::-;5119:5;5157:6;5144:20;5135:29;;5173:32;5199:5;5173:32;:::i;:::-;5074:137;;;;:::o;5217:470::-;5283:6;5291;5340:2;5328:9;5319:7;5315:23;5311:32;5308:119;;;5346:79;;:::i;:::-;5308:119;5466:1;5491:52;5535:7;5526:6;5515:9;5511:22;5491:52;:::i;:::-;5481:62;;5437:116;5592:2;5618:52;5662:7;5653:6;5642:9;5638:22;5618:52;:::i;:::-;5608:62;;5563:117;5217:470;;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:118::-;6115:24;6133:5;6115:24;:::i;:::-;6110:3;6103:37;6028:118;;:::o;6152:222::-;6245:4;6283:2;6272:9;6268:18;6260:26;;6296:71;6364:1;6353:9;6349:17;6340:6;6296:71;:::i;:::-;6152:222;;;;:::o;6380:474::-;6448:6;6456;6505:2;6493:9;6484:7;6480:23;6476:32;6473:119;;;6511:79;;:::i;:::-;6473:119;6631:1;6656:53;6701:7;6692:6;6681:9;6677:22;6656:53;:::i;:::-;6646:63;;6602:117;6758:2;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6729:118;6380:474;;;;;:::o;6860:104::-;6905:7;6934:24;6952:5;6934:24;:::i;:::-;6923:35;;6860:104;;;:::o;6970:138::-;7051:32;7077:5;7051:32;:::i;:::-;7044:5;7041:43;7031:71;;7098:1;7095;7088:12;7031:71;6970:138;:::o;7114:155::-;7168:5;7206:6;7193:20;7184:29;;7222:41;7257:5;7222:41;:::i;:::-;7114:155;;;;:::o;7275:345::-;7342:6;7391:2;7379:9;7370:7;7366:23;7362:32;7359:119;;;7397:79;;:::i;:::-;7359:119;7517:1;7542:61;7595:7;7586:6;7575:9;7571:22;7542:61;:::i;:::-;7532:71;;7488:125;7275:345;;;;:::o;7626:180::-;7674:77;7671:1;7664:88;7771:4;7768:1;7761:15;7795:4;7792:1;7785:15;7812:102;7854:8;7901:5;7898:1;7894:13;7873:34;;7812:102;;;:::o;7920:848::-;7981:5;7988:4;8012:6;8003:15;;8036:5;8027:14;;8050:712;8071:1;8061:8;8058:15;8050:712;;;8166:4;8161:3;8157:14;8151:4;8148:24;8145:50;;;8175:18;;:::i;:::-;8145:50;8225:1;8215:8;8211:16;8208:451;;;8640:4;8633:5;8629:16;8620:25;;8208:451;8690:4;8684;8680:15;8672:23;;8720:32;8743:8;8720:32;:::i;:::-;8708:44;;8050:712;;;7920:848;;;;;;;:::o;8774:1073::-;8828:5;9019:8;9009:40;;9040:1;9031:10;;9042:5;;9009:40;9068:4;9058:36;;9085:1;9076:10;;9087:5;;9058:36;9154:4;9202:1;9197:27;;;;9238:1;9233:191;;;;9147:277;;9197:27;9215:1;9206:10;;9217:5;;;9233:191;9278:3;9268:8;9265:17;9262:43;;;9285:18;;:::i;:::-;9262:43;9334:8;9331:1;9327:16;9318:25;;9369:3;9362:5;9359:14;9356:40;;;9376:18;;:::i;:::-;9356:40;9409:5;;;9147:277;;9533:2;9523:8;9520:16;9514:3;9508:4;9505:13;9501:36;9483:2;9473:8;9470:16;9465:2;9459:4;9456:12;9452:35;9436:111;9433:246;;;9589:8;9583:4;9579:19;9570:28;;9624:3;9617:5;9614:14;9611:40;;;9631:18;;:::i;:::-;9611:40;9664:5;;9433:246;9704:42;9742:3;9732:8;9726:4;9723:1;9704:42;:::i;:::-;9689:57;;;;9778:4;9773:3;9769:14;9762:5;9759:25;9756:51;;;9787:18;;:::i;:::-;9756:51;9836:4;9829:5;9825:16;9816:25;;8774:1073;;;;;;:::o;9853:281::-;9911:5;9935:23;9953:4;9935:23;:::i;:::-;9927:31;;9979:25;9995:8;9979:25;:::i;:::-;9967:37;;10023:104;10060:66;10050:8;10044:4;10023:104;:::i;:::-;10014:113;;9853:281;;;;:::o;10140:410::-;10180:7;10203:20;10221:1;10203:20;:::i;:::-;10198:25;;10237:20;10255:1;10237:20;:::i;:::-;10232:25;;10292:1;10289;10285:9;10314:30;10332:11;10314:30;:::i;:::-;10303:41;;10493:1;10484:7;10480:15;10477:1;10474:22;10454:1;10447:9;10427:83;10404:139;;10523:18;;:::i;:::-;10404:139;10188:362;10140:410;;;;:::o;10556:166::-;10696:18;10692:1;10684:6;10680:14;10673:42;10556:166;:::o;10728:366::-;10870:3;10891:67;10955:2;10950:3;10891:67;:::i;:::-;10884:74;;10967:93;11056:3;10967:93;:::i;:::-;11085:2;11080:3;11076:12;11069:19;;10728:366;;;:::o;11100:419::-;11266:4;11304:2;11293:9;11289:18;11281:26;;11353:9;11347:4;11343:20;11339:1;11328:9;11324:17;11317:47;11381:131;11507:4;11381:131;:::i;:::-;11373:139;;11100:419;;;:::o;11525:194::-;11565:4;11585:20;11603:1;11585:20;:::i;:::-;11580:25;;11619:20;11637:1;11619:20;:::i;:::-;11614:25;;11663:1;11660;11656:9;11648:17;;11687:1;11681:4;11678:11;11675:37;;;11692:18;;:::i;:::-;11675:37;11525:194;;;;:::o;11725:174::-;11865:26;11861:1;11853:6;11849:14;11842:50;11725:174;:::o;11905:366::-;12047:3;12068:67;12132:2;12127:3;12068:67;:::i;:::-;12061:74;;12144:93;12233:3;12144:93;:::i;:::-;12262:2;12257:3;12253:12;12246:19;;11905:366;;;:::o;12277:419::-;12443:4;12481:2;12470:9;12466:18;12458:26;;12530:9;12524:4;12520:20;12516:1;12505:9;12501:17;12494:47;12558:131;12684:4;12558:131;:::i;:::-;12550:139;;12277:419;;;:::o;12702:180::-;12750:77;12747:1;12740:88;12847:4;12844:1;12837:15;12871:4;12868:1;12861:15;12888:185;12928:1;12945:20;12963:1;12945:20;:::i;:::-;12940:25;;12979:20;12997:1;12979:20;:::i;:::-;12974:25;;13018:1;13008:35;;13023:18;;:::i;:::-;13008:35;13065:1;13062;13058:9;13053:14;;12888:185;;;;:::o;13079:191::-;13119:3;13138:20;13156:1;13138:20;:::i;:::-;13133:25;;13172:20;13190:1;13172:20;:::i;:::-;13167:25;;13215:1;13212;13208:9;13201:16;;13236:3;13233:1;13230:10;13227:36;;;13243:18;;:::i;:::-;13227:36;13079:191;;;;:::o;13276:160::-;13416:12;13412:1;13404:6;13400:14;13393:36;13276:160;:::o;13442:366::-;13584:3;13605:67;13669:2;13664:3;13605:67;:::i;:::-;13598:74;;13681:93;13770:3;13681:93;:::i;:::-;13799:2;13794:3;13790:12;13783:19;;13442:366;;;:::o;13814:419::-;13980:4;14018:2;14007:9;14003:18;13995:26;;14067:9;14061:4;14057:20;14053:1;14042:9;14038:17;14031:47;14095:131;14221:4;14095:131;:::i;:::-;14087:139;;13814:419;;;:::o;14239:164::-;14379:16;14375:1;14367:6;14363:14;14356:40;14239:164;:::o;14409:366::-;14551:3;14572:67;14636:2;14631:3;14572:67;:::i;:::-;14565:74;;14648:93;14737:3;14648:93;:::i;:::-;14766:2;14761:3;14757:12;14750:19;;14409:366;;;:::o;14781:419::-;14947:4;14985:2;14974:9;14970:18;14962:26;;15034:9;15028:4;15024:20;15020:1;15009:9;15005:17;14998:47;15062:131;15188:4;15062:131;:::i;:::-;15054:139;;14781:419;;;:::o;15206:160::-;15346:12;15342:1;15334:6;15330:14;15323:36;15206:160;:::o;15372:366::-;15514:3;15535:67;15599:2;15594:3;15535:67;:::i;:::-;15528:74;;15611:93;15700:3;15611:93;:::i;:::-;15729:2;15724:3;15720:12;15713:19;;15372:366;;;:::o;15744:419::-;15910:4;15948:2;15937:9;15933:18;15925:26;;15997:9;15991:4;15987:20;15983:1;15972:9;15968:17;15961:47;16025:131;16151:4;16025:131;:::i;:::-;16017:139;;15744:419;;;:::o;16169:162::-;16309:14;16305:1;16297:6;16293:14;16286:38;16169:162;:::o;16337:366::-;16479:3;16500:67;16564:2;16559:3;16500:67;:::i;:::-;16493:74;;16576:93;16665:3;16576:93;:::i;:::-;16694:2;16689:3;16685:12;16678:19;;16337:366;;;:::o;16709:419::-;16875:4;16913:2;16902:9;16898:18;16890:26;;16962:9;16956:4;16952:20;16948:1;16937:9;16933:17;16926:47;16990:131;17116:4;16990:131;:::i;:::-;16982:139;;16709:419;;;:::o;17134:166::-;17274:18;17270:1;17262:6;17258:14;17251:42;17134:166;:::o;17306:366::-;17448:3;17469:67;17533:2;17528:3;17469:67;:::i;:::-;17462:74;;17545:93;17634:3;17545:93;:::i;:::-;17663:2;17658:3;17654:12;17647:19;;17306:366;;;:::o;17678:419::-;17844:4;17882:2;17871:9;17867:18;17859:26;;17931:9;17925:4;17921:20;17917:1;17906:9;17902:17;17895:47;17959:131;18085:4;17959:131;:::i;:::-;17951:139;;17678:419;;;:::o;18103:165::-;18243:17;18239:1;18231:6;18227:14;18220:41;18103:165;:::o;18274:366::-;18416:3;18437:67;18501:2;18496:3;18437:67;:::i;:::-;18430:74;;18513:93;18602:3;18513:93;:::i;:::-;18631:2;18626:3;18622:12;18615:19;;18274:366;;;:::o;18646:419::-;18812:4;18850:2;18839:9;18835:18;18827:26;;18899:9;18893:4;18889:20;18885:1;18874:9;18870:17;18863:47;18927:131;19053:4;18927:131;:::i;:::-;18919:139;;18646:419;;;:::o;19071:143::-;19128:5;19159:6;19153:13;19144:22;;19175:33;19202:5;19175:33;:::i;:::-;19071:143;;;;:::o;19220:351::-;19290:6;19339:2;19327:9;19318:7;19314:23;19310:32;19307:119;;;19345:79;;:::i;:::-;19307:119;19465:1;19490:64;19546:7;19537:6;19526:9;19522:22;19490:64;:::i;:::-;19480:74;;19436:128;19220:351;;;;:::o;19577:332::-;19698:4;19736:2;19725:9;19721:18;19713:26;;19749:71;19817:1;19806:9;19802:17;19793:6;19749:71;:::i;:::-;19830:72;19898:2;19887:9;19883:18;19874:6;19830:72;:::i;:::-;19577:332;;;;;:::o;19915:98::-;19966:6;20000:5;19994:12;19984:22;;19915:98;;;:::o;20019:147::-;20120:11;20157:3;20142:18;;20019:147;;;;:::o;20172:386::-;20276:3;20304:38;20336:5;20304:38;:::i;:::-;20358:88;20439:6;20434:3;20358:88;:::i;:::-;20351:95;;20455:65;20513:6;20508:3;20501:4;20494:5;20490:16;20455:65;:::i;:::-;20545:6;20540:3;20536:16;20529:23;;20280:278;20172:386;;;;:::o;20564:271::-;20694:3;20716:93;20805:3;20796:6;20716:93;:::i;:::-;20709:100;;20826:3;20819:10;;20564:271;;;;:::o;20841:166::-;20981:18;20977:1;20969:6;20965:14;20958:42;20841:166;:::o;21013:366::-;21155:3;21176:67;21240:2;21235:3;21176:67;:::i;:::-;21169:74;;21252:93;21341:3;21252:93;:::i;:::-;21370:2;21365:3;21361:12;21354:19;;21013:366;;;:::o;21385:419::-;21551:4;21589:2;21578:9;21574:18;21566:26;;21638:9;21632:4;21628:20;21624:1;21613:9;21609:17;21602:47;21666:131;21792:4;21666:131;:::i;:::-;21658:139;;21385:419;;;:::o;21810:60::-;21838:3;21859:5;21852:12;;21810:60;;;:::o;21876:142::-;21926:9;21959:53;21977:34;21986:24;22004:5;21986:24;:::i;:::-;21977:34;:::i;:::-;21959:53;:::i;:::-;21946:66;;21876:142;;;:::o;22024:126::-;22074:9;22107:37;22138:5;22107:37;:::i;:::-;22094:50;;22024:126;;;:::o;22156:134::-;22214:9;22247:37;22278:5;22247:37;:::i;:::-;22234:50;;22156:134;;;:::o;22296:147::-;22391:45;22430:5;22391:45;:::i;:::-;22386:3;22379:58;22296:147;;:::o;22449:238::-;22550:4;22588:2;22577:9;22573:18;22565:26;;22601:79;22677:1;22666:9;22662:17;22653:6;22601:79;:::i;:::-;22449:238;;;;:::o;22693:179::-;22833:31;22829:1;22821:6;22817:14;22810:55;22693:179;:::o;22878:366::-;23020:3;23041:67;23105:2;23100:3;23041:67;:::i;:::-;23034:74;;23117:93;23206:3;23117:93;:::i;:::-;23235:2;23230:3;23226:12;23219:19;;22878:366;;;:::o;23250:419::-;23416:4;23454:2;23443:9;23439:18;23431:26;;23503:9;23497:4;23493:20;23489:1;23478:9;23474:17;23467:47;23531:131;23657:4;23531:131;:::i;:::-;23523:139;;23250:419;;;:::o;23675:161::-;23815:13;23811:1;23803:6;23799:14;23792:37;23675:161;:::o;23842:366::-;23984:3;24005:67;24069:2;24064:3;24005:67;:::i;:::-;23998:74;;24081:93;24170:3;24081:93;:::i;:::-;24199:2;24194:3;24190:12;24183:19;;23842:366;;;:::o;24214:419::-;24380:4;24418:2;24407:9;24403:18;24395:26;;24467:9;24461:4;24457:20;24453:1;24442:9;24438:17;24431:47;24495:131;24621:4;24495:131;:::i;:::-;24487:139;;24214:419;;;:::o;24639:167::-;24779:19;24775:1;24767:6;24763:14;24756:43;24639:167;:::o;24812:366::-;24954:3;24975:67;25039:2;25034:3;24975:67;:::i;:::-;24968:74;;25051:93;25140:3;25051:93;:::i;:::-;25169:2;25164:3;25160:12;25153:19;;24812:366;;;:::o;25184:419::-;25350:4;25388:2;25377:9;25373:18;25365:26;;25437:9;25431:4;25427:20;25423:1;25412:9;25408:17;25401:47;25465:131;25591:4;25465:131;:::i;:::-;25457:139;;25184:419;;;:::o;25609:85::-;25654:7;25683:5;25672:16;;25609:85;;;:::o;25700:158::-;25758:9;25791:61;25809:42;25818:32;25844:5;25818:32;:::i;:::-;25809:42;:::i;:::-;25791:61;:::i;:::-;25778:74;;25700:158;;;:::o;25864:147::-;25959:45;25998:5;25959:45;:::i;:::-;25954:3;25947:58;25864:147;;:::o;26017:807::-;26266:4;26304:3;26293:9;26289:19;26281:27;;26318:71;26386:1;26375:9;26371:17;26362:6;26318:71;:::i;:::-;26399:72;26467:2;26456:9;26452:18;26443:6;26399:72;:::i;:::-;26481:80;26557:2;26546:9;26542:18;26533:6;26481:80;:::i;:::-;26571;26647:2;26636:9;26632:18;26623:6;26571:80;:::i;:::-;26661:73;26729:3;26718:9;26714:19;26705:6;26661:73;:::i;:::-;26744;26812:3;26801:9;26797:19;26788:6;26744:73;:::i;:::-;26017:807;;;;;;;;;:::o;26830:143::-;26887:5;26918:6;26912:13;26903:22;;26934:33;26961:5;26934:33;:::i;:::-;26830:143;;;;:::o;26979:663::-;27067:6;27075;27083;27132:2;27120:9;27111:7;27107:23;27103:32;27100:119;;;27138:79;;:::i;:::-;27100:119;27258:1;27283:64;27339:7;27330:6;27319:9;27315:22;27283:64;:::i;:::-;27273:74;;27229:128;27396:2;27422:64;27478:7;27469:6;27458:9;27454:22;27422:64;:::i;:::-;27412:74;;27367:129;27535:2;27561:64;27617:7;27608:6;27597:9;27593:22;27561:64;:::i;:::-;27551:74;;27506:129;26979:663;;;;;:::o;27648:180::-;27696:77;27693:1;27686:88;27793:4;27790:1;27783:15;27817:4;27814:1;27807:15;27834:180;27882:77;27879:1;27872:88;27979:4;27976:1;27969:15;28003:4;28000:1;27993:15;28020:114;28087:6;28121:5;28115:12;28105:22;;28020:114;;;:::o;28140:184::-;28239:11;28273:6;28268:3;28261:19;28313:4;28308:3;28304:14;28289:29;;28140:184;;;;:::o;28330:132::-;28397:4;28420:3;28412:11;;28450:4;28445:3;28441:14;28433:22;;28330:132;;;:::o;28468:108::-;28545:24;28563:5;28545:24;:::i;:::-;28540:3;28533:37;28468:108;;:::o;28582:179::-;28651:10;28672:46;28714:3;28706:6;28672:46;:::i;:::-;28750:4;28745:3;28741:14;28727:28;;28582:179;;;;:::o;28767:113::-;28837:4;28869;28864:3;28860:14;28852:22;;28767:113;;;:::o;28916:732::-;29035:3;29064:54;29112:5;29064:54;:::i;:::-;29134:86;29213:6;29208:3;29134:86;:::i;:::-;29127:93;;29244:56;29294:5;29244:56;:::i;:::-;29323:7;29354:1;29339:284;29364:6;29361:1;29358:13;29339:284;;;29440:6;29434:13;29467:63;29526:3;29511:13;29467:63;:::i;:::-;29460:70;;29553:60;29606:6;29553:60;:::i;:::-;29543:70;;29399:224;29386:1;29383;29379:9;29374:14;;29339:284;;;29343:14;29639:3;29632:10;;29040:608;;;28916:732;;;;:::o;29654:831::-;29917:4;29955:3;29944:9;29940:19;29932:27;;29969:71;30037:1;30026:9;30022:17;30013:6;29969:71;:::i;:::-;30050:80;30126:2;30115:9;30111:18;30102:6;30050:80;:::i;:::-;30177:9;30171:4;30167:20;30162:2;30151:9;30147:18;30140:48;30205:108;30308:4;30299:6;30205:108;:::i;:::-;30197:116;;30323:72;30391:2;30380:9;30376:18;30367:6;30323:72;:::i;:::-;30405:73;30473:3;30462:9;30458:19;30449:6;30405:73;:::i;:::-;29654:831;;;;;;;;:::o

Swarm Source

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