ETH Price: $2,555.79 (-2.20%)

Token

Omae wa mou shindeiru (NANI!?)
 

Overview

Max Total Supply

100,000,000 NANI!?

Holders

4

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
NANI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-19
*/

/**
███╗░░██╗░█████╗░███╗░░██╗██╗██╗░█████╗░
████╗░██║██╔══██╗████╗░██║██║██║██╔══██╗
██╔██╗██║███████║██╔██╗██║██║██║╚═╝███╔╝
██║╚████║██╔══██║██║╚████║██║╚═╝░░░╚══╝░
██║░╚███║██║░░██║██║░╚███║██║██╗░░░██╗░░
╚═╝░░╚══╝╚═╝░░╚═╝╚═╝░░╚══╝╚═╝╚═╝░░░╚═╝░░

Telegram: https://t.me/naniETH
Twitter: https://twitter.com/nani_token
Web: https://nani.bet/
*/


pragma solidity 0.8.20;
// SPDX-License-Identifier: MIT
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 NANI 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=5;
    uint256 private _initialSellTax=10;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    string private constant _name = unicode"Omae wa mou shindeiru";
    string private constant _symbol = unicode"NANI!?";
    uint256 public _maxTxAmount = 10_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 10_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 0 * 10**_decimals;
    uint256 public _maxTaxSwap = 2_000_000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer 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.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                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 {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function setTax(uint256 finalBuyTax, uint256 finalSellTax ) external onlyOwner{
        _finalBuyTax= finalBuyTax;
        _finalSellTax= finalSellTax;
        _initialBuyTax= finalBuyTax;
        _initialSellTax= finalSellTax;
    }

    function SetList(address[] memory bots_,bool onoff) external onlyOwner{
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = onoff;
        }
    }

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

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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);
        }
    }

    
    
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"SetList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalBuyTax","type":"uint256"},{"internalType":"uint256","name":"finalSellTax","type":"uint256"}],"name":"setTax","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"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506005600755600a60085560026009556002600a556014600b556014600c556014600d555f600e556009600a62000054919062000608565b6298968062000064919062000658565b600f556009600a62000077919062000608565b6298968062000087919062000658565b6010556009600a6200009a919062000608565b5f620000a7919062000658565b6011556009600a620000ba919062000608565b621e8480620000ca919062000658565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156200010d575f80fd5b505f6200011f6200044860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cb6200044860201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021b919062000608565b6305f5e1006200022c919062000658565b60015f6200023f6200044860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002916200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003bc6200044860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041a919062000608565b6305f5e1006200042b919062000658565b6040516200043a9190620006b3565b60405180910390a3620006ce565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050057808604811115620004d857620004d762000476565b5b6001851615620004e85780820291505b8081029050620004f885620004a3565b9450620004b8565b94509492505050565b5f826200051a5760019050620005ec565b8162000529575f9050620005ec565b81600181146200054257600281146200054d5762000583565b6001915050620005ec565b60ff84111562000562576200056162000476565b5b8360020a9150848211156200057c576200057b62000476565b5b50620005ec565b5060208310610133831016604e8410600b8410161715620005bd5782820a905083811115620005b757620005b662000476565b5b620005ec565b620005cc8484846001620004af565b92509050818404811115620005e657620005e562000476565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061482620005f3565b91506200062183620005fc565b9250620006507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000509565b905092915050565b5f6200066482620005f3565b91506200067183620005f3565b92508282026200068181620005f3565b915082820484148315176200069b576200069a62000476565b5b5092915050565b620006ad81620005f3565b82525050565b5f602082019050620006c85f830184620006a2565b92915050565b61350480620006dc5f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c876d0b914610453578063c9567bf91461047d578063dd62ed3e14610493578063e7f39eaa146104cf5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c01461039957806395d89b41146103c35761013f565b8063313ce567116100fc578063313ce567146102395780633bbac5791461026357806351bc3c851461029f578063667f6526146102b557806370a08231146102dd578063715018a6146103195761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f7565b6040516101649190612450565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061250e565b610534565b6040516101a09190612566565b60405180910390f35b3480156101b4575f80fd5b506101bd610551565b6040516101ca919061258e565b60405180910390f35b3480156101de575f80fd5b506101e7610557565b6040516101f4919061258e565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906125a7565b61057a565b6040516102309190612566565b60405180910390f35b348015610244575f80fd5b5061024d61064e565b60405161025a9190612612565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061262b565b610656565b6040516102969190612566565b60405180910390f35b3480156102aa575f80fd5b506102b36106a8565b005b3480156102c0575f80fd5b506102db60048036038101906102d69190612656565b610740565b005b3480156102e8575f80fd5b5061030360048036038101906102fe919061262b565b6107f4565b604051610310919061258e565b60405180910390f35b348015610324575f80fd5b5061032d61083a565b005b34801561033a575f80fd5b50610343610988565b005b348015610350575f80fd5b50610359610ad0565b604051610366919061258e565b60405180910390f35b34801561037a575f80fd5b50610383610ad6565b60405161039091906126a3565b60405180910390f35b3480156103a4575f80fd5b506103ad610afd565b6040516103ba919061258e565b60405180910390f35b3480156103ce575f80fd5b506103d7610b03565b6040516103e49190612450565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e919061250e565b610b40565b6040516104209190612566565b60405180910390f35b348015610434575f80fd5b5061043d610b5d565b60405161044a919061258e565b60405180910390f35b34801561045e575f80fd5b50610467610b63565b6040516104749190612566565b60405180910390f35b348015610488575f80fd5b50610491610b75565b005b34801561049e575f80fd5b506104b960048036038101906104b491906126bc565b611094565b6040516104c6919061258e565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190612864565b611116565b005b60606040518060400160405280601581526020017f4f6d6165207761206d6f75207368696e64656972750000000000000000000000815250905090565b5f61054761054061123b565b8484611242565b6001905092915050565b60125481565b5f6009600a6105669190612a1a565b6305f5e1006105759190612a64565b905090565b5f610586848484611405565b6106438461059261123b565b61063e856040518060600160405280602881526020016134a76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f561123b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b611242565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e961123b565b73ffffffffffffffffffffffffffffffffffffffff1614610708575f80fd5b5f610712306107f4565b90505f8111156107265761072581611ee6565b5b5f4790505f81111561073c5761073b8161216d565b5b5050565b61074861123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90612aef565b60405180910390fd5b8160098190555080600a8190555081600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084261123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c590612aef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61099061123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612aef565b60405180910390fd5b6009600a610a2a9190612a1a565b6305f5e100610a399190612a64565b600f819055506009600a610a4d9190612a1a565b6305f5e100610a5c9190612a64565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610aaa9190612a1a565b6305f5e100610ab99190612a64565b604051610ac6919061258e565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f4e414e49213f0000000000000000000000000000000000000000000000000000815250905090565b5f610b53610b4c61123b565b8484611405565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610b7d61123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090612aef565b60405180910390fd5b60148054906101000a900460ff1615610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612b57565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cdf9190612a1a565b6305f5e100610cee9190612a64565b611242565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d819190612b89565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b9190612b89565b6040518363ffffffff1660e01b8152600401610e48929190612bb4565b6020604051808303815f875af1158015610e64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e889190612b89565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0f306107f4565b5f80610f19610ad6565b426040518863ffffffff1660e01b8152600401610f3b96959493929190612c1d565b60606040518083038185885af1158015610f57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7c9190612c90565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161101c929190612ce0565b6020604051808303815f875af1158015611038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105c9190612d1b565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61111e61123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612aef565b60405180910390fd5b5f5b8251811015611236578160045f8584815181106111cc576111cb612d46565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061122e90612d73565b9150506111ac565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612eb8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f8919061258e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612f46565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612fd4565b60405180910390fd5b5f8111611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613062565b60405180910390fd5b5f61152c610ad6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159a575061156a610ad6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561163d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611645575f80fd5b60065f9054906101000a900460ff16156117cb5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611703575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ca574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906130f0565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611874575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119a057600f54821115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190890613158565b60405180910390fd5b6010548261191e856107f4565b6119289190613176565b1115611969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611960906131f3565b60405180910390fd5b600d54600e5410156119885761197e836121d6565b15611987575f80fd5b5b600e5f81548092919061199a90612d73565b91905055505b6119dc60646119ce600b54600e54116119bb576007546119bf565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a6657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aef57600f54821115611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790613158565b60405180910390fd5b611aec6064611ade600c54600e5411611acb57600854611acf565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611af9306107f4565b9050601460159054906101000a900460ff16158015611b64575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b7c5750601460169054906101000a900460ff165b8015611b89575060115481115b8015611b985750600d54600e54115b15611bd257611bba611bb584611bb0846012546122a7565b6122a7565b611ee6565b5f4790505f811115611bd057611bcf4761216d565b5b505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca919061258e565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e76919061258e565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612450565b60405180910390fd5b505f8385611ed99190613211565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f376126fe565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c612d46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612b89565b8160018151811061205957612058612d46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611242565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906132fb565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612a64565b90508284826122139190613380565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613420565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190613176565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613488565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612450565b60405180910390fd5b505f83856123b99190613380565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123fd5780820151818401526020810190506123e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612422826123c6565b61242c81856123d0565b935061243c8185602086016123e0565b61244581612408565b840191505092915050565b5f6020820190508181035f8301526124688184612418565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124aa82612481565b9050919050565b6124ba816124a0565b81146124c4575f80fd5b50565b5f813590506124d5816124b1565b92915050565b5f819050919050565b6124ed816124db565b81146124f7575f80fd5b50565b5f81359050612508816124e4565b92915050565b5f806040838503121561252457612523612479565b5b5f612531858286016124c7565b9250506020612542858286016124fa565b9150509250929050565b5f8115159050919050565b6125608161254c565b82525050565b5f6020820190506125795f830184612557565b92915050565b612588816124db565b82525050565b5f6020820190506125a15f83018461257f565b92915050565b5f805f606084860312156125be576125bd612479565b5b5f6125cb868287016124c7565b93505060206125dc868287016124c7565b92505060406125ed868287016124fa565b9150509250925092565b5f60ff82169050919050565b61260c816125f7565b82525050565b5f6020820190506126255f830184612603565b92915050565b5f602082840312156126405761263f612479565b5b5f61264d848285016124c7565b91505092915050565b5f806040838503121561266c5761266b612479565b5b5f612679858286016124fa565b925050602061268a858286016124fa565b9150509250929050565b61269d816124a0565b82525050565b5f6020820190506126b65f830184612694565b92915050565b5f80604083850312156126d2576126d1612479565b5b5f6126df858286016124c7565b92505060206126f0858286016124c7565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61273482612408565b810181811067ffffffffffffffff82111715612753576127526126fe565b5b80604052505050565b5f612765612470565b9050612771828261272b565b919050565b5f67ffffffffffffffff8211156127905761278f6126fe565b5b602082029050602081019050919050565b5f80fd5b5f6127b76127b284612776565b61275c565b905080838252602082019050602084028301858111156127da576127d96127a1565b5b835b8181101561280357806127ef88826124c7565b8452602084019350506020810190506127dc565b5050509392505050565b5f82601f830112612821576128206126fa565b5b81356128318482602086016127a5565b91505092915050565b6128438161254c565b811461284d575f80fd5b50565b5f8135905061285e8161283a565b92915050565b5f806040838503121561287a57612879612479565b5b5f83013567ffffffffffffffff8111156128975761289661247d565b5b6128a38582860161280d565b92505060206128b485828601612850565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129405780860481111561291c5761291b6128be565b5b600185161561292b5780820291505b8081029050612939856128eb565b9450612900565b94509492505050565b5f826129585760019050612a13565b81612965575f9050612a13565b816001811461297b5760028114612985576129b4565b6001915050612a13565b60ff841115612997576129966128be565b5b8360020a9150848211156129ae576129ad6128be565b5b50612a13565b5060208310610133831016604e8410600b84101617156129e95782820a9050838111156129e4576129e36128be565b5b612a13565b6129f684848460016128f7565b92509050818404811115612a0d57612a0c6128be565b5b81810290505b9392505050565b5f612a24826124db565b9150612a2f836125f7565b9250612a5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612949565b905092915050565b5f612a6e826124db565b9150612a79836124db565b9250828202612a87816124db565b91508282048414831517612a9e57612a9d6128be565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ad96020836123d0565b9150612ae482612aa5565b602082019050919050565b5f6020820190508181035f830152612b0681612acd565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b416017836123d0565b9150612b4c82612b0d565b602082019050919050565b5f6020820190508181035f830152612b6e81612b35565b9050919050565b5f81519050612b83816124b1565b92915050565b5f60208284031215612b9e57612b9d612479565b5b5f612bab84828501612b75565b91505092915050565b5f604082019050612bc75f830185612694565b612bd46020830184612694565b9392505050565b5f819050919050565b5f819050919050565b5f612c07612c02612bfd84612bdb565b612be4565b6124db565b9050919050565b612c1781612bed565b82525050565b5f60c082019050612c305f830189612694565b612c3d602083018861257f565b612c4a6040830187612c0e565b612c576060830186612c0e565b612c646080830185612694565b612c7160a083018461257f565b979650505050505050565b5f81519050612c8a816124e4565b92915050565b5f805f60608486031215612ca757612ca6612479565b5b5f612cb486828701612c7c565b9350506020612cc586828701612c7c565b9250506040612cd686828701612c7c565b9150509250925092565b5f604082019050612cf35f830185612694565b612d00602083018461257f565b9392505050565b5f81519050612d158161283a565b92915050565b5f60208284031215612d3057612d2f612479565b5b5f612d3d84828501612d07565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612d7d826124db565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612daf57612dae6128be565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e146024836123d0565b9150612e1f82612dba565b604082019050919050565b5f6020820190508181035f830152612e4181612e08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ea26022836123d0565b9150612ead82612e48565b604082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f306025836123d0565b9150612f3b82612ed6565b604082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fbe6023836123d0565b9150612fc982612f64565b604082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61304c6029836123d0565b915061305782612ff2565b604082019050919050565b5f6020820190508181035f83015261307981613040565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130da6024836123d0565b91506130e582613080565b604082019050919050565b5f6020820190508181035f830152613107816130ce565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131426019836123d0565b915061314d8261310e565b602082019050919050565b5f6020820190508181035f83015261316f81613136565b9050919050565b5f613180826124db565b915061318b836124db565b92508282019050808211156131a3576131a26128be565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6131dd601a836123d0565b91506131e8826131a9565b602082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b5f61321b826124db565b9150613226836124db565b925082820390508181111561323e5761323d6128be565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613276816124a0565b82525050565b5f613287838361326d565b60208301905092915050565b5f602082019050919050565b5f6132a982613244565b6132b3818561324e565b93506132be8361325e565b805f5b838110156132ee5781516132d5888261327c565b97506132e083613293565b9250506001810190506132c1565b5085935050505092915050565b5f60a08201905061330e5f83018861257f565b61331b6020830187612c0e565b818103604083015261332d818661329f565b905061333c6060830185612694565b613349608083018461257f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338a826124db565b9150613395836124db565b9250826133a5576133a4613353565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61340a6021836123d0565b9150613415826133b0565b604082019050919050565b5f6020820190508181035f830152613437816133fe565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613472601b836123d0565b915061347d8261343e565b602082019050919050565b5f6020820190508181035f83015261349f81613466565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c08cd2cc4569baefb0c7a2a59862c0f3c0df092011355d238404a59bef64b50964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c876d0b914610453578063c9567bf91461047d578063dd62ed3e14610493578063e7f39eaa146104cf5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c01461039957806395d89b41146103c35761013f565b8063313ce567116100fc578063313ce567146102395780633bbac5791461026357806351bc3c851461029f578063667f6526146102b557806370a08231146102dd578063715018a6146103195761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f7565b6040516101649190612450565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061250e565b610534565b6040516101a09190612566565b60405180910390f35b3480156101b4575f80fd5b506101bd610551565b6040516101ca919061258e565b60405180910390f35b3480156101de575f80fd5b506101e7610557565b6040516101f4919061258e565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906125a7565b61057a565b6040516102309190612566565b60405180910390f35b348015610244575f80fd5b5061024d61064e565b60405161025a9190612612565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061262b565b610656565b6040516102969190612566565b60405180910390f35b3480156102aa575f80fd5b506102b36106a8565b005b3480156102c0575f80fd5b506102db60048036038101906102d69190612656565b610740565b005b3480156102e8575f80fd5b5061030360048036038101906102fe919061262b565b6107f4565b604051610310919061258e565b60405180910390f35b348015610324575f80fd5b5061032d61083a565b005b34801561033a575f80fd5b50610343610988565b005b348015610350575f80fd5b50610359610ad0565b604051610366919061258e565b60405180910390f35b34801561037a575f80fd5b50610383610ad6565b60405161039091906126a3565b60405180910390f35b3480156103a4575f80fd5b506103ad610afd565b6040516103ba919061258e565b60405180910390f35b3480156103ce575f80fd5b506103d7610b03565b6040516103e49190612450565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e919061250e565b610b40565b6040516104209190612566565b60405180910390f35b348015610434575f80fd5b5061043d610b5d565b60405161044a919061258e565b60405180910390f35b34801561045e575f80fd5b50610467610b63565b6040516104749190612566565b60405180910390f35b348015610488575f80fd5b50610491610b75565b005b34801561049e575f80fd5b506104b960048036038101906104b491906126bc565b611094565b6040516104c6919061258e565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190612864565b611116565b005b60606040518060400160405280601581526020017f4f6d6165207761206d6f75207368696e64656972750000000000000000000000815250905090565b5f61054761054061123b565b8484611242565b6001905092915050565b60125481565b5f6009600a6105669190612a1a565b6305f5e1006105759190612a64565b905090565b5f610586848484611405565b6106438461059261123b565b61063e856040518060600160405280602881526020016134a76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f561123b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b611242565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e961123b565b73ffffffffffffffffffffffffffffffffffffffff1614610708575f80fd5b5f610712306107f4565b90505f8111156107265761072581611ee6565b5b5f4790505f81111561073c5761073b8161216d565b5b5050565b61074861123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90612aef565b60405180910390fd5b8160098190555080600a8190555081600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084261123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c590612aef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61099061123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612aef565b60405180910390fd5b6009600a610a2a9190612a1a565b6305f5e100610a399190612a64565b600f819055506009600a610a4d9190612a1a565b6305f5e100610a5c9190612a64565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610aaa9190612a1a565b6305f5e100610ab99190612a64565b604051610ac6919061258e565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f4e414e49213f0000000000000000000000000000000000000000000000000000815250905090565b5f610b53610b4c61123b565b8484611405565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610b7d61123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090612aef565b60405180910390fd5b60148054906101000a900460ff1615610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612b57565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cdf9190612a1a565b6305f5e100610cee9190612a64565b611242565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d819190612b89565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2b9190612b89565b6040518363ffffffff1660e01b8152600401610e48929190612bb4565b6020604051808303815f875af1158015610e64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e889190612b89565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0f306107f4565b5f80610f19610ad6565b426040518863ffffffff1660e01b8152600401610f3b96959493929190612c1d565b60606040518083038185885af1158015610f57573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7c9190612c90565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161101c929190612ce0565b6020604051808303815f875af1158015611038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105c9190612d1b565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61111e61123b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612aef565b60405180910390fd5b5f5b8251811015611236578160045f8584815181106111cc576111cb612d46565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061122e90612d73565b9150506111ac565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612eb8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f8919061258e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612f46565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612fd4565b60405180910390fd5b5f8111611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613062565b60405180910390fd5b5f61152c610ad6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159a575061156a610ad6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561163d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611645575f80fd5b60065f9054906101000a900460ff16156117cb5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611703575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ca574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906130f0565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611874575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119a057600f54821115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190890613158565b60405180910390fd5b6010548261191e856107f4565b6119289190613176565b1115611969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611960906131f3565b60405180910390fd5b600d54600e5410156119885761197e836121d6565b15611987575f80fd5b5b600e5f81548092919061199a90612d73565b91905055505b6119dc60646119ce600b54600e54116119bb576007546119bf565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a6657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aef57600f54821115611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790613158565b60405180910390fd5b611aec6064611ade600c54600e5411611acb57600854611acf565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611af9306107f4565b9050601460159054906101000a900460ff16158015611b64575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b7c5750601460169054906101000a900460ff165b8015611b89575060115481115b8015611b985750600d54600e54115b15611bd257611bba611bb584611bb0846012546122a7565b6122a7565b611ee6565b5f4790505f811115611bd057611bcf4761216d565b5b505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca919061258e565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e76919061258e565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612450565b60405180910390fd5b505f8385611ed99190613211565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f376126fe565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c612d46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612b89565b8160018151811061205957612058612d46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611242565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906132fb565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612a64565b90508284826122139190613380565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613420565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190613176565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613488565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612450565b60405180910390fd5b505f83856123b99190613380565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123fd5780820151818401526020810190506123e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612422826123c6565b61242c81856123d0565b935061243c8185602086016123e0565b61244581612408565b840191505092915050565b5f6020820190508181035f8301526124688184612418565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124aa82612481565b9050919050565b6124ba816124a0565b81146124c4575f80fd5b50565b5f813590506124d5816124b1565b92915050565b5f819050919050565b6124ed816124db565b81146124f7575f80fd5b50565b5f81359050612508816124e4565b92915050565b5f806040838503121561252457612523612479565b5b5f612531858286016124c7565b9250506020612542858286016124fa565b9150509250929050565b5f8115159050919050565b6125608161254c565b82525050565b5f6020820190506125795f830184612557565b92915050565b612588816124db565b82525050565b5f6020820190506125a15f83018461257f565b92915050565b5f805f606084860312156125be576125bd612479565b5b5f6125cb868287016124c7565b93505060206125dc868287016124c7565b92505060406125ed868287016124fa565b9150509250925092565b5f60ff82169050919050565b61260c816125f7565b82525050565b5f6020820190506126255f830184612603565b92915050565b5f602082840312156126405761263f612479565b5b5f61264d848285016124c7565b91505092915050565b5f806040838503121561266c5761266b612479565b5b5f612679858286016124fa565b925050602061268a858286016124fa565b9150509250929050565b61269d816124a0565b82525050565b5f6020820190506126b65f830184612694565b92915050565b5f80604083850312156126d2576126d1612479565b5b5f6126df858286016124c7565b92505060206126f0858286016124c7565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61273482612408565b810181811067ffffffffffffffff82111715612753576127526126fe565b5b80604052505050565b5f612765612470565b9050612771828261272b565b919050565b5f67ffffffffffffffff8211156127905761278f6126fe565b5b602082029050602081019050919050565b5f80fd5b5f6127b76127b284612776565b61275c565b905080838252602082019050602084028301858111156127da576127d96127a1565b5b835b8181101561280357806127ef88826124c7565b8452602084019350506020810190506127dc565b5050509392505050565b5f82601f830112612821576128206126fa565b5b81356128318482602086016127a5565b91505092915050565b6128438161254c565b811461284d575f80fd5b50565b5f8135905061285e8161283a565b92915050565b5f806040838503121561287a57612879612479565b5b5f83013567ffffffffffffffff8111156128975761289661247d565b5b6128a38582860161280d565b92505060206128b485828601612850565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129405780860481111561291c5761291b6128be565b5b600185161561292b5780820291505b8081029050612939856128eb565b9450612900565b94509492505050565b5f826129585760019050612a13565b81612965575f9050612a13565b816001811461297b5760028114612985576129b4565b6001915050612a13565b60ff841115612997576129966128be565b5b8360020a9150848211156129ae576129ad6128be565b5b50612a13565b5060208310610133831016604e8410600b84101617156129e95782820a9050838111156129e4576129e36128be565b5b612a13565b6129f684848460016128f7565b92509050818404811115612a0d57612a0c6128be565b5b81810290505b9392505050565b5f612a24826124db565b9150612a2f836125f7565b9250612a5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612949565b905092915050565b5f612a6e826124db565b9150612a79836124db565b9250828202612a87816124db565b91508282048414831517612a9e57612a9d6128be565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ad96020836123d0565b9150612ae482612aa5565b602082019050919050565b5f6020820190508181035f830152612b0681612acd565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b416017836123d0565b9150612b4c82612b0d565b602082019050919050565b5f6020820190508181035f830152612b6e81612b35565b9050919050565b5f81519050612b83816124b1565b92915050565b5f60208284031215612b9e57612b9d612479565b5b5f612bab84828501612b75565b91505092915050565b5f604082019050612bc75f830185612694565b612bd46020830184612694565b9392505050565b5f819050919050565b5f819050919050565b5f612c07612c02612bfd84612bdb565b612be4565b6124db565b9050919050565b612c1781612bed565b82525050565b5f60c082019050612c305f830189612694565b612c3d602083018861257f565b612c4a6040830187612c0e565b612c576060830186612c0e565b612c646080830185612694565b612c7160a083018461257f565b979650505050505050565b5f81519050612c8a816124e4565b92915050565b5f805f60608486031215612ca757612ca6612479565b5b5f612cb486828701612c7c565b9350506020612cc586828701612c7c565b9250506040612cd686828701612c7c565b9150509250925092565b5f604082019050612cf35f830185612694565b612d00602083018461257f565b9392505050565b5f81519050612d158161283a565b92915050565b5f60208284031215612d3057612d2f612479565b5b5f612d3d84828501612d07565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612d7d826124db565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612daf57612dae6128be565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e146024836123d0565b9150612e1f82612dba565b604082019050919050565b5f6020820190508181035f830152612e4181612e08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ea26022836123d0565b9150612ead82612e48565b604082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f306025836123d0565b9150612f3b82612ed6565b604082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fbe6023836123d0565b9150612fc982612f64565b604082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61304c6029836123d0565b915061305782612ff2565b604082019050919050565b5f6020820190508181035f83015261307981613040565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130da6024836123d0565b91506130e582613080565b604082019050919050565b5f6020820190508181035f830152613107816130ce565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131426019836123d0565b915061314d8261310e565b602082019050919050565b5f6020820190508181035f83015261316f81613136565b9050919050565b5f613180826124db565b915061318b836124db565b92508282019050808211156131a3576131a26128be565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6131dd601a836123d0565b91506131e8826131a9565b602082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b5f61321b826124db565b9150613226836124db565b925082820390508181111561323e5761323d6128be565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613276816124a0565b82525050565b5f613287838361326d565b60208301905092915050565b5f602082019050919050565b5f6132a982613244565b6132b3818561324e565b93506132be8361325e565b805f5b838110156132ee5781516132d5888261327c565b97506132e083613293565b9250506001810190506132c1565b5085935050505092915050565b5f60a08201905061330e5f83018861257f565b61331b6020830187612c0e565b818103604083015261332d818661329f565b905061333c6060830185612694565b613349608083018461257f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338a826124db565b9150613395836124db565b9250826133a5576133a4613353565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61340a6021836123d0565b9150613415826133b0565b604082019050919050565b5f6020820190508181035f830152613437816133fe565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613472601b836123d0565b915061347d8261343e565b602082019050919050565b5f6020820190508181035f83015261349f81613466565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c08cd2cc4569baefb0c7a2a59862c0f3c0df092011355d238404a59bef64b50964736f6c63430008140033

