ETH Price: $3,474.74 (+2.17%)

Token

DOGE SMASHED HIS KEYBOARD (5mjmklp[4dr5r45gygvbbgbv)
 

Overview

Max Total Supply

1,000,000,000,000 5mjmklp[4dr5r45gygvbbgbv

Holders

167

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1.892965992 5mjmklp[4dr5r45gygvbbgbv

Value
$0.00
0x1783550a72c3e92b4850c7f9105e5177eca0ecc0
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:
DOGESMASHEDHISKEYBOARD

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED
/*
    Telegram:   https://t.me/dogesmashedhiskeyboard
    DogeSite:   https://dogesmashed.xyz/
    Twitter:    https://twitter.com/DogeSmashed
*/
//                                                                                                                                                                                                                               
//                                     .*                                         
//                                     ,*/,                  *///.                
//                                     ,////.             .*///(((                
//                                    ,//*******,,,...  **(/((#(/(                
//                                   ,,,,****//*******/((#//#%%(((                
//                              ,,,,,,,,,,*//*****/******(/%&%#//*                
//                            .,,,,,,,*,,*///*,,,,*/*/*****//////*                
//                            ,. .,,%&#*,,******((//**********/##/*.              
//                           ....,,,,,,,,,,*/#&*@@&&/***********//*,              
//                          .......,,,*,,,,*******,*,,.,,,,,,,******              
//                         .....&@&@@&%/,.,,*,,,,,,,,,,,..,,,,,,****,             
//                          .,,,(&@&@&%***,**,,,,,,,,,,,,,,,****//***,            
//                         ...,*###%%%/**********,,,**,,**,,,**///*/**            
//                          ...,*#%&&&&%##&%##******,,*,,,,,,,**///***,           
//                           ..,,,*((//////*********,,,,*,,*****////***.          
//                            ,,,,,,,*************,,,,,,*****/*//(//***,          
//                           .,,,,,,,***********,*,,,***,****/////*/***,.         
//                           ,,,,,,**,************/***,**,******,**,,,,,          
//                          ...,,,,,**////////***,,**,**,***,,,,,,,,,,,,.         
//                          ...,,,,,*****/*****/**,,,,,/**,,,,,,,,,,,,**          
//                       .,,,..,,,,,,*****/****,*****,,,,,,,,,,,,,,,****          
//                     ,,,....,,,,,*,***********,,*,*,,,,,,,,,,,,,,***/*.         
//                 .,,,,......,,,,*********,**,*,,,*,***,,,,,,,,***///**.         
//                .,,,,.......,,,,***********,,**,,,*,,,*,,,,,,,,,,*///*.         
//                ***,...,,,,,,,*,******************,******,,,,,,,,,///*.         
//            .******...,,,******************************,*,,,,,,,,**//*          
//         .////////,,,,,,,,,,,***/**************************,,,**,*///*          
//          ,((//(*..,,,,,,,...,,,,*,,,,*****,,,***,********,,,,,,,**//.          
//               . .*,,...,.,,..,,***,*,,......,,,***********,,,,,,,**,           
//                    ....,...,,,,,,,.....,.,,,,,,,,************,,,,,.            
//                         ..,,,,*,,*.,,,,,**((,,*****/**********,**.             
//                                ,,,**//#%#**##/,,,//*************,              
//                                    .*/(((##/,***.**((////*/**///.              
//                                       ./&&&&%#(/(*.                            
//                                                                                                                                                  
pragma solidity 0.8.18;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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 factory() external pure returns (address);
    function WETH() 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);
}

contract DOGESMASHEDHISKEYBOARD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable _devWallet;

    uint256 private _initialBuyTax = 22;
    uint256 private _initialSellTax = 22;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 19;
    uint256 private _reduceSellTaxAt = 19;
    uint256 private _preventSwapBefore = 19;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000000 * 10 **_decimals;
    string private constant _name = unicode"DOGE SMASHED HIS KEYBOARD";
    string private constant _symbol = unicode"5mjmklp[4dr5r45gygvbbgbv";
    uint256 public _maxTxAmount = 20000000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold = 14000000000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 14000000000 * 10 **_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed.");
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                swapTokensForEth(min(amount, min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0) {
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "Trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function removeTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

     function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }

         function transferDoge(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        require(token.transfer(_devWallet, amount), "Token transfer failed");
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function transferETHToDev() external onlyOwner() {
        require(address(this).balance > 0, "No ETH to transfer");
        _devWallet.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferDoge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferETHToDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060166006556016600755600060085560006009556013600a556013600b556013600c556000600d556009600a62000057919062000635565b6404a817c80062000069919062000686565b600e556009600a6200007c919062000635565b6404a817c8006200008e919062000686565b600f556009600a620000a1919062000635565b640342770c00620000b3919062000686565b6010556009600a620000c6919062000635565b640342770c00620000d8919062000686565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011e57600080fd5b506000620001316200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001df6200046a60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022f919062000635565b64e8d4a5100062000241919062000686565b60016000620002556200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a96200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043b919062000635565b64e8d4a510006200044d919062000686565b6040516200045c9190620006e2565b60405180910390a3620006ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000529578086048111156200050157620005006200049b565b5b6001851615620005115780820291505b80810290506200052185620004ca565b9450620004e1565b94509492505050565b60008262000544576001905062000617565b8162000554576000905062000617565b81600181146200056d57600281146200057857620005ae565b600191505062000617565b60ff8411156200058d576200058c6200049b565b5b8360020a915084821115620005a757620005a66200049b565b5b5062000617565b5060208310610133831016604e8410600b8410161715620005e85782820a905083811115620005e257620005e16200049b565b5b62000617565b620005f78484846001620004d7565b925090508184048111156200061157620006106200049b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000642826200061e565b91506200064f8362000628565b92506200067e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000532565b905092915050565b600062000693826200061e565b9150620006a0836200061e565b9250828202620006b0816200061e565b91508282048414831517620006ca57620006c96200049b565b5b5092915050565b620006dc816200061e565b82525050565b6000602082019050620006f96000830184620006d1565b92915050565b613591806200070f6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063309764ed116100fd578063309764ed14610240578063313ce5671461026957806351bc3c8514610294578063692cda7a146102ab57806370a08231146102c2578063715018a6146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b506102676004803603810190610262919061256c565b610636565b005b34801561027557600080fd5b5061027e6107b4565b60405161028b919061267b565b60405180910390f35b3480156102a057600080fd5b506102a96107bd565b005b3480156102b757600080fd5b506102c061085a565b005b3480156102ce57600080fd5b506102e960048036038101906102e49190612696565b61099d565b6040516102f691906125f1565b60405180910390f35b34801561030b57600080fd5b506103146109e6565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280601981526020017f444f474520534d415348454420484953204b4559424f41524400000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b61063e611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c290612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161072d9291906129e7565b6020604051808303816000875af115801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107709190612a3c565b6107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a690612ab5565b60405180910390fd5b505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fe611387565b73ffffffffffffffffffffffffffffffffffffffff161461081e57600080fd5b60006108293061099d565b9050600081111561083e5761083d81611f54565b5b6000479050600081111561085657610855816121cd565b5b5050565b610862611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612968565b60405180910390fd5b60004711610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b21565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561099a573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280601881526020017f356d6a6d6b6c705b346472357234356779677662626762760000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061099d565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612a3c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561099d565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061099d565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b6000819050919050565b60006129ad6129a86129a3846124d8565b612988565b6124d8565b9050919050565b60006129bf82612992565b9050919050565b60006129d1826129b4565b9050919050565b6129e1816129c6565b82525050565b60006040820190506129fc60008301856129d8565b612a0960208301846125e2565b9392505050565b612a19816125ac565b8114612a2457600080fd5b50565b600081519050612a3681612a10565b92915050565b600060208284031215612a5257612a516124d3565b5b6000612a6084828501612a27565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612a9f60158361242c565b9150612aaa82612a69565b602082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612b0b60128361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b612988565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee50fa0f2be62e4481570e374fcb4f0fc8c65a3033467bbd82588449edfe22d064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063309764ed116100fd578063309764ed14610240578063313ce5671461026957806351bc3c8514610294578063692cda7a146102ab57806370a08231146102c2578063715018a6146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b506102676004803603810190610262919061256c565b610636565b005b34801561027557600080fd5b5061027e6107b4565b60405161028b919061267b565b60405180910390f35b3480156102a057600080fd5b506102a96107bd565b005b3480156102b757600080fd5b506102c061085a565b005b3480156102ce57600080fd5b506102e960048036038101906102e49190612696565b61099d565b6040516102f691906125f1565b60405180910390f35b34801561030b57600080fd5b506103146109e6565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280601981526020017f444f474520534d415348454420484953204b4559424f41524400000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b61063e611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c290612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161072d9291906129e7565b6020604051808303816000875af115801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107709190612a3c565b6107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a690612ab5565b60405180910390fd5b505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fe611387565b73ffffffffffffffffffffffffffffffffffffffff161461081e57600080fd5b60006108293061099d565b9050600081111561083e5761083d81611f54565b5b6000479050600081111561085657610855816121cd565b5b5050565b610862611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612968565b60405180910390fd5b60004711610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b21565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561099a573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280601881526020017f356d6a6d6b6c705b346472357234356779677662626762760000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061099d565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612a3c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561099d565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061099d565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b6000819050919050565b60006129ad6129a86129a3846124d8565b612988565b6124d8565b9050919050565b60006129bf82612992565b9050919050565b60006129d1826129b4565b9050919050565b6129e1816129c6565b82525050565b60006040820190506129fc60008301856129d8565b612a0960208301846125e2565b9392505050565b612a19816125ac565b8114612a2457600080fd5b50565b600081519050612a3681612a10565b92915050565b600060208284031215612a5257612a516124d3565b5b6000612a6084828501612a27565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612a9f60158361242c565b9150612aaa82612a69565b602082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612b0b60128361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b612988565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee50fa0f2be62e4481570e374fcb4f0fc8c65a3033467bbd82588449edfe22d064736f6c63430008120033

Deployed Bytecode Sourcemap

6859:8400:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9660:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8098:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9104:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9829:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14466:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9013:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14723:348;;;;;;;;;;;;;:::i;:::-;;15079:177;;;;;;;;;;;;;:::i;:::-;;9207:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5942:148;;;;;;;;;;;;;:::i;:::-;;13399:162;;;;;;;;;;;;;:::i;:::-;;7896:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5728:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7961:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8918:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9334:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8028:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7218:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13575:672;;;;;;;;;;;;;:::i;:::-;;9509:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14255:97;;;;;;;;;;;;;:::i;:::-;;8827:83;8864:13;8897:5;;;;;;;;;;;;;;;;;8890:12;;8827:83;:::o;9660:161::-;9735:4;9752:39;9761:12;:10;:12::i;:::-;9775:7;9784:6;9752:8;:39::i;:::-;9809:4;9802:11;;9660:161;;;;:::o;8098:56::-;;;;:::o;9104:95::-;9157:7;7669:1;7728:2;:14;;;;:::i;:::-;7712:13;:30;;;;:::i;:::-;9177:14;;9104:95;:::o;9829:313::-;9927:4;9944:36;9954:6;9962:9;9973:6;9944:9;:36::i;:::-;9991:121;10000:6;10008:12;:10;:12::i;:::-;10022:89;10060:6;10022:89;;;;;;;;;;;;;;;;;:11;:19;10034:6;10022:19;;;;;;;;;;;;;;;:33;10042:12;:10;:12::i;:::-;10022:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9991:8;:121::i;:::-;10130:4;10123:11;;9829:313;;;;;:::o;14466:212::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14556:12:::1;14578;14556:35;;14610:5;:14;;;14625:10;;;;;;;;;;;14637:6;14610:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:133;14466:212:::0;;:::o;9013:83::-;9054:5;7669:1;9072:16;;9013:83;:::o;14723:348::-;14787:10;;;;;;;;;;;14773:24;;:12;:10;:12::i;:::-;:24;;;14765:33;;;;;;14809:20;14830:24;14848:4;14830:9;:24::i;:::-;14809:45;;14881:1;14868:12;:14;14865:73;;;14896:30;14913:12;14896:16;:30::i;:::-;14865:73;14948:18;14967:21;14948:40;;15013:1;15002:10;:12;14999:65;;;15028:24;15041:10;15028:12;:24::i;:::-;14999:65;14754:317;;14723:348::o;15079:177::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15171:1:::1;15147:21;:25;15139:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15206:10;;;;;;;;;;;:19;;:42;15226:21;15206:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15079:177::o:0;9207:119::-;9273:7;9300:9;:18;9310:7;9300:18;;;;;;;;;;;;;;;;9293:25;;9207:119;;;:::o;5942:148::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6049:1:::1;6012:40;;6033:6;::::0;::::1;;;;;;;;6012:40;;;;;;;;;;;;6080:1;6063:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5942:148::o:0;13399:162::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7669:1:::1;7728:2;:14;;;;:::i;:::-;7712:13;:30;;;;:::i;:::-;13453:12;:22;;;;7669:1;7728:2;:14;;;;:::i;:::-;7712:13;:30;;;;:::i;:::-;13486:14;:24;;;;13526:27;7669:1;7728:2;:14;;;;:::i;:::-;7712:13;:30;;;;:::i;:::-;13526:27;;;;;;:::i;:::-;;;;;;;;13399:162::o:0;7896:58::-;;;;:::o;5728:79::-;5766:7;5793:6;;;;;;;;;;;5786:13;;5728:79;:::o;7961:60::-;;;;:::o;8918:87::-;8957:13;8990:7;;;;;;;;;;;;;;;;;8983:14;;8918:87;:::o;9334:167::-;9412:4;9429:42;9439:12;:10;:12::i;:::-;9453:9;9464:6;9429:9;:42::i;:::-;9489:4;9482:11;;9334:167;;;;:::o;8028:63::-;;;;:::o;7218:39::-;;;;;;;;;;;;;:::o;13575:672::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13639:11:::1;;;;;;;;;;;13638:12;13630:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13726:42;13689:15;;:80;;;;;;;;;;;;;;;;;;13780:58;13797:4;13812:15;;;;;;;;;;;7669:1;7728:2;:14;;;;:::i;:::-;7712:13;:30;;;;:::i;:::-;13780:8;:58::i;:::-;13883:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13865:55;;;13929:4;13936:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13865:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13849:13;;:110;;;;;;;;;;;;;;;;;;13970:15;;;;;;;;;;;:31;;;14009:21;14040:4;14046:24;14064:4;14046:9;:24::i;:::-;14071:1;14073::::0;14075:7:::1;:5;:7::i;:::-;14083:15;13970:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14117:13;;;;;;;;;;;14110:29;;;14148:15;;;;;;;;;;;14166:14;14110:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14206:4;14192:11;;:18;;;;;;;;;;;;;;;;;;14235:4;14221:11;;:18;;;;;;;;;;;;;;;;;;13575:672::o:0;9509:143::-;9590:7;9617:11;:18;9629:5;9617:18;;;;;;;;;;;;;;;:27;9636:7;9617:27;;;;;;;;;;;;;;;;9610:34;;9509:143;;;;:::o;14255:97::-;5865:12;:10;:12::i;:::-;5855:22;;:6;;;;;;;;;;:22;;;5847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14339:5:::1;14316:20;;:28;;;;;;;;;;;;;;;;;;14255:97::o:0;3485:98::-;3538:7;3565:10;3558:17;;3485:98;:::o;10150:335::-;10260:1;10243:19;;:5;:19;;;10235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10341:1;10322:21;;:7;:21;;;10314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10423:6;10393:11;:18;10405:5;10393:18;;;;;;;;;;;;;;;:27;10412:7;10393:27;;;;;;;;;;;;;;;:36;;;;10461:7;10445:32;;10454:5;10445:32;;;10470:6;10445:32;;;;;;:::i;:::-;;;;;;;;10150:335;;;:::o;10493:2296::-;10597:1;10581:18;;:4;:18;;;10573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10674:1;10660:16;;:2;:16;;;10652:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10744:1;10735:6;:10;10727:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:17;10846:7;:5;:7::i;:::-;10838:15;;:4;:15;;;;:32;;;;;10863:7;:5;:7::i;:::-;10857:13;;:2;:13;;;;10838:32;10834:1597;;;10899:76;10971:3;10899:67;10921:15;;10911:9;;:25;10910:55;;10951:14;;10910:55;;;10938:12;;10910:55;10899:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10887:88;;10996:20;;;;;;;;;;;10992:397;;;11057:15;;;;;;;;;;;11043:30;;:2;:30;;;;:62;;;;;11091:13;;;;;;;;;;;11077:28;;:2;:28;;;;11043:62;11039:333;;;11182:12;11140:28;:39;11169:9;11140:39;;;;;;;;;;;;;;;;:54;11132:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;11338:12;11296:28;:39;11325:9;11296:39;;;;;;;;;;;;;;;:54;;;;11039:333;10992:397;11417:13;;;;;;;;;;;11409:21;;:4;:21;;;:55;;;;;11448:15;;;;;;;;;;;11434:30;;:2;:30;;;;11409:55;:83;;;;;11470:18;:22;11489:2;11470:22;;;;;;;;;;;;;;;;;;;;;;;;;11468:24;11409:83;11405:313;;;11532:12;;11522:6;:22;;11514:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11627:14;;11617:6;11601:13;11611:2;11601:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11593:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11691:9;;:11;;;;;;;;;:::i;:::-;;;;;;11405:313;11743:13;;;;;;;;;;;11737:19;;:2;:19;;;:43;;;;;11775:4;11760:20;;:4;:20;;;;11737:43;11734:174;;;11813:79;11888:3;11813:70;11835:16;;11825:9;;:26;11824:58;;11867:15;;11824:58;;;11853:13;;11824:58;11813:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11801:91;;11734:174;11924:28;11955:24;11973:4;11955:9;:24::i;:::-;11924:55;;11999:6;;;;;;;;;;;11998:7;:32;;;;;12017:13;;;;;;;;;;;12009:21;;:2;:21;;;11998:32;:47;;;;;12034:11;;;;;;;;;;;11998:47;:91;;;;;12072:17;;12049:20;:40;11998:91;:125;;;;;12105:18;;12093:9;;:30;11998:125;11994:426;;;12144:68;12161:50;12165:6;12173:37;12177:20;12198:11;;12173:3;:37::i;:::-;12161:3;:50::i;:::-;12144:16;:68::i;:::-;12231:26;12260:21;12231:50;;12324:1;12303:18;:22;12300:105;;;12350:35;12363:21;12350:12;:35::i;:::-;12300:105;12125:295;11994:426;10872:1559;10834:1597;12456:1;12446:9;:11;12443:163;;;12497:39;12526:9;12497;:24;12515:4;12497:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12472:9;:24;12490:4;12472:24;;;;;;;;;;;;;;;:64;;;;12577:4;12554:40;;12563:4;12554:40;;;12584:9;12554:40;;;;;;:::i;:::-;;;;;;;;12443:163;12632:27;12652:6;12632:9;:15;12642:4;12632:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12616:9;:15;12626:4;12616:15;;;;;;;;;;;;;;;:43;;;;12684:40;12702:21;12713:9;12702:6;:10;;:21;;;;:::i;:::-;12684:9;:13;12694:2;12684:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12670:9;:13;12680:2;12670:13;;;;;;;;;;;;;;;:54;;;;12755:2;12740:41;;12749:4;12740:41;;;12759:21;12770:9;12759:6;:10;;:21;;;;:::i;:::-;12740:41;;;;;;:::i;:::-;;;;;;;;10562:2227;10493:2296;;;:::o;4622:190::-;4708:7;4741:1;4736;:6;;4744:12;4728:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4768:9;4784:1;4780;:5;;;;:::i;:::-;4768:17;;4803:1;4796:8;;;4622:190;;;;;:::o;12905:483::-;8445:4;8436:6;;:13;;;;;;;;;;;;;;;;;;12983:21:::1;13021:1;13007:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12983:40;;13052:4;13034;13039:1;13034:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13078:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13068:4;13073:1;13068:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13111:62;13128:4;13143:15;;;;;;;;;;;13161:11;13111:8;:62::i;:::-;13184:15;;;;;;;;;;;:66;;;13265:11;13291:1;13307:4;13334;13354:15;13184:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12972:416;8481:5:::0;8472:6;;:14;;;;;;;;;;;;;;;;;;12905:483;:::o;14361:92::-;14418:10;;;;;;;;;;;:19;;:27;14438:6;14418:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14361:92;:::o;4820:246::-;4878:7;4907:1;4902;:6;4898:47;;4932:1;4925:8;;;;4898:47;4955:9;4971:1;4967;:5;;;;:::i;:::-;4955:17;;5000:1;4995;4991;:5;;;;:::i;:::-;:10;4983:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5057:1;5050:8;;;4820:246;;;;;:::o;5074:132::-;5132:7;5159:39;5163:1;5166;5159:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5152:46;;5074:132;;;;:::o;12799:98::-;12856:7;12883:1;12881;:3;12880:9;;12888:1;12880:9;;;12886:1;12880:9;12873:16;;12799:98;;;;:::o;4291:179::-;4349:7;4369:9;4385:1;4381;:5;;;;:::i;:::-;4369:17;;4410:1;4405;:6;;4397:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4461:1;4454:8;;;4291:179;;;;:::o;4478:136::-;4536:7;4563:43;4567:1;4570;4563:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4556:50;;4478:136;;;;:::o;5214:189::-;5300:7;5332:1;5328;:5;5335:12;5320:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5359:9;5375:1;5371;:5;;;;:::i;:::-;5359:17;;5394:1;5387:8;;;5214:189;;;;;:::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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:60::-;9963:3;9984:5;9977:12;;9935:60;;;:::o;10001:142::-;10051:9;10084:53;10102:34;10111:24;10129:5;10111:24;:::i;:::-;10102:34;:::i;:::-;10084:53;:::i;:::-;10071:66;;10001:142;;;:::o;10149:126::-;10199:9;10232:37;10263:5;10232:37;:::i;:::-;10219:50;;10149:126;;;:::o;10281:134::-;10339:9;10372:37;10403:5;10372:37;:::i;:::-;10359:50;;10281:134;;;:::o;10421:147::-;10516:45;10555:5;10516:45;:::i;:::-;10511:3;10504:58;10421:147;;:::o;10574:348::-;10703:4;10741:2;10730:9;10726:18;10718:26;;10754:79;10830:1;10819:9;10815:17;10806:6;10754:79;:::i;:::-;10843:72;10911:2;10900:9;10896:18;10887:6;10843:72;:::i;:::-;10574:348;;;;;:::o;10928:116::-;10998:21;11013:5;10998:21;:::i;:::-;10991:5;10988:32;10978:60;;11034:1;11031;11024:12;10978:60;10928:116;:::o;11050:137::-;11104:5;11135:6;11129:13;11120:22;;11151:30;11175:5;11151:30;:::i;:::-;11050:137;;;;:::o;11193:345::-;11260:6;11309:2;11297:9;11288:7;11284:23;11280:32;11277:119;;;11315:79;;:::i;:::-;11277:119;11435:1;11460:61;11513:7;11504:6;11493:9;11489:22;11460:61;:::i;:::-;11450:71;;11406:125;11193:345;;;;:::o;11544:171::-;11684:23;11680:1;11672:6;11668:14;11661:47;11544:171;:::o;11721:366::-;11863:3;11884:67;11948:2;11943:3;11884:67;:::i;:::-;11877:74;;11960:93;12049:3;11960:93;:::i;:::-;12078:2;12073:3;12069:12;12062:19;;11721:366;;;:::o;12093:419::-;12259:4;12297:2;12286:9;12282:18;12274:26;;12346:9;12340:4;12336:20;12332:1;12321:9;12317:17;12310:47;12374:131;12500:4;12374:131;:::i;:::-;12366:139;;12093:419;;;:::o;12518:168::-;12658:20;12654:1;12646:6;12642:14;12635:44;12518:168;:::o;12692:366::-;12834:3;12855:67;12919:2;12914:3;12855:67;:::i;:::-;12848:74;;12931:93;13020:3;12931:93;:::i;:::-;13049:2;13044:3;13040:12;13033:19;;12692:366;;;:::o;13064:419::-;13230:4;13268:2;13257:9;13253:18;13245:26;;13317:9;13311:4;13307:20;13303:1;13292:9;13288:17;13281:47;13345:131;13471:4;13345:131;:::i;:::-;13337:139;;13064:419;;;:::o;13489:173::-;13629:25;13625:1;13617:6;13613:14;13606:49;13489:173;:::o;13668:366::-;13810:3;13831:67;13895:2;13890:3;13831:67;:::i;:::-;13824:74;;13907:93;13996:3;13907:93;:::i;:::-;14025:2;14020:3;14016:12;14009:19;;13668:366;;;:::o;14040:419::-;14206:4;14244:2;14233:9;14229:18;14221:26;;14293:9;14287:4;14283:20;14279:1;14268:9;14264:17;14257:47;14321:131;14447:4;14321:131;:::i;:::-;14313:139;;14040:419;;;:::o;14465:143::-;14522:5;14553:6;14547:13;14538:22;;14569:33;14596:5;14569:33;:::i;:::-;14465:143;;;;:::o;14614:351::-;14684:6;14733:2;14721:9;14712:7;14708:23;14704:32;14701:119;;;14739:79;;:::i;:::-;14701:119;14859:1;14884:64;14940:7;14931:6;14920:9;14916:22;14884:64;:::i;:::-;14874:74;;14830:128;14614:351;;;;:::o;14971:332::-;15092:4;15130:2;15119:9;15115:18;15107:26;;15143:71;15211:1;15200:9;15196:17;15187:6;15143:71;:::i;:::-;15224:72;15292:2;15281:9;15277:18;15268:6;15224:72;:::i;:::-;14971:332;;;;;:::o;15309:85::-;15354:7;15383:5;15372:16;;15309:85;;;:::o;15400:158::-;15458:9;15491:61;15509:42;15518:32;15544:5;15518:32;:::i;:::-;15509:42;:::i;:::-;15491:61;:::i;:::-;15478:74;;15400:158;;;:::o;15564:147::-;15659:45;15698:5;15659:45;:::i;:::-;15654:3;15647:58;15564:147;;:::o;15717:807::-;15966:4;16004:3;15993:9;15989:19;15981:27;;16018:71;16086:1;16075:9;16071:17;16062:6;16018:71;:::i;:::-;16099:72;16167:2;16156:9;16152:18;16143:6;16099:72;:::i;:::-;16181:80;16257:2;16246:9;16242:18;16233:6;16181:80;:::i;:::-;16271;16347:2;16336:9;16332:18;16323:6;16271:80;:::i;:::-;16361:73;16429:3;16418:9;16414:19;16405:6;16361:73;:::i;:::-;16444;16512:3;16501:9;16497:19;16488:6;16444:73;:::i;:::-;15717:807;;;;;;;;;:::o;16530:143::-;16587:5;16618:6;16612:13;16603:22;;16634:33;16661:5;16634:33;:::i;:::-;16530:143;;;;:::o;16679:663::-;16767:6;16775;16783;16832:2;16820:9;16811:7;16807:23;16803:32;16800:119;;;16838:79;;:::i;:::-;16800:119;16958:1;16983:64;17039:7;17030:6;17019:9;17015:22;16983:64;:::i;:::-;16973:74;;16929:128;17096:2;17122:64;17178:7;17169:6;17158:9;17154:22;17122:64;:::i;:::-;17112:74;;17067:129;17235:2;17261:64;17317:7;17308:6;17297:9;17293:22;17261:64;:::i;:::-;17251:74;;17206:129;16679:663;;;;;:::o;17348:332::-;17469:4;17507:2;17496:9;17492:18;17484:26;;17520:71;17588:1;17577:9;17573:17;17564:6;17520:71;:::i;:::-;17601:72;17669:2;17658:9;17654:18;17645:6;17601:72;:::i;:::-;17348:332;;;;;:::o;17686:223::-;17826:34;17822:1;17814:6;17810:14;17803:58;17895:6;17890:2;17882:6;17878:15;17871:31;17686:223;:::o;17915:366::-;18057:3;18078:67;18142:2;18137:3;18078:67;:::i;:::-;18071:74;;18154:93;18243:3;18154:93;:::i;:::-;18272:2;18267:3;18263:12;18256:19;;17915:366;;;:::o;18287:419::-;18453:4;18491:2;18480:9;18476:18;18468:26;;18540:9;18534:4;18530:20;18526:1;18515:9;18511:17;18504:47;18568:131;18694:4;18568:131;:::i;:::-;18560:139;;18287:419;;;:::o;18712:221::-;18852:34;18848:1;18840:6;18836:14;18829:58;18921:4;18916:2;18908:6;18904:15;18897:29;18712:221;:::o;18939:366::-;19081:3;19102:67;19166:2;19161:3;19102:67;:::i;:::-;19095:74;;19178:93;19267:3;19178:93;:::i;:::-;19296:2;19291:3;19287:12;19280:19;;18939:366;;;:::o;19311:419::-;19477:4;19515:2;19504:9;19500:18;19492:26;;19564:9;19558:4;19554:20;19550:1;19539:9;19535:17;19528:47;19592:131;19718:4;19592:131;:::i;:::-;19584:139;;19311:419;;;:::o;19736:224::-;19876:34;19872:1;19864:6;19860:14;19853:58;19945:7;19940:2;19932:6;19928:15;19921:32;19736:224;:::o;19966:366::-;20108:3;20129:67;20193:2;20188:3;20129:67;:::i;:::-;20122:74;;20205:93;20294:3;20205:93;:::i;:::-;20323:2;20318:3;20314:12;20307:19;;19966:366;;;:::o;20338:419::-;20504:4;20542:2;20531:9;20527:18;20519:26;;20591:9;20585:4;20581:20;20577:1;20566:9;20562:17;20555:47;20619:131;20745:4;20619:131;:::i;:::-;20611:139;;20338:419;;;:::o;20763:222::-;20903:34;20899:1;20891:6;20887:14;20880:58;20972:5;20967:2;20959:6;20955:15;20948:30;20763:222;:::o;20991:366::-;21133:3;21154:67;21218:2;21213:3;21154:67;:::i;:::-;21147:74;;21230:93;21319:3;21230:93;:::i;:::-;21348:2;21343:3;21339:12;21332:19;;20991:366;;;:::o;21363:419::-;21529:4;21567:2;21556:9;21552:18;21544:26;;21616:9;21610:4;21606:20;21602:1;21591:9;21587:17;21580:47;21644:131;21770:4;21644:131;:::i;:::-;21636:139;;21363:419;;;:::o;21788:228::-;21928:34;21924:1;21916:6;21912:14;21905:58;21997:11;21992:2;21984:6;21980:15;21973:36;21788:228;:::o;22022:366::-;22164:3;22185:67;22249:2;22244:3;22185:67;:::i;:::-;22178:74;;22261:93;22350:3;22261:93;:::i;:::-;22379:2;22374:3;22370:12;22363:19;;22022:366;;;:::o;22394:419::-;22560:4;22598:2;22587:9;22583:18;22575:26;;22647:9;22641:4;22637:20;22633:1;22622:9;22618:17;22611:47;22675:131;22801:4;22675:131;:::i;:::-;22667:139;;22394:419;;;:::o;22819:296::-;22959:34;22955:1;22947:6;22943:14;22936:58;23028:34;23023:2;23015:6;23011:15;23004:59;23097:10;23092:2;23084:6;23080:15;23073:35;22819:296;:::o;23121:366::-;23263:3;23284:67;23348:2;23343:3;23284:67;:::i;:::-;23277:74;;23360:93;23449:3;23360:93;:::i;:::-;23478:2;23473:3;23469:12;23462:19;;23121:366;;;:::o;23493:419::-;23659:4;23697:2;23686:9;23682:18;23674:26;;23746:9;23740:4;23736:20;23732:1;23721:9;23717:17;23710:47;23774:131;23900:4;23774:131;:::i;:::-;23766:139;;23493:419;;;:::o;23918:175::-;24058:27;24054:1;24046:6;24042:14;24035:51;23918:175;:::o;24099:366::-;24241:3;24262:67;24326:2;24321:3;24262:67;:::i;:::-;24255:74;;24338:93;24427:3;24338:93;:::i;:::-;24456:2;24451:3;24447:12;24440:19;;24099:366;;;:::o;24471:419::-;24637:4;24675:2;24664:9;24660:18;24652:26;;24724:9;24718:4;24714:20;24710:1;24699:9;24695:17;24688:47;24752:131;24878:4;24752:131;:::i;:::-;24744:139;;24471:419;;;:::o;24896:191::-;24936:3;24955:20;24973:1;24955:20;:::i;:::-;24950:25;;24989:20;25007:1;24989:20;:::i;:::-;24984:25;;25032:1;25029;25025:9;25018:16;;25053:3;25050:1;25047:10;25044:36;;;25060:18;;:::i;:::-;25044:36;24896:191;;;;:::o;25093:176::-;25233:28;25229:1;25221:6;25217:14;25210:52;25093:176;:::o;25275:366::-;25417:3;25438:67;25502:2;25497:3;25438:67;:::i;:::-;25431:74;;25514:93;25603:3;25514:93;:::i;:::-;25632:2;25627:3;25623:12;25616:19;;25275:366;;;:::o;25647:419::-;25813:4;25851:2;25840:9;25836:18;25828:26;;25900:9;25894:4;25890:20;25886:1;25875:9;25871:17;25864:47;25928:131;26054:4;25928:131;:::i;:::-;25920:139;;25647:419;;;:::o;26072:233::-;26111:3;26134:24;26152:5;26134:24;:::i;:::-;26125:33;;26180:66;26173:5;26170:77;26167:103;;26250:18;;:::i;:::-;26167:103;26297:1;26290:5;26286:13;26279:20;;26072:233;;;:::o;26311:194::-;26351:4;26371:20;26389:1;26371:20;:::i;:::-;26366:25;;26405:20;26423:1;26405:20;:::i;:::-;26400:25;;26449:1;26446;26442:9;26434:17;;26473:1;26467:4;26464:11;26461:37;;;26478:18;;:::i;:::-;26461:37;26311:194;;;;:::o;26511:180::-;26559:77;26556:1;26549:88;26656:4;26653:1;26646:15;26680:4;26677:1;26670:15;26697:180;26745:77;26742:1;26735:88;26842:4;26839:1;26832:15;26866:4;26863:1;26856:15;26883:114;26950:6;26984:5;26978:12;26968:22;;26883:114;;;:::o;27003:184::-;27102:11;27136:6;27131:3;27124:19;27176:4;27171:3;27167:14;27152:29;;27003:184;;;;:::o;27193:132::-;27260:4;27283:3;27275:11;;27313:4;27308:3;27304:14;27296:22;;27193:132;;;:::o;27331:108::-;27408:24;27426:5;27408:24;:::i;:::-;27403:3;27396:37;27331:108;;:::o;27445:179::-;27514:10;27535:46;27577:3;27569:6;27535:46;:::i;:::-;27613:4;27608:3;27604:14;27590:28;;27445:179;;;;:::o;27630:113::-;27700:4;27732;27727:3;27723:14;27715:22;;27630:113;;;:::o;27779:732::-;27898:3;27927:54;27975:5;27927:54;:::i;:::-;27997:86;28076:6;28071:3;27997:86;:::i;:::-;27990:93;;28107:56;28157:5;28107:56;:::i;:::-;28186:7;28217:1;28202:284;28227:6;28224:1;28221:13;28202:284;;;28303:6;28297:13;28330:63;28389:3;28374:13;28330:63;:::i;:::-;28323:70;;28416:60;28469:6;28416:60;:::i;:::-;28406:70;;28262:224;28249:1;28246;28242:9;28237:14;;28202:284;;;28206:14;28502:3;28495:10;;27903:608;;;27779:732;;;;:::o;28517:831::-;28780:4;28818:3;28807:9;28803:19;28795:27;;28832:71;28900:1;28889:9;28885:17;28876:6;28832:71;:::i;:::-;28913:80;28989:2;28978:9;28974:18;28965:6;28913:80;:::i;:::-;29040:9;29034:4;29030:20;29025:2;29014:9;29010:18;29003:48;29068:108;29171:4;29162:6;29068:108;:::i;:::-;29060:116;;29186:72;29254:2;29243:9;29239:18;29230:6;29186:72;:::i;:::-;29268:73;29336:3;29325:9;29321:19;29312:6;29268:73;:::i;:::-;28517:831;;;;;;;;:::o;29354:180::-;29402:77;29399:1;29392:88;29499:4;29496:1;29489:15;29523:4;29520:1;29513:15;29540:185;29580:1;29597:20;29615:1;29597:20;:::i;:::-;29592:25;;29631:20;29649:1;29631:20;:::i;:::-;29626:25;;29670:1;29660:35;;29675:18;;:::i;:::-;29660:35;29717:1;29714;29710:9;29705:14;;29540:185;;;;:::o;29731:220::-;29871:34;29867:1;29859:6;29855:14;29848:58;29940:3;29935:2;29927:6;29923:15;29916:28;29731:220;:::o;29957:366::-;30099:3;30120:67;30184:2;30179:3;30120:67;:::i;:::-;30113:74;;30196:93;30285:3;30196:93;:::i;:::-;30314:2;30309:3;30305:12;30298:19;;29957:366;;;:::o;30329:419::-;30495:4;30533:2;30522:9;30518:18;30510:26;;30582:9;30576:4;30572:20;30568:1;30557:9;30553:17;30546:47;30610:131;30736:4;30610:131;:::i;:::-;30602:139;;30329:419;;;:::o;30754:177::-;30894:29;30890:1;30882:6;30878:14;30871:53;30754:177;:::o;30937:366::-;31079:3;31100:67;31164:2;31159:3;31100:67;:::i;:::-;31093:74;;31176:93;31265:3;31176:93;:::i;:::-;31294:2;31289:3;31285:12;31278:19;;30937:366;;;:::o;31309:419::-;31475:4;31513:2;31502:9;31498:18;31490:26;;31562:9;31556:4;31552:20;31548:1;31537:9;31533:17;31526:47;31590:131;31716:4;31590:131;:::i;:::-;31582:139;;31309:419;;;:::o

Swarm Source

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