ETH Price: $3,356.51 (+3.09%)
 

Overview

Max Total Supply

10,000,000 NOSA

Holders

116

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
10,771.23960143 NOSA

Value
$0.00
0x2f4c4DDA339d0C83c4a63801658D8c93B54314bF
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:
nobodysausage

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

*/
pragma solidity ^0.8.11;




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 nobodysausage 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 _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=14;
    uint256 private _reduceSellTaxAt=14;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"nobody sausage";
    string private constant _symbol = unicode"NOSA";
    uint256 public _maxTxAmount = 100000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000 * 10**_decimals;
    uint256 public _taxSwapThreshold=0 * 10**_decimals;
    uint256 public _maxTaxSwap=100000 * 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++;
                _buyerMap[to]=true;
            }


            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);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

            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 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":[],"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":[],"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"}]

60806040526000600760006101000a81548160ff021916908315150217905550600f600855600f6009556001600a556001600b55600e600c55600e600d556019600e556000600f556008600a62000057919062000626565b620186a062000067919062000677565b6010556008600a6200007a919062000626565b62030d406200008a919062000677565b6011556008600a6200009d919062000626565b6000620000ab919062000677565b6012556008600a620000be919062000626565b620186a0620000ce919062000677565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200011357600080fd5b506000620001266200045b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d46200045b60201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000224919062000626565b6298968062000234919062000677565b60016000620002486200045b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029c6200046360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf6200045b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200042e919062000626565b629896806200043e919062000677565b6040516200044d9190620006e9565b60405180910390a362000706565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051a57808604811115620004f257620004f16200048c565b5b6001851615620005025780820291505b80810290506200051285620004bb565b9450620004d2565b94509492505050565b60008262000535576001905062000608565b8162000545576000905062000608565b81600181146200055e576002811462000569576200059f565b600191505062000608565b60ff8411156200057e576200057d6200048c565b5b8360020a9150848211156200059857620005976200048c565b5b5062000608565b5060208310610133831016604e8410600b8410161715620005d95782820a905083811115620005d357620005d26200048c565b5b62000608565b620005e88484846001620004c8565b925090508184048111156200060257620006016200048c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000633826200060f565b9150620006408362000619565b92506200066f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000523565b905092915050565b600062000684826200060f565b915062000691836200060f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006cd57620006cc6200048c565b5b828202905092915050565b620006e3816200060f565b82525050565b6000602082019050620007006000830184620006d8565b92915050565b6133c980620007166000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103c0578063bf474bed146103fd578063c876d0b914610428578063c9567bf914610453578063dd62ed3e1461046a5761012a565b8063751039fc146102fd5780637d1db4a5146103145780638da5cb5b1461033f5780638f9a55c01461036a57806395d89b41146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780633bbac5791461025557806351bc3c851461029257806370a08231146102a9578063715018a6146102e65761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b60405161015191906123be565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612479565b6104e4565b60405161018e91906124d4565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b991906124fe565b60405180910390f35b3480156101ce57600080fd5b506101d7610508565b6040516101e491906124fe565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612519565b61052b565b60405161022191906124d4565b60405180910390f35b34801561023657600080fd5b5061023f610604565b60405161024c9190612588565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906125a3565b61060d565b60405161028991906124d4565b60405180910390f35b34801561029e57600080fd5b506102a7610663565b005b3480156102b557600080fd5b506102d060048036038101906102cb91906125a3565b610700565b6040516102dd91906124fe565b60405180910390f35b3480156102f257600080fd5b506102fb610749565b005b34801561030957600080fd5b5061031261089c565b005b34801561032057600080fd5b506103296109e4565b60405161033691906124fe565b60405180910390f35b34801561034b57600080fd5b506103546109ea565b60405161036191906125df565b60405180910390f35b34801561037657600080fd5b5061037f610a13565b60405161038c91906124fe565b60405180910390f35b3480156103a157600080fd5b506103aa610a19565b6040516103b791906123be565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612479565b610a56565b6040516103f491906124d4565b60405180910390f35b34801561040957600080fd5b50610412610a74565b60405161041f91906124fe565b60405180910390f35b34801561043457600080fd5b5061043d610a7a565b60405161044a91906124d4565b60405180910390f35b34801561045f57600080fd5b50610468610a8d565b005b34801561047657600080fd5b50610491600480360381019061048c91906125fa565b610fc4565b60405161049e91906124fe565b60405180910390f35b60606040518060400160405280600e81526020017f6e6f626f64792073617573616765000000000000000000000000000000000000815250905090565b60006104f86104f161104b565b8484611053565b6001905092915050565b60135481565b60006008600a610518919061279c565b6298968061052691906127e7565b905090565b600061053884848461121e565b6105f98461054461104b565b6105f48560405180606001604052806028815260200161336c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105aa61104b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dba9092919063ffffffff16565b611053565b600190509392505050565b60006008905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a461104b565b73ffffffffffffffffffffffffffffffffffffffff16146106c457600080fd5b60006106cf30610700565b905060008111156106e4576106e381611e1e565b5b600047905060008111156106fc576106fb816120bd565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075161104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d59061288d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108a461104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109289061288d565b60405180910390fd5b6008600a61093f919061279c565b6298968061094d91906127e7565b6010819055506008600a610961919061279c565b6298968061096f91906127e7565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109bf919061279c565b629896806109cd91906127e7565b6040516109da91906124fe565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f4e4f534100000000000000000000000000000000000000000000000000000000815250905090565b6000610a6a610a6361104b565b848461121e565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b610a9561104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061288d565b60405180910390fd5b601560149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906128f9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c0f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610bfc919061279c565b62989680610c0a91906127e7565b611053565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca0919061292e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d919061292e565b6040518363ffffffff1660e01b8152600401610d6a92919061295b565b6020604051808303816000875af1158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad919061292e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3630610700565b600080610e416109ea565b426040518863ffffffff1660e01b8152600401610e63969594939291906129c9565b60606040518083038185885af1158015610e81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea69190612a3f565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f48929190612a92565b6020604051808303816000875af1158015610f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8b9190612ae7565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90612b86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90612c18565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121191906124fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612caa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612d3c565b60405180910390fd5b60008111611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612dce565b60405180910390fd5b600061134b6109ea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b957506113896109ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114625750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61146b57600080fd5b600760009054906101000a900460ff16156115f857601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115f75743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612e60565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116a35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116f95750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561182c57601054821115611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90612ecc565b60405180910390fd5b6011548261175085610700565b61175a9190612eec565b111561179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612f8e565b60405180910390fd5b600e54600f5410156117bb576117b083612129565b156117ba57600080fd5b5b600f60008154809291906117ce90612fae565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611868606461185a600c54600f54116118475760085461184b565b600a545b8561213c90919063ffffffff16565b6121b790919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a165760105482111561193d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193490612ecc565b60405180910390fd5b611979606461196b600d54600f54116119585760095461195c565b600b545b8561213c90919063ffffffff16565b6121b790919063ffffffff16565b9050600e54600f5411806119d65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90613043565b60405180910390fd5b5b6000611a2130610700565b905060158054906101000a900460ff16158015611a8b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611aa35750601560169054906101000a900460ff165b8015611ab0575060125481115b8015611abf5750600e54600f54115b15611afb57611ae1611adc84611ad784601354612201565b612201565b611e1e565b60004790506000811115611af957611af8476120bd565b5b505b505b6000811115611c0157611b5881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf891906124fe565b60405180910390a35b611c5382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfa611cac828461227890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9f848661227890919063ffffffff16565b604051611dac91906124fe565b60405180910390a350505050565b6000838311158290611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df991906123be565b60405180910390fd5b5060008385611e119190613063565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000811415611e46576120a0565b601560149054906101000a900460ff16611e5f576120a0565b6000600267ffffffffffffffff811115611e7c57611e7b613097565b5b604051908082528060200260200182016040528015611eaa5781602001602082028036833780820191505090505b5090503081600081518110611ec257611ec16130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d919061292e565b81600181518110611fa157611fa06130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611053565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206c9594939291906131b3565b600060405180830381600087803b15801561208657600080fd5b505af115801561209a573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612125573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b60008083141561214f57600090506121b1565b6000828461215d91906127e7565b905082848261216c919061323c565b146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906132df565b60405180910390fd5b809150505b92915050565b60006121f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c2565b905092915050565b60008183116122105782612212565b815b905092915050565b60008082846122299190612eec565b90508381101561226e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122659061334b565b60405180910390fd5b8091505092915050565b60006122ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dba565b905092915050565b60008083118290612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230091906123be565b60405180910390fd5b5060008385612318919061323c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561235f578082015181840152602081019050612344565b8381111561236e576000848401525b50505050565b6000601f19601f8301169050919050565b600061239082612325565b61239a8185612330565b93506123aa818560208601612341565b6123b381612374565b840191505092915050565b600060208201905081810360008301526123d88184612385565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612410826123e5565b9050919050565b61242081612405565b811461242b57600080fd5b50565b60008135905061243d81612417565b92915050565b6000819050919050565b61245681612443565b811461246157600080fd5b50565b6000813590506124738161244d565b92915050565b600080604083850312156124905761248f6123e0565b5b600061249e8582860161242e565b92505060206124af85828601612464565b9150509250929050565b60008115159050919050565b6124ce816124b9565b82525050565b60006020820190506124e960008301846124c5565b92915050565b6124f881612443565b82525050565b600060208201905061251360008301846124ef565b92915050565b600080600060608486031215612532576125316123e0565b5b60006125408682870161242e565b93505060206125518682870161242e565b925050604061256286828701612464565b9150509250925092565b600060ff82169050919050565b6125828161256c565b82525050565b600060208201905061259d6000830184612579565b92915050565b6000602082840312156125b9576125b86123e0565b5b60006125c78482850161242e565b91505092915050565b6125d981612405565b82525050565b60006020820190506125f460008301846125d0565b92915050565b60008060408385031215612611576126106123e0565b5b600061261f8582860161242e565b92505060206126308582860161242e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126c05780860481111561269c5761269b61263a565b5b60018516156126ab5780820291505b80810290506126b985612669565b9450612680565b94509492505050565b6000826126d95760019050612795565b816126e75760009050612795565b81600181146126fd576002811461270757612736565b6001915050612795565b60ff8411156127195761271861263a565b5b8360020a9150848211156127305761272f61263a565b5b50612795565b5060208310610133831016604e8410600b841016171561276b5782820a9050838111156127665761276561263a565b5b612795565b6127788484846001612676565b9250905081840481111561278f5761278e61263a565b5b81810290505b9392505050565b60006127a782612443565b91506127b28361256c565b92506127df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c9565b905092915050565b60006127f282612443565b91506127fd83612443565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128365761283561263a565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612877602083612330565b915061288282612841565b602082019050919050565b600060208201905081810360008301526128a68161286a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128e3601783612330565b91506128ee826128ad565b602082019050919050565b60006020820190508181036000830152612912816128d6565b9050919050565b60008151905061292881612417565b92915050565b600060208284031215612944576129436123e0565b5b600061295284828501612919565b91505092915050565b600060408201905061297060008301856125d0565b61297d60208301846125d0565b9392505050565b6000819050919050565b6000819050919050565b60006129b36129ae6129a984612984565b61298e565b612443565b9050919050565b6129c381612998565b82525050565b600060c0820190506129de60008301896125d0565b6129eb60208301886124ef565b6129f860408301876129ba565b612a0560608301866129ba565b612a1260808301856125d0565b612a1f60a08301846124ef565b979650505050505050565b600081519050612a398161244d565b92915050565b600080600060608486031215612a5857612a576123e0565b5b6000612a6686828701612a2a565b9350506020612a7786828701612a2a565b9250506040612a8886828701612a2a565b9150509250925092565b6000604082019050612aa760008301856125d0565b612ab460208301846124ef565b9392505050565b612ac4816124b9565b8114612acf57600080fd5b50565b600081519050612ae181612abb565b92915050565b600060208284031215612afd57612afc6123e0565b5b6000612b0b84828501612ad2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b70602483612330565b9150612b7b82612b14565b604082019050919050565b60006020820190508181036000830152612b9f81612b63565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c02602283612330565b9150612c0d82612ba6565b604082019050919050565b60006020820190508181036000830152612c3181612bf5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c94602583612330565b9150612c9f82612c38565b604082019050919050565b60006020820190508181036000830152612cc381612c87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d26602383612330565b9150612d3182612cca565b604082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612db8602983612330565b9150612dc382612d5c565b604082019050919050565b60006020820190508181036000830152612de781612dab565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612e4a602483612330565b9150612e5582612dee565b604082019050919050565b60006020820190508181036000830152612e7981612e3d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eb6601983612330565b9150612ec182612e80565b602082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b6000612ef782612443565b9150612f0283612443565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f3757612f3661263a565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f78601a83612330565b9150612f8382612f42565b602082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b6000612fb982612443565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fec57612feb61263a565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b600061302d601383612330565b915061303882612ff7565b602082019050919050565b6000602082019050818103600083015261305c81613020565b9050919050565b600061306e82612443565b915061307983612443565b92508282101561308c5761308b61263a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61312a81612405565b82525050565b600061313c8383613121565b60208301905092915050565b6000602082019050919050565b6000613160826130f5565b61316a8185613100565b935061317583613111565b8060005b838110156131a657815161318d8882613130565b975061319883613148565b925050600181019050613179565b5085935050505092915050565b600060a0820190506131c860008301886124ef565b6131d560208301876129ba565b81810360408301526131e78186613155565b90506131f660608301856125d0565b61320360808301846124ef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061324782612443565b915061325283612443565b9250826132625761326161320d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c9602183612330565b91506132d48261326d565b604082019050919050565b600060208201905081810360008301526132f8816132bc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613335601b83612330565b9150613340826132ff565b602082019050919050565b6000602082019050818103600083015261336481613328565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201d784a901b04ba1375cd4c9e8edb1bc802ae50e47818ae568214a792eb9b9cc464736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103c0578063bf474bed146103fd578063c876d0b914610428578063c9567bf914610453578063dd62ed3e1461046a5761012a565b8063751039fc146102fd5780637d1db4a5146103145780638da5cb5b1461033f5780638f9a55c01461036a57806395d89b41146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780633bbac5791461025557806351bc3c851461029257806370a08231146102a9578063715018a6146102e65761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b60405161015191906123be565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612479565b6104e4565b60405161018e91906124d4565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b991906124fe565b60405180910390f35b3480156101ce57600080fd5b506101d7610508565b6040516101e491906124fe565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612519565b61052b565b60405161022191906124d4565b60405180910390f35b34801561023657600080fd5b5061023f610604565b60405161024c9190612588565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906125a3565b61060d565b60405161028991906124d4565b60405180910390f35b34801561029e57600080fd5b506102a7610663565b005b3480156102b557600080fd5b506102d060048036038101906102cb91906125a3565b610700565b6040516102dd91906124fe565b60405180910390f35b3480156102f257600080fd5b506102fb610749565b005b34801561030957600080fd5b5061031261089c565b005b34801561032057600080fd5b506103296109e4565b60405161033691906124fe565b60405180910390f35b34801561034b57600080fd5b506103546109ea565b60405161036191906125df565b60405180910390f35b34801561037657600080fd5b5061037f610a13565b60405161038c91906124fe565b60405180910390f35b3480156103a157600080fd5b506103aa610a19565b6040516103b791906123be565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612479565b610a56565b6040516103f491906124d4565b60405180910390f35b34801561040957600080fd5b50610412610a74565b60405161041f91906124fe565b60405180910390f35b34801561043457600080fd5b5061043d610a7a565b60405161044a91906124d4565b60405180910390f35b34801561045f57600080fd5b50610468610a8d565b005b34801561047657600080fd5b50610491600480360381019061048c91906125fa565b610fc4565b60405161049e91906124fe565b60405180910390f35b60606040518060400160405280600e81526020017f6e6f626f64792073617573616765000000000000000000000000000000000000815250905090565b60006104f86104f161104b565b8484611053565b6001905092915050565b60135481565b60006008600a610518919061279c565b6298968061052691906127e7565b905090565b600061053884848461121e565b6105f98461054461104b565b6105f48560405180606001604052806028815260200161336c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105aa61104b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dba9092919063ffffffff16565b611053565b600190509392505050565b60006008905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a461104b565b73ffffffffffffffffffffffffffffffffffffffff16146106c457600080fd5b60006106cf30610700565b905060008111156106e4576106e381611e1e565b5b600047905060008111156106fc576106fb816120bd565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075161104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d59061288d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108a461104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109289061288d565b60405180910390fd5b6008600a61093f919061279c565b6298968061094d91906127e7565b6010819055506008600a610961919061279c565b6298968061096f91906127e7565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109bf919061279c565b629896806109cd91906127e7565b6040516109da91906124fe565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f4e4f534100000000000000000000000000000000000000000000000000000000815250905090565b6000610a6a610a6361104b565b848461121e565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b610a9561104b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061288d565b60405180910390fd5b601560149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906128f9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c0f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610bfc919061279c565b62989680610c0a91906127e7565b611053565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca0919061292e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d919061292e565b6040518363ffffffff1660e01b8152600401610d6a92919061295b565b6020604051808303816000875af1158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad919061292e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3630610700565b600080610e416109ea565b426040518863ffffffff1660e01b8152600401610e63969594939291906129c9565b60606040518083038185885af1158015610e81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea69190612a3f565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f48929190612a92565b6020604051808303816000875af1158015610f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8b9190612ae7565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90612b86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90612c18565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121191906124fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612caa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612d3c565b60405180910390fd5b60008111611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612dce565b60405180910390fd5b600061134b6109ea565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b957506113896109ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114625750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61146b57600080fd5b600760009054906101000a900460ff16156115f857601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115f75743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612e60565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116a35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116f95750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561182c57601054821115611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90612ecc565b60405180910390fd5b6011548261175085610700565b61175a9190612eec565b111561179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612f8e565b60405180910390fd5b600e54600f5410156117bb576117b083612129565b156117ba57600080fd5b5b600f60008154809291906117ce90612fae565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611868606461185a600c54600f54116118475760085461184b565b600a545b8561213c90919063ffffffff16565b6121b790919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a165760105482111561193d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193490612ecc565b60405180910390fd5b611979606461196b600d54600f54116119585760095461195c565b600b545b8561213c90919063ffffffff16565b6121b790919063ffffffff16565b9050600e54600f5411806119d65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90613043565b60405180910390fd5b5b6000611a2130610700565b905060158054906101000a900460ff16158015611a8b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611aa35750601560169054906101000a900460ff165b8015611ab0575060125481115b8015611abf5750600e54600f54115b15611afb57611ae1611adc84611ad784601354612201565b612201565b611e1e565b60004790506000811115611af957611af8476120bd565b5b505b505b6000811115611c0157611b5881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf891906124fe565b60405180910390a35b611c5382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfa611cac828461227890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9f848661227890919063ffffffff16565b604051611dac91906124fe565b60405180910390a350505050565b6000838311158290611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df991906123be565b60405180910390fd5b5060008385611e119190613063565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000811415611e46576120a0565b601560149054906101000a900460ff16611e5f576120a0565b6000600267ffffffffffffffff811115611e7c57611e7b613097565b5b604051908082528060200260200182016040528015611eaa5781602001602082028036833780820191505090505b5090503081600081518110611ec257611ec16130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8d919061292e565b81600181518110611fa157611fa06130c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611053565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206c9594939291906131b3565b600060405180830381600087803b15801561208657600080fd5b505af115801561209a573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612125573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b60008083141561214f57600090506121b1565b6000828461215d91906127e7565b905082848261216c919061323c565b146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906132df565b60405180910390fd5b809150505b92915050565b60006121f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c2565b905092915050565b60008183116122105782612212565b815b905092915050565b60008082846122299190612eec565b90508381101561226e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122659061334b565b60405180910390fd5b8091505092915050565b60006122ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dba565b905092915050565b60008083118290612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230091906123be565b60405180910390fd5b5060008385612318919061323c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561235f578082015181840152602081019050612344565b8381111561236e576000848401525b50505050565b6000601f19601f8301169050919050565b600061239082612325565b61239a8185612330565b93506123aa818560208601612341565b6123b381612374565b840191505092915050565b600060208201905081810360008301526123d88184612385565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612410826123e5565b9050919050565b61242081612405565b811461242b57600080fd5b50565b60008135905061243d81612417565b92915050565b6000819050919050565b61245681612443565b811461246157600080fd5b50565b6000813590506124738161244d565b92915050565b600080604083850312156124905761248f6123e0565b5b600061249e8582860161242e565b92505060206124af85828601612464565b9150509250929050565b60008115159050919050565b6124ce816124b9565b82525050565b60006020820190506124e960008301846124c5565b92915050565b6124f881612443565b82525050565b600060208201905061251360008301846124ef565b92915050565b600080600060608486031215612532576125316123e0565b5b60006125408682870161242e565b93505060206125518682870161242e565b925050604061256286828701612464565b9150509250925092565b600060ff82169050919050565b6125828161256c565b82525050565b600060208201905061259d6000830184612579565b92915050565b6000602082840312156125b9576125b86123e0565b5b60006125c78482850161242e565b91505092915050565b6125d981612405565b82525050565b60006020820190506125f460008301846125d0565b92915050565b60008060408385031215612611576126106123e0565b5b600061261f8582860161242e565b92505060206126308582860161242e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126c05780860481111561269c5761269b61263a565b5b60018516156126ab5780820291505b80810290506126b985612669565b9450612680565b94509492505050565b6000826126d95760019050612795565b816126e75760009050612795565b81600181146126fd576002811461270757612736565b6001915050612795565b60ff8411156127195761271861263a565b5b8360020a9150848211156127305761272f61263a565b5b50612795565b5060208310610133831016604e8410600b841016171561276b5782820a9050838111156127665761276561263a565b5b612795565b6127788484846001612676565b9250905081840481111561278f5761278e61263a565b5b81810290505b9392505050565b60006127a782612443565b91506127b28361256c565b92506127df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c9565b905092915050565b60006127f282612443565b91506127fd83612443565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128365761283561263a565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612877602083612330565b915061288282612841565b602082019050919050565b600060208201905081810360008301526128a68161286a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128e3601783612330565b91506128ee826128ad565b602082019050919050565b60006020820190508181036000830152612912816128d6565b9050919050565b60008151905061292881612417565b92915050565b600060208284031215612944576129436123e0565b5b600061295284828501612919565b91505092915050565b600060408201905061297060008301856125d0565b61297d60208301846125d0565b9392505050565b6000819050919050565b6000819050919050565b60006129b36129ae6129a984612984565b61298e565b612443565b9050919050565b6129c381612998565b82525050565b600060c0820190506129de60008301896125d0565b6129eb60208301886124ef565b6129f860408301876129ba565b612a0560608301866129ba565b612a1260808301856125d0565b612a1f60a08301846124ef565b979650505050505050565b600081519050612a398161244d565b92915050565b600080600060608486031215612a5857612a576123e0565b5b6000612a6686828701612a2a565b9350506020612a7786828701612a2a565b9250506040612a8886828701612a2a565b9150509250925092565b6000604082019050612aa760008301856125d0565b612ab460208301846124ef565b9392505050565b612ac4816124b9565b8114612acf57600080fd5b50565b600081519050612ae181612abb565b92915050565b600060208284031215612afd57612afc6123e0565b5b6000612b0b84828501612ad2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b70602483612330565b9150612b7b82612b14565b604082019050919050565b60006020820190508181036000830152612b9f81612b63565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c02602283612330565b9150612c0d82612ba6565b604082019050919050565b60006020820190508181036000830152612c3181612bf5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c94602583612330565b9150612c9f82612c38565b604082019050919050565b60006020820190508181036000830152612cc381612c87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d26602383612330565b9150612d3182612cca565b604082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612db8602983612330565b9150612dc382612d5c565b604082019050919050565b60006020820190508181036000830152612de781612dab565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612e4a602483612330565b9150612e5582612dee565b604082019050919050565b60006020820190508181036000830152612e7981612e3d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eb6601983612330565b9150612ec182612e80565b602082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b6000612ef782612443565b9150612f0283612443565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f3757612f3661263a565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f78601a83612330565b9150612f8382612f42565b602082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b6000612fb982612443565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fec57612feb61263a565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b600061302d601383612330565b915061303882612ff7565b602082019050919050565b6000602082019050818103600083015261305c81613020565b9050919050565b600061306e82612443565b915061307983612443565b92508282101561308c5761308b61263a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61312a81612405565b82525050565b600061313c8383613121565b60208301905092915050565b6000602082019050919050565b6000613160826130f5565b61316a8185613100565b935061317583613111565b8060005b838110156131a657815161318d8882613130565b975061319883613148565b925050600181019050613179565b5085935050505092915050565b600060a0820190506131c860008301886124ef565b6131d560208301876129ba565b81810360408301526131e78186613155565b90506131f660608301856125d0565b61320360808301846124ef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061324782612443565b915061325283612443565b9250826132625761326161320d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c9602183612330565b91506132d48261326d565b604082019050919050565b600060208201905081810360008301526132f8816132bc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613335601b83612330565b9150613340826132ff565b602082019050919050565b6000602082019050818103600083015261336481613328565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201d784a901b04ba1375cd4c9e8edb1bc802ae50e47818ae568214a792eb9b9cc464736f6c634300080b0033

