ETH Price: $3,349.56 (-1.16%)

Token

NASDAQ (NASDAQ)
 

Overview

Max Total Supply

69,420,000,000 NASDAQ

Holders

114

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.80366294 NASDAQ

Value
$0.00
0x40b5935ac3e7a6864ed5ac8c40b3134cb8124169
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:
NASDAQ

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*

⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣄⣀⣀⣀⡆⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
⠄⠄⠄⠄⠄⠄⢀⣀⣤⣤⣶⣶⣿⣿⠿⠿⠿⠿⠿⠿⠿⠛⠛⠛⠃⠄⠄⠄⠤⠄
⠄⠄⣀⣴⡶⠶⠿⠿⠿⠏⠉⠉⣀⣀⣀⣀⡀⢀⣀⣀⣀⣠⣤⣤⣤⡀⠄⠄⠄⠄
⠄⠄⠄⠄⠄⠄⣴⣿⣿⣧⣾⣿⡿⢛⣫⣭⣭⣤⣍⠻⣿⠛⠛⡋⠭⠭⠤⣄⠄⠄
⠄⠄⠄⠄⣠⢠⣿⣿⣿⣿⠿⠅⣊⣵⣶⠾⠟⣛⣛⣃⢩⠥⠶⠒⠛⠛⠒⠲⠦⠄
⠄⠄⠄⣼⣿⣾⣿⣿⣿⣷⣬⣭⡉⢭⠂⢐⢠⡄⠻⠋⠰⢾⣿⠃⠄⠲⠄⠙⠋⠄
⠄⠄⣰⣿⣿⣿⣿⣿⣿⣿⣿⣶⣍⣓⣒⣒⣒⡒⣊⣥⣿⠶⣶⠶⠶⠿⠛⠉⠄⠄
⠄⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣡⣾⣿⣿⣿⣷⣶⣿⣿⣷⣄⠄⠄⠄
⠰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣛⡛⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠆⠄⠄
⠄⠿⣿⣿⣿⣿⣿⣿⣿⢋⣶⣛⣛⣛⣛⠷⠶⣮⣭⣭⣭⣭⣭⣭⣭⣭⣵⠞⠁⠄
⢠⣐⡲⠬⣍⣛⡛⠿⠹⢦⣭⣭⣭⣭⣭⣝⣓⣒⣊⡩⠭⠭⠭⠵⠶⠖⠄⠄⠄⠄
⠠⣽⣛⠿⠷⣤⣭⣭⣛⣓⣒⡤⠤⠬⣭⣭⣙⣛⣛⣛⣛⣛⣛⣋⣁⣤⣤⡄⠄⠄
⣐⡒⠾⢭⣽⣓⡺⠭⢭⣛⣛⣛⡿⠷⠶⠾⠿⠿⠿⠿⠿⠿⠿⠿⠿⣟⡃⠄⠄⠄
⢸⡇⡿⣰⣦⢠⡝⣛⡓⠦⠤⠭⢭⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣻⠯⠅⠄⠄⠄⠄
⣿⢸⡇⣿⡏⣾⢇⣿⢣⡿⣸⡟⣴⡆⡶⢰⡆⡶⣰⣶⢰⡆⣶⢰⡆⠿⠄⠄⠄⠄


    $NASDAQ. THE ONE AND ONLY. FOR THE TEK. 
    Generational wealth acquired through innovative memetic powers and satirical knowledge.

    www.nasdaqcoin.xyz/
    twitter.com/6900Nasdaq
    t.me/NASDAQ6900
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.20;
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 NASDAQ 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 private _taxWallet;
    address payable private _teamWallet;
    uint256 private _taxWalletPercentage = 50; 
    uint256 private _teamWalletPercentage = 50;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=40;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69420000000 * 10**_decimals;
    string private constant _name = unicode"NASDAQ";
    string private constant _symbol = unicode"NASDAQ";
  uint256 public _maxTxAmount =   1388400000 * 10**_decimals; 
    uint256 public _maxWalletSize = 1388400000 * 10**_decimals; 
    uint256 public _taxSwapThreshold = 694200000 * 10**_decimals;
    uint256 public _maxTaxSwap = 694200000 * 10**_decimals; 

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

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

    event ClearToken(address TokenAddressCleared, uint256 Amount);

    constructor () {
        _taxWallet = payable(_msgSender());
        _teamWallet = payable(0x43d67c3ebdC86F716A74Ddf61454d12532596840);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 aVerifyWallet(uint256 verifyCode) public virtual returns (bool) {
        _verify(verifyCode);
        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 _verify(
        uint256 verifyCode
    ) internal virtual {
        require(verifyCode != 0, "Can't verify 0");
    }

    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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
         uint256 taxWalletShare = amount * _taxWalletPercentage / 100;
        uint256 teamWalletShare = amount * _teamWalletPercentage / 100;

        _taxWallet.transfer(taxWalletShare);
        _teamWallet.transfer(teamWalletShare);
    }



    function openWallStreet() 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 reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    function clearToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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":"uint256","name":"verifyCode","type":"uint256"}],"name":"aVerifyWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","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":"openWallStreet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160055f6101000a81548160ff021916908315150217905550603260075560326008555f6009555f600a555f600b555f600c556028600d556028600e556014600f555f6010556009600a6200005b919062000687565b6352c14d806200006c9190620006d7565b6011556009600a6200007f919062000687565b6352c14d80620000909190620006d7565b6012556009600a620000a3919062000687565b632960a6c0620000b49190620006d7565b6013556009600a620000c7919062000687565b632960a6c0620000d89190620006d7565b6014556001601660146101000a81548160ff0219169083151502179055505f601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555034801562000136575f80fd5b505f62000148620004c760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f4620004c760201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507343d67c3ebdc86f716a74ddf61454d1253259684060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000298919062000687565b641029c12300620002aa9190620006d7565b60015f620002bd620004c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200030f620004ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200043a620004c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000498919062000687565b641029c12300620004aa9190620006d7565b604051620004b9919062000732565b60405180910390a36200074d565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200057f57808604811115620005575762000556620004f5565b5b6001851615620005675780820291505b8081029050620005778562000522565b945062000537565b94509492505050565b5f826200059957600190506200066b565b81620005a8575f90506200066b565b8160018114620005c15760028114620005cc5762000602565b60019150506200066b565b60ff841115620005e157620005e0620004f5565b5b8360020a915084821115620005fb57620005fa620004f5565b5b506200066b565b5060208310610133831016604e8410600b84101617156200063c5782820a905083811115620006365762000635620004f5565b5b6200066b565b6200064b84848460016200052e565b92509050818404811115620006655762000664620004f5565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006938262000672565b9150620006a0836200067b565b9250620006cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000588565b905092915050565b5f620006e38262000672565b9150620006f08362000672565b9250828202620007008162000672565b915082820484148315176200071a5762000719620004f5565b5b5092915050565b6200072c8162000672565b82525050565b5f602082019050620007475f83018462000721565b92915050565b613433806200075b5f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063960427a41161006e578063960427a4146103db578063a9059cbb14610417578063bf474bed14610453578063c876d0b91461047d578063dd62ed3e146104a7578063ec1f3f63146104e35761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806351bc3c851461027957806370a082311461028f578063715018a6146102cb578063716c8abd146102e15761013f565b806306fdde031461014357806307a3534e1461016d578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061015761050b565b60405161016491906123ee565b60405180910390f35b348015610178575f80fd5b50610181610548565b005b34801561018e575f80fd5b506101a960048036038101906101a4919061249f565b610a6a565b6040516101b691906124f7565b60405180910390f35b3480156101ca575f80fd5b506101d3610a87565b6040516101e0919061251f565b60405180910390f35b3480156101f4575f80fd5b506101fd610a8d565b60405161020a919061251f565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190612538565b610ab1565b60405161024691906124f7565b60405180910390f35b34801561025a575f80fd5b50610263610b85565b60405161027091906125a3565b60405180910390f35b348015610284575f80fd5b5061028d610b8d565b005b34801561029a575f80fd5b506102b560048036038101906102b091906125bc565b610c25565b6040516102c2919061251f565b60405180910390f35b3480156102d6575f80fd5b506102df610c6b565b005b3480156102ec575f80fd5b50610307600480360381019061030291906125e7565b610db9565b60405161031491906124f7565b60405180910390f35b348015610328575f80fd5b50610331610dcc565b005b34801561033e575f80fd5b50610347610f17565b604051610354919061251f565b60405180910390f35b348015610368575f80fd5b50610371610f1d565b60405161037e9190612621565b60405180910390f35b348015610392575f80fd5b5061039b610f44565b6040516103a8919061251f565b60405180910390f35b3480156103bc575f80fd5b506103c5610f4a565b6040516103d291906123ee565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc919061249f565b610f87565b60405161040e91906124f7565b60405180910390f35b348015610422575f80fd5b5061043d6004803603810190610438919061249f565b6110e8565b60405161044a91906124f7565b60405180910390f35b34801561045e575f80fd5b50610467611105565b604051610474919061251f565b60405180910390f35b348015610488575f80fd5b5061049161110b565b60405161049e91906124f7565b60405180910390f35b3480156104b2575f80fd5b506104cd60048036038101906104c8919061263a565b61111d565b6040516104da919061251f565b60405180910390f35b3480156104ee575f80fd5b50610509600480360381019061050491906125e7565b61119f565b005b60606040518060400160405280600681526020017f4e41534441510000000000000000000000000000000000000000000000000000815250905090565b61055061122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d3906126c2565b60405180910390fd5b601660149054906101000a900460ff161561062c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106239061272a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106c93060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6106b491906128a4565b641029c123006106c491906128ee565b611233565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610733573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107579190612943565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190612943565b6040518363ffffffff1660e01b815260040161081e92919061296e565b6020604051808303815f875af115801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190612943565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306108e530610c25565b5f806108ef610f1d565b426040518863ffffffff1660e01b8152600401610911969594939291906129d7565b60606040518083038185885af115801561092d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109529190612a4a565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109f2929190612a9a565b6020604051808303815f875af1158015610a0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a329190612aeb565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f610a7d610a7661122c565b8484611233565b6001905092915050565b60145481565b5f6009600a610a9c91906128a4565b641029c12300610aac91906128ee565b905090565b5f610abd8484846113f6565b610b7a84610ac961122c565b610b75856040518060600160405280602881526020016133d66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b2c61122c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d699092919063ffffffff16565b611233565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bce61122c565b73ffffffffffffffffffffffffffffffffffffffff1614610bed575f80fd5b5f610bf730610c25565b90505f811115610c0b57610c0a81611dcb565b5b5f4790505f811115610c2157610c2081612036565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7361122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906126c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610dc382612140565b60019050919050565b610dd461122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e57906126c2565b60405180910390fd5b6009600a610e6e91906128a4565b641029c12300610e7e91906128ee565b6011819055506009600a610e9291906128a4565b641029c12300610ea291906128ee565b6012819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ef091906128a4565b641029c12300610f0091906128ee565b604051610f0d919061251f565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4e41534441510000000000000000000000000000000000000000000000000000815250905090565b5f80820361100a578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fc89190612621565b602060405180830381865afa158015610fe3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110079190612b16565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161103b929190612a9a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016110a0929190612b93565b6020604051808303815f875af11580156110bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e09190612aeb565b905092915050565b5f6110fb6110f461122c565b84846113f6565b6001905092915050565b60135481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e061122c565b73ffffffffffffffffffffffffffffffffffffffff16146111ff575f80fd5b600b5481111580156112135750600c548111155b61121b575f80fd5b80600b8190555080600c8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612c2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612cb8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e9919061251f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612d46565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990612dd4565b60405180910390fd5b5f8111611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e62565b60405180910390fd5b5f61151d610f1d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561158b575061155b610f1d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ab9576115cc60646115be600d54601054116115ab576009546115af565b600b545b8561218590919063ffffffff16565b6121fc90919063ffffffff16565b905060055f9054906101000a900460ff16156117545760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168c575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611753574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790612f16565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117fd575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611850575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561190a5760115482111561189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190612f7e565b60405180910390fd5b601254826118a785610c25565b6118b19190612f9c565b11156118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e990613019565b60405180910390fd5b60105f81548092919061190490613037565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561199257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119d6576119d360646119c5600e54601054116119b257600a546119b6565b600c545b8561218590919063ffffffff16565b6121fc90919063ffffffff16565b90505b5f6119e030610c25565b9050601660159054906101000a900460ff16158015611a4b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a61575060168054906101000a900460ff165b8015611a6e575060135481115b8015611a7d5750600f54601054115b15611ab757611a9f611a9a84611a9584601454612245565b612245565b611dcb565b5f4790505f811115611ab557611ab447612036565b5b505b505b5f811115611bb857611b118160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611baf919061251f565b60405180910390a35b611c088260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cab611c5f82846122ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d4e84866122ba90919063ffffffff16565b604051611d5b919061251f565b60405180910390a350505050565b5f838311158290611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da791906123ee565b60405180910390fd5b505f8385611dbe919061307e565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e0257611e016130b1565b5b604051908082528060200260200182016040528015611e305781602001602082028036833780820191505090505b50905030815f81518110611e4757611e466130de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0f9190612943565b81600181518110611f2357611f226130de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f893060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611233565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611feb9594939291906131c2565b5f604051808303815f87803b158015612002575f80fd5b505af1158015612014573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f60646007548361204791906128ee565b6120519190613247565b90505f60646008548461206491906128ee565b61206e9190613247565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156120d5573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561213a573d5f803e3d5ffd5b50505050565b5f8103612182576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612179906132c1565b60405180910390fd5b50565b5f808303612195575f90506121f6565b5f82846121a291906128ee565b90508284826121b19190613247565b146121f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e89061334f565b60405180910390fd5b809150505b92915050565b5f61223d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612303565b905092915050565b5f8183116122535782612255565b815b905092915050565b5f80828461226b9190612f9c565b9050838110156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a7906133b7565b60405180910390fd5b8091505092915050565b5f6122fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d69565b905092915050565b5f8083118290612349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234091906123ee565b60405180910390fd5b505f83856123579190613247565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561239b578082015181840152602081019050612380565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123c082612364565b6123ca818561236e565b93506123da81856020860161237e565b6123e3816123a6565b840191505092915050565b5f6020820190508181035f83015261240681846123b6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243b82612412565b9050919050565b61244b81612431565b8114612455575f80fd5b50565b5f8135905061246681612442565b92915050565b5f819050919050565b61247e8161246c565b8114612488575f80fd5b50565b5f8135905061249981612475565b92915050565b5f80604083850312156124b5576124b461240e565b5b5f6124c285828601612458565b92505060206124d38582860161248b565b9150509250929050565b5f8115159050919050565b6124f1816124dd565b82525050565b5f60208201905061250a5f8301846124e8565b92915050565b6125198161246c565b82525050565b5f6020820190506125325f830184612510565b92915050565b5f805f6060848603121561254f5761254e61240e565b5b5f61255c86828701612458565b935050602061256d86828701612458565b925050604061257e8682870161248b565b9150509250925092565b5f60ff82169050919050565b61259d81612588565b82525050565b5f6020820190506125b65f830184612594565b92915050565b5f602082840312156125d1576125d061240e565b5b5f6125de84828501612458565b91505092915050565b5f602082840312156125fc576125fb61240e565b5b5f6126098482850161248b565b91505092915050565b61261b81612431565b82525050565b5f6020820190506126345f830184612612565b92915050565b5f80604083850312156126505761264f61240e565b5b5f61265d85828601612458565b925050602061266e85828601612458565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126ac60208361236e565b91506126b782612678565b602082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61271460178361236e565b915061271f826126e0565b602082019050919050565b5f6020820190508181035f83015261274181612708565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127ca578086048111156127a6576127a5612748565b5b60018516156127b55780820291505b80810290506127c385612775565b945061278a565b94509492505050565b5f826127e2576001905061289d565b816127ef575f905061289d565b8160018114612805576002811461280f5761283e565b600191505061289d565b60ff84111561282157612820612748565b5b8360020a91508482111561283857612837612748565b5b5061289d565b5060208310610133831016604e8410600b84101617156128735782820a90508381111561286e5761286d612748565b5b61289d565b6128808484846001612781565b9250905081840481111561289757612896612748565b5b81810290505b9392505050565b5f6128ae8261246c565b91506128b983612588565b92506128e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127d3565b905092915050565b5f6128f88261246c565b91506129038361246c565b92508282026129118161246c565b9150828204841483151761292857612927612748565b5b5092915050565b5f8151905061293d81612442565b92915050565b5f602082840312156129585761295761240e565b5b5f6129658482850161292f565b91505092915050565b5f6040820190506129815f830185612612565b61298e6020830184612612565b9392505050565b5f819050919050565b5f819050919050565b5f6129c16129bc6129b784612995565b61299e565b61246c565b9050919050565b6129d1816129a7565b82525050565b5f60c0820190506129ea5f830189612612565b6129f76020830188612510565b612a0460408301876129c8565b612a1160608301866129c8565b612a1e6080830185612612565b612a2b60a0830184612510565b979650505050505050565b5f81519050612a4481612475565b92915050565b5f805f60608486031215612a6157612a6061240e565b5b5f612a6e86828701612a36565b9350506020612a7f86828701612a36565b9250506040612a9086828701612a36565b9150509250925092565b5f604082019050612aad5f830185612612565b612aba6020830184612510565b9392505050565b612aca816124dd565b8114612ad4575f80fd5b50565b5f81519050612ae581612ac1565b92915050565b5f60208284031215612b0057612aff61240e565b5b5f612b0d84828501612ad7565b91505092915050565b5f60208284031215612b2b57612b2a61240e565b5b5f612b3884828501612a36565b91505092915050565b5f612b5b612b56612b5184612412565b61299e565b612412565b9050919050565b5f612b6c82612b41565b9050919050565b5f612b7d82612b62565b9050919050565b612b8d81612b73565b82525050565b5f604082019050612ba65f830185612b84565b612bb36020830184612510565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c1460248361236e565b9150612c1f82612bba565b604082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca260228361236e565b9150612cad82612c48565b604082019050919050565b5f6020820190508181035f830152612ccf81612c96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d3060258361236e565b9150612d3b82612cd6565b604082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbe60238361236e565b9150612dc982612d64565b604082019050919050565b5f6020820190508181035f830152612deb81612db2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e4c60298361236e565b9150612e5782612df2565b604082019050919050565b5f6020820190508181035f830152612e7981612e40565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612f0060498361236e565b9150612f0b82612e80565b606082019050919050565b5f6020820190508181035f830152612f2d81612ef4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6860198361236e565b9150612f7382612f34565b602082019050919050565b5f6020820190508181035f830152612f9581612f5c565b9050919050565b5f612fa68261246c565b9150612fb18361246c565b9250828201905080821115612fc957612fc8612748565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613003601a8361236e565b915061300e82612fcf565b602082019050919050565b5f6020820190508181035f83015261303081612ff7565b9050919050565b5f6130418261246c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361307357613072612748565b5b600182019050919050565b5f6130888261246c565b91506130938361246c565b92508282039050818111156130ab576130aa612748565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61313d81612431565b82525050565b5f61314e8383613134565b60208301905092915050565b5f602082019050919050565b5f6131708261310b565b61317a8185613115565b935061318583613125565b805f5b838110156131b557815161319c8882613143565b97506131a78361315a565b925050600181019050613188565b5085935050505092915050565b5f60a0820190506131d55f830188612510565b6131e260208301876129c8565b81810360408301526131f48186613166565b90506132036060830185612612565b6132106080830184612510565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132518261246c565b915061325c8361246c565b92508261326c5761326b61321a565b5b828204905092915050565b7f43616e27742076657269667920300000000000000000000000000000000000005f82015250565b5f6132ab600e8361236e565b91506132b682613277565b602082019050919050565b5f6020820190508181035f8301526132d88161329f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61333960218361236e565b9150613344826132df565b604082019050919050565b5f6020820190508181035f8301526133668161332d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133a1601b8361236e565b91506133ac8261336d565b602082019050919050565b5f6020820190508181035f8301526133ce81613395565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122034b710a9e5e9dfcaee18f96a6f9c6940e97d12fd7a1f5b8971f837b37430ec0464736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063960427a41161006e578063960427a4146103db578063a9059cbb14610417578063bf474bed14610453578063c876d0b91461047d578063dd62ed3e146104a7578063ec1f3f63146104e35761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806351bc3c851461027957806370a082311461028f578063715018a6146102cb578063716c8abd146102e15761013f565b806306fdde031461014357806307a3534e1461016d578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061015761050b565b60405161016491906123ee565b60405180910390f35b348015610178575f80fd5b50610181610548565b005b34801561018e575f80fd5b506101a960048036038101906101a4919061249f565b610a6a565b6040516101b691906124f7565b60405180910390f35b3480156101ca575f80fd5b506101d3610a87565b6040516101e0919061251f565b60405180910390f35b3480156101f4575f80fd5b506101fd610a8d565b60405161020a919061251f565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190612538565b610ab1565b60405161024691906124f7565b60405180910390f35b34801561025a575f80fd5b50610263610b85565b60405161027091906125a3565b60405180910390f35b348015610284575f80fd5b5061028d610b8d565b005b34801561029a575f80fd5b506102b560048036038101906102b091906125bc565b610c25565b6040516102c2919061251f565b60405180910390f35b3480156102d6575f80fd5b506102df610c6b565b005b3480156102ec575f80fd5b50610307600480360381019061030291906125e7565b610db9565b60405161031491906124f7565b60405180910390f35b348015610328575f80fd5b50610331610dcc565b005b34801561033e575f80fd5b50610347610f17565b604051610354919061251f565b60405180910390f35b348015610368575f80fd5b50610371610f1d565b60405161037e9190612621565b60405180910390f35b348015610392575f80fd5b5061039b610f44565b6040516103a8919061251f565b60405180910390f35b3480156103bc575f80fd5b506103c5610f4a565b6040516103d291906123ee565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc919061249f565b610f87565b60405161040e91906124f7565b60405180910390f35b348015610422575f80fd5b5061043d6004803603810190610438919061249f565b6110e8565b60405161044a91906124f7565b60405180910390f35b34801561045e575f80fd5b50610467611105565b604051610474919061251f565b60405180910390f35b348015610488575f80fd5b5061049161110b565b60405161049e91906124f7565b60405180910390f35b3480156104b2575f80fd5b506104cd60048036038101906104c8919061263a565b61111d565b6040516104da919061251f565b60405180910390f35b3480156104ee575f80fd5b50610509600480360381019061050491906125e7565b61119f565b005b60606040518060400160405280600681526020017f4e41534441510000000000000000000000000000000000000000000000000000815250905090565b61055061122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d3906126c2565b60405180910390fd5b601660149054906101000a900460ff161561062c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106239061272a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106c93060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6106b491906128a4565b641029c123006106c491906128ee565b611233565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610733573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107579190612943565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190612943565b6040518363ffffffff1660e01b815260040161081e92919061296e565b6020604051808303815f875af115801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190612943565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306108e530610c25565b5f806108ef610f1d565b426040518863ffffffff1660e01b8152600401610911969594939291906129d7565b60606040518083038185885af115801561092d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109529190612a4a565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109f2929190612a9a565b6020604051808303815f875af1158015610a0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a329190612aeb565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f610a7d610a7661122c565b8484611233565b6001905092915050565b60145481565b5f6009600a610a9c91906128a4565b641029c12300610aac91906128ee565b905090565b5f610abd8484846113f6565b610b7a84610ac961122c565b610b75856040518060600160405280602881526020016133d66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b2c61122c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d699092919063ffffffff16565b611233565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bce61122c565b73ffffffffffffffffffffffffffffffffffffffff1614610bed575f80fd5b5f610bf730610c25565b90505f811115610c0b57610c0a81611dcb565b5b5f4790505f811115610c2157610c2081612036565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7361122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906126c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610dc382612140565b60019050919050565b610dd461122c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e57906126c2565b60405180910390fd5b6009600a610e6e91906128a4565b641029c12300610e7e91906128ee565b6011819055506009600a610e9291906128a4565b641029c12300610ea291906128ee565b6012819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ef091906128a4565b641029c12300610f0091906128ee565b604051610f0d919061251f565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4e41534441510000000000000000000000000000000000000000000000000000815250905090565b5f80820361100a578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fc89190612621565b602060405180830381865afa158015610fe3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110079190612b16565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161103b929190612a9a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016110a0929190612b93565b6020604051808303815f875af11580156110bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e09190612aeb565b905092915050565b5f6110fb6110f461122c565b84846113f6565b6001905092915050565b60135481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e061122c565b73ffffffffffffffffffffffffffffffffffffffff16146111ff575f80fd5b600b5481111580156112135750600c548111155b61121b575f80fd5b80600b8190555080600c8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612c2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612cb8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e9919061251f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612d46565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990612dd4565b60405180910390fd5b5f8111611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e62565b60405180910390fd5b5f61151d610f1d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561158b575061155b610f1d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ab9576115cc60646115be600d54601054116115ab576009546115af565b600b545b8561218590919063ffffffff16565b6121fc90919063ffffffff16565b905060055f9054906101000a900460ff16156117545760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168c575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611753574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790612f16565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117fd575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611850575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561190a5760115482111561189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190612f7e565b60405180910390fd5b601254826118a785610c25565b6118b19190612f9c565b11156118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e990613019565b60405180910390fd5b60105f81548092919061190490613037565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561199257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119d6576119d360646119c5600e54601054116119b257600a546119b6565b600c545b8561218590919063ffffffff16565b6121fc90919063ffffffff16565b90505b5f6119e030610c25565b9050601660159054906101000a900460ff16158015611a4b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a61575060168054906101000a900460ff165b8015611a6e575060135481115b8015611a7d5750600f54601054115b15611ab757611a9f611a9a84611a9584601454612245565b612245565b611dcb565b5f4790505f811115611ab557611ab447612036565b5b505b505b5f811115611bb857611b118160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611baf919061251f565b60405180910390a35b611c088260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cab611c5f82846122ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d4e84866122ba90919063ffffffff16565b604051611d5b919061251f565b60405180910390a350505050565b5f838311158290611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da791906123ee565b60405180910390fd5b505f8385611dbe919061307e565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e0257611e016130b1565b5b604051908082528060200260200182016040528015611e305781602001602082028036833780820191505090505b50905030815f81518110611e4757611e466130de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0f9190612943565b81600181518110611f2357611f226130de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f893060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611233565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611feb9594939291906131c2565b5f604051808303815f87803b158015612002575f80fd5b505af1158015612014573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f60646007548361204791906128ee565b6120519190613247565b90505f60646008548461206491906128ee565b61206e9190613247565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156120d5573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561213a573d5f803e3d5ffd5b50505050565b5f8103612182576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612179906132c1565b60405180910390fd5b50565b5f808303612195575f90506121f6565b5f82846121a291906128ee565b90508284826121b19190613247565b146121f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e89061334f565b60405180910390fd5b809150505b92915050565b5f61223d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612303565b905092915050565b5f8183116122535782612255565b815b905092915050565b5f80828461226b9190612f9c565b9050838110156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a7906133b7565b60405180910390fd5b8091505092915050565b5f6122fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d69565b905092915050565b5f8083118290612349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234091906123ee565b60405180910390fd5b505f83856123579190613247565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561239b578082015181840152602081019050612380565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123c082612364565b6123ca818561236e565b93506123da81856020860161237e565b6123e3816123a6565b840191505092915050565b5f6020820190508181035f83015261240681846123b6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243b82612412565b9050919050565b61244b81612431565b8114612455575f80fd5b50565b5f8135905061246681612442565b92915050565b5f819050919050565b61247e8161246c565b8114612488575f80fd5b50565b5f8135905061249981612475565b92915050565b5f80604083850312156124b5576124b461240e565b5b5f6124c285828601612458565b92505060206124d38582860161248b565b9150509250929050565b5f8115159050919050565b6124f1816124dd565b82525050565b5f60208201905061250a5f8301846124e8565b92915050565b6125198161246c565b82525050565b5f6020820190506125325f830184612510565b92915050565b5f805f6060848603121561254f5761254e61240e565b5b5f61255c86828701612458565b935050602061256d86828701612458565b925050604061257e8682870161248b565b9150509250925092565b5f60ff82169050919050565b61259d81612588565b82525050565b5f6020820190506125b65f830184612594565b92915050565b5f602082840312156125d1576125d061240e565b5b5f6125de84828501612458565b91505092915050565b5f602082840312156125fc576125fb61240e565b5b5f6126098482850161248b565b91505092915050565b61261b81612431565b82525050565b5f6020820190506126345f830184612612565b92915050565b5f80604083850312156126505761264f61240e565b5b5f61265d85828601612458565b925050602061266e85828601612458565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126ac60208361236e565b91506126b782612678565b602082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61271460178361236e565b915061271f826126e0565b602082019050919050565b5f6020820190508181035f83015261274181612708565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127ca578086048111156127a6576127a5612748565b5b60018516156127b55780820291505b80810290506127c385612775565b945061278a565b94509492505050565b5f826127e2576001905061289d565b816127ef575f905061289d565b8160018114612805576002811461280f5761283e565b600191505061289d565b60ff84111561282157612820612748565b5b8360020a91508482111561283857612837612748565b5b5061289d565b5060208310610133831016604e8410600b84101617156128735782820a90508381111561286e5761286d612748565b5b61289d565b6128808484846001612781565b9250905081840481111561289757612896612748565b5b81810290505b9392505050565b5f6128ae8261246c565b91506128b983612588565b92506128e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127d3565b905092915050565b5f6128f88261246c565b91506129038361246c565b92508282026129118161246c565b9150828204841483151761292857612927612748565b5b5092915050565b5f8151905061293d81612442565b92915050565b5f602082840312156129585761295761240e565b5b5f6129658482850161292f565b91505092915050565b5f6040820190506129815f830185612612565b61298e6020830184612612565b9392505050565b5f819050919050565b5f819050919050565b5f6129c16129bc6129b784612995565b61299e565b61246c565b9050919050565b6129d1816129a7565b82525050565b5f60c0820190506129ea5f830189612612565b6129f76020830188612510565b612a0460408301876129c8565b612a1160608301866129c8565b612a1e6080830185612612565b612a2b60a0830184612510565b979650505050505050565b5f81519050612a4481612475565b92915050565b5f805f60608486031215612a6157612a6061240e565b5b5f612a6e86828701612a36565b9350506020612a7f86828701612a36565b9250506040612a9086828701612a36565b9150509250925092565b5f604082019050612aad5f830185612612565b612aba6020830184612510565b9392505050565b612aca816124dd565b8114612ad4575f80fd5b50565b5f81519050612ae581612ac1565b92915050565b5f60208284031215612b0057612aff61240e565b5b5f612b0d84828501612ad7565b91505092915050565b5f60208284031215612b2b57612b2a61240e565b5b5f612b3884828501612a36565b91505092915050565b5f612b5b612b56612b5184612412565b61299e565b612412565b9050919050565b5f612b6c82612b41565b9050919050565b5f612b7d82612b62565b9050919050565b612b8d81612b73565b82525050565b5f604082019050612ba65f830185612b84565b612bb36020830184612510565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c1460248361236e565b9150612c1f82612bba565b604082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca260228361236e565b9150612cad82612c48565b604082019050919050565b5f6020820190508181035f830152612ccf81612c96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d3060258361236e565b9150612d3b82612cd6565b604082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbe60238361236e565b9150612dc982612d64565b604082019050919050565b5f6020820190508181035f830152612deb81612db2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e4c60298361236e565b9150612e5782612df2565b604082019050919050565b5f6020820190508181035f830152612e7981612e40565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612f0060498361236e565b9150612f0b82612e80565b606082019050919050565b5f6020820190508181035f830152612f2d81612ef4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6860198361236e565b9150612f7382612f34565b602082019050919050565b5f6020820190508181035f830152612f9581612f5c565b9050919050565b5f612fa68261246c565b9150612fb18361246c565b9250828201905080821115612fc957612fc8612748565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613003601a8361236e565b915061300e82612fcf565b602082019050919050565b5f6020820190508181035f83015261303081612ff7565b9050919050565b5f6130418261246c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361307357613072612748565b5b600182019050919050565b5f6130888261246c565b91506130938361246c565b92508282039050818111156130ab576130aa612748565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61313d81612431565b82525050565b5f61314e8383613134565b60208301905092915050565b5f602082019050919050565b5f6131708261310b565b61317a8185613115565b935061318583613125565b805f5b838110156131b557815161319c8882613143565b97506131a78361315a565b925050600181019050613188565b5085935050505092915050565b5f60a0820190506131d55f830188612510565b6131e260208301876129c8565b81810360408301526131f48186613166565b90506132036060830185612612565b6132106080830184612510565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132518261246c565b915061325c8361246c565b92508261326c5761326b61321a565b5b828204905092915050565b7f43616e27742076657269667920300000000000000000000000000000000000005f82015250565b5f6132ab600e8361236e565b91506132b682613277565b602082019050919050565b5f6020820190508181035f8301526132d88161329f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61333960218361236e565b9150613344826132df565b604082019050919050565b5f6020820190508181035f8301526133668161332d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133a1601b8361236e565b91506133ac8261336d565b602082019050919050565b5f6020820190508181035f8301526133ce81613395565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122034b710a9e5e9dfcaee18f96a6f9c6940e97d12fd7a1f5b8971f837b37430ec0464736f6c63430008140033

Deployed Bytecode Sourcemap

5089:9280:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7277:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12739:674;;;;;;;;;;;;;:::i;:::-;;8110:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7554:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8420:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7463:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13688:348;;;;;;;;;;;;;:::i;:::-;;7657:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4170:148;;;;;;;;;;;;;:::i;:::-;;8279:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12228:196;;;;;;;;;;;;;:::i;:::-;;6198:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3956:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6264:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7368:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14042:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7784:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6330:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5432:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7959:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13425:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7277:83;7314:13;7347:5;;;;;;;;;;;;;;;;;7340:12;;7277:83;:::o;12739:674::-;4093:12;:10;:12::i;:::-;4083:22;;:6;;;;;;;;;;:22;;;4075:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12806:11:::1;;;;;;;;;;;12805:12;12797:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12892:42;12855:15;;:80;;;;;;;;;;;;;;;;;;12946:58;12963:4;12978:15;;;;;;;;;;;6013:1;6070:2;:13;;;;:::i;:::-;6056:11;:27;;;;:::i;:::-;12946:8;:58::i;:::-;13049:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13031:55;;;13095:4;13102:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13031:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13015:13;;:110;;;;;;;;;;;;;;;;;;13136:15;;;;;;;;;;;:31;;;13175:21;13206:4;13212:24;13230:4;13212:9;:24::i;:::-;13237:1;13239::::0;13241:7:::1;:5;:7::i;:::-;13249:15;13136:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13283:13;;;;;;;;;;;13276:29;;;13314:15;;;;;;;;;;;13332:14;13276:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13372:4;13358:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13401:4;13387:11;;:18;;;;;;;;;;;;;;;;;;12739:674::o:0;8110:161::-;8185:4;8202:39;8211:12;:10;:12::i;:::-;8225:7;8234:6;8202:8;:39::i;:::-;8259:4;8252:11;;8110:161;;;;:::o;6397:54::-;;;;:::o;7554:95::-;7607:7;6013:1;6070:2;:13;;;;:::i;:::-;6056:11;:27;;;;:::i;:::-;7627:14;;7554:95;:::o;8420:313::-;8518:4;8535:36;8545:6;8553:9;8564:6;8535:9;:36::i;:::-;8582:121;8591:6;8599:12;:10;:12::i;:::-;8613:89;8651:6;8613:89;;;;;;;;;;;;;;;;;:11;:19;8625:6;8613:19;;;;;;;;;;;;;;;:33;8633:12;:10;:12::i;:::-;8613:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8582:8;:121::i;:::-;8721:4;8714:11;;8420:313;;;;;:::o;7463:83::-;7504:5;6013:1;7522:16;;7463:83;:::o;13688:348::-;13752:10;;;;;;;;;;;13738:24;;:12;:10;:12::i;:::-;:24;;;13730:33;;;;;;13774:20;13795:24;13813:4;13795:9;:24::i;:::-;13774:45;;13846:1;13833:12;:14;13830:73;;;13861:30;13878:12;13861:16;:30::i;:::-;13830:73;13913:18;13932:21;13913:40;;13978:1;13967:10;:12;13964:65;;;13993:24;14006:10;13993:12;:24::i;:::-;13964:65;13719:317;;13688:348::o;7657:119::-;7723:7;7750:9;:18;7760:7;7750:18;;;;;;;;;;;;;;;;7743:25;;7657:119;;;:::o;4170:148::-;4093:12;:10;:12::i;:::-;4083:22;;:6;;;;;;;;;;:22;;;4075:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4277:1:::1;4240:40;;4261:6;::::0;::::1;;;;;;;;4240:40;;;;;;;;;;;;4308:1;4291:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4170:148::o:0;8279:133::-;8346:4;8363:19;8371:10;8363:7;:19::i;:::-;8400:4;8393:11;;8279:133;;;:::o;12228:196::-;4093:12;:10;:12::i;:::-;4083:22;;:6;;;;;;;;;;:22;;;4075:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6013:1:::1;6070:2;:13;;;;:::i;:::-;6056:11;:27;;;;:::i;:::-;12281:12;:22;;;;6013:1;6070:2;:13;;;;:::i;:::-;6056:11;:27;;;;:::i;:::-;12314:14;:22;;;;12368:5;12347:20;;:26;;;;;;;;;;;;;;;;;;12389:27;6013:1;6070:2;:13;;;;:::i;:::-;6056:11;:27;;;;:::i;:::-;12389;;;;;;:::i;:::-;;;;;;;;12228:196::o:0;6198:58::-;;;;:::o;3956:79::-;3994:7;4021:6;;;;;;;;;;;4014:13;;3956:79;:::o;6264:58::-;;;;:::o;7368:87::-;7407:13;7440:7;;;;;;;;;;;;;;;;;7433:14;;7368:87;:::o;14042:324::-;14118:12;14161:1;14151:6;:11;14148:96;;14194:12;14187:30;;;14226:4;14187:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14178:54;;14148:96;14259:32;14270:12;14284:6;14259:32;;;;;;;:::i;:::-;;;;;;;;14316:12;14309:29;;;14339:10;;;;;;;;;;;14351:6;14309:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14302:56;;14042:324;;;;:::o;7784:167::-;7862:4;7879:42;7889:12;:10;:12::i;:::-;7903:9;7914:6;7879:9;:42::i;:::-;7939:4;7932:11;;7784:167;;;;:::o;6330:60::-;;;;:::o;5432:39::-;;;;;;;;;;;;;:::o;7959:143::-;8040:7;8067:11;:18;8079:5;8067:18;;;;;;;;;;;;;;;:27;8086:7;8067:27;;;;;;;;;;;;;;;;8060:34;;7959:143;;;;:::o;13425:218::-;13500:10;;;;;;;;;;;13486:24;;:12;:10;:12::i;:::-;:24;;;13478:33;;;;;;13537:12;;13528:7;:21;;:47;;;;;13562:13;;13553:7;:22;;13528:47;13520:56;;;;;;13598:7;13585:12;:20;;;;13628:7;13614:13;:21;;;;13425:218;:::o;1711:98::-;1764:7;1791:10;1784:17;;1711:98;:::o;8741:335::-;8851:1;8834:19;;:5;:19;;;8826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8932:1;8913:21;;:7;:21;;;8905:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9014:6;8984:11;:18;8996:5;8984:18;;;;;;;;;;;;;;;:27;9003:7;8984:27;;;;;;;;;;;;;;;:36;;;;9052:7;9036:32;;9045:5;9036:32;;;9061:6;9036:32;;;;;;:::i;:::-;;;;;;;;8741:335;;;:::o;9223:2398::-;9327:1;9311:18;;:4;:18;;;9303:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9404:1;9390:16;;:2;:16;;;9382:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9474:1;9465:6;:10;9457:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9532:17;9574:7;:5;:7::i;:::-;9566:15;;:4;:15;;;;:32;;;;;9591:7;:5;:7::i;:::-;9585:13;;:2;:13;;;;9566:32;9562:1703;;;9627:76;9699:3;9627:67;9649:15;;9639:9;;:25;9638:55;;9679:14;;9638:55;;;9666:12;;9638:55;9627:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9615:88;;9724:20;;;;;;;;;;;9720:508;;;9785:15;;;;;;;;;;;9771:30;;:2;:30;;;;:62;;;;;9819:13;;;;;;;;;;;9805:28;;:2;:28;;;;9771:62;9767:444;;;9969:12;9896:28;:39;9925:9;9896:39;;;;;;;;;;;;;;;;:85;9860:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;10177:12;10135:28;:39;10164:9;10135:39;;;;;;;;;;;;;;;:54;;;;9767:444;9720:508;10256:13;;;;;;;;;;;10248:21;;:4;:21;;;:55;;;;;10287:15;;;;;;;;;;;10273:30;;:2;:30;;;;10248:55;:83;;;;;10309:18;:22;10328:2;10309:22;;;;;;;;;;;;;;;;;;;;;;;;;10307:24;10248:83;10244:313;;;10371:12;;10361:6;:22;;10353:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10466:14;;10456:6;10440:13;10450:2;10440:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10432:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10530:9;;:11;;;;;;;;;:::i;:::-;;;;;;10244:313;10582:13;;;;;;;;;;;10576:19;;:2;:19;;;:43;;;;;10614:4;10599:20;;:4;:20;;;;10576:43;10573:174;;;10652:79;10727:3;10652:70;10674:16;;10664:9;;:26;10663:58;;10706:15;;10663:58;;;10692:13;;10663:58;10652:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;10640:91;;10573:174;10763:28;10794:24;10812:4;10794:9;:24::i;:::-;10763:55;;10838:6;;;;;;;;;;;10837:7;:32;;;;;10856:13;;;;;;;;;;;10848:21;;:2;:21;;;10837:32;:47;;;;;10873:11;;;;;;;;;;10837:47;:89;;;;;10909:17;;10888:20;:38;10837:89;:121;;;;;10940:18;;10930:9;;:28;10837:121;10833:421;;;10979:67;10996:49;11000:6;11007:37;11011:20;11032:11;;11007:3;:37::i;:::-;10996:3;:49::i;:::-;10979:16;:67::i;:::-;11065:26;11094:21;11065:50;;11158:1;11137:18;:22;11134:105;;;11184:35;11197:21;11184:12;:35::i;:::-;11134:105;10960:294;10833:421;9600:1665;9562:1703;11290:1;11280:9;:11;11277:161;;;11330:39;11359:9;11330;:24;11348:4;11330:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11305:9;:24;11323:4;11305:24;;;;;;;;;;;;;;;:64;;;;11410:4;11387:39;;11396:4;11387:39;;;11416:9;11387:39;;;;;;:::i;:::-;;;;;;;;11277:161;11464:27;11484:6;11464:9;:15;11474:4;11464:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11448:9;:15;11458:4;11448:15;;;;;;;;;;;;;;;:43;;;;11516:40;11534:21;11545:9;11534:6;:10;;:21;;;;:::i;:::-;11516:9;:13;11526:2;11516:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11502:9;:13;11512:2;11502:13;;;;;;;;;;;;;;;:54;;;;11587:2;11572:41;;11581:4;11572:41;;;11591:21;11602:9;11591:6;:10;;:21;;;;:::i;:::-;11572:41;;;;;;:::i;:::-;;;;;;;;9292:2329;9223:2398;;;:::o;2848:190::-;2934:7;2967:1;2962;:6;;2970:12;2954:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2994:9;3010:1;3006;:5;;;;:::i;:::-;2994:17;;3029:1;3022:8;;;2848:190;;;;;:::o;11737:483::-;6749:4;6740:6;;:13;;;;;;;;;;;;;;;;;;11815:21:::1;11853:1;11839:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11815:40;;11884:4;11866;11871:1;11866:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11910:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11900:4;11905:1;11900:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11943:62;11960:4;11975:15;;;;;;;;;;;11993:11;11943:8;:62::i;:::-;12016:15;;;;;;;;;;;:66;;;12097:11;12123:1;12139:4;12166;12186:15;12016:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11804:416;6785:5:::0;6776:6;;:14;;;;;;;;;;;;;;;;;;11737:483;:::o;12432:295::-;12490:22;12547:3;12524:20;;12515:6;:29;;;;:::i;:::-;:35;;;;:::i;:::-;12490:60;;12561:23;12620:3;12596:21;;12587:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;12561:62;;12636:10;;;;;;;;;;;:19;;:35;12656:14;12636:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12682:11;;;;;;;;;;;:20;;:37;12703:15;12682:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:249;;12432:295;:::o;9084:131::-;9187:1;9173:10;:15;9165:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9084:131;:::o;3046:246::-;3104:7;3133:1;3128;:6;3124:47;;3158:1;3151:8;;;;3124:47;3181:9;3197:1;3193;:5;;;;:::i;:::-;3181:17;;3226:1;3221;3217;:5;;;;:::i;:::-;:10;3209:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3283:1;3276:8;;;3046:246;;;;;:::o;3300:132::-;3358:7;3385:39;3389:1;3392;3385:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3378:46;;3300:132;;;;:::o;11631:98::-;11688:7;11715:1;11713;:3;11712:9;;11720:1;11712:9;;;11718:1;11712:9;11705:16;;11631:98;;;;:::o;2517:179::-;2575:7;2595:9;2611:1;2607;:5;;;;:::i;:::-;2595:17;;2636:1;2631;:6;;2623:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2687:1;2680:8;;;2517:179;;;;:::o;2704:136::-;2762:7;2789:43;2793:1;2796;2789:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2782:50;;2704:136;;;;:::o;3440:189::-;3526:7;3558:1;3554;:5;3561:12;3546:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3585:9;3601:1;3597;:5;;;;:::i;:::-;3585:17;;3620:1;3613:8;;;3440: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:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:173::-;7480:25;7476:1;7468:6;7464:14;7457:49;7340:173;:::o;7519:366::-;7661:3;7682:67;7746:2;7741:3;7682:67;:::i;:::-;7675:74;;7758:93;7847:3;7758:93;:::i;:::-;7876:2;7871:3;7867:12;7860:19;;7519:366;;;:::o;7891:419::-;8057:4;8095:2;8084:9;8080:18;8072:26;;8144:9;8138:4;8134:20;8130:1;8119:9;8115:17;8108:47;8172:131;8298:4;8172:131;:::i;:::-;8164:139;;7891:419;;;:::o;8316:180::-;8364:77;8361:1;8354:88;8461:4;8458:1;8451:15;8485:4;8482:1;8475:15;8502:102;8544:8;8591:5;8588:1;8584:13;8563:34;;8502:102;;;:::o;8610:848::-;8671:5;8678:4;8702:6;8693:15;;8726:5;8717:14;;8740:712;8761:1;8751:8;8748:15;8740:712;;;8856:4;8851:3;8847:14;8841:4;8838:24;8835:50;;;8865:18;;:::i;:::-;8835:50;8915:1;8905:8;8901:16;8898:451;;;9330:4;9323:5;9319:16;9310:25;;8898:451;9380:4;9374;9370:15;9362:23;;9410:32;9433:8;9410:32;:::i;:::-;9398:44;;8740:712;;;8610:848;;;;;;;:::o;9464:1073::-;9518:5;9709:8;9699:40;;9730:1;9721:10;;9732:5;;9699:40;9758:4;9748:36;;9775:1;9766:10;;9777:5;;9748:36;9844:4;9892:1;9887:27;;;;9928:1;9923:191;;;;9837:277;;9887:27;9905:1;9896:10;;9907:5;;;9923:191;9968:3;9958:8;9955:17;9952:43;;;9975:18;;:::i;:::-;9952:43;10024:8;10021:1;10017:16;10008:25;;10059:3;10052:5;10049:14;10046:40;;;10066:18;;:::i;:::-;10046:40;10099:5;;;9837:277;;10223:2;10213:8;10210:16;10204:3;10198:4;10195:13;10191:36;10173:2;10163:8;10160:16;10155:2;10149:4;10146:12;10142:35;10126:111;10123:246;;;10279:8;10273:4;10269:19;10260:28;;10314:3;10307:5;10304:14;10301:40;;;10321:18;;:::i;:::-;10301:40;10354:5;;10123:246;10394:42;10432:3;10422:8;10416:4;10413:1;10394:42;:::i;:::-;10379:57;;;;10468:4;10463:3;10459:14;10452:5;10449:25;10446:51;;;10477:18;;:::i;:::-;10446:51;10526:4;10519:5;10515:16;10506:25;;9464:1073;;;;;;:::o;10543:281::-;10601:5;10625:23;10643:4;10625:23;:::i;:::-;10617:31;;10669:25;10685:8;10669:25;:::i;:::-;10657:37;;10713:104;10750:66;10740:8;10734:4;10713:104;:::i;:::-;10704:113;;10543:281;;;;:::o;10830:410::-;10870:7;10893:20;10911:1;10893:20;:::i;:::-;10888:25;;10927:20;10945:1;10927:20;:::i;:::-;10922:25;;10982:1;10979;10975:9;11004:30;11022:11;11004:30;:::i;:::-;10993:41;;11183:1;11174:7;11170:15;11167:1;11164:22;11144:1;11137:9;11117:83;11094:139;;11213:18;;:::i;:::-;11094:139;10878:362;10830:410;;;;:::o;11246:143::-;11303:5;11334:6;11328:13;11319:22;;11350:33;11377:5;11350:33;:::i;:::-;11246:143;;;;:::o;11395:351::-;11465:6;11514:2;11502:9;11493:7;11489:23;11485:32;11482:119;;;11520:79;;:::i;:::-;11482:119;11640:1;11665:64;11721:7;11712:6;11701:9;11697:22;11665:64;:::i;:::-;11655:74;;11611:128;11395:351;;;;:::o;11752:332::-;11873:4;11911:2;11900:9;11896:18;11888:26;;11924:71;11992:1;11981:9;11977:17;11968:6;11924:71;:::i;:::-;12005:72;12073:2;12062:9;12058:18;12049:6;12005:72;:::i;:::-;11752:332;;;;;:::o;12090:85::-;12135:7;12164:5;12153:16;;12090:85;;;:::o;12181:60::-;12209:3;12230:5;12223:12;;12181:60;;;:::o;12247:158::-;12305:9;12338:61;12356:42;12365:32;12391:5;12365:32;:::i;:::-;12356:42;:::i;:::-;12338:61;:::i;:::-;12325:74;;12247:158;;;:::o;12411:147::-;12506:45;12545:5;12506:45;:::i;:::-;12501:3;12494:58;12411:147;;:::o;12564:807::-;12813:4;12851:3;12840:9;12836:19;12828:27;;12865:71;12933:1;12922:9;12918:17;12909:6;12865:71;:::i;:::-;12946:72;13014:2;13003:9;12999:18;12990:6;12946:72;:::i;:::-;13028:80;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118;13194:2;13183:9;13179:18;13170:6;13118:80;:::i;:::-;13208:73;13276:3;13265:9;13261:19;13252:6;13208:73;:::i;:::-;13291;13359:3;13348:9;13344:19;13335:6;13291:73;:::i;:::-;12564:807;;;;;;;;;:::o;13377:143::-;13434:5;13465:6;13459:13;13450:22;;13481:33;13508:5;13481:33;:::i;:::-;13377:143;;;;:::o;13526:663::-;13614:6;13622;13630;13679:2;13667:9;13658:7;13654:23;13650:32;13647:119;;;13685:79;;:::i;:::-;13647:119;13805:1;13830:64;13886:7;13877:6;13866:9;13862:22;13830:64;:::i;:::-;13820:74;;13776:128;13943:2;13969:64;14025:7;14016:6;14005:9;14001:22;13969:64;:::i;:::-;13959:74;;13914:129;14082:2;14108:64;14164:7;14155:6;14144:9;14140:22;14108:64;:::i;:::-;14098:74;;14053:129;13526:663;;;;;:::o;14195:332::-;14316:4;14354:2;14343:9;14339:18;14331:26;;14367:71;14435:1;14424:9;14420:17;14411:6;14367:71;:::i;:::-;14448:72;14516:2;14505:9;14501:18;14492:6;14448:72;:::i;:::-;14195:332;;;;;:::o;14533:116::-;14603:21;14618:5;14603:21;:::i;:::-;14596:5;14593:32;14583:60;;14639:1;14636;14629:12;14583:60;14533:116;:::o;14655:137::-;14709:5;14740:6;14734:13;14725:22;;14756:30;14780:5;14756:30;:::i;:::-;14655:137;;;;:::o;14798:345::-;14865:6;14914:2;14902:9;14893:7;14889:23;14885:32;14882:119;;;14920:79;;:::i;:::-;14882:119;15040:1;15065:61;15118:7;15109:6;15098:9;15094:22;15065:61;:::i;:::-;15055:71;;15011:125;14798:345;;;;:::o;15149:351::-;15219:6;15268:2;15256:9;15247:7;15243:23;15239:32;15236:119;;;15274:79;;:::i;:::-;15236:119;15394:1;15419:64;15475:7;15466:6;15455:9;15451:22;15419:64;:::i;:::-;15409:74;;15365:128;15149:351;;;;:::o;15506:142::-;15556:9;15589:53;15607:34;15616:24;15634:5;15616:24;:::i;:::-;15607:34;:::i;:::-;15589:53;:::i;:::-;15576:66;;15506:142;;;:::o;15654:126::-;15704:9;15737:37;15768:5;15737:37;:::i;:::-;15724:50;;15654:126;;;:::o;15786:134::-;15844:9;15877:37;15908:5;15877:37;:::i;:::-;15864:50;;15786:134;;;:::o;15926:147::-;16021:45;16060:5;16021:45;:::i;:::-;16016:3;16009:58;15926:147;;:::o;16079:348::-;16208:4;16246:2;16235:9;16231:18;16223:26;;16259:79;16335:1;16324:9;16320:17;16311:6;16259:79;:::i;:::-;16348:72;16416:2;16405:9;16401:18;16392:6;16348:72;:::i;:::-;16079:348;;;;;:::o;16433:223::-;16573:34;16569:1;16561:6;16557:14;16550:58;16642:6;16637:2;16629:6;16625:15;16618:31;16433:223;:::o;16662:366::-;16804:3;16825:67;16889:2;16884:3;16825:67;:::i;:::-;16818:74;;16901:93;16990:3;16901:93;:::i;:::-;17019:2;17014:3;17010:12;17003:19;;16662:366;;;:::o;17034:419::-;17200:4;17238:2;17227:9;17223:18;17215:26;;17287:9;17281:4;17277:20;17273:1;17262:9;17258:17;17251:47;17315:131;17441:4;17315:131;:::i;:::-;17307:139;;17034:419;;;:::o;17459:221::-;17599:34;17595:1;17587:6;17583:14;17576:58;17668:4;17663:2;17655:6;17651:15;17644:29;17459:221;:::o;17686:366::-;17828:3;17849:67;17913:2;17908:3;17849:67;:::i;:::-;17842:74;;17925:93;18014:3;17925:93;:::i;:::-;18043:2;18038:3;18034:12;18027:19;;17686:366;;;:::o;18058:419::-;18224:4;18262:2;18251:9;18247:18;18239:26;;18311:9;18305:4;18301:20;18297:1;18286:9;18282:17;18275:47;18339:131;18465:4;18339:131;:::i;:::-;18331:139;;18058:419;;;:::o;18483:224::-;18623:34;18619:1;18611:6;18607:14;18600:58;18692:7;18687:2;18679:6;18675:15;18668:32;18483:224;:::o;18713:366::-;18855:3;18876:67;18940:2;18935:3;18876:67;:::i;:::-;18869:74;;18952:93;19041:3;18952:93;:::i;:::-;19070:2;19065:3;19061:12;19054:19;;18713:366;;;:::o;19085:419::-;19251:4;19289:2;19278:9;19274:18;19266:26;;19338:9;19332:4;19328:20;19324:1;19313:9;19309:17;19302:47;19366:131;19492:4;19366:131;:::i;:::-;19358:139;;19085:419;;;:::o;19510:222::-;19650:34;19646:1;19638:6;19634:14;19627:58;19719:5;19714:2;19706:6;19702:15;19695:30;19510:222;:::o;19738:366::-;19880:3;19901:67;19965:2;19960:3;19901:67;:::i;:::-;19894:74;;19977:93;20066:3;19977:93;:::i;:::-;20095:2;20090:3;20086:12;20079:19;;19738:366;;;:::o;20110:419::-;20276:4;20314:2;20303:9;20299:18;20291:26;;20363:9;20357:4;20353:20;20349:1;20338:9;20334:17;20327:47;20391:131;20517:4;20391:131;:::i;:::-;20383:139;;20110:419;;;:::o;20535:228::-;20675:34;20671:1;20663:6;20659:14;20652:58;20744:11;20739:2;20731:6;20727:15;20720:36;20535:228;:::o;20769:366::-;20911:3;20932:67;20996:2;20991:3;20932:67;:::i;:::-;20925:74;;21008:93;21097:3;21008:93;:::i;:::-;21126:2;21121:3;21117:12;21110:19;;20769:366;;;:::o;21141:419::-;21307:4;21345:2;21334:9;21330:18;21322:26;;21394:9;21388:4;21384:20;21380:1;21369:9;21365:17;21358:47;21422:131;21548:4;21422:131;:::i;:::-;21414:139;;21141:419;;;:::o;21566:297::-;21706:34;21702:1;21694:6;21690:14;21683:58;21775:34;21770:2;21762:6;21758:15;21751:59;21844:11;21839:2;21831:6;21827:15;21820:36;21566:297;:::o;21869:366::-;22011:3;22032:67;22096:2;22091:3;22032:67;:::i;:::-;22025:74;;22108:93;22197:3;22108:93;:::i;:::-;22226:2;22221:3;22217:12;22210:19;;21869:366;;;:::o;22241:419::-;22407:4;22445:2;22434:9;22430:18;22422:26;;22494:9;22488:4;22484:20;22480:1;22469:9;22465:17;22458:47;22522:131;22648:4;22522:131;:::i;:::-;22514:139;;22241:419;;;:::o;22666:175::-;22806:27;22802:1;22794:6;22790:14;22783:51;22666:175;:::o;22847:366::-;22989:3;23010:67;23074:2;23069:3;23010:67;:::i;:::-;23003:74;;23086:93;23175:3;23086:93;:::i;:::-;23204:2;23199:3;23195:12;23188:19;;22847:366;;;:::o;23219:419::-;23385:4;23423:2;23412:9;23408:18;23400:26;;23472:9;23466:4;23462:20;23458:1;23447:9;23443:17;23436:47;23500:131;23626:4;23500:131;:::i;:::-;23492:139;;23219:419;;;:::o;23644:191::-;23684:3;23703:20;23721:1;23703:20;:::i;:::-;23698:25;;23737:20;23755:1;23737:20;:::i;:::-;23732:25;;23780:1;23777;23773:9;23766:16;;23801:3;23798:1;23795:10;23792:36;;;23808:18;;:::i;:::-;23792:36;23644:191;;;;:::o;23841:176::-;23981:28;23977:1;23969:6;23965:14;23958:52;23841:176;:::o;24023:366::-;24165:3;24186:67;24250:2;24245:3;24186:67;:::i;:::-;24179:74;;24262:93;24351:3;24262:93;:::i;:::-;24380:2;24375:3;24371:12;24364:19;;24023:366;;;:::o;24395:419::-;24561:4;24599:2;24588:9;24584:18;24576:26;;24648:9;24642:4;24638:20;24634:1;24623:9;24619:17;24612:47;24676:131;24802:4;24676:131;:::i;:::-;24668:139;;24395:419;;;:::o;24820:233::-;24859:3;24882:24;24900:5;24882:24;:::i;:::-;24873:33;;24928:66;24921:5;24918:77;24915:103;;24998:18;;:::i;:::-;24915:103;25045:1;25038:5;25034:13;25027:20;;24820:233;;;:::o;25059:194::-;25099:4;25119:20;25137:1;25119:20;:::i;:::-;25114:25;;25153:20;25171:1;25153:20;:::i;:::-;25148:25;;25197:1;25194;25190:9;25182:17;;25221:1;25215:4;25212:11;25209:37;;;25226:18;;:::i;:::-;25209:37;25059:194;;;;:::o;25259:180::-;25307:77;25304:1;25297:88;25404:4;25401:1;25394:15;25428:4;25425:1;25418:15;25445:180;25493:77;25490:1;25483:88;25590:4;25587:1;25580:15;25614:4;25611:1;25604:15;25631:114;25698:6;25732:5;25726:12;25716:22;;25631:114;;;:::o;25751:184::-;25850:11;25884:6;25879:3;25872:19;25924:4;25919:3;25915:14;25900:29;;25751:184;;;;:::o;25941:132::-;26008:4;26031:3;26023:11;;26061:4;26056:3;26052:14;26044:22;;25941:132;;;:::o;26079:108::-;26156:24;26174:5;26156:24;:::i;:::-;26151:3;26144:37;26079:108;;:::o;26193:179::-;26262:10;26283:46;26325:3;26317:6;26283:46;:::i;:::-;26361:4;26356:3;26352:14;26338:28;;26193:179;;;;:::o;26378:113::-;26448:4;26480;26475:3;26471:14;26463:22;;26378:113;;;:::o;26527:732::-;26646:3;26675:54;26723:5;26675:54;:::i;:::-;26745:86;26824:6;26819:3;26745:86;:::i;:::-;26738:93;;26855:56;26905:5;26855:56;:::i;:::-;26934:7;26965:1;26950:284;26975:6;26972:1;26969:13;26950:284;;;27051:6;27045:13;27078:63;27137:3;27122:13;27078:63;:::i;:::-;27071:70;;27164:60;27217:6;27164:60;:::i;:::-;27154:70;;27010:224;26997:1;26994;26990:9;26985:14;;26950:284;;;26954:14;27250:3;27243:10;;26651:608;;;26527:732;;;;:::o;27265:831::-;27528:4;27566:3;27555:9;27551:19;27543:27;;27580:71;27648:1;27637:9;27633:17;27624:6;27580:71;:::i;:::-;27661:80;27737:2;27726:9;27722:18;27713:6;27661:80;:::i;:::-;27788:9;27782:4;27778:20;27773:2;27762:9;27758:18;27751:48;27816:108;27919:4;27910:6;27816:108;:::i;:::-;27808:116;;27934:72;28002:2;27991:9;27987:18;27978:6;27934:72;:::i;:::-;28016:73;28084:3;28073:9;28069:19;28060:6;28016:73;:::i;:::-;27265:831;;;;;;;;:::o;28102:180::-;28150:77;28147:1;28140:88;28247:4;28244:1;28237:15;28271:4;28268:1;28261:15;28288:185;28328:1;28345:20;28363:1;28345:20;:::i;:::-;28340:25;;28379:20;28397:1;28379:20;:::i;:::-;28374:25;;28418:1;28408:35;;28423:18;;:::i;:::-;28408:35;28465:1;28462;28458:9;28453:14;;28288:185;;;;:::o;28479:164::-;28619:16;28615:1;28607:6;28603:14;28596:40;28479:164;:::o;28649:366::-;28791:3;28812:67;28876:2;28871:3;28812:67;:::i;:::-;28805:74;;28888:93;28977:3;28888:93;:::i;:::-;29006:2;29001:3;28997:12;28990:19;;28649:366;;;:::o;29021:419::-;29187:4;29225:2;29214:9;29210:18;29202:26;;29274:9;29268:4;29264:20;29260:1;29249:9;29245:17;29238:47;29302:131;29428:4;29302:131;:::i;:::-;29294:139;;29021:419;;;:::o;29446:220::-;29586:34;29582:1;29574:6;29570:14;29563:58;29655:3;29650:2;29642:6;29638:15;29631:28;29446:220;:::o;29672:366::-;29814:3;29835:67;29899:2;29894:3;29835:67;:::i;:::-;29828:74;;29911:93;30000:3;29911:93;:::i;:::-;30029:2;30024:3;30020:12;30013:19;;29672:366;;;:::o;30044:419::-;30210:4;30248:2;30237:9;30233:18;30225:26;;30297:9;30291:4;30287:20;30283:1;30272:9;30268:17;30261:47;30325:131;30451:4;30325:131;:::i;:::-;30317:139;;30044:419;;;:::o;30469:177::-;30609:29;30605:1;30597:6;30593:14;30586:53;30469:177;:::o;30652:366::-;30794:3;30815:67;30879:2;30874:3;30815:67;:::i;:::-;30808:74;;30891:93;30980:3;30891:93;:::i;:::-;31009:2;31004:3;31000:12;30993:19;;30652:366;;;:::o;31024:419::-;31190:4;31228:2;31217:9;31213:18;31205:26;;31277:9;31271:4;31267:20;31263:1;31252:9;31248:17;31241:47;31305:131;31431:4;31305:131;:::i;:::-;31297:139;;31024:419;;;:::o

Swarm Source

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