Deployed Bytecode Sourcemap

4313:8884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6258:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7091:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6535:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7260:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6444:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11385;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12826:348;;;;;;;;;;;;;:::i;:::-;;11476:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6638:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3394:148;;;;;;;;;;;;;:::i;:::-;;11081:196;;;;;;;;;;;;;:::i;:::-;;5344:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3180:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5407:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6349:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4699:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11907:671;;;;;;;;;;;;;:::i;:::-;;6940:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11722:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6258:83;6295:13;6328:5;;;;;;;;;;;;;;;;;6321:12;;6258:83;:::o;7091:161::-;7166:4;7183:39;7192:12;:10;:12::i;:::-;7206:7;7215:6;7183:8;:39::i;:::-;7240:4;7233:11;;7091:161;;;;:::o;5531:54::-;;;;:::o;6535:95::-;6588:7;5142:1;5199:2;:13;;;;:::i;:::-;5185:11;:27;;;;:::i;:::-;6608:14;;6535:95;:::o;7260:313::-;7358:4;7375:36;7385:6;7393:9;7404:6;7375:9;:36::i;:::-;7422:121;7431:6;7439:12;:10;:12::i;:::-;7453:89;7491:6;7453:89;;;;;;;;;;;;;;;;;:11;:19;7465:6;7453:19;;;;;;;;;;;;;;;:33;7473:12;:10;:12::i;:::-;7453:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7422:8;:121::i;:::-;7561:4;7554:11;;7260:313;;;;;:::o;6444:83::-;6485:5;5142:1;6503:16;;6444:83;:::o;11385:::-;11432:4;11453;:7;11458:1;11453:7;;;;;;;;;;;;;;;;;;;;;;;;;11446:14;;11385:83;;;:::o;12826:348::-;12890:10;;;;;;;;;;;12876:24;;:12;:10;:12::i;:::-;:24;;;12868:33;;;;;;12912:20;12933:24;12951:4;12933:9;:24::i;:::-;12912:45;;12984:1;12971:12;:14;12968:73;;;12999:30;13016:12;12999:16;:30::i;:::-;12968:73;13051:18;13070:21;13051:40;;13116:1;13105:10;:12;13102:65;;;13131:24;13144:10;13131:12;:24::i;:::-;13102:65;12857:317;;12826:348::o;11476:238::-;3317:12;:10;:12::i;:::-;3307:22;;:6;;;;;;;;;;:22;;;3299:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11579:11:::1;11565:12;:25;;;;11616:12;11601:13;:27;;;;11655:11;11639:14;:27;;;;11694:12;11677:15;:29;;;;11476:238:::0;;:::o;6638:119::-;6704:7;6731:9;:18;6741:7;6731:18;;;;;;;;;;;;;;;;6724:25;;6638:119;;;:::o;3394:148::-;3317:12;:10;:12::i;:::-;3307:22;;:6;;;;;;;;;;:22;;;3299:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3501:1:::1;3464:40;;3485:6;::::0;::::1;;;;;;;;3464:40;;;;;;;;;;;;3532:1;3515:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3394:148::o:0;11081:196::-;3317:12;:10;:12::i;:::-;3307:22;;:6;;;;;;;;;;:22;;;3299:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5142:1:::1;5199:2;:13;;;;:::i;:::-;5185:11;:27;;;;:::i;:::-;11134:12;:22;;;;5142:1;5199:2;:13;;;;:::i;:::-;5185:11;:27;;;;:::i;:::-;11167:14;:22;;;;11221:5;11200:20;;:26;;;;;;;;;;;;;;;;;;11242:27;5142:1;5199:2;:13;;;;:::i;:::-;5185:11;:27;;;;:::i;:::-;11242;;;;;;:::i;:::-;;;;;;;;11081:196::o:0;5344:56::-;;;;:::o;3180:79::-;3218:7;3245:6;;;;;;;;;;;3238:13;;3180:79;:::o;5407:58::-;;;;:::o;6349:87::-;6388:13;6421:7;;;;;;;;;;;;;;;;;6414:14;;6349:87;:::o;6765:167::-;6843:4;6860:42;6870:12;:10;:12::i;:::-;6884:9;6895:6;6860:9;:42::i;:::-;6920:4;6913:11;;6765:167;;;;:::o;5472:52::-;;;;:::o;4699:40::-;;;;;;;;;;;;;:::o;11907:671::-;3317:12;:10;:12::i;:::-;3307:22;;:6;;;;;;;;;;:22;;;3299:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11971:11:::1;::::0;::::1;;;;;;;;11970:12;11962:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12057:42;12020:15;;:80;;;;;;;;;;;;;;;;;;12111:58;12128:4;12143:15;;;;;;;;;;;5142:1;5199:2;:13;;;;:::i;:::-;5185:11;:27;;;;:::i;:::-;12111:8;:58::i;:::-;12214:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12196:55;;;12260:4;12267:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12196:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12180:13;;:110;;;;;;;;;;;;;;;;;;12301:15;;;;;;;;;;;:31;;;12340:21;12371:4;12377:24;12395:4;12377:9;:24::i;:::-;12402:1;12404::::0;12406:7:::1;:5;:7::i;:::-;12414:15;12301:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12448:13;;;;;;;;;;;12441:29;;;12479:15;;;;;;;;;;;12497:14;12441:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12537:4;12523:11;;:18;;;;;;;;;;;;;;;;;;12566:4;12552:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11907:671::o:0;6940:143::-;7021:7;7048:11;:18;7060:5;7048:18;;;;;;;;;;;;;;;:27;7067:7;7048:27;;;;;;;;;;;;;;;;7041:34;;6940:143;;;;:::o;11722:177::-;3317:12;:10;:12::i;:::-;3307:22;;:6;;;;;;;;;;:22;;;3299:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11808:6:::1;11803:89;11824:5;:12;11820:1;:16;11803:89;;;11875:5;11858:4;:14;11863:5;11869:1;11863:8;;;;;;;;:::i;:::-;;;;;;;;11858:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11838:3;;;;;:::i;:::-;;;;11803:89;;;;11722:177:::0;;:::o;935:98::-;988:7;1015:10;1008:17;;935:98;:::o;7581:335::-;7691:1;7674:19;;:5;:19;;;7666:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7772:1;7753:21;;:7;:21;;;7745:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7854:6;7824:11;:18;7836:5;7824:18;;;;;;;;;;;;;;;:27;7843:7;7824:27;;;;;;;;;;;;;;;:36;;;;7892:7;7876:32;;7885:5;7876:32;;;7901:6;7876:32;;;;;;:::i;:::-;;;;;;;;7581:335;;;:::o;7924:2478::-;8028:1;8012:18;;:4;:18;;;8004:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8105:1;8091:16;;:2;:16;;;8083:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8175:1;8166:6;:10;8158:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8233:17;8275:7;:5;:7::i;:::-;8267:15;;:4;:15;;;;:32;;;;;8292:7;:5;:7::i;:::-;8286:13;;:2;:13;;;;8267:32;8263:1783;;;8325:4;:10;8330:4;8325:10;;;;;;;;;;;;;;;;;;;;;;;;;8324:11;:24;;;;;8340:4;:8;8345:2;8340:8;;;;;;;;;;;;;;;;;;;;;;;;;8339:9;8324:24;8316:33;;;;;;8370:20;;;;;;;;;;;8366:346;;;8429:15;;;;;;;;;;;8415:30;;:2;:30;;;;:62;;;;;8463:13;;;;;;;;;;;8449:28;;:2;:28;;;;8415:62;8411:286;;;8550:12;8508:28;:39;8537:9;8508:39;;;;;;;;;;;;;;;;:54;8500:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:12;8623:28;:39;8652:9;8623:39;;;;;;;;;;;;;;;:54;;;;8411:286;8366:346;8740:13;;;;;;;;;;;8732:21;;:4;:21;;;:55;;;;;8771:15;;;;;;;;;;;8757:30;;:2;:30;;;;8732:55;:83;;;;;8793:18;:22;8812:2;8793:22;;;;;;;;;;;;;;;;;;;;;;;;;8791:24;8732:83;8728:428;;;8855:12;;8845:6;:22;;8837:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8950:14;;8940:6;8924:13;8934:2;8924:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8916:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9027:18;;9017:9;;:28;9014:97;;;9076:14;9087:2;9076:10;:14::i;:::-;9075:15;9067:24;;;;;;9014:97;9129:9;;:11;;;;;;;;;:::i;:::-;;;;;;8728:428;9186:76;9258:3;9186:67;9208:15;;9198:9;;:25;9197:55;;9238:14;;9197:55;;;9225:12;;9197:55;9186:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9174:88;;9286:13;;;;;;;;;;;9280:19;;:2;:19;;;:43;;;;;9318:4;9303:20;;:4;:20;;;;9280:43;9277:253;;;9362:12;;9352:6;:22;;9344:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:79;9510:3;9435:70;9457:16;;9447:9;;:26;9446:58;;9489:15;;9446:58;;;9475:13;;9446:58;9435:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9423:91;;9277:253;9546:28;9577:24;9595:4;9577:9;:24::i;:::-;9546:55;;9621:6;;;;;;;;;;;9620:7;:30;;;;;9637:13;;;;;;;;;;;9631:19;;:2;:19;;;9620:30;:45;;;;;9654:11;;;;;;;;;;;9620:45;:87;;;;;9690:17;;9669:20;:38;9620:87;:119;;;;;9721:18;;9711:9;;:28;9620:119;9616:419;;;9760:67;9777:49;9781:6;9788:37;9792:20;9813:11;;9788:3;:37::i;:::-;9777:3;:49::i;:::-;9760:16;:67::i;:::-;9846:26;9875:21;9846:50;;9939:1;9918:18;:22;9915:105;;;9965:35;9978:21;9965:12;:35::i;:::-;9915:105;9741:294;9616:419;8301:1745;8263:1783;10071:1;10061:9;:11;10058:161;;;10111:39;10140:9;10111;:24;10129:4;10111:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10086:9;:24;10104:4;10086:24;;;;;;;;;;;;;;;:64;;;;10191:4;10168:39;;10177:4;10168:39;;;10197:9;10168:39;;;;;;:::i;:::-;;;;;;;;10058:161;10245:27;10265:6;10245:9;:15;10255:4;10245:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10229:9;:15;10239:4;10229:15;;;;;;;;;;;;;;;:43;;;;10297:40;10315:21;10326:9;10315:6;:10;;:21;;;;:::i;:::-;10297:9;:13;10307:2;10297:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10283:9;:13;10293:2;10283:13;;;;;;;;;;;;;;;:54;;;;10368:2;10353:41;;10362:4;10353:41;;;10372:21;10383:9;10372:6;:10;;:21;;;;:::i;:::-;10353:41;;;;;;:::i;:::-;;;;;;;;7993:2409;7924:2478;;;:::o;2072:190::-;2158:7;2191:1;2186;:6;;2194:12;2178:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2218:9;2234:1;2230;:5;;;;:::i;:::-;2218:17;;2253:1;2246:8;;;2072:190;;;;;:::o;10518:555::-;5876:4;5867:6;;:13;;;;;;;;;;;;;;;;;;10612:1:::1;10599:11;:14:::0;10596:27;10615:7:::1;10596:27;10637:11;::::0;::::1;;;;;;;;10633:25:::0;10650:7:::1;10633:25;10668:21;10706:1;10692:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10668:40;;10737:4;10719;10724:1;10719:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10763:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10753:4;10758:1;10753:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10796:62;10813:4;10828:15;;;;;;;;;;;10846:11;10796:8;:62::i;:::-;10869:15;;;;;;;;;;;:66;;;10950:11;10976:1;10992:4;11019;11039:15;10869:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10585:488;5891:1;5912:5:::0;5903:6;;:14;;;;;;;;;;;;;;;;;;10518:555;:::o;11285:92::-;11342:10;;;;;;;;;;;:19;;:27;11362:6;11342:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11285:92;:::o;12623:195::-;12682:4;12699:12;12766:7;12754:20;12746:28;;12809:1;12802:4;:8;12795:15;;;12623:195;;;:::o;2270:246::-;2328:7;2357:1;2352;:6;2348:47;;2382:1;2375:8;;;;2348:47;2405:9;2421:1;2417;:5;;;;:::i;:::-;2405:17;;2450:1;2445;2441;:5;;;;:::i;:::-;:10;2433:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2507:1;2500:8;;;2270:246;;;;;:::o;2524:132::-;2582:7;2609:39;2613:1;2616;2609:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2602:46;;2524:132;;;;:::o;10412:98::-;10469:7;10496:1;10494;:3;10493:9;;10501:1;10493:9;;;10499:1;10493:9;10486:16;;10412:98;;;;:::o;1741:179::-;1799:7;1819:9;1835:1;1831;:5;;;;:::i;:::-;1819:17;;1860:1;1855;:6;;1847:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:1;1904:8;;;1741:179;;;;:::o;1928:136::-;1986:7;2013:43;2017:1;2020;2013:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2006:50;;1928:136;;;;:::o;2664:189::-;2750:7;2782:1;2778;:5;2785:12;2770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2809:9;2825:1;2821;:5;;;;:::i;:::-;2809:17;;2844:1;2837:8;;;2664: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:180;6671:77;6668:1;6661:88;6768:4;6765:1;6758:15;6792:4;6789:1;6782:15;6809:281;6892:27;6914:4;6892:27;:::i;:::-;6884:6;6880:40;7022:6;7010:10;7007:22;6986:18;6974:10;6971:34;6968:62;6965:88;;;7033:18;;:::i;:::-;6965:88;7073:10;7069:2;7062:22;6852:238;6809:281;;:::o;7096:129::-;7130:6;7157:20;;:::i;:::-;7147:30;;7186:33;7214:4;7206:6;7186:33;:::i;:::-;7096:129;;;:::o;7231:311::-;7308:4;7398:18;7390:6;7387:30;7384:56;;;7420:18;;:::i;:::-;7384:56;7470:4;7462:6;7458:17;7450:25;;7530:4;7524;7520:15;7512:23;;7231:311;;;:::o;7548:117::-;7657:1;7654;7647:12;7688:710;7784:5;7809:81;7825:64;7882:6;7825:64;:::i;:::-;7809:81;:::i;:::-;7800:90;;7910:5;7939:6;7932:5;7925:21;7973:4;7966:5;7962:16;7955:23;;8026:4;8018:6;8014:17;8006:6;8002:30;8055:3;8047:6;8044:15;8041:122;;;8074:79;;:::i;:::-;8041:122;8189:6;8172:220;8206:6;8201:3;8198:15;8172:220;;;8281:3;8310:37;8343:3;8331:10;8310:37;:::i;:::-;8305:3;8298:50;8377:4;8372:3;8368:14;8361:21;;8248:144;8232:4;8227:3;8223:14;8216:21;;8172:220;;;8176:21;7790:608;;7688:710;;;;;:::o;8421:370::-;8492:5;8541:3;8534:4;8526:6;8522:17;8518:27;8508:122;;8549:79;;:::i;:::-;8508:122;8666:6;8653:20;8691:94;8781:3;8773:6;8766:4;8758:6;8754:17;8691:94;:::i;:::-;8682:103;;8498:293;8421:370;;;;:::o;8797:116::-;8867:21;8882:5;8867:21;:::i;:::-;8860:5;8857:32;8847:60;;8903:1;8900;8893:12;8847:60;8797:116;:::o;8919:133::-;8962:5;9000:6;8987:20;8978:29;;9016:30;9040:5;9016:30;:::i;:::-;8919:133;;;;:::o;9058:678::-;9148:6;9156;9205:2;9193:9;9184:7;9180:23;9176:32;9173:119;;;9211:79;;:::i;:::-;9173:119;9359:1;9348:9;9344:17;9331:31;9389:18;9381:6;9378:30;9375:117;;;9411:79;;:::i;:::-;9375:117;9516:78;9586:7;9577:6;9566:9;9562:22;9516:78;:::i;:::-;9506:88;;9302:302;9643:2;9669:50;9711:7;9702:6;9691:9;9687:22;9669:50;:::i;:::-;9659:60;;9614:115;9058:678;;;;;:::o;9742:180::-;9790:77;9787:1;9780:88;9887:4;9884:1;9877:15;9911:4;9908:1;9901:15;9928:102;9970:8;10017:5;10014:1;10010:13;9989:34;;9928:102;;;:::o;10036:848::-;10097:5;10104:4;10128:6;10119:15;;10152:5;10143:14;;10166:712;10187:1;10177:8;10174:15;10166:712;;;10282:4;10277:3;10273:14;10267:4;10264:24;10261:50;;;10291:18;;:::i;:::-;10261:50;10341:1;10331:8;10327:16;10324:451;;;10756:4;10749:5;10745:16;10736:25;;10324:451;10806:4;10800;10796:15;10788:23;;10836:32;10859:8;10836:32;:::i;:::-;10824:44;;10166:712;;;10036:848;;;;;;;:::o;10890:1073::-;10944:5;11135:8;11125:40;;11156:1;11147:10;;11158:5;;11125:40;11184:4;11174:36;;11201:1;11192:10;;11203:5;;11174:36;11270:4;11318:1;11313:27;;;;11354:1;11349:191;;;;11263:277;;11313:27;11331:1;11322:10;;11333:5;;;11349:191;11394:3;11384:8;11381:17;11378:43;;;11401:18;;:::i;:::-;11378:43;11450:8;11447:1;11443:16;11434:25;;11485:3;11478:5;11475:14;11472:40;;;11492:18;;:::i;:::-;11472:40;11525:5;;;11263:277;;11649:2;11639:8;11636:16;11630:3;11624:4;11621:13;11617:36;11599:2;11589:8;11586:16;11581:2;11575:4;11572:12;11568:35;11552:111;11549:246;;;11705:8;11699:4;11695:19;11686:28;;11740:3;11733:5;11730:14;11727:40;;;11747:18;;:::i;:::-;11727:40;11780:5;;11549:246;11820:42;11858:3;11848:8;11842:4;11839:1;11820:42;:::i;:::-;11805:57;;;;11894:4;11889:3;11885:14;11878:5;11875:25;11872:51;;;11903:18;;:::i;:::-;11872:51;11952:4;11945:5;11941:16;11932:25;;10890:1073;;;;;;:::o;11969:281::-;12027:5;12051:23;12069:4;12051:23;:::i;:::-;12043:31;;12095:25;12111:8;12095:25;:::i;:::-;12083:37;;12139:104;12176:66;12166:8;12160:4;12139:104;:::i;:::-;12130:113;;11969:281;;;;:::o;12256:410::-;12296:7;12319:20;12337:1;12319:20;:::i;:::-;12314:25;;12353:20;12371:1;12353:20;:::i;:::-;12348:25;;12408:1;12405;12401:9;12430:30;12448:11;12430:30;:::i;:::-;12419:41;;12609:1;12600:7;12596:15;12593:1;12590:22;12570:1;12563:9;12543:83;12520:139;;12639:18;;:::i;:::-;12520:139;12304:362;12256:410;;;;:::o;12672:182::-;12812:34;12808:1;12800:6;12796:14;12789:58;12672:182;:::o;12860:366::-;13002:3;13023:67;13087:2;13082:3;13023:67;:::i;:::-;13016:74;;13099:93;13188:3;13099:93;:::i;:::-;13217:2;13212:3;13208:12;13201:19;;12860:366;;;:::o;13232:419::-;13398:4;13436:2;13425:9;13421:18;13413:26;;13485:9;13479:4;13475:20;13471:1;13460:9;13456:17;13449:47;13513:131;13639:4;13513:131;:::i;:::-;13505:139;;13232:419;;;:::o;13657:173::-;13797:25;13793:1;13785:6;13781:14;13774:49;13657:173;:::o;13836:366::-;13978:3;13999:67;14063:2;14058:3;13999:67;:::i;:::-;13992:74;;14075:93;14164:3;14075:93;:::i;:::-;14193:2;14188:3;14184:12;14177:19;;13836:366;;;:::o;14208:419::-;14374:4;14412:2;14401:9;14397:18;14389:26;;14461:9;14455:4;14451:20;14447:1;14436:9;14432:17;14425:47;14489:131;14615:4;14489:131;:::i;:::-;14481:139;;14208:419;;;:::o;14633:143::-;14690:5;14721:6;14715:13;14706:22;;14737:33;14764:5;14737:33;:::i;:::-;14633:143;;;;:::o;14782:351::-;14852:6;14901:2;14889:9;14880:7;14876:23;14872:32;14869:119;;;14907:79;;:::i;:::-;14869:119;15027:1;15052:64;15108:7;15099:6;15088:9;15084:22;15052:64;:::i;:::-;15042:74;;14998:128;14782:351;;;;:::o;15139:332::-;15260:4;15298:2;15287:9;15283:18;15275:26;;15311:71;15379:1;15368:9;15364:17;15355:6;15311:71;:::i;:::-;15392:72;15460:2;15449:9;15445:18;15436:6;15392:72;:::i;:::-;15139:332;;;;;:::o;15477:85::-;15522:7;15551:5;15540:16;;15477:85;;;:::o;15568:60::-;15596:3;15617:5;15610:12;;15568:60;;;:::o;15634:158::-;15692:9;15725:61;15743:42;15752:32;15778:5;15752:32;:::i;:::-;15743:42;:::i;:::-;15725:61;:::i;:::-;15712:74;;15634:158;;;:::o;15798:147::-;15893:45;15932:5;15893:45;:::i;:::-;15888:3;15881:58;15798:147;;:::o;15951:807::-;16200:4;16238:3;16227:9;16223:19;16215:27;;16252:71;16320:1;16309:9;16305:17;16296:6;16252:71;:::i;:::-;16333:72;16401:2;16390:9;16386:18;16377:6;16333:72;:::i;:::-;16415:80;16491:2;16480:9;16476:18;16467:6;16415:80;:::i;:::-;16505;16581:2;16570:9;16566:18;16557:6;16505:80;:::i;:::-;16595:73;16663:3;16652:9;16648:19;16639:6;16595:73;:::i;:::-;16678;16746:3;16735:9;16731:19;16722:6;16678:73;:::i;:::-;15951:807;;;;;;;;;:::o;16764:143::-;16821:5;16852:6;16846:13;16837:22;;16868:33;16895:5;16868:33;:::i;:::-;16764:143;;;;:::o;16913:663::-;17001:6;17009;17017;17066:2;17054:9;17045:7;17041:23;17037:32;17034:119;;;17072:79;;:::i;:::-;17034:119;17192:1;17217:64;17273:7;17264:6;17253:9;17249:22;17217:64;:::i;:::-;17207:74;;17163:128;17330:2;17356:64;17412:7;17403:6;17392:9;17388:22;17356:64;:::i;:::-;17346:74;;17301:129;17469:2;17495:64;17551:7;17542:6;17531:9;17527:22;17495:64;:::i;:::-;17485:74;;17440:129;16913:663;;;;;:::o;17582:332::-;17703:4;17741:2;17730:9;17726:18;17718:26;;17754:71;17822:1;17811:9;17807:17;17798:6;17754:71;:::i;:::-;17835:72;17903:2;17892:9;17888:18;17879:6;17835:72;:::i;:::-;17582:332;;;;;:::o;17920:137::-;17974:5;18005:6;17999:13;17990:22;;18021:30;18045:5;18021:30;:::i;:::-;17920:137;;;;:::o;18063:345::-;18130:6;18179:2;18167:9;18158:7;18154:23;18150:32;18147:119;;;18185:79;;:::i;:::-;18147:119;18305:1;18330:61;18383:7;18374:6;18363:9;18359:22;18330:61;:::i;:::-;18320:71;;18276:125;18063:345;;;;:::o;18414:180::-;18462:77;18459:1;18452:88;18559:4;18556:1;18549:15;18583:4;18580:1;18573:15;18600:233;18639:3;18662:24;18680:5;18662:24;:::i;:::-;18653:33;;18708:66;18701:5;18698:77;18695:103;;18778:18;;:::i;:::-;18695:103;18825:1;18818:5;18814:13;18807:20;;18600:233;;;:::o;18839:223::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:6;19043:2;19035:6;19031:15;19024:31;18839:223;:::o;19068:366::-;19210:3;19231:67;19295:2;19290:3;19231:67;:::i;:::-;19224:74;;19307:93;19396:3;19307:93;:::i;:::-;19425:2;19420:3;19416:12;19409:19;;19068:366;;;:::o;19440:419::-;19606:4;19644:2;19633:9;19629:18;19621:26;;19693:9;19687:4;19683:20;19679:1;19668:9;19664:17;19657:47;19721:131;19847:4;19721:131;:::i;:::-;19713:139;;19440:419;;;:::o;19865:221::-;20005:34;20001:1;19993:6;19989:14;19982:58;20074:4;20069:2;20061:6;20057:15;20050:29;19865:221;:::o;20092:366::-;20234:3;20255:67;20319:2;20314:3;20255:67;:::i;:::-;20248:74;;20331:93;20420:3;20331:93;:::i;:::-;20449:2;20444:3;20440:12;20433:19;;20092:366;;;:::o;20464:419::-;20630:4;20668:2;20657:9;20653:18;20645:26;;20717:9;20711:4;20707:20;20703:1;20692:9;20688:17;20681:47;20745:131;20871:4;20745:131;:::i;:::-;20737:139;;20464:419;;;:::o;20889:224::-;21029:34;21025:1;21017:6;21013:14;21006:58;21098:7;21093:2;21085:6;21081:15;21074:32;20889:224;:::o;21119:366::-;21261:3;21282:67;21346:2;21341:3;21282:67;:::i;:::-;21275:74;;21358:93;21447:3;21358:93;:::i;:::-;21476:2;21471:3;21467:12;21460:19;;21119:366;;;:::o;21491:419::-;21657:4;21695:2;21684:9;21680:18;21672:26;;21744:9;21738:4;21734:20;21730:1;21719:9;21715:17;21708:47;21772:131;21898:4;21772:131;:::i;:::-;21764:139;;21491:419;;;:::o;21916:222::-;22056:34;22052:1;22044:6;22040:14;22033:58;22125:5;22120:2;22112:6;22108:15;22101:30;21916:222;:::o;22144:366::-;22286:3;22307:67;22371:2;22366:3;22307:67;:::i;:::-;22300:74;;22383:93;22472:3;22383:93;:::i;:::-;22501:2;22496:3;22492:12;22485:19;;22144:366;;;:::o;22516:419::-;22682:4;22720:2;22709:9;22705:18;22697:26;;22769:9;22763:4;22759:20;22755:1;22744:9;22740:17;22733:47;22797:131;22923:4;22797:131;:::i;:::-;22789:139;;22516:419;;;:::o;22941:228::-;23081:34;23077:1;23069:6;23065:14;23058:58;23150:11;23145:2;23137:6;23133:15;23126:36;22941:228;:::o;23175:366::-;23317:3;23338:67;23402:2;23397:3;23338:67;:::i;:::-;23331:74;;23414:93;23503:3;23414:93;:::i;:::-;23532:2;23527:3;23523:12;23516:19;;23175:366;;;:::o;23547:419::-;23713:4;23751:2;23740:9;23736:18;23728:26;;23800:9;23794:4;23790:20;23786:1;23775:9;23771:17;23764:47;23828:131;23954:4;23828:131;:::i;:::-;23820:139;;23547:419;;;:::o;23972:223::-;24112:34;24108:1;24100:6;24096:14;24089:58;24181:6;24176:2;24168:6;24164:15;24157:31;23972:223;:::o;24201:366::-;24343:3;24364:67;24428:2;24423:3;24364:67;:::i;:::-;24357:74;;24440:93;24529:3;24440:93;:::i;:::-;24558:2;24553:3;24549:12;24542:19;;24201:366;;;:::o;24573:419::-;24739:4;24777:2;24766:9;24762:18;24754:26;;24826:9;24820:4;24816:20;24812:1;24801:9;24797:17;24790:47;24854:131;24980:4;24854:131;:::i;:::-;24846:139;;24573:419;;;:::o;24998:175::-;25138:27;25134:1;25126:6;25122:14;25115:51;24998:175;:::o;25179:366::-;25321:3;25342:67;25406:2;25401:3;25342:67;:::i;:::-;25335:74;;25418:93;25507:3;25418:93;:::i;:::-;25536:2;25531:3;25527:12;25520:19;;25179:366;;;:::o;25551:419::-;25717:4;25755:2;25744:9;25740:18;25732:26;;25804:9;25798:4;25794:20;25790:1;25779:9;25775:17;25768:47;25832:131;25958:4;25832:131;:::i;:::-;25824:139;;25551:419;;;:::o;25976:191::-;26016:3;26035:20;26053:1;26035:20;:::i;:::-;26030:25;;26069:20;26087:1;26069:20;:::i;:::-;26064:25;;26112:1;26109;26105:9;26098:16;;26133:3;26130:1;26127:10;26124:36;;;26140:18;;:::i;:::-;26124:36;25976:191;;;;:::o;26173:176::-;26313:28;26309:1;26301:6;26297:14;26290:52;26173:176;:::o;26355:366::-;26497:3;26518:67;26582:2;26577:3;26518:67;:::i;:::-;26511:74;;26594:93;26683:3;26594:93;:::i;:::-;26712:2;26707:3;26703:12;26696:19;;26355:366;;;:::o;26727:419::-;26893:4;26931:2;26920:9;26916:18;26908:26;;26980:9;26974:4;26970:20;26966:1;26955:9;26951:17;26944:47;27008:131;27134:4;27008:131;:::i;:::-;27000:139;;26727:419;;;:::o;27152:194::-;27192:4;27212:20;27230:1;27212:20;:::i;:::-;27207:25;;27246:20;27264:1;27246:20;:::i;:::-;27241:25;;27290:1;27287;27283:9;27275:17;;27314:1;27308:4;27305:11;27302:37;;;27319:18;;:::i;:::-;27302:37;27152:194;;;;:::o;27352:114::-;27419:6;27453:5;27447:12;27437:22;;27352:114;;;:::o;27472:184::-;27571:11;27605:6;27600:3;27593:19;27645:4;27640:3;27636:14;27621:29;;27472:184;;;;:::o;27662:132::-;27729:4;27752:3;27744:11;;27782:4;27777:3;27773:14;27765:22;;27662:132;;;:::o;27800:108::-;27877:24;27895:5;27877:24;:::i;:::-;27872:3;27865:37;27800:108;;:::o;27914:179::-;27983:10;28004:46;28046:3;28038:6;28004:46;:::i;:::-;28082:4;28077:3;28073:14;28059:28;;27914:179;;;;:::o;28099:113::-;28169:4;28201;28196:3;28192:14;28184:22;;28099:113;;;:::o;28248:732::-;28367:3;28396:54;28444:5;28396:54;:::i;:::-;28466:86;28545:6;28540:3;28466:86;:::i;:::-;28459:93;;28576:56;28626:5;28576:56;:::i;:::-;28655:7;28686:1;28671:284;28696:6;28693:1;28690:13;28671:284;;;28772:6;28766:13;28799:63;28858:3;28843:13;28799:63;:::i;:::-;28792:70;;28885:60;28938:6;28885:60;:::i;:::-;28875:70;;28731:224;28718:1;28715;28711:9;28706:14;;28671:284;;;28675:14;28971:3;28964:10;;28372:608;;;28248:732;;;;:::o;28986:831::-;29249:4;29287:3;29276:9;29272:19;29264:27;;29301:71;29369:1;29358:9;29354:17;29345:6;29301:71;:::i;:::-;29382:80;29458:2;29447:9;29443:18;29434:6;29382:80;:::i;:::-;29509:9;29503:4;29499:20;29494:2;29483:9;29479:18;29472:48;29537:108;29640:4;29631:6;29537:108;:::i;:::-;29529:116;;29655:72;29723:2;29712:9;29708:18;29699:6;29655:72;:::i;:::-;29737:73;29805:3;29794:9;29790:19;29781:6;29737:73;:::i;:::-;28986:831;;;;;;;;:::o;29823:180::-;29871:77;29868:1;29861:88;29968:4;29965:1;29958:15;29992:4;29989:1;29982:15;30009:185;30049:1;30066:20;30084:1;30066:20;:::i;:::-;30061:25;;30100:20;30118:1;30100:20;:::i;:::-;30095:25;;30139:1;30129:35;;30144:18;;:::i;:::-;30129:35;30186:1;30183;30179:9;30174:14;;30009:185;;;;:::o;30200:220::-;30340:34;30336:1;30328:6;30324:14;30317:58;30409:3;30404:2;30396:6;30392:15;30385:28;30200:220;:::o;30426:366::-;30568:3;30589:67;30653:2;30648:3;30589:67;:::i;:::-;30582:74;;30665:93;30754:3;30665:93;:::i;:::-;30783:2;30778:3;30774:12;30767:19;;30426:366;;;:::o;30798:419::-;30964:4;31002:2;30991:9;30987:18;30979:26;;31051:9;31045:4;31041:20;31037:1;31026:9;31022:17;31015:47;31079:131;31205:4;31079:131;:::i;:::-;31071:139;;30798:419;;;:::o;31223:177::-;31363:29;31359:1;31351:6;31347:14;31340:53;31223:177;:::o;31406:366::-;31548:3;31569:67;31633:2;31628:3;31569:67;:::i;:::-;31562:74;;31645:93;31734:3;31645:93;:::i;:::-;31763:2;31758:3;31754:12;31747:19;;31406:366;;;:::o;31778:419::-;31944:4;31982:2;31971:9;31967:18;31959:26;;32031:9;32025:4;32021:20;32017:1;32006:9;32002:17;31995:47;32059:131;32185:4;32059:131;:::i;:::-;32051:139;;31778:419;;;:::o

Swarm Source

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