Deployed Bytecode Sourcemap

3489:8620:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4745:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6469:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5653:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10728;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11738:348;;;;;;;;;;;;;:::i;:::-;;5847:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:148;;;;;;;;;;;;;:::i;:::-;;10424:196;;;;;;;;;;;;;:::i;:::-;;4568:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2356:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4627:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5558:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5974:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4688:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3934:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10819:671;;;;;;;;;;;;;:::i;:::-;;6149:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5467:83;5504:13;5537:5;;;;;;;;;;;;;;;;;5530:12;;5467:83;:::o;6300:161::-;6375:4;6392:39;6401:12;:10;:12::i;:::-;6415:7;6424:6;6392:8;:39::i;:::-;6449:4;6442:11;;6300:161;;;;:::o;4745:49::-;;;;:::o;5744:95::-;5797:7;4378:1;4432:2;:13;;;;:::i;:::-;4421:8;:24;;;;:::i;:::-;5817:14;;5744:95;:::o;6469:313::-;6567:4;6584:36;6594:6;6602:9;6613:6;6584:9;:36::i;:::-;6631:121;6640:6;6648:12;:10;:12::i;:::-;6662:89;6700:6;6662:89;;;;;;;;;;;;;;;;;:11;:19;6674:6;6662:19;;;;;;;;;;;;;;;:33;6682:12;:10;:12::i;:::-;6662:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6631:8;:121::i;:::-;6770:4;6763:11;;6469:313;;;;;:::o;5653:83::-;5694:5;4378:1;5712:16;;5653:83;:::o;10728:::-;10775:4;10796;:7;10801:1;10796:7;;;;;;;;;;;;;;;;;;;;;;;;;10789:14;;10728:83;;;:::o;11738:348::-;11802:10;;;;;;;;;;;11788:24;;:12;:10;:12::i;:::-;:24;;;11780:33;;;;;;11824:20;11845:24;11863:4;11845:9;:24::i;:::-;11824:45;;11896:1;11883:12;:14;11880:73;;;11911:30;11928:12;11911:16;:30::i;:::-;11880:73;11963:18;11982:21;11963:40;;12028:1;12017:10;:12;12014:65;;;12043:24;12056:10;12043:12;:24::i;:::-;12014:65;11769:317;;11738:348::o;5847:119::-;5913:7;5940:9;:18;5950:7;5940:18;;;;;;;;;;;;;;;;5933:25;;5847:119;;;:::o;2570:148::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2677:1:::1;2640:40;;2661:6;::::0;::::1;;;;;;;;2640:40;;;;;;;;;;;;2708:1;2691:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2570:148::o:0;10424:196::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:1:::1;4432:2;:13;;;;:::i;:::-;4421:8;:24;;;;:::i;:::-;10477:12;:22;;;;4378:1;4432:2;:13;;;;:::i;:::-;4421:8;:24;;;;:::i;:::-;10510:14;:22;;;;10564:5;10543:20;;:26;;;;;;;;;;;;;;;;;;10585:27;4378:1;4432:2;:13;;;;:::i;:::-;4421:8;:24;;;;:::i;:::-;10585:27;;;;;;:::i;:::-;;;;;;;;10424:196::o:0;4568:52::-;;;;:::o;2356:79::-;2394:7;2421:6;;;;;;;;;;;2414:13;;2356:79;:::o;4627:54::-;;;;:::o;5558:87::-;5597:13;5630:7;;;;;;;;;;;;;;;;;5623:14;;5558:87;:::o;5974:167::-;6052:4;6069:42;6079:12;:10;:12::i;:::-;6093:9;6104:6;6069:9;:42::i;:::-;6129:4;6122:11;;5974:167;;;;:::o;4688:50::-;;;;:::o;3934:40::-;;;;;;;;;;;;;:::o;10819:671::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10883:11:::1;;;;;;;;;;;10882:12;10874:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10969:42;10932:15;;:80;;;;;;;;;;;;;;;;;;11023:58;11040:4;11055:15;;;;;;;;;;;4378:1;4432:2;:13;;;;:::i;:::-;4421:8;:24;;;;:::i;:::-;11023:8;:58::i;:::-;11126:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11108:55;;;11172:4;11179:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11108:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11092:13;;:110;;;;;;;;;;;;;;;;;;11213:15;;;;;;;;;;;:31;;;11252:21;11283:4;11289:24;11307:4;11289:9;:24::i;:::-;11314:1;11316::::0;11318:7:::1;:5;:7::i;:::-;11326:15;11213:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11360:13;;;;;;;;;;;11353:29;;;11391:15;;;;;;;;;;;11409:14;11353:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11449:4;11435:11;;:18;;;;;;;;;;;;;;;;;;11478:4;11464:11;;:18;;;;;;;;;;;;;;;;;;10819:671::o:0;6149:143::-;6230:7;6257:11;:18;6269:5;6257:18;;;;;;;;;;;;;;;:27;6276:7;6257:27;;;;;;;;;;;;;;;;6250:34;;6149:143;;;;:::o;111:98::-;164:7;191:10;184:17;;111:98;:::o;6790:335::-;6900:1;6883:19;;:5;:19;;;;6875:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6981:1;6962:21;;:7;:21;;;;6954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7063:6;7033:11;:18;7045:5;7033:18;;;;;;;;;;;;;;;:27;7052:7;7033:27;;;;;;;;;;;;;;;:36;;;;7101:7;7085:32;;7094:5;7085:32;;;7110:6;7085:32;;;;;;:::i;:::-;;;;;;;;6790:335;;;:::o;7133:2612::-;7237:1;7221:18;;:4;:18;;;;7213:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:1;7300:16;;:2;:16;;;;7292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7384:1;7375:6;:10;7367:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7442:17;7484:7;:5;:7::i;:::-;7476:15;;:4;:15;;;;:32;;;;;7501:7;:5;:7::i;:::-;7495:13;;:2;:13;;;;7476:32;7472:1917;;;7534:4;:10;7539:4;7534:10;;;;;;;;;;;;;;;;;;;;;;;;;7533:11;:24;;;;;7549:4;:8;7554:2;7549:8;;;;;;;;;;;;;;;;;;;;;;;;;7548:9;7533:24;7525:33;;;;;;7579:20;;;;;;;;;;;7575:346;;;7638:15;;;;;;;;;;;7624:30;;:2;:30;;;;:62;;;;;7672:13;;;;;;;;;;;7658:28;;:2;:28;;;;7624:62;7620:286;;;7759:12;7717:28;:39;7746:9;7717:39;;;;;;;;;;;;;;;;:54;7709:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7874:12;7832:28;:39;7861:9;7832:39;;;;;;;;;;;;;;;:54;;;;7620:286;7575:346;7949:13;;;;;;;;;;;7941:21;;:4;:21;;;:55;;;;;7980:15;;;;;;;;;;;7966:30;;:2;:30;;;;7941:55;:83;;;;;8002:18;:22;8021:2;8002:22;;;;;;;;;;;;;;;;;;;;;;;;;8000:24;7941:83;7937:465;;;8064:12;;8054:6;:22;;8046:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8159:14;;8149:6;8133:13;8143:2;8133:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8125:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8236:18;;8226:9;;:28;8223:97;;;8285:14;8296:2;8285:10;:14::i;:::-;8284:15;8276:24;;;;;;8223:97;8338:9;;:11;;;;;;;;;:::i;:::-;;;;;;8382:4;8368:9;:13;8378:2;8368:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;7937:465;8432:76;8504:3;8432:67;8454:15;;8444:9;;:25;8443:55;;8484:14;;8443:55;;;8471:12;;8443:55;8432:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8420:88;;8532:13;;;;;;;;;;;8526:19;;:2;:19;;;:43;;;;;8564:4;8549:20;;:4;:20;;;;8526:43;8523:350;;;8608:12;;8598:6;:22;;8590:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8681:79;8756:3;8681:70;8703:16;;8693:9;;:26;8692:58;;8735:15;;8692:58;;;8721:13;;8692:58;8681:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8669:91;;8797:18;;8787:9;;:28;:47;;;;8819:9;:15;8829:4;8819:15;;;;;;;;;;;;;;;;;;;;;;;;;8787:47;8779:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8523:350;8889:28;8920:24;8938:4;8920:9;:24::i;:::-;8889:55;;8964:6;;;;;;;;;;8963:7;:30;;;;;8980:13;;;;;;;;;;;8974:19;;:2;:19;;;8963:30;:45;;;;;8997:11;;;;;;;;;;;8963:45;:87;;;;;9033:17;;9012:20;:38;8963:87;:119;;;;;9064:18;;9054:9;;:28;8963:119;8959:419;;;9103:67;9120:49;9124:6;9131:37;9135:20;9156:11;;9131:3;:37::i;:::-;9120:3;:49::i;:::-;9103:16;:67::i;:::-;9189:26;9218:21;9189:50;;9282:1;9261:18;:22;9258:105;;;9308:35;9321:21;9308:12;:35::i;:::-;9258:105;9084:294;8959:419;7510:1879;7472:1917;9414:1;9404:9;:11;9401:161;;;9454:39;9483:9;9454;:24;9472:4;9454:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9429:9;:24;9447:4;9429:24;;;;;;;;;;;;;;;:64;;;;9534:4;9511:39;;9520:4;9511:39;;;9540:9;9511:39;;;;;;:::i;:::-;;;;;;;;9401:161;9588:27;9608:6;9588:9;:15;9598:4;9588:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9572:9;:15;9582:4;9572:15;;;;;;;;;;;;;;;:43;;;;9640:40;9658:21;9669:9;9658:6;:10;;:21;;;;:::i;:::-;9640:9;:13;9650:2;9640:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9626:9;:13;9636:2;9626:13;;;;;;;;;;;;;;;:54;;;;9711:2;9696:41;;9705:4;9696:41;;;9715:21;9726:9;9715:6;:10;;:21;;;;:::i;:::-;9696:41;;;;;;:::i;:::-;;;;;;;;7202:2543;7133:2612;;;:::o;1248:190::-;1334:7;1367:1;1362;:6;;1370:12;1354:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1394:9;1410:1;1406;:5;;;;:::i;:::-;1394:17;;1429:1;1422:8;;;1248:190;;;;;:::o;9861:555::-;5085:4;5076:6;;:13;;;;;;;;;;;;;;;;;;9955:1:::1;9942:11;:14;9939:27;;;9958:7;;9939:27;9980:11;;;;;;;;;;;9976:25;;9993:7;;9976:25;10011:21;10049:1;10035:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10011:40;;10080:4;10062;10067:1;10062:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10106:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10096:4;10101:1;10096:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10139:62;10156:4;10171:15;;;;;;;;;;;10189:11;10139:8;:62::i;:::-;10212:15;;;;;;;;;;;:66;;;10293:11;10319:1;10335:4;10362;10382:15;10212:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9928:488;5100:1;5121:5:::0;5112:6;;:14;;;;;;;;;;;;;;;;;;9861:555;:::o;10628:92::-;10685:10;;;;;;;;;;;:19;;:27;10705:6;10685:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10628:92;:::o;11535:195::-;11594:4;11611:12;11678:7;11666:20;11658:28;;11721:1;11714:4;:8;11707:15;;;11535:195;;;:::o;1446:246::-;1504:7;1533:1;1528;:6;1524:47;;;1558:1;1551:8;;;;1524:47;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1626:1;1621;1617;:5;;;;:::i;:::-;:10;1609:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1683:1;1676:8;;;1446:246;;;;;:::o;1700:132::-;1758:7;1785:39;1789:1;1792;1785:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1778:46;;1700:132;;;;:::o;9755:98::-;9812:7;9839:1;9837;:3;9836:9;;9844:1;9836:9;;;9842:1;9836:9;9829:16;;9755:98;;;;:::o;917:179::-;975:7;995:9;1011:1;1007;:5;;;;:::i;:::-;995:17;;1036:1;1031;:6;;1023:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1087:1;1080:8;;;917:179;;;;:::o;1104:136::-;1162:7;1189:43;1193:1;1196;1189:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1182:50;;1104:136;;;;:::o;1840:189::-;1926:7;1958:1;1954;:5;1961:12;1946:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1985:9;2001:1;1997;:5;;;;:::i;:::-;1985:17;;2020:1;2013:8;;;1840: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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:102;6296:8;6343:5;6340:1;6336:13;6315:34;;6254:102;;;:::o;6362:848::-;6423:5;6430:4;6454:6;6445:15;;6478:5;6469:14;;6492:712;6513:1;6503:8;6500:15;6492:712;;;6608:4;6603:3;6599:14;6593:4;6590:24;6587:50;;;6617:18;;:::i;:::-;6587:50;6667:1;6657:8;6653:16;6650:451;;;7082:4;7075:5;7071:16;7062:25;;6650:451;7132:4;7126;7122:15;7114:23;;7162:32;7185:8;7162:32;:::i;:::-;7150:44;;6492:712;;;6362:848;;;;;;;:::o;7216:1073::-;7270:5;7461:8;7451:40;;7482:1;7473:10;;7484:5;;7451:40;7510:4;7500:36;;7527:1;7518:10;;7529:5;;7500:36;7596:4;7644:1;7639:27;;;;7680:1;7675:191;;;;7589:277;;7639:27;7657:1;7648:10;;7659:5;;;7675:191;7720:3;7710:8;7707:17;7704:43;;;7727:18;;:::i;:::-;7704:43;7776:8;7773:1;7769:16;7760:25;;7811:3;7804:5;7801:14;7798:40;;;7818:18;;:::i;:::-;7798:40;7851:5;;;7589:277;;7975:2;7965:8;7962:16;7956:3;7950:4;7947:13;7943:36;7925:2;7915:8;7912:16;7907:2;7901:4;7898:12;7894:35;7878:111;7875:246;;;8031:8;8025:4;8021:19;8012:28;;8066:3;8059:5;8056:14;8053:40;;;8073:18;;:::i;:::-;8053:40;8106:5;;7875:246;8146:42;8184:3;8174:8;8168:4;8165:1;8146:42;:::i;:::-;8131:57;;;;8220:4;8215:3;8211:14;8204:5;8201:25;8198:51;;;8229:18;;:::i;:::-;8198:51;8278:4;8271:5;8267:16;8258:25;;7216:1073;;;;;;:::o;8295:281::-;8353:5;8377:23;8395:4;8377:23;:::i;:::-;8369:31;;8421:25;8437:8;8421:25;:::i;:::-;8409:37;;8465:104;8502:66;8492:8;8486:4;8465:104;:::i;:::-;8456:113;;8295:281;;;;:::o;8582:348::-;8622:7;8645:20;8663:1;8645:20;:::i;:::-;8640:25;;8679:20;8697:1;8679:20;:::i;:::-;8674:25;;8867:1;8799:66;8795:74;8792:1;8789:81;8784:1;8777:9;8770:17;8766:105;8763:131;;;8874:18;;:::i;:::-;8763:131;8922:1;8919;8915:9;8904:20;;8582:348;;;;:::o;8936:182::-;9076:34;9072:1;9064:6;9060:14;9053:58;8936:182;:::o;9124:366::-;9266:3;9287:67;9351:2;9346:3;9287:67;:::i;:::-;9280:74;;9363:93;9452:3;9363:93;:::i;:::-;9481:2;9476:3;9472:12;9465:19;;9124:366;;;:::o;9496:419::-;9662:4;9700:2;9689:9;9685:18;9677:26;;9749:9;9743:4;9739:20;9735:1;9724:9;9720:17;9713:47;9777:131;9903:4;9777:131;:::i;:::-;9769:139;;9496:419;;;:::o;9921:173::-;10061:25;10057:1;10049:6;10045:14;10038:49;9921:173;:::o;10100:366::-;10242:3;10263:67;10327:2;10322:3;10263:67;:::i;:::-;10256:74;;10339:93;10428:3;10339:93;:::i;:::-;10457:2;10452:3;10448:12;10441:19;;10100:366;;;:::o;10472:419::-;10638:4;10676:2;10665:9;10661:18;10653:26;;10725:9;10719:4;10715:20;10711:1;10700:9;10696:17;10689:47;10753:131;10879:4;10753:131;:::i;:::-;10745:139;;10472:419;;;:::o;10897:143::-;10954:5;10985:6;10979:13;10970:22;;11001:33;11028:5;11001:33;:::i;:::-;10897:143;;;;:::o;11046:351::-;11116:6;11165:2;11153:9;11144:7;11140:23;11136:32;11133:119;;;11171:79;;:::i;:::-;11133:119;11291:1;11316:64;11372:7;11363:6;11352:9;11348:22;11316:64;:::i;:::-;11306:74;;11262:128;11046:351;;;;:::o;11403:332::-;11524:4;11562:2;11551:9;11547:18;11539:26;;11575:71;11643:1;11632:9;11628:17;11619:6;11575:71;:::i;:::-;11656:72;11724:2;11713:9;11709:18;11700:6;11656:72;:::i;:::-;11403:332;;;;;:::o;11741:85::-;11786:7;11815:5;11804:16;;11741:85;;;:::o;11832:60::-;11860:3;11881:5;11874:12;;11832:60;;;:::o;11898:158::-;11956:9;11989:61;12007:42;12016:32;12042:5;12016:32;:::i;:::-;12007:42;:::i;:::-;11989:61;:::i;:::-;11976:74;;11898:158;;;:::o;12062:147::-;12157:45;12196:5;12157:45;:::i;:::-;12152:3;12145:58;12062:147;;:::o;12215:807::-;12464:4;12502:3;12491:9;12487:19;12479:27;;12516:71;12584:1;12573:9;12569:17;12560:6;12516:71;:::i;:::-;12597:72;12665:2;12654:9;12650:18;12641:6;12597:72;:::i;:::-;12679:80;12755:2;12744:9;12740:18;12731:6;12679:80;:::i;:::-;12769;12845:2;12834:9;12830:18;12821:6;12769:80;:::i;:::-;12859:73;12927:3;12916:9;12912:19;12903:6;12859:73;:::i;:::-;12942;13010:3;12999:9;12995:19;12986:6;12942:73;:::i;:::-;12215:807;;;;;;;;;:::o;13028:143::-;13085:5;13116:6;13110:13;13101:22;;13132:33;13159:5;13132:33;:::i;:::-;13028:143;;;;:::o;13177:663::-;13265:6;13273;13281;13330:2;13318:9;13309:7;13305:23;13301:32;13298:119;;;13336:79;;:::i;:::-;13298:119;13456:1;13481:64;13537:7;13528:6;13517:9;13513:22;13481:64;:::i;:::-;13471:74;;13427:128;13594:2;13620:64;13676:7;13667:6;13656:9;13652:22;13620:64;:::i;:::-;13610:74;;13565:129;13733:2;13759:64;13815:7;13806:6;13795:9;13791:22;13759:64;:::i;:::-;13749:74;;13704:129;13177:663;;;;;:::o;13846:332::-;13967:4;14005:2;13994:9;13990:18;13982:26;;14018:71;14086:1;14075:9;14071:17;14062:6;14018:71;:::i;:::-;14099:72;14167:2;14156:9;14152:18;14143:6;14099:72;:::i;:::-;13846:332;;;;;:::o;14184:116::-;14254:21;14269:5;14254:21;:::i;:::-;14247:5;14244:32;14234:60;;14290:1;14287;14280:12;14234:60;14184:116;:::o;14306:137::-;14360:5;14391:6;14385:13;14376:22;;14407:30;14431:5;14407:30;:::i;:::-;14306:137;;;;:::o;14449:345::-;14516:6;14565:2;14553:9;14544:7;14540:23;14536:32;14533:119;;;14571:79;;:::i;:::-;14533:119;14691:1;14716:61;14769:7;14760:6;14749:9;14745:22;14716:61;:::i;:::-;14706:71;;14662:125;14449:345;;;;:::o;14800:223::-;14940:34;14936:1;14928:6;14924:14;14917:58;15009:6;15004:2;14996:6;14992:15;14985:31;14800:223;:::o;15029:366::-;15171:3;15192:67;15256:2;15251:3;15192:67;:::i;:::-;15185:74;;15268:93;15357:3;15268:93;:::i;:::-;15386:2;15381:3;15377:12;15370:19;;15029:366;;;:::o;15401:419::-;15567:4;15605:2;15594:9;15590:18;15582:26;;15654:9;15648:4;15644:20;15640:1;15629:9;15625:17;15618:47;15682:131;15808:4;15682:131;:::i;:::-;15674:139;;15401:419;;;:::o;15826:221::-;15966:34;15962:1;15954:6;15950:14;15943:58;16035:4;16030:2;16022:6;16018:15;16011:29;15826:221;:::o;16053:366::-;16195:3;16216:67;16280:2;16275:3;16216:67;:::i;:::-;16209:74;;16292:93;16381:3;16292:93;:::i;:::-;16410:2;16405:3;16401:12;16394:19;;16053:366;;;:::o;16425:419::-;16591:4;16629:2;16618:9;16614:18;16606:26;;16678:9;16672:4;16668:20;16664:1;16653:9;16649:17;16642:47;16706:131;16832:4;16706:131;:::i;:::-;16698:139;;16425:419;;;:::o;16850:224::-;16990:34;16986:1;16978:6;16974:14;16967:58;17059:7;17054:2;17046:6;17042:15;17035:32;16850:224;:::o;17080:366::-;17222:3;17243:67;17307:2;17302:3;17243:67;:::i;:::-;17236:74;;17319:93;17408:3;17319:93;:::i;:::-;17437:2;17432:3;17428:12;17421:19;;17080:366;;;:::o;17452:419::-;17618:4;17656:2;17645:9;17641:18;17633:26;;17705:9;17699:4;17695:20;17691:1;17680:9;17676:17;17669:47;17733:131;17859:4;17733:131;:::i;:::-;17725:139;;17452:419;;;:::o;17877:222::-;18017:34;18013:1;18005:6;18001:14;17994:58;18086:5;18081:2;18073:6;18069:15;18062:30;17877:222;:::o;18105:366::-;18247:3;18268:67;18332:2;18327:3;18268:67;:::i;:::-;18261:74;;18344:93;18433:3;18344:93;:::i;:::-;18462:2;18457:3;18453:12;18446:19;;18105:366;;;:::o;18477:419::-;18643:4;18681:2;18670:9;18666:18;18658:26;;18730:9;18724:4;18720:20;18716:1;18705:9;18701:17;18694:47;18758:131;18884:4;18758:131;:::i;:::-;18750:139;;18477:419;;;:::o;18902:228::-;19042:34;19038:1;19030:6;19026:14;19019:58;19111:11;19106:2;19098:6;19094:15;19087:36;18902:228;:::o;19136:366::-;19278:3;19299:67;19363:2;19358:3;19299:67;:::i;:::-;19292:74;;19375:93;19464:3;19375:93;:::i;:::-;19493:2;19488:3;19484:12;19477:19;;19136:366;;;:::o;19508:419::-;19674:4;19712:2;19701:9;19697:18;19689:26;;19761:9;19755:4;19751:20;19747:1;19736:9;19732:17;19725:47;19789:131;19915:4;19789:131;:::i;:::-;19781:139;;19508:419;;;:::o;19933:223::-;20073:34;20069:1;20061:6;20057:14;20050:58;20142:6;20137:2;20129:6;20125:15;20118:31;19933:223;:::o;20162:366::-;20304:3;20325:67;20389:2;20384:3;20325:67;:::i;:::-;20318:74;;20401:93;20490:3;20401:93;:::i;:::-;20519:2;20514:3;20510:12;20503:19;;20162:366;;;:::o;20534:419::-;20700:4;20738:2;20727:9;20723:18;20715:26;;20787:9;20781:4;20777:20;20773:1;20762:9;20758:17;20751:47;20815:131;20941:4;20815:131;:::i;:::-;20807:139;;20534:419;;;:::o;20959:175::-;21099:27;21095:1;21087:6;21083:14;21076:51;20959:175;:::o;21140:366::-;21282:3;21303:67;21367:2;21362:3;21303:67;:::i;:::-;21296:74;;21379:93;21468:3;21379:93;:::i;:::-;21497:2;21492:3;21488:12;21481:19;;21140:366;;;:::o;21512:419::-;21678:4;21716:2;21705:9;21701:18;21693:26;;21765:9;21759:4;21755:20;21751:1;21740:9;21736:17;21729:47;21793:131;21919:4;21793:131;:::i;:::-;21785:139;;21512:419;;;:::o;21937:305::-;21977:3;21996:20;22014:1;21996:20;:::i;:::-;21991:25;;22030:20;22048:1;22030:20;:::i;:::-;22025:25;;22184:1;22116:66;22112:74;22109:1;22106:81;22103:107;;;22190:18;;:::i;:::-;22103:107;22234:1;22231;22227:9;22220:16;;21937:305;;;;:::o;22248:176::-;22388:28;22384:1;22376:6;22372:14;22365:52;22248:176;:::o;22430:366::-;22572:3;22593:67;22657:2;22652:3;22593:67;:::i;:::-;22586:74;;22669:93;22758:3;22669:93;:::i;:::-;22787:2;22782:3;22778:12;22771:19;;22430:366;;;:::o;22802:419::-;22968:4;23006:2;22995:9;22991:18;22983:26;;23055:9;23049:4;23045:20;23041:1;23030:9;23026:17;23019:47;23083:131;23209:4;23083:131;:::i;:::-;23075:139;;22802:419;;;:::o;23227:233::-;23266:3;23289:24;23307:5;23289:24;:::i;:::-;23280:33;;23335:66;23328:5;23325:77;23322:103;;;23405:18;;:::i;:::-;23322:103;23452:1;23445:5;23441:13;23434:20;;23227:233;;;:::o;23466:169::-;23606:21;23602:1;23594:6;23590:14;23583:45;23466:169;:::o;23641:366::-;23783:3;23804:67;23868:2;23863:3;23804:67;:::i;:::-;23797:74;;23880:93;23969:3;23880:93;:::i;:::-;23998:2;23993:3;23989:12;23982:19;;23641:366;;;:::o;24013:419::-;24179:4;24217:2;24206:9;24202:18;24194:26;;24266:9;24260:4;24256:20;24252:1;24241:9;24237:17;24230:47;24294:131;24420:4;24294:131;:::i;:::-;24286:139;;24013:419;;;:::o;24438:191::-;24478:4;24498:20;24516:1;24498:20;:::i;:::-;24493:25;;24532:20;24550:1;24532:20;:::i;:::-;24527:25;;24571:1;24568;24565:8;24562:34;;;24576:18;;:::i;:::-;24562:34;24621:1;24618;24614:9;24606:17;;24438:191;;;;:::o;24635:180::-;24683:77;24680:1;24673:88;24780:4;24777:1;24770:15;24804:4;24801:1;24794:15;24821:180;24869:77;24866:1;24859:88;24966:4;24963:1;24956:15;24990:4;24987:1;24980:15;25007:114;25074:6;25108:5;25102:12;25092:22;;25007:114;;;:::o;25127:184::-;25226:11;25260:6;25255:3;25248:19;25300:4;25295:3;25291:14;25276:29;;25127:184;;;;:::o;25317:132::-;25384:4;25407:3;25399:11;;25437:4;25432:3;25428:14;25420:22;;25317:132;;;:::o;25455:108::-;25532:24;25550:5;25532:24;:::i;:::-;25527:3;25520:37;25455:108;;:::o;25569:179::-;25638:10;25659:46;25701:3;25693:6;25659:46;:::i;:::-;25737:4;25732:3;25728:14;25714:28;;25569:179;;;;:::o;25754:113::-;25824:4;25856;25851:3;25847:14;25839:22;;25754:113;;;:::o;25903:732::-;26022:3;26051:54;26099:5;26051:54;:::i;:::-;26121:86;26200:6;26195:3;26121:86;:::i;:::-;26114:93;;26231:56;26281:5;26231:56;:::i;:::-;26310:7;26341:1;26326:284;26351:6;26348:1;26345:13;26326:284;;;26427:6;26421:13;26454:63;26513:3;26498:13;26454:63;:::i;:::-;26447:70;;26540:60;26593:6;26540:60;:::i;:::-;26530:70;;26386:224;26373:1;26370;26366:9;26361:14;;26326:284;;;26330:14;26626:3;26619:10;;26027:608;;;25903:732;;;;:::o;26641:831::-;26904:4;26942:3;26931:9;26927:19;26919:27;;26956:71;27024:1;27013:9;27009:17;27000:6;26956:71;:::i;:::-;27037:80;27113:2;27102:9;27098:18;27089:6;27037:80;:::i;:::-;27164:9;27158:4;27154:20;27149:2;27138:9;27134:18;27127:48;27192:108;27295:4;27286:6;27192:108;:::i;:::-;27184:116;;27310:72;27378:2;27367:9;27363:18;27354:6;27310:72;:::i;:::-;27392:73;27460:3;27449:9;27445:19;27436:6;27392:73;:::i;:::-;26641:831;;;;;;;;:::o;27478:180::-;27526:77;27523:1;27516:88;27623:4;27620:1;27613:15;27647:4;27644:1;27637:15;27664:185;27704:1;27721:20;27739:1;27721:20;:::i;:::-;27716:25;;27755:20;27773:1;27755:20;:::i;:::-;27750:25;;27794:1;27784:35;;27799:18;;:::i;:::-;27784:35;27841:1;27838;27834:9;27829:14;;27664:185;;;;:::o;27855:220::-;27995:34;27991:1;27983:6;27979:14;27972:58;28064:3;28059:2;28051:6;28047:15;28040:28;27855:220;:::o;28081:366::-;28223:3;28244:67;28308:2;28303:3;28244:67;:::i;:::-;28237:74;;28320:93;28409:3;28320:93;:::i;:::-;28438:2;28433:3;28429:12;28422:19;;28081:366;;;:::o;28453:419::-;28619:4;28657:2;28646:9;28642:18;28634:26;;28706:9;28700:4;28696:20;28692:1;28681:9;28677:17;28670:47;28734:131;28860:4;28734:131;:::i;:::-;28726:139;;28453:419;;;:::o;28878:177::-;29018:29;29014:1;29006:6;29002:14;28995:53;28878:177;:::o;29061:366::-;29203:3;29224:67;29288:2;29283:3;29224:67;:::i;:::-;29217:74;;29300:93;29389:3;29300:93;:::i;:::-;29418:2;29413:3;29409:12;29402:19;;29061:366;;;:::o;29433:419::-;29599:4;29637:2;29626:9;29622:18;29614:26;;29686:9;29680:4;29676:20;29672:1;29661:9;29657:17;29650:47;29714:131;29840:4;29714:131;:::i;:::-;29706:139;;29433:419;;;:::o

Swarm Source

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