ETH Price: $3,522.58 (+2.97%)
Gas: 4 Gwei

Token

HarryPotterObamaSonicHat10Inu (HAT)
 

Overview

Max Total Supply

1,000,000,000,000 HAT

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
worst-trader-ever.eth
Balance
2,094,531,094.232541524 HAT

Value
$0.00
0x4c74c21d006e855b45232e2a21144e47f1fe1d08
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:
HAT

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-29
*/

// SPDX-License-Identifier: UNLICENSED
/*
    Telegram:   https://t.me/hposH10i
    HATsite:    https://hposh10i.xyz/
    Twitter:    https://twitter.com/hposH10i
*/
//                                                                               
//                                         #@%%%%%%%%%%%%                         
//                                     @%%%%%%%%%.                                
//                                %%%%%%%%%%%%%@                                  
//                               @%%%%%%%%%%%%%%.                                 
//                               %%%%%%%%%%%%%%@                                  
//                             @%%%%@%%@%%%%%%%%%%                                
//                            @%%%%%%%%%%%%%@%@%%%/                               
//                          %%%%%%%&@%&@%%%%%%%%%%.                               
//                        %%%%%%%%%%%%%%%%%%%%%%%%%%                              
//                       @%%%%%%%%%%%%%%%%%%%%%  #    @%%%%%%%%%%%%%%%@           
//                        %%%%%%@%%%%@%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%&          
//                 @%%%%@%%%%%%%%%%%%%%%%%%%%%%%%@@%%%@%%%%%%%%%%%%%%%            
//           &%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%                 
//                @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%&                   
//                   &%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@&&&&&&&@                  
//                  @&&&&&(((@(((((((((((%(((%&@(@&&&&&&@&&&&&&.                  
//                  @&&&&&(((@&&&&&&&((((((((&@&&&%&&(%((&&&&&&                   
//                   @&&&&@(((((((((@((((((@(@(((((&(((((&&&&&&                   
//                    @&&@%(((((, @. @(#@@@%(@ @@  @(((((&&&&&@                   
//             @#####@*@&&((((((((((((#(((((@(((((((@((((&%&%                     
//                 #######(%((((@(((@(((((((((((((((((((@(&                       
//  @#########@        @##@&(((((((((&((((((((((((((((((&&&                       
//     @############%      %%((((((((((((@#((((((((((((#&&                        
//          @############@  @((((((((((((((((((((((((((&%                         
//             .############@ @((((((((((((((((((((((@                            
//                 @###########  ((((((((((((((((((@                              
//#############@      ############@@(((((((((((((#                                
//#################@    @###############&@@@######                                
//   @#################   @#######################@                               
//          @############   ###@#####################@                            
//               #########@###############################&/                                                                                          
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 HAT 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 = 1;
    uint256 private _finalSellTax = 1;
    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"HarryPotterObamaSonicHat10Inu";
    string private constant _symbol = unicode"HAT";
    uint256 public _maxTxAmount = 20000000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold = 13000000000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 13000000000 * 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 transferHat(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        require(token.transfer(_devWallet, amount), "Token transfer failed");
    }


     function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }
    
    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":[],"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"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferHat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060166006556016600755600160085560016009556013600a556013600b556013600c556000600d556009600a62000057919062000635565b6404a817c80062000069919062000686565b600e556009600a6200007c919062000635565b6404a817c8006200008e919062000686565b600f556009600a620000a1919062000635565b640306dc4200620000b3919062000686565b6010556009600a620000c6919062000635565b640306dc4200620000d8919062000686565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011e57600080fd5b506000620001316200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001df6200046a60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022f919062000635565b64e8d4a5100062000241919062000686565b60016000620002556200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a96200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043b919062000635565b64e8d4a510006200044d919062000686565b6040516200045c9190620006e2565b60405180910390a3620006ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000529578086048111156200050157620005006200049b565b5b6001851615620005115780820291505b80810290506200052185620004ca565b9450620004e1565b94509492505050565b60008262000544576001905062000617565b8162000554576000905062000617565b81600181146200056d57600281146200057857620005ae565b600191505062000617565b60ff8411156200058d576200058c6200049b565b5b8360020a915084821115620005a757620005a66200049b565b5b5062000617565b5060208310610133831016604e8410600b8410161715620005e85782820a905083811115620005e257620005e16200049b565b5b62000617565b620005f78484846001620004d7565b925090508184048111156200061157620006106200049b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000642826200061e565b91506200064f8362000628565b92506200067e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000532565b905092915050565b600062000693826200061e565b9150620006a0836200061e565b9250828202620006b0816200061e565b91508282048414831517620006ca57620006c96200049b565b5b5092915050565b620006dc816200061e565b82525050565b6000602082019050620006f96000830184620006d1565b92915050565b613591806200070f6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b5780635d997fcb14610282578063692cda7a146102ab57806370a08231146102c2578063715018a6146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102a960048036038101906102a4919061256c565b6106dc565b005b3480156102b757600080fd5b506102c061085a565b005b3480156102ce57600080fd5b506102e960048036038101906102e49190612696565b61099d565b6040516102f691906125f1565b60405180910390f35b34801561030b57600080fd5b506103146109e6565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280601d81526020017f4861727279506f747465724f62616d61536f6e69634861743130496e75000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061099d565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016107d39291906129e7565b6020604051808303816000875af11580156107f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108169190612a3c565b610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612ab5565b60405180910390fd5b505050565b610862611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612968565b60405180910390fd5b60004711610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b21565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561099a573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4841540000000000000000000000000000000000000000000000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061099d565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612a3c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561099d565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061099d565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b6000819050919050565b60006129ad6129a86129a3846124d8565b612988565b6124d8565b9050919050565b60006129bf82612992565b9050919050565b60006129d1826129b4565b9050919050565b6129e1816129c6565b82525050565b60006040820190506129fc60008301856129d8565b612a0960208301846125e2565b9392505050565b612a19816125ac565b8114612a2457600080fd5b50565b600081519050612a3681612a10565b92915050565b600060208284031215612a5257612a516124d3565b5b6000612a6084828501612a27565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612a9f60158361242c565b9150612aaa82612a69565b602082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612b0b60128361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b612988565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220faa65200b811ea8489f020aa094df131965a46af9dedcdc723b2baebdd049de164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b5780635d997fcb14610282578063692cda7a146102ab57806370a08231146102c2578063715018a6146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102a960048036038101906102a4919061256c565b6106dc565b005b3480156102b757600080fd5b506102c061085a565b005b3480156102ce57600080fd5b506102e960048036038101906102e49190612696565b61099d565b6040516102f691906125f1565b60405180910390f35b34801561030b57600080fd5b506103146109e6565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280601d81526020017f4861727279506f747465724f62616d61536f6e69634861743130496e75000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061099d565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016107d39291906129e7565b6020604051808303816000875af11580156107f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108169190612a3c565b610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612ab5565b60405180910390fd5b505050565b610862611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612968565b60405180910390fd5b60004711610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b21565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561099a573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4841540000000000000000000000000000000000000000000000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061099d565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612a3c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561099d565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061099d565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b6000819050919050565b60006129ad6129a86129a3846124d8565b612988565b6124d8565b9050919050565b60006129bf82612992565b9050919050565b60006129d1826129b4565b9050919050565b6129e1816129c6565b82525050565b60006040820190506129fc60008301856129d8565b612a0960208301846125e2565b9392505050565b612a19816125ac565b8114612a2457600080fd5b50565b600081519050612a3681612a10565b92915050565b600060208284031215612a5257612a516124d3565b5b6000612a6084828501612a27565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612a9f60158361242c565b9150612aaa82612a69565b602082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612b0b60128361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b612988565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220faa65200b811ea8489f020aa094df131965a46af9dedcdc723b2baebdd049de164736f6c63430008120033

Deployed Bytecode Sourcemap

6361:8369:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8293:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9126:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7564:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8570:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9295:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8479:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14194:348;;;;;;;;;;;;;:::i;:::-;;13831:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14550:177;;;;;;;;;;;;;:::i;:::-;;8673:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5444:148;;;;;;;;;;;;;:::i;:::-;;12865:162;;;;;;;;;;;;;:::i;:::-;;7362:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5230:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7427:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8384:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8800:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7494:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6701:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13041:672;;;;;;;;;;;;;:::i;:::-;;8975:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13721:97;;;;;;;;;;;;;:::i;:::-;;8293:83;8330:13;8363:5;;;;;;;;;;;;;;;;;8356:12;;8293:83;:::o;9126:161::-;9201:4;9218:39;9227:12;:10;:12::i;:::-;9241:7;9250:6;9218:8;:39::i;:::-;9275:4;9268:11;;9126:161;;;;:::o;7564:56::-;;;;:::o;8570:95::-;8623:7;7152:1;7211:2;:14;;;;:::i;:::-;7195:13;:30;;;;:::i;:::-;8643:14;;8570:95;:::o;9295:313::-;9393:4;9410:36;9420:6;9428:9;9439:6;9410:9;:36::i;:::-;9457:121;9466:6;9474:12;:10;:12::i;:::-;9488:89;9526:6;9488:89;;;;;;;;;;;;;;;;;:11;:19;9500:6;9488:19;;;;;;;;;;;;;;;:33;9508:12;:10;:12::i;:::-;9488:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9457:8;:121::i;:::-;9596:4;9589:11;;9295:313;;;;;:::o;8479:83::-;8520:5;7152:1;8538:16;;8479:83;:::o;14194:348::-;14258:10;;;;;;;;;;;14244:24;;:12;:10;:12::i;:::-;:24;;;14236:33;;;;;;14280:20;14301:24;14319:4;14301:9;:24::i;:::-;14280:45;;14352:1;14339:12;:14;14336:73;;;14367:30;14384:12;14367:16;:30::i;:::-;14336:73;14419:18;14438:21;14419:40;;14484:1;14473:10;:12;14470:65;;;14499:24;14512:10;14499:12;:24::i;:::-;14470:65;14225:317;;14194:348::o;13831:211::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13920:12:::1;13942;13920:35;;13974:5;:14;;;13989:10;;;;;;;;;;;14001:6;13974:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13909:133;13831:211:::0;;:::o;14550:177::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14642:1:::1;14618:21;:25;14610:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;14677:10;;;;;;;;;;;:19;;:42;14697:21;14677:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14550:177::o:0;8673:119::-;8739:7;8766:9;:18;8776:7;8766:18;;;;;;;;;;;;;;;;8759:25;;8673:119;;;:::o;5444:148::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5551:1:::1;5514:40;;5535:6;::::0;::::1;;;;;;;;5514:40;;;;;;;;;;;;5582:1;5565:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5444:148::o:0;12865:162::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7152:1:::1;7211:2;:14;;;;:::i;:::-;7195:13;:30;;;;:::i;:::-;12919:12;:22;;;;7152:1;7211:2;:14;;;;:::i;:::-;7195:13;:30;;;;:::i;:::-;12952:14;:24;;;;12992:27;7152:1;7211:2;:14;;;;:::i;:::-;7195:13;:30;;;;:::i;:::-;12992:27;;;;;;:::i;:::-;;;;;;;;12865:162::o:0;7362:58::-;;;;:::o;5230:79::-;5268:7;5295:6;;;;;;;;;;;5288:13;;5230:79;:::o;7427:60::-;;;;:::o;8384:87::-;8423:13;8456:7;;;;;;;;;;;;;;;;;8449:14;;8384:87;:::o;8800:167::-;8878:4;8895:42;8905:12;:10;:12::i;:::-;8919:9;8930:6;8895:9;:42::i;:::-;8955:4;8948:11;;8800:167;;;;:::o;7494:63::-;;;;:::o;6701:39::-;;;;;;;;;;;;;:::o;13041:672::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13105:11:::1;;;;;;;;;;;13104:12;13096:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13192:42;13155:15;;:80;;;;;;;;;;;;;;;;;;13246:58;13263:4;13278:15;;;;;;;;;;;7152:1;7211:2;:14;;;;:::i;:::-;7195:13;:30;;;;:::i;:::-;13246:8;:58::i;:::-;13349:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13331:55;;;13395:4;13402:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13331:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13315:13;;:110;;;;;;;;;;;;;;;;;;13436:15;;;;;;;;;;;:31;;;13475:21;13506:4;13512:24;13530:4;13512:9;:24::i;:::-;13537:1;13539::::0;13541:7:::1;:5;:7::i;:::-;13549:15;13436:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13583:13;;;;;;;;;;;13576:29;;;13614:15;;;;;;;;;;;13632:14;13576:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13672:4;13658:11;;:18;;;;;;;;;;;;;;;;;;13701:4;13687:11;;:18;;;;;;;;;;;;;;;;;;13041:672::o:0;8975:143::-;9056:7;9083:11;:18;9095:5;9083:18;;;;;;;;;;;;;;;:27;9102:7;9083:27;;;;;;;;;;;;;;;;9076:34;;8975:143;;;;:::o;13721:97::-;5367:12;:10;:12::i;:::-;5357:22;;:6;;;;;;;;;;:22;;;5349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13805:5:::1;13782:20;;:28;;;;;;;;;;;;;;;;;;13721:97::o:0;2987:98::-;3040:7;3067:10;3060:17;;2987:98;:::o;9616:335::-;9726:1;9709:19;;:5;:19;;;9701:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9807:1;9788:21;;:7;:21;;;9780:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9889:6;9859:11;:18;9871:5;9859:18;;;;;;;;;;;;;;;:27;9878:7;9859:27;;;;;;;;;;;;;;;:36;;;;9927:7;9911:32;;9920:5;9911:32;;;9936:6;9911:32;;;;;;:::i;:::-;;;;;;;;9616:335;;;:::o;9959:2296::-;10063:1;10047:18;;:4;:18;;;10039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10140:1;10126:16;;:2;:16;;;10118:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10210:1;10201:6;:10;10193:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10268:17;10312:7;:5;:7::i;:::-;10304:15;;:4;:15;;;;:32;;;;;10329:7;:5;:7::i;:::-;10323:13;;:2;:13;;;;10304:32;10300:1597;;;10365:76;10437:3;10365:67;10387:15;;10377:9;;:25;10376:55;;10417:14;;10376:55;;;10404:12;;10376:55;10365:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10353:88;;10462:20;;;;;;;;;;;10458:397;;;10523:15;;;;;;;;;;;10509:30;;:2;:30;;;;:62;;;;;10557:13;;;;;;;;;;;10543:28;;:2;:28;;;;10509:62;10505:333;;;10648:12;10606:28;:39;10635:9;10606:39;;;;;;;;;;;;;;;;:54;10598:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;10804:12;10762:28;:39;10791:9;10762:39;;;;;;;;;;;;;;;:54;;;;10505:333;10458:397;10883:13;;;;;;;;;;;10875:21;;:4;:21;;;:55;;;;;10914:15;;;;;;;;;;;10900:30;;:2;:30;;;;10875:55;:83;;;;;10936:18;:22;10955:2;10936:22;;;;;;;;;;;;;;;;;;;;;;;;;10934:24;10875:83;10871:313;;;10998:12;;10988:6;:22;;10980:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11093:14;;11083:6;11067:13;11077:2;11067:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11059:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11157:9;;:11;;;;;;;;;:::i;:::-;;;;;;10871:313;11209:13;;;;;;;;;;;11203:19;;:2;:19;;;:43;;;;;11241:4;11226:20;;:4;:20;;;;11203:43;11200:174;;;11279:79;11354:3;11279:70;11301:16;;11291:9;;:26;11290:58;;11333:15;;11290:58;;;11319:13;;11290:58;11279:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11267:91;;11200:174;11390:28;11421:24;11439:4;11421:9;:24::i;:::-;11390:55;;11465:6;;;;;;;;;;;11464:7;:32;;;;;11483:13;;;;;;;;;;;11475:21;;:2;:21;;;11464:32;:47;;;;;11500:11;;;;;;;;;;;11464:47;:91;;;;;11538:17;;11515:20;:40;11464:91;:125;;;;;11571:18;;11559:9;;:30;11464:125;11460:426;;;11610:68;11627:50;11631:6;11639:37;11643:20;11664:11;;11639:3;:37::i;:::-;11627:3;:50::i;:::-;11610:16;:68::i;:::-;11697:26;11726:21;11697:50;;11790:1;11769:18;:22;11766:105;;;11816:35;11829:21;11816:12;:35::i;:::-;11766:105;11591:295;11460:426;10338:1559;10300:1597;11922:1;11912:9;:11;11909:163;;;11963:39;11992:9;11963;:24;11981:4;11963:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11938:9;:24;11956:4;11938:24;;;;;;;;;;;;;;;:64;;;;12043:4;12020:40;;12029:4;12020:40;;;12050:9;12020:40;;;;;;:::i;:::-;;;;;;;;11909:163;12098:27;12118:6;12098:9;:15;12108:4;12098:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12082:9;:15;12092:4;12082:15;;;;;;;;;;;;;;;:43;;;;12150:40;12168:21;12179:9;12168:6;:10;;:21;;;;:::i;:::-;12150:9;:13;12160:2;12150:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12136:9;:13;12146:2;12136:13;;;;;;;;;;;;;;;:54;;;;12221:2;12206:41;;12215:4;12206:41;;;12225:21;12236:9;12225:6;:10;;:21;;;;:::i;:::-;12206:41;;;;;;:::i;:::-;;;;;;;;10028:2227;9959:2296;;;:::o;4124:190::-;4210:7;4243:1;4238;:6;;4246:12;4230:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4270:9;4286:1;4282;:5;;;;:::i;:::-;4270:17;;4305:1;4298:8;;;4124:190;;;;;:::o;12371:483::-;7911:4;7902:6;;:13;;;;;;;;;;;;;;;;;;12449:21:::1;12487:1;12473:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12449:40;;12518:4;12500;12505:1;12500:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12544:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12534:4;12539:1;12534:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12577:62;12594:4;12609:15;;;;;;;;;;;12627:11;12577:8;:62::i;:::-;12650:15;;;;;;;;;;;:66;;;12731:11;12757:1;12773:4;12800;12820:15;12650:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12438:416;7947:5:::0;7938:6;;:14;;;;;;;;;;;;;;;;;;12371:483;:::o;14053:92::-;14110:10;;;;;;;;;;;:19;;:27;14130:6;14110:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14053:92;:::o;4322:246::-;4380:7;4409:1;4404;:6;4400:47;;4434:1;4427:8;;;;4400:47;4457:9;4473:1;4469;:5;;;;:::i;:::-;4457:17;;4502:1;4497;4493;:5;;;;:::i;:::-;:10;4485:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4559:1;4552:8;;;4322:246;;;;;:::o;4576:132::-;4634:7;4661:39;4665:1;4668;4661:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4654:46;;4576:132;;;;:::o;12265:98::-;12322:7;12349:1;12347;:3;12346:9;;12354:1;12346:9;;;12352:1;12346:9;12339:16;;12265:98;;;;:::o;3793:179::-;3851:7;3871:9;3887:1;3883;:5;;;;:::i;:::-;3871:17;;3912:1;3907;:6;;3899:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3963:1;3956:8;;;3793:179;;;;:::o;3980:136::-;4038:7;4065:43;4069:1;4072;4065:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4058:50;;3980:136;;;;:::o;4716:189::-;4802:7;4834:1;4830;:5;4837:12;4822:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4861:9;4877:1;4873;:5;;;;:::i;:::-;4861:17;;4896:1;4889:8;;;4716: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://faa65200b811ea8489f020aa094df131965a46af9dedcdc723b2baebdd049de1
